Linux之文件系统和根文件系统
2015-06-30 13:56
369 查看
在学习Linux的过程中,会遇到“文件系统”和“根文件系统”两个概念,这两个概念容易混淆,总觉得为什么Linux需要这么多的文件系统,这两种系统的各自作用是什么,有什么区别呢?
“尽管内核是Linux的核心,但文件却是用户与操作系统交互所采用的主要工具”,这就阐述了“文件系统”的作用,如果只有Linux,没有文件系统,那么整个系统是没有意义的。
在Linux中,有“VFS”的概念,这个VFS是底层文件系统的通用接口,VFS会抽象到各个文件系统,虽然各种文件系统的差异很大,但是各种文件系统会抽象出同样的访问接口,然后抽象到VFS,普通的文件系统其实是对应存储设备的,通过这些普通文件系统,来实现对存储设备的管理和使用。
根文件系统首先也是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,而且相对于普通文件系统,它的特殊之处在于,它是内核启动所“挂载mount”的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会再根文件系统挂载之后从中把一些初始化脚本(如rcs,inittab)和服务加载到内存中运行,在嵌入式系统中,只是将内核下载到开发板上,是无法真正的启动Linux系统的,会出现无法加载文件系统的错误。
根文件系统中有一个“根”,说明它是加载其他文件系统的“根”,既然是根,如果没有这个根,其他的文件系统也就没有办法进行加载了,根文件系统引导和使其他文件系统得以mount所必须的文件,根文件系统包括Linux启动时所必须的目录和关键性文件,例如Linux启动时都需要的init目录下的相关文件,在Linux挂载分区时Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括了很多应用程序bin目录等,然和包括这些Linux系统启动所必须的文件都可以成文跟文件系统。
Linux在启动时,第一个必须挂载的是根文件系统,弱系统不能从指定的设备上挂载根文件系统,则系统会出错而退出启动。成功后,可以自动或者手动挂载其他文件系统,因此,一个系统中可以同时存在不同的文件系统,这都是使用VFS机制实现的。
在Linux中,将一个文件系统与一个存储设备关联起来的过程称为“挂载”,使用指令“mount”,使用mount指令将一个文件系统附着到当前文件系统的层次结构中(根),在执行挂装时,要提供文件系统类型、文件系统和一个挂载点,根文件系统被挂装到根目录“/”上后,在根目录下就有根文件系统的各个目录,文件:/bin/sbin/mnt等,再将其他分区挂装到/mnt目录上。
“尽管内核是Linux的核心,但文件却是用户与操作系统交互所采用的主要工具”,这就阐述了“文件系统”的作用,如果只有Linux,没有文件系统,那么整个系统是没有意义的。
在Linux中,有“VFS”的概念,这个VFS是底层文件系统的通用接口,VFS会抽象到各个文件系统,虽然各种文件系统的差异很大,但是各种文件系统会抽象出同样的访问接口,然后抽象到VFS,普通的文件系统其实是对应存储设备的,通过这些普通文件系统,来实现对存储设备的管理和使用。
根文件系统首先也是一种文件系统,该文件系统不仅具有普通文件系统的存储数据文件的功能,而且相对于普通文件系统,它的特殊之处在于,它是内核启动所“挂载mount”的第一个文件系统,内核代码的映像文件保存在根文件系统中,系统引导启动程序会再根文件系统挂载之后从中把一些初始化脚本(如rcs,inittab)和服务加载到内存中运行,在嵌入式系统中,只是将内核下载到开发板上,是无法真正的启动Linux系统的,会出现无法加载文件系统的错误。
根文件系统中有一个“根”,说明它是加载其他文件系统的“根”,既然是根,如果没有这个根,其他的文件系统也就没有办法进行加载了,根文件系统引导和使其他文件系统得以mount所必须的文件,根文件系统包括Linux启动时所必须的目录和关键性文件,例如Linux启动时都需要的init目录下的相关文件,在Linux挂载分区时Linux一定会找/etc/fstab这个挂载文件等,根文件系统中还包括了很多应用程序bin目录等,然和包括这些Linux系统启动所必须的文件都可以成文跟文件系统。
Linux在启动时,第一个必须挂载的是根文件系统,弱系统不能从指定的设备上挂载根文件系统,则系统会出错而退出启动。成功后,可以自动或者手动挂载其他文件系统,因此,一个系统中可以同时存在不同的文件系统,这都是使用VFS机制实现的。
在Linux中,将一个文件系统与一个存储设备关联起来的过程称为“挂载”,使用指令“mount”,使用mount指令将一个文件系统附着到当前文件系统的层次结构中(根),在执行挂装时,要提供文件系统类型、文件系统和一个挂载点,根文件系统被挂装到根目录“/”上后,在根目录下就有根文件系统的各个目录,文件:/bin/sbin/mnt等,再将其他分区挂装到/mnt目录上。
相关文章推荐
- Linux socket 初步
- 10 篇对初学者和专家都有用的 Linux 命令教程
- Linux 与 Windows 对UNICODE 的处理方式
- Ubuntu12.04下QQ完美走起啊!走起啊!有木有啊!
- 解決Linux下Android开发真机调试设备不被识别问题
- 运维入门
- 运维提升
- Linux 自检和 SystemTap
- Ubuntu Linux使用体验
- c语言实现hashmap(转载)
- Linux 信号signal处理机制
- linux下mysql添加用户
- Scientific Linux 5.5 图形安装教程
- 基于 Linux 集群环境上 GPFS 的问题诊断
- 谁是桌面王者?Win PK Linux三大镇山之宝
- vivi下重新调整分区
- Linux VS Unix:Linux欲一统天下 Unix不死
- linux下设定环境变量
- Linux下修改MySQL编码的方法