閱讀636 返回首頁    go 阿裏雲 go 技術社區[雲棲]


戴文的Linux內核專題:23 配置內核 (19)

戴文的Linux內核專題:23 配置內核 (19)

歡迎進入Linux內核係列文章的下一篇!我們正在接近配置過程的終點。在這篇文章中,我們將會討論固件驅動和文件係統驅動。

這個分類中的第一個驅動是尋找啟動盤(BIOS Enhanced Disk Drive calls determine boot disk)。有時,Linux不會知道哪個盤是啟動盤。這個驅動允許內核詢問BIOS。Linux接著在sysfs上存儲信息。Linux需要知道這些來設置bootloader。

即使BIOS EDD服務被編譯進了內核,這個選項可以設置這些服務不激活(Sets default behavior for EDD detection to off )。EDD代表的是"Enhanced Disk Drive"(增強磁盤驅動器)。

當使用kexec加載不同的內核時,性能可以通過固件提供的內存映射提升(Add firmware-provided memory map to sysfs)。

"Dell Systems Management Base Driver"通過sysfs接口提供了Linux內核對於Dell硬件的更好的控製。

啟用這個驅動可以通過/sys/class/dmi/id/訪問硬件的信息(Export DMI identification via sysfs to userspace)。DMI代表的是Desktop Management Interface(桌麵管理接口)。DMI管理硬件的組件和訪問硬件的數據。BIOS中數據的接口和硬件由SMBIOS(System Management BIOS)規範調節。

從DMI得到的原始數據表可以通過這個驅動訪問(DMI table support in sysfs)。

為了從iSCSI驅動器中啟動,啟用這個驅動(DMI table support in sysfs)。

最後的驅動是一組"Google Firmware Drivers"。這些驅動用於Google特定的硬件。除非你為Google工作並且需要在硬件上使用Linux或者你在為一台從Google偷來的電腦編譯內核,否則不要啟用它。

下麵,我們可以配置內核的文件係統支持。

"Second extended fs support"驅動用於EXT2文件係統。https://www.linux.org/threads/ext-file-system.4365/

"Ext2 extended attributes"提供了原生文件係統不支持的額外的元數據的使用。

"Ext2 POSIX Access Control Lists"增加了額外的非原生的權限模型。

"Ext2 Security Labels"增強了由SELinux提供的安全性。

啟用"Ext2 execute in place support"允許可執行文件在當前的位置執行而不必在頁緩存中執行。

這個驅動提供EXT3文件係統(Ext3 journaling file system support)。 https://www.linux.org/threads/ext-file-system.4365/

"Default to 'data=ordered' in ext3"驅動設置數據的排序模式為"Ordered"。這種處理方式為日誌和寫入工作。數據排序在這篇文章中解釋 - https://www.linux.org/threads/journal-file-system.4136/

"Ext3 extended attributes"提供了原生文件係統不支持的額外的元數據使用。再說一次,接下來的EXT3的驅動/特性與EXT2相同 - "Ext3 POSIX Access Control Lists" 和 "Ext3 Security Labels"。同樣,對接下來的EXT4也是相同的 - "Ext4 POSIX Access Control Lists"、"Ext4 Security Labels" 和 "EXT4 debugging support"。

EXT3和EXT4支持日誌塊設備調試(JBD debugging support),(JBD2 debugging support)。

下麵的驅動提供Reiser文件係統支持(Reiserfs support)。 https://www.linux.org/threads/reiser-file-system-reiser3-and-reiser4.4403/

Reiser文件係統也有調試(Enable reiserfs debug mode)。

內核可以存儲ReiserFS統計在/proc/fs/reiserfs (Stats in /proc/fs/reiserfs)。

下麵的Reiser驅動/特性與EXT2/3/4相同 - ReiserFS extended attributes", "ReiserFS POSIX Access Control Lists" 和 "ReiserFS Security Labels".

Linux內核同樣支持JFS,同時也包含了不同的特性 "JFS filesystem support"、 "JFS POSIX Access Control Lists"、"JFS Security Labels"、"JFS debugging" 和 "JFS statistics".https://www.linux.org/threads/journaled-file-system-jfs.4404/

再說一次,XFS可以通過啟用這些驅動/特性支持 - "XFS filesystem support"、"XFS Quota support"、"XFS POSIX ACL support"、"XFS Realtime subvolume support" 和 "XFS Debugging support"。https://www.linux.org/threads/xfs-file-system.4364/

"Global FileSystem 2"可以被內核支持(GFS2 file system support)。這個文件係統用於在集群中共享存儲。

"GFS2 DLM locking"驅動提供了GFS2的分布式鎖管理(DLM)

"Oracle Cluster FileSystem 2"被內核支持(OCFS2 file system support)。這個文件係統用於在集群中共享存儲。

"O2CB Kernelspace Clustering"提供了OCFS2文件係統的不同服務。

"OCFS2 Userspace Clustering"允許集群棧在用戶空間執行。

"OCFS2 statistics"驅動允許用戶得到關於文件係統的統計信息。

像大多樹Linux內核一樣,OCFS2提供日誌(OCFS2 logging support)。這可能被用來監視錯誤或者調試目的。

"OCFS2 expensive checks"驅動以性能為代價提供了存儲一致性檢測。一些Linux用戶建議隻有在調試目的在才啟用它。

Linux內核同樣包含了新的B樹文件係統;這個驅動提供了磁盤格式化程序(Btrfs filesystem Unstable disk format)。BTRFS仍在開發中並被計劃某天變的比EXT4更流行。https://www.linux.org/threads/b-tree-file-system-btrfs.4430/

"Btrfs POSIX Access Control Lists"提供了額外的原生BTRFS沒有提供的權限模型。

下麵,是一個BTRFS檢測工具(Btrfs with integrity check tool compiled in (DANGEROUS))。由於BTRFS是一個最新在開發中的文件係統,大多數相關軟件還並不穩定。

Linux係統也支持NIL-FileSystem(NILFS2 file system support)。https://www.linux.org/threads/new-implementation-of-a-log-structured-file-system-nilfs.4547/

為了支持一些文件係統使用到的flock()係統調用,啟用這個驅動(Enable POSIX file locking API)。禁用這個去的那個會減少11KB的內核大小。這個驅動提供了文件鎖定。文件鎖定是一個允許進程在某刻讀取文件的過程。這通常用於網絡文件係統,就像NFS。

"Dnotify support"驅動是一個古老的文件係統通知係統,它提醒文件係統上的事件的用戶空間。它和它的繼承者被用於監控應用的文件係統。某個應用告訴守護進程需要監視哪些事件。不然,每個用戶空間應用需要它們自己完成這個任務。

記住,Dnotify是一個古老的係統,那麼什麼是新的通知係統?它就是由這個驅動提供的Inotify (Inotify support for userspace)。

一個可選的通知係統是fanotify (Filesystem wide access notification)。Fanotify與Inotify一樣,但是fanotify比Inotify傳遞更多的信息到用戶空間中。

用這個驅動Fanotify可以檢測權限(fanotify permissions checking)。

對於用戶想要劃分存儲空間的係統需要 "Quota support"。 https://www.linux.org/threads/atomic-disk-quotas.4277/

接下來的驅動允許通過netlink報告磁盤配額警告和信息(Report quota messages through netlink interface)。netlink是一個用於與內核通信的用戶空間的套接字接口。

配額信息同樣可以發送到控製台(Print quota warnings to console (OBSOLETE))。

這個驅動允許配額係統執行額外的完整性檢查(Additional quota sanity checks)。在計算機技術中,完整性檢查是檢測由於不良編程導致的錯誤。文件和輸出都被檢查來確保數據正確而不是以奇怪的方式構造。

一些舊的係統使用老的配額係統但希望在升級新內核時保留舊的配額係統。可以通過啟用這個來容易解決(Old quota format support)。許多讀者可能想要知道為什麼一些人想要保留舊的配額係統而不是更新新的。好的,想想一下你是一家很大公司的IT部門的經理,公司有許多服務器運行著非常重要的任務。當你可以繼續使用現在工作的很好的係統,你想要創建並配置一個新的(也可能很大)的文件係統麼? 通常上,對於計算機,堅持下麵的原則 - 如果它沒有壞或者不會導致安全問題,不要去修複它。

用這個驅動,新的配額係統支持32位UID和GID(Quota format vfsv0 and vfsv1 support)。

為了自動掛載遠程存儲單元,啟用這個驅動(Kernel automounter version 4 support)。

這個驅動支持FUSE文件係統(FUSE (Filesystem in Userspace) support)。用戶空間文件係統(FUSE)支持任何用戶創建他們自己的文件係統並在用戶空間內使用。

一個特殊的FUSE擴展可以用於在用戶空間使用字符設備Character device in Userspace support)。

原文發布時間:2014-05-27

本文來自雲棲合作夥伴“linux中國”

最後更新:2017-05-17 16:33:01

  上一篇:go  Erlang之IO編程
  下一篇:go  Ruby變量在c ruby中的存儲