
Linux用户分为:拥有者、组群(Group)、其他(other)
linux中的文件属性过分四段,如 -rwzrwz---
第一段 - 是指文件类型
文件类型部分
d为:文件夹
l为:链接文件,可以理解为 windows中的快捷方式(link file)
b为:里面可以供存储周边设备
c为:一次性读取装置
第二段 rwz 是指拥有者具有可读可写可执行的权限
第三段 rwz 是指所属于这个组的成员对于这个文件具有,可读可写可执行的权限
第四段 --- 是指其他人对于这个文件没有任何权限
在linux下 需要加载一个可执行程序到内存时会调用exec函数 exec函数会读取可执行文件的头部信息 其中就包括各段(code data bss)的起始地址和结束地址 因为bss时未初始化的数据段 exec函数就会把bss段【起始地址-结束地址】映射到一个全0的页(叫什么名字我忘记了 反正linux有专门的这么一页内存4K,所以程序(不只你的程序)未初始化的数据都映射到此页),至于linux为什么要这样,其实你可以自己想想,你未初始化一个数据(好比你定义一个 Int a (全局的 或 静态的)) 你以后可能不会再程序中用它(因为你编程失误) 这样因为没有跟它分配内存(而只是映射了一下) 所以不会浪费宝贵的内存 如果以后再程序中用到此变量 如果是读则是0(此映射不会变) 但是如果你写此变量 他就会分配一页内存存放你的bss段(this is call copyonwite),并且将此页全清零 好了 不说了 我也是菜鸟
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)