嵌入式Linux文件系统的介绍

2019-07-12 14:44发布

学习Linux都是跟文件打交道,却不知道文件系统下的目录存放的内容,有点说不过去,特意准备了这篇文章供大家阅读,哪怕有一点点帮助,都是对我的鼓励。 根文件系统一般应该比较小,因为包括严格的文件和一个小的不经常改变的文件系统不容易损坏。损坏的根文件系统一般意味着除非用特定的方法(例如从软盘)系统无法引导。 根目录一般不含任何文件,除了可能的标准的系统引导映象,通常叫/vmlinuz 外,所有其他文件在根文件系统的子目录中。 1. /bin 显而易见,bin 就是二进制(binary)英文缩写。在一般的系统当中,你都可以在这个目录下找到linux常用的命令。在有的版本中你还会找到一些和根目录下相同的目录。引导启动所需的命令或普通用户可能用的命令(可能在引导启动后)。 2. /sbin 类似/bin ,但不给普通用户使用,虽然如果必要且允许时可以使用。 3. /etc 特定机器的配置文件。 4. /root root用户的家目录。 如果你是以超级用户的身份登录的,这个就是超级用户的主目录。 5. /lib 根文件系统上的程序所需的共享库。 lib是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个目录进行什么操作,一旦发生问题,你的系统就不能工作了。 6. /lib/modules 核心可加载模块,特别是那些恢复损坏系统时引导所需的(例如网络和文件系统驱动)。 7. /dev 设备文件。 dev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序。这一点和我们常用的windows, dos操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。 例如:我们在系统中键入:cd /dev/cdrom 我们就可以看到光驱中的文件了。同样道理,我们键入:cd /dev/mouse 就可以看看鼠标的相关文件。在这个目录下,有一个null设备,这个东西本身没有任何意义。如果你向这个目录写入文件或内容,他们统统有去无回。 8. /tmp 用来存放不同程序执行时产生的临时文件。 临时文件。引导启动后运行的程序应该使用/var/tmp ,而不是/tmp ,因为前者可能在一个拥有更多空间的磁盘上。 9. /cdrom 这个目录在你刚刚安装系统的时候是空的。你可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom 10. /boot 在这个目录下存放的都是系统启动时要用到的程序。我们在使用lilo引导linux的时候,会用到这里的一些信息。 引导加载器(bootstrap loader)使用的文件,如LILO。核心映象也经常在这里,而不是在根目录。如果有许多核心映象,这个目录可能变得很大,这时可能使用单独的文件系统更好。另一个理由是要确保核心映象必须在IDE硬盘的前1024柱面内。 11. /mnt 这个目录在一般情况下也是空的。你可以临时将别的文件系统挂在这个目录下。 系统管理员临时mount的安装点。程序并不自动支持安装到/mnt 。 /mnt 可以分为子目录(例如/mnt/dosa 可能是使用MSDOS文件系统的软驱,而/mnt/exta 可能是使用ext2文件系统的软驱)。 12./vmlinuz 我们已经知道,每一个linux都有一个内核(vmlinuz),我们在这个内核上添加上可以完成各种特定功能的模块,每个模块就体现在linux中各种不同的目录上。当然,各种不同的发行套件,其目录有细小的差别,但主要结构都是一样的。我们还要将linux的功能模块和各种应用程序结合起来,这样,才能使你的linux系统为你服务。/vmlinuz目录下存放的就是系统的内核。 13./usr 文件系统 包含所有命令、库、man页和其他一般操作中所需的不改变的文件。 /usr 不应该有一般使用中要修改的文件。这样允许此文件系统中的文件通过网络共享,这样可以更有效,因为这样节省了磁盘空间(/usr 很容易是数百兆),且易于管理(当升级应用时,只有主/usr 需要改变,而无须改变每台机器) 即使此文件系统在本地盘上,也可以只读mount,以减少系统崩溃时文件系统的损坏。 14./var 文件系统 包含会改变的文件,比如spool目录(mail、news、打印机等用的), log文件、formatted manual pages和暂存文件。传统上/var 的所有东西曾在 /usr 下的某个地方,但这样/usr 就不可能只读安装了。 15./home 如果我们建立一个用户,用户名是"xx",那么在/home目录下就有一个对应的/home/xx路径,用来存放用户的主目录。 文件系统包含用户家目录,即系统上的所有实际数据。一个大的/home 可能要分为若干文件系统,需要在/home 下加一级名字,如/home/students 、/home/staff 等。