还剩7页未读,继续阅读
文本内容:
文件系统Linux最早的文件系统是但是专门为设计的文件系统一一扩展文件系统第二版或者Linux Minix,Linux被设计出来并添加到中,这对产生了重大影响文件系统功能强大、易EXT2Linux LinuxEXT2扩充、性能上进行了全面优化,也是现在所有发布和安装的标准文件系统类型Linux磁盘组织系统中,所有元数据结构的大小均基于“块”,而不是“扇区”块的大小随文件系统的大ext2小而有所不同而一定数量的块又组成一个块组,每一个块组的起始部份有多种多样的描述该块组各种属性的元数据结构系统中对各个结构的定义都包含在原始码的ext2include/linux/ext2_fs.h文件中、超级块1每一个文件系统都必须包含一个超级块,其中存储了该文件系统的大量基本信息,包括ext2块的大小、每块组中包含的块数等同时,系统会对超级块进行备份,备份被存放在块组的第一个块中超级块的起始位置为其所在分区的第个字节,占用的空间、块组描述符10241KB2一个块组描述符用以描述一个块组的属性块组描述符组由若干块组描述符组成,描述了文件系统中所有块组的属性,存放于超级块所在块的下一个块中、块位图和位图3inode块位图和位图的每一位分别指出块组中对应的那个块或者是否被使用inode inode、表4inode表用于跟踪定位每一个文件,包括位置、大小等(但不包括文件名),一个块组惟独inode一个表inode、数据块5数据块中存放文件的内容,包括目录表、扩展属性、符号链接等目录结构在文件系统中,目录是作为文件存储的根目录总是在表的第二项,而其子目录ext2inode则在根目录文件的内容中定义目录项在八文件中定义include inux/ext2_fs.h文件扩展属性文件的属性大多数是位于该文件的结构中的标准属性,也还包含其他一些扩展属性(于inode系统中所有的相关,通常用于增加额外的功能),在文件中定义inode fs/ext2/xattr.h虚拟文件系统Virtual FileSystems VFS是近年来发展起来的一种新型的操作系统,其最重要的特征之一就是支持多种文件系Linux统,使其更加灵便,从而与许多其它的操作系统共存支持Linux ext,ext2,xia,minix,umsdos,msdes,以及等多种文件系统为了实现这一目的,对所有的fat32,ntfs,proc,stub,nep,hpfs,affs ufsLinux文件系统采用统一的文件界面,用户通过文件的操作界面来实现对不同文件系统的操作对于用户来说,我们不要去关心不同文件系统的具体操作过程,而只是对一个虚拟的文件操作界面来进行操作,这个操作界面就是的虚拟文件系统形象地说,的内核好象一个机Linux VFSo LinuxPC的母板,就是上面的一个插槽,具体的文件系统就是一块块的接卡因此,每一个文件VFS121系统之间互不干扰,而只是调用相应的程序来实现其功能在的内核文件中,和具体Linux VFS的文件系统程序都放在中,其中每一种文件系统对应一个子目录,此外还有一些共用的Linux\FS程序在具体的实现上,每一个文件系统都有自己的文件操作数据结构所VFS file—operations以,作为内核中的一个软件层,用于给用户空间的程序提供文件系统接口,同时也提供VFS ILinux了内核中的一个抽象功能,允许不同的文件系统很好地共存使同时安装、支持许多VFS Linux不同类型的文件系统成为可能拥有关于各种特殊文件系统的公共界面,如超级块、、VFS inode文件操作函数入口等实际文件系统的细节,统一由的公共界面来索引,它们对系统核心VFS和用户进程来说是透明的文件结构Linux下的文件结构,看看每一个文件夹都是干嘛用的linux二进制可执行命令/bin设备特殊文件/dev系统管理和配置文件/etc启动的配置文件和脚本/etc/rc.d用户主目录的基点,比如用户的主目录就是可以用表示标准程序/home user/home/user,~user/lib设计库,又叫动态链接共享库,作用类似里的文件windows dl系统管理命令,这里存放的是系统管理员使用的管理程序/sbin公用的暂时文件存储点/tmp系统管理员的主目录呵呵,特权阶级/root系统提供这个目录是让用户暂时挂载其他的文件系统/mnt这个目录平时是空的,系统非正常关机而留下“无家可归”的文件下叫什/lost+found windows么就在这里.chk虚拟的目录,是系统内存的映射可直接访问这个目录来获取系统信息/proc某些大文件的溢出区,比方说各种服务的日志文件/var最庞大的目录,要用到的应用程序和文件几乎都在这个目录其中包含/usr存放的目录/usr/x11r6x window众多的应用程序/usr/bin超级用户的一些管理程序/usr/sbin文档/usr/doc linux下开辟和编译应用程序所需要的头文件/usr/include linux常用的动态链接库和软件包的配置文件/usr/lib匡助文档/usr/man源代码,内核的源代码就放在里/usr/src linux/usr/srcAinux本地增加的命令/usr/local/bin本地增加的库/usr/local/lib通常情况下,根文件系统所占空间普通应该比较小,因为其中的绝大部份文件都不需要时常改动,而且包括严格的文件和一个小的不时常改变的文件系统不容易损坏除了可能的一个叫标准的系统引导映像之外,根目录普通不含任何文件所其他文件在/vmlinuz根文件系统的子目录中目录
1./bin目录包含了引导启动所需的命令或者普通用户可能用的命令(可能在引导启动后)这些命/bin令都是二进制文件的可执行程序(是一二进制的简称),多是系统中重要的系统文b i n bina ry件目录
2./sbin目录类似,也用于存储二进制文件因为其中的大部份文件多是系统管理员使用的基本/sbin/bin的系统程序,所以虽然普通用户必要且允许时可以使用,但普通不给普通用户使用目录
3./etc目录存放着各种系统配置文件,其中包括了用户信息文件系统初始化文/etc/etc/passwd,件/等正是*这些文件才得以正常地运行e t c/r clinux目录
4./root目录是超级用户的目录/root目录
5./lib目录是根文件系统上的程序所需的共享库,存放了根文件系统程序运行所需的共享文件这/lib些文件包含了可被许多程序共享的代码,以避免每一个程序都包含有相同的子程序的副本,故可以使得可执行文件变得更小,节省空间目录
6./lib/modules目录包含系统核心可加载各种模块,特别是那些在恢复损坏的系统时重新引导系统所/lib/modules需的模块(例如网络和文件系统驱动)目录
7./dev目录存放了设备文件,即设备驱动程序,用户通过这些文件访问外部设备比如,用户可以/dev通过访问来访问鼠标的输入,就像访问其他文件一样/d ev/mouse目录
8./tmp目录存放程序在运行时产生的信息和数据但在引导启动后,运行的程序最好使用/tmp来代替因为前者可能拥有一个更大的磁盘空间/v ar/t mp/tmp,目录
9./boot目录存放引导加载器()使用的文件,如核心映像也时常放在这里,/boot bootstraploader I i I o,而不是放在根目录中但是如果有许多核心映像,这个目录就可能变得很大,这时使用单独的文件系统会更好一些还有一点要注意的是,要确保核心映像必须在硬盘的前柱面内ide1024目录
10./mnt目录是系统管理员暂时安装文件系统的安装点程序并不自动支持安装到/mnt mu n t/mnt/mnt下面可以分为许多子目录,例如可能是使用文件系统的软驱,/mnt/dosa ms d o s而可能是使用文件系统的软驱,光驱等等/mnt/exta ext2/mnt/cdrom目录
11./proc,/usr,/var,/home其他文件系统的安装点下面详细介绍;忙文件系统/e目录包含各种系统配置文件,下面说明其中的一些其他的你应该知道它们属于哪个程序,/etc并阅读该程序的页许多网络配置文件也在忙中man/e或者或者
1./etc/rc/etc/rc.d/etc/rc.d启动、或者改变运行级时运行的脚本或者脚本的目录
2./etc/passwd用户数据库,其中的域给出了用户名、真实姓名、用户起始目录、加密口令和用户的其他信息
3./etc/fdprm软盘参数表,用以说明不同的软盘格式可用进行设置更多的信息见setfdprm se tf dprm的匡助页
4./etc/fstab指定启动时需要自动安装的文件系统列表也包括用启用的区的信息swapon-a swap
5./etc/group类似,但说明的不是用户信息而是组的信息包括组的各种数据/etc/passwd
6./etc/i nittab的配置文件init
7./etc/issue包括用户在登录提示符前的输出信息通常包括系统的一段短说明或者欢迎信息具体内容由系统管理员确定
8./etc/magic的配置文件包含不同文件格式的说明,基于它猜测文件类型“fi1e”“fi1e”
9./etc/motd是的缩写,用户成功登录后自动输出内容由系统管理员确定常用于mo tdmessage ofthe day通告信息,如计划关机时间的警告等
10./etc/mtab当前安装的文件系统列表由脚本初始化,并由命令自动更新当需要一个当前安scritp mount装的文件系统的列表时使用例如命令df
11./etc/shadow在安装了影子口令软件的系统上的影子口令文件影子口令文件将/s had o w e tc/pas sw d文件中的加密口令挪移到中,而后者只对超级用户()可读这使破译口令/etc/s ha do wr oo t更困难,以此增加系统的安全性
12./etc/login.defs命令的配置文件login
13./etc/printcap类似但针对打印机语法不同/etc/termcap,、
14./etc/profile/etc/csh.log in/etc/csh.cshrc登录或者启动时或者执行的文件这允许系统管理员为所实用户建立全局缺省环bourne cshells境
15./etc/securetty确认安全终端,即哪个终端允许超级用户()登录普通只列出虚拟控制台,这样就不可能root(至少很艰难)通过调制解调器()或者网络闯入系统并得到超级用户特权modem
16./etc/shells列出可以使用的命令允许用户在本文件指定范围内改变登录的提供s he11o chshs he11台机器服务的服务进程检查用户是否列在文件中,如果不是,将不允ftp ftpdshell/etc/shells许该用户登录
17./etc/termcap终端性能数据库说明不同的终端用什么“转义序列”控制写程序时不直接输出转义序列(这样只能工作于特定品牌的终端),而是从中查找要做的工作的正确序列/etc/termcap这样,多数的程序可以在多数终端上运行文件系统/dev目录包括所有设备的设备文件设备文件用特定的约定命名,这在设备列表中说明设备文/dev件在安装时由系统产生,以后可以用描述是系统管理员为本地/dev/makedev/dev/makedev.local设备文件(或者连接)写的描述文稿(即如一些非标准设备驱动不是标准的一部份)makedev下面简要介绍下一些常用文件/d ev
1./dev/console系统控制台,也就是直接和系统连接的监视器
3./dev/sd磁盘驱动程序接口如有系统有硬盘,就不会访问而会访问scs i scsi/de v/had,/dev/sdao
4./dev/fd软驱设备驱动程序如指系统的第一个软盘,也就是通常所说的盘,/指第/dev/fdO adev/fd1二个软盘,而则表示访问驱动器中的高宓川./dev/fd1h
144014.5LJJnTLo
5./dev/st磁带驱动器驱动程序scsi
6./dev/tty提供虚拟控制台支持如指的是系统的第一个虚拟控制台,则是系统/dev/tty1/dev/tty2的第二个虚拟控制台
7./dev/pty提供远程登陆伪终端支持在进行登录时就要用到/设备te Inet dev/pty
8./dev/ttys计算机串行接口,对于来说就是口dos“co ml”
9./dev/cua计算机串行接口,与调制解调器一起使用的设备
10./dev/null“黑洞”,所有写入该设备的信息都将消失例如当想要将屏幕上的输出信息隐藏起来时,只要将输出信息输入到中即可/d ev/n u11文件系统/usr是个很重要的目录,通常这一文件系统很大,因为所有程序安装在这里里的所有文件/usr/usr普通来自发行版();本地安装的程序和其他东西在下,因为Iin ux dist ri bu ti on/usr/local这样可以在升级新版系统或者新发行版时无须重新安装全部程序目录下的许多内容是/usr可选的,但这些功能会使用户使用系统更加有效可容纳许多大型的软件包和它们的配置/usr文件下面列出一些重要的目录(一些不太重要的目录被省略了)
1./usr/x11r6包含系统的所有可执行程序、配置文件和支持文件为简化的开辟和安装,的文件x windowx x没有集成到系统中系统是一个功能强大的图形环境,提供了大量的图形x window工具程序用户如果对或者比较熟悉的话,就不会对microsoft wi n dows ma ch into sh xwin系统感到束手无策了dow
2./usr/x386类似/但是是专门给的u sr/x11r6,x11release
53./usr/bin集中了几乎所实用户命令,是系统的软件库另有些命令在或者〃中/bin/us local/bin
4./usr/sbin包括了根文件系统不必要的系统管理命令,例如多数服务程序
5./usr/man/usr/info/usr/doc这些目录包含所有手册页、信息文档和各种其他文档文件每一个联机手册的“节”都有g nu两个子目录例如中包含联机手册第一节的源码(没有格式化的原始文/usr/man/man1件),包含第一节已格式化的内容联机手册分为以下九节内部命令、系统调/usr/man/cat1I用、库函数、设备、文件格式、游戏、宏软件包、系统管理和核心程序
6./usr/include包含了语言的头文件,这些文件多以结尾,用来描述语言程序中用到的数据结构、子过程c.h c和常量为了保持一致性,这实际上应该放在下,但习惯上向来沿用了这个名/usr/lib字
7./usr/lib包含了程序或者子系统的不变的数据文件,包括一些配置文件名字来源于库site-wide lib()编程的原始库也存在里当编译程序时,程序便会和其中的库进行连接也library;/usr/lib有许多程序把配置文件存入其中
8./usr/local本地安装的软件和其他文件放在这里这与很相似用户可能会在这发现一些比较大的软件/u sr包,如、等tex emacs文件系统/var包含系统普通运行时要改变的数据通常这些数据所在的目录的大小是要时常变化或者扩充/var的原来目录中有些内容是在中的,但为了保持目录的相对稳定,就把那/var/u sr/u sr些需要时常改变的目录放到中了每一个系统是特定的,即不通过网络与其他计算机共享/var下面列出一些重要的目录(一些不太重要的目录省略了)
1./var/catman包括了格式化过的匡助()页匡助页的源文件普通存在中;有些页man/usr/man/man man可能有预格式化的版本,存在中而其他的页在第一次看时都需要格式化,/usr/man/cat ma n格式化完的版本存在中,这样其他人再看相同的页时就无须等待格式化了/var/man(时常被清除,就像清除暂时目录一样)/var/catman
2./var/lib存放系统正常运行时要改变的文件
3./var/local存放中安装的程序的可变数据(即系统管理员安装的程序)注意,如果必要,即使本/usMocal地安装的程序也会使用其他目录,例如/var/vaiVlock
4./var/lock锁定文件许多程序遵循在八中产生一个锁定文件的约定,以用来支持他们正在使用某/var ock个特定的设备或者文件其他程序注意到这个锁定文件时,就不会再使用这个设备或者文件
5./var/log各种程序的日志()文件,特别是(纪录所有到系统的登录和注销)和Iog login/valog/wtmp log(纪录存储所有核心和系统程序信息)里的文件时常不syslog/var/log/messages/var/log确定地增长,应该定期清除
6./var/run保存在下一次系统引导前有效的关于系统的信息文件例如,包含当前登录的用户/var/run/utmp的信息
7./var/spool放置“假脱机()程序的目录,如、、打印队列和其他队列工作的目录spool”mail news每个不同的在下有自己的子目录,例如,用户的邮箱就存放在中spool/var/spool/var/spool/mail
8./var/tmp比允许更大的或者需要存在较长期的暂时文件/tmp注意系统管理员可能不允许有很旧的文件/var/tmp文件系统/proc文件系统是一个伪的文件系统,就是说它是一个实际上不存在的目录,于是这是一个非常/proc特殊的目录它并不存在于某个磁盘上,而是由核心在内存中产生这个目录用于提供关于系统的信息下面说明一些最重要的文件和目录(文件系统在页中有更详/proc procman细的说明)
1./proc/x关于进程的信息目录,这一是这一进程的标识号每一个进程在下有一个名为自己进X x/proc程号的目录
2./proc/cpuinfo存放处理器()的信息,如的类型、创造商、型号和性能等cpu cpu
3./proc/devices当前运行的核心配置的设备驱动的列表
4./proc/dma显示当前使用的通道dma
5./proc/filesystems核心配置的文件系统信息
6./proc/interrupts显示被占用的中断信息和占用者的信息,以及被占用的数量
7./proc/ioports当前使用的端口
8./proc/kcore系统物理内存映像与物理内存大小彻底一样,然而实际上没有占用这么多内存;它仅仅是在程序访问它时才被创建(注意除非你把它拷贝到什么地方,否则下没有任何东西占用任/proc何磁盘空间)
9./proc/kmsg核心输出的消息也会被送到syslogo
10./proc/ksyms核心符号表
11./proc/loadavg系统“平均负载”;个没故意义的指示器指出系统当前的工作量
312./proc/meminfo各种存储器使用信息,包括物理内存和交换分区()swap o
13./proc/modules存放当前加载了哪些核心模块信息
14./proc/net网络协议状态信息
15./proc/self存放到查看的程序的进程目录的符号连接当个进程查看时,这将会是不同的连接/proc2/proc这主要便于程序得到它自己的进程目录
16./proc/stat系统的不同状态,例如,系统启动后页面发生错误的次数
17./proc/uptime系统启动的时间长度
18./proc/version核心版本参考资料bc91ca300a6c30c229f
71.html。