文件系统

来源:互联网 发布:Java凸包算法 编辑:程序博客网 时间:2024/06/07 23:45
文件系统是指文件存在的物理空间,linux系统中每个分区都是一个文件系统,都有自己的目录层次,linux会将这些分属不同分区的单独的文件系统按照一定的方式形成一个系统的总的目录层次结构,一个操作系统的运行离不开对文件的操作,因此必然要拥有并维护自己的文件系统。Linux最早引入的文件系统类型是MINIX。MINIX文件系统由MINIX操作系统定义,有一定的局限性,如文件名最长14个字符,文件最长64M字节。第一个专门为Linux设计的文件系统是EXT(ExtendedFile System),但目前流行最广的是EXT4。第二代扩展文件系统由Rey Card 设计,其目标是为Linux提供一个强大的可扩展文件系统。它同时也是Linux界中设计最成功的文件系统。通过VFS的超级块(struct ext2_sb_infoext2_sb)可以访问EXT2的超级块,通过VFS的inode(struct ext2_inode_infoext2_i)可以访问EXT2的inode。文件系统EXT2的源代码在/usr/src/linux/fs/ext2目录下,它的数据结构在文件/usr/src/linux/include/linux/ext2_fs.h以及同一目录下的文件ext2_fs_i.h和ext2_fs_sb.h中定义。该结构的最上层是根目录,其他所有目录都是从根目录出发生成的。windows也是采用的树形目录结构,但是windows的树形结构的根目录是磁盘分区的盘符,有几个分区就有几个树形结构,他们之间的关系是并列的,而在linux操作系统中根目录只有一个,这是两种操作系统在文件结构上的主要不同。/bin:存放二进制可执行文件(例如一些shell命令)。 /dev:存放设备文件。/etc:存放系统的管理和配置文件(这个目录很牛逼) /etc/rc.d:启动配置文件和脚本 /root:root用户的主目录。/home:存放用户主目录,除了root用户的主目录外,当创建一个用户是会在这个目录下创建相应用户的主目录。/lib:存放一些标准程序设计库(动态连接共享库),类似于.dll。 /sbib:系统管理命令,存放系统管理员使用的管理命令。/tmp:默认的临时文件存放地点。 /mnt:用户可以在这个目录下创建临时挂载点,例如关在u盘文件系统。/lost+found:存放系统非正常关机而产生的“无家可归”的文件。/proc:虚拟的目录,是系统内存的映射,可直接访问这个目录来获取系统信息。/var:一般用来存放时常变化的文件,例如日志文件,在学习驱动的时候通常查看驱动程序是否成功安装或卸载是,用dmesg查看的就是/var/log/messages文件。还有就是我们通过apt-get在网上通过源安装的程序的安装包一般会在/var/cache/apt/archives下。/usr:它是linux系统下最庞大的目录,存放一般的应用程序和文件。 /usr/bin:众多的应用程序/usr/sbin:超级用户的一些管理程序。 /usr/includelinux下开发和编译应用程序所需要的头文件(在学习c和高级编程中用的很多头文件都在这里面)/usr/lib:常用的动态链接库和软件包的配置文件。 /usr/man 帮助文档/usr/src:源代码,例如/usr/src/linux存放linux源代码 /usr/local/bin:本地增加的命令。/usr/local/lib:本地增加的库。 windows系统和linux系统的区别:1、文件名长度方面:NTFS和ext4相同,最大都是255个字符,但路径长度ext4没有限制,NTFS内核限制是路径长度不宜超过65536个Unicode字符,但受到应用API限制,最长是255(可以绕过这个限制)2分区:NTFS最大文件是16EB,最大分区是16EB,ext4最大文件是16TB,最大分区是1EB。3、二者支持的时间戳都一样,都支持记录创建时间、访问时间、修改时间。ext4部分支持ECC,而NTFS不支持,另外两者记录时间的精度不同,ext4的精度是1纳秒,NTFS精度是100纳秒。4、ext4支持块级的日志,但默认关闭,NTFS不支持,但考虑到NTFS其实是把所有内容(包括元数据)都认为是文件(ext4则区分文件和元数据),所以NTFS没有必要做块级的日志。5、ext4不支持文件文件快照,NTFS支持,另外NTFS支持文件修改日志。6、NTFS原生支持数据加密,ext4需要在格式化时指定是否支持数据加密,格式化以后无法修改。7、ext4似乎不支持CopyOn Write,但从ext4的逻辑上看,不支持Copy OnWrite也可以理解,因为有日志。NTFS支持。8、NTFS在WindowsServer版本上支持消除重复数据的功能(类似于网盘的秒传)9、ext4和NTFS都支持稀疏文件,其中NTFS还支持块的再分配(把未完全使用的一个块拆成多个块再分配),ext4支持异步分配(Allocateonflush,这个该怎么翻译最合适?),可以减少碎片10、windows用户分为两类:admin和limited,在安装一些软件的时候才有有用户的限制。而linux用户分为四类,超级管理员(也就是root权限),普通用户,同组用户,其他用户。root用户可以拥有任何操作,普通用户拥有自己的主目录和文件并拥有文件分配权限,可以对其他用户授权,权限分读,写和运行。linux可以对每一个文件进行授权,而用户只能对自己有权限的文件进行授权。11、Linux更接近底层,开放的东西也多,而Windows相比之下更适合普通用户,当然可定制和修改的东西也少12、文件命名:Linux文件系统中严格区分大小写,MyFile.txt与myfile.txt指不同的文件。区分文件类型不依赖于文件后缀,可以使用程序file命令判断文件类型Windows文件系统中不区分大小写,MyFile.txt与myfile.txt是指同一个文件。使用文件后缀来标识文件类型,例如使用“.txt”表示文本文件13、路径分隔符:Linux使用斜杠“/”分隔目录名,例如“/home/usr/share”,其中第一个斜杠是根目录(/),绝对路径都是以根目录作为起点Windows使用反斜杠“\”分隔目录名,例如“C:\program\username”,绝对路径都是以驱动器盘符作为起点