文件系统与内核的关系

在使用RedHat7.5时,测试发现不支持exFAT ntfs文件系统,之前只知道它是管理文件的工具。它与内核有种鸡与蛋的关系,内核加载init需要文件系统,文件系统依靠内核工作?

但是我百度发现其他的Linux发行版有的可以支持ntfs。但是发行版都是使用linux内核,当然版本可能不同。因为关于操作系统的知识不是很扎实,请教下大家。

请问:

  • 1.文件系统本身是怎么运行的,其是否加载在内核,随内核启动后启动。
  • 2.文件系统本身是否属于内核态(kernel)而不是用户态(usr)?如果内核版本不支持比如exFAT,我们没有办法去安装?
  • 3.内核是否一定需要文件系统本身?
阅读 980
评论
    1 个回答
    • 9.5k

    文件系统实际是一种“格式”。它是文件/目录如何存储在存储介质(硬盘、软盘、光盘)上的一种格式约定。“exFAT”,“ntfs” 指的都是这种东西。

    内核里的“文件系统”,实际是在内核里写的对应这些格式的读、写、创建、删除的一层 api 。他们对上层(应用程序)提供统一的接口,对下层(存储介质),则根据格式的不同执行不同的操作。所以“支持” ntfs ,就是在这一层 api 里,包含了对 ntfs 格式的硬盘的读写支持。不同格式的(内核)存取代码自然是不同的,编译进去了就支持,没有编译进去就不支持。

    如果内核对上提供了读写裸盘的 api ,其实是可以在用户态,在某一应用程序中读写任何文件系统的(按照相应格式的标准读写就好了)。但是对所有应用提供统一接口是操作系统的事,应用搞不定。

    内核其实不一定要有文件系统。如果这个系统就不需要操作本地存储介质的话(操作系统本身也是直接加载到内存里),其实可以没有文件系统支持,并且不对上(应用)提供文件操作 api 。

      撰写回答

      登录后参与交流、获取后续更新提醒

      相似问题
      推荐文章