檔案系統操作是核心的功能嗎?

檔案系統操作是核心的功能嗎?

我想這個問題是特定於作業系統的,所以我將採取以下場景:

  • Windows (NTFS)
  • 作業系統 (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),你可以看看使用者空間中的檔案系統麥克保險絲。這允許 FS 實作不是在核心中編寫,而是作為用戶空間驅動程式編寫 - 這自然危險性要小得多。

相關內容