windows:PE 可移植的可执行的文件格式
linux:ELF 可执行的可连接的文件格式
linux没有注册表的概念
文件系统:
rootfs:根文件系统
FHS:Linux
/boot:系统启动相关的文件,如内核、initrd,以及grub(bootloader引导加载器) //内核 initrd.img-3.19.0-15-generic vmlinuz-3.19.0-15-generic
/dev:设备文件
设备文件:
快设备:随机访问,数据块
字符设备:线性访问,按字符为单位 //鼠标 显示器
设备号:主设备号(major)和次设备号(minor)
特殊文件是没有大小的,它们直接存储于元数据,而且是作为设备的访问入口存在的,前面的数字是设备号
/etc:配置文件
/home:用户的家目录,每一个用户的家目录通常默认为/home/UESRNAME
/root:管理员的家目录。在传统的unix下,root用户是没有家目录的,因为root用户从来都不需要登录系统。在生产环境中千万不要root直接登录,用到管理的时候在切换
/lib:库文件
静态库 .lib .a
动态库 .dll .so(shared object)
/lib/modules:内核模块文件
静态方式便于单个程序管理,静态库是直接连接到程序的地址空间中去,而且还是作为程序的一部分而运行的
库文件是不能单独执行的,它没有可执行入口,它只能被调用
/media:挂载点目录,通常挂载移动设备
/mnt:挂载点目录,挂载额外的临时文件系统
/opt:可选目录,第三方程序安装目录(现在通常不放了)
/proc:伪文件系统(系统不启动时就是空的,启动后里面的内容是内核映射文件)
/sys:伪文件系统,它不是内核映射文件,它是跟硬件设备相关的属性映射文件
/tmp:临时文件, /var/tmp
/var:可变化的文件
/bin:可执行文件,用户命令
/sbin:管理命令
/usr:s:shared,r:read-only 放的是只读文件
/usr/bin
/usr/sbin
/usr/lib
...
/usr/local:第三方的
/usr/local/bin
/usr/local/sbin
/usr/local/lib
命名规则:
1.长度不超过255字符;
2.不能使用斜线(/)当文件名,除此之外无限制
3.严格区分大小写