文件系统操作是内核的功能吗?

文件系统操作是内核的功能吗?

我认为该问题与操作系统有关,因此我将考虑以下场景:

  • Windows(NTFS)
  • OSX(HFS)
  • Linux(ext2、ext3、ext4)

每个操作系统都有其默认文件系统(我相信 OSX 只有一个选择)。我注意到有些实用程序可供操作系统读取不同的文件系统(这显然是不是我经常在阅读一些关于文件系统操作的文章时提到,文件系统操作是驱动程序的一个功能(即,可能是模块化的),还是真正属于内核的一部分?

答案1

在 Linux 中,当您自己编译内核时,您可以选择编译对每个可用文件系统(例如 ext2、ext3、ext4、reiserfs 或 JFS)的支持,这些文件系统可以作为模块或在内核中独立运行。我还没有尝试过编译为模块时它是否有效,但我认为它肯定不适用于启动分区的文件系统,但可能适用于其他文件系统。

不知道适用于 Windows 还是 OSX。

答案2

在 Windows 中,胖的NTFS文件系统在内核中实现为从fastfat.sys和加载的设备驱动程序ntfs.sys,两者都位于中\Windows\System32\drivers

Windows内核FAT文件系统实现Windows 内核 NTFS 文件系统实现

答案3

对于 Linux 和 OSX(我不确定 Windows 是否适用),你可以看看用户空间中的文件系统MacFuse. 这使得 FS 实现不再写在内核中,而是作为用户空间驱动程序 — — 这自然危险性要小得多。

相关内容