根文件系统,就是根的文件系统,首先它必须先是一个文件系统,之后才是根的文件系统,比如男人之于人。
文件系统,就是用来组织文件的系统,其实反过来理解更容易,就是操作系统按照什么样的格式去访问,获取存储在磁盘中的文件(即必须按照文件系统规定的格式去访问磁盘文件)。文件系统按照一种格式存储文件,那么操作系统也只能按照这种格式的去访问,获取文件。比如,linux0.11中的minix1.0文件系统,它按照引导块/超级块/I节点位图/逻辑块位图/I节点表/逻辑块的格式来组织磁盘的,当你需要获得一个文件存储在磁盘中的某个位置,你必须先要找到这个文件的I节点,再通过I节点中的i_zone[]所记录的文件在逻辑块中的位置,来获得文件,而要获得I节点,则必须通过超级块中所记录的I节点表开始的逻辑块,再通过扫描I节点表得到I节点的,因此,要获得I节点表的起始位置,就需要先得到磁盘的超级块,因此,在操作系统刚启动时,都会把磁盘的超级块读到超级块数组中。当然,详细的过程则需要通过目录项先得到根I节点(或者当前I节点),再对比文件名来获得I节点的,但是,大的思路就是像前面描述一样的。
当我们拿到一个新磁盘,只有格式化了之后才能使用,而且格式化的文件系统有FAT32,NTFS等多种类型,就是因为刚拿到的磁盘是没有任何格式的,操作系统的文件系统不知道怎么识别这个磁盘。当经过格式化这个动作之后,新磁盘就被划分成了格式化时所选择的文件系统的格式,而这个格式,是操作系统所能识别的,即操作系统在设计时就针对这种格式设计好了,也就是说,选择某种文件系统对磁盘的格式化过程和操作系统的文件系统是配对的,即使用某种文件系统格式化磁盘的结果,是操作系统的文件系统能够识别磁盘的原因,当把文件存储在磁盘上面,操作系统就可以按照指定的格式去访问,获取了。
有了操作系统的文件系统可以识别的文件系统后,就可以把一些文件按照操作系统在启动及初始化时将使用到的文件放置在磁盘上的指定位置,操作系统就可以在需要的时候去这个位置读取磁盘的文件,从而正确的启动操作系统本身了。这就是根文件系统之为根的原因,即这些文件必须是操作系统在启动时能够读到的文件。
需要注意的是,操作系统本身并不是把所有的内容都写好了,它也需要读取其他的文件,来完成自己的启动,运行过程,比如,linux最终调用的shell程序,并不是操作系统本身的内容,但操作系统需要调用这个shell程序来作为登录,及执行客户的命令等,如果在它的根文件系统中没有这个文件,则用户就没有办法执行客户的命令了,那操作系统就没有输入输出功能了。