【Linux】LINUX內核目錄文件說明

kernel第一級目錄:
  內核源代碼的根目錄下包含了以下文件夾

  arch
block
crypto
Documentation
drivers
firmware
fs
include
init
ipc
kernel
lib
mm
net
samples
scripts
security
sound
tools
usr
virt

arch - 這個文件夾包含了一個Kconfig文件,它用於設置這個目錄裏的源代碼編譯所需的一系列設定。每個支持的處理器架構都在它相應的文件夾中。如,Alpha處理器的源代碼在alpha文件夾中。請記住,隨着時間的推移,一些新的處理器將被支持,有些會被放棄。

  block – 此文件夾包含塊設備驅動程序的代碼。塊設備是以數據塊方式接收和發送的數據的設備。數據塊都是一塊一塊的數據而不是持續的數據流。-----該目錄用於實現塊設備的基本框架和塊設備的I/O調度算法

  crypto - 這個文件夾包含許多加密算法的源代碼。例如,“sha1_generic.c”這個文件包含了SHA1加密算法的代碼。

  Documentation - 此文件夾包含了內核信息和其他許多文件信息的文本文檔。如果開發者需要一些信息,他們也許能在這裏找到所需要的信息。

  drivers - 該目錄包含了驅動代碼。驅動是一個控制硬件的軟件。例如,要讓計算機知道鍵盤並使其可用,鍵盤驅動是必要的。這個文件夾中存在許多文件夾。每個文件夾都以硬件的種類或者型號命名。例如,'bluetooth'包含了藍牙驅動程序的代碼。還有其他很明顯的驅動像SCSI、USB和火線等。有些驅動程序可能會比較難找到。例如,操縱桿驅動不在'joystick'文件夾中,它們卻在./drivers/input/joystick。同樣鍵盤和鼠標驅動也在這個input文件夾中。 'Macintosh'包含了蘋果的硬件代碼。 'Xen'包含了Xen hypervisor代碼。(hypervisor是一種允許用戶在一臺計算機上運行多個操作系統的軟件或硬件。這意味着在Xen允許用戶在一臺計算機上同時運行的兩個或兩個以上的Linux系統。用戶還可以運行Windows,Solaris,FreeBSD或其他操作系統在Linux系統上。)driver文件夾下還有許多其他的文件夾,但他們在這篇文章中無法一一列舉,他們將在以後的文章中提到。

  firmware - fireware中包含了讓計算機讀取和理解從設備發來的信號的代碼。舉例來說,一個攝像頭管理它自己的硬件,但計算機必須瞭解攝像頭給計算機發送的信號。Linux系統會使用vicam固件(firmware)來理解攝像頭的通訊。否則,沒有了固件,Linux系統將不知道如何處理攝像頭髮來的信息。另外,固件同樣有助於將Linux系統發送消息給該設備。這樣Linux系統可以告訴攝像頭重新調整或關閉攝像頭。

  fs - 這是文件系統的文件夾。理解和使用的文件系統所需要的所有的代碼就在這裏。在這個文件夾裏,每種文件系統都有自己的文件夾。例如,ext4文件系統的代碼在ext4文件夾內。 在fs文件夾內,開發者會看到一些不在文件夾中的文件。這些文件用來控制整個文件系統。例如,mount.h中會包含掛載文件系統的代碼。文件系統是以結構化的方式來存儲和管理的存儲設備上的文件和目錄。每個文件系統都有自己的優點和缺點。這是由文件系統的設計決定的。舉例來說,NTFS文件系統支持的透明壓縮(當啓用時,會在用戶不知道的情況下自動壓縮存儲文件)。大多數文件系統缺乏此功能,但如果在fs文件夾裏編入相應的文件,它們也有這種能力。

  include - include包含了內核所需的各種頭文件.這個名字來自於C語言用"include"來在編譯時導入頭文件。

  init - init文件夾包含了內核啓動的處理代碼(INITiation)。main.c是內核的核心文件,這是用來銜接所有的其他文件的源代碼主文件。

  ipc - IPC代表進程間通訊。----用於實現System V的進程間通信(Inter Process Communication,IPC)模塊 .       此文件夾中的代碼是作爲內核與進程之間的通信層。內核控制着硬件,因此程序只能請求內核來執行任務。假設用戶有一個打開DVD托盤的程序。程序不直接打開托盤,相反,該程序通知內核托盤應該被打開。然後,內核給硬件發送一個信號去打開托盤。這些代碼同樣管理kill信號。舉例來說,當系統管理員打開進程管理器去關閉一個已經鎖死的程序,這個關閉程序的信號被稱爲kill信號。內核接收到信號,然後內核會要求程序停止或直接把進程從內存和CPU中移除(取決於kill的類型)。命令行中的管道同樣用於進程間通信。管道會告訴內核在某個內存頁上寫入輸出數據。程序或者命令得到的數據是來自內存頁上的某個給定的指針。

  kernel - 這個文件夾中的代碼控制內核本身。例如,如果一個調試器需要跟蹤問題,內核將使用這個文件夾中代碼來將內核指令通知調試器跟蹤內核進行的所有動作。這裏也有跟蹤時間的代碼。在內核文件夾下有個"power"文件夾,這裏的代碼可以使計算機重新啓動、關機和掛起。

  lib - 這個文件夾包含了內核需要引用的一系列內核庫文件代碼。

  mm - mm文件夾中包含了內存管理代碼。內存並不是任意存儲在RAM芯片上的。相反,內核小心地將數據放在RAM芯片上。內核不會覆蓋任何正在使用或保存重要數據的內存區域。

  net - net文件夾中包含了網絡協議代碼。這包括IPv6、AppleTalk、以太網、WiFi、藍牙等的代碼,此外處理網橋和DNS解析的代碼也在net目錄。

  samples - 此文件夾包含了程序示例和正在編寫中的模塊代碼。假設一個新的模塊引入了一個想要的有用功能,但沒有程序員說它已經可以正常運行在內核上。那麼,這些模塊就會移到這裏。這給了新內核程序員一個機會通過這個文件夾來獲得幫助,或者選擇一個他們想要協助開發的模塊。

  scripts - 這個文件夾有內核編譯所需的腳本。最好不要改變這個文件夾內的任何東西。否則,您可能無法配置或編譯內核。

  security - 這個文件夾是有關內核安全的代碼。它對計算機免於受到病毒和黑客的侵害很重要。否則,Linux系統可能會遭到損壞。關於內核的安全性,將在以後的文章中討論。

  sound - 這個文件夾中包含了聲卡驅動。------存放聲音系統架構相關代碼和具體聲卡的設備驅動程序

  tools - 這個文件夾中包含了和內核交互的工具。

  usr - 還記得在以前的文章中提到vmlinuz和其他類似的文件麼?這個文件夾中的代碼在內核編譯完成後創建這些文件。----該目錄中的代碼爲內核尚未完全啓動時執行用戶空間代碼提供了支持

  virt - 此文件夾包含了虛擬化代碼,它允許用戶一次運行多個操作系統。這與先前提到的Xen是不同的。通過虛擬化,客戶機操作系統就像任何其他運行在Linux主機的應用程序一樣運行。通過Xen這樣的hypervisor(注:虛擬機管理程序),兩個操作系統可以同時管理硬件。在虛擬化中,在客戶機操作系統上運行在Linux內核上,而在hypervisor中,它沒有客戶系統並且所有的系統不互相依賴。


  還有一些文件在源代碼的根目錄下。它們會在下面列出。

  COPYING -許可和授權信息。Linux內核在GPLv2許可證下授權。該許可證授予任何人有權免費去使用、修改、分發和共享源代碼和編譯代碼。然而,沒有人可以出售源代碼。

  CREDITS - 貢獻者列表

  Kbuild - 這是一個設置一些內核設定的腳本。打個比方,這個腳本設定一個ARCH變量,這是開發者想要生成的內核支持的處理器類型。

  Kconfig - 這個腳本會在開發人員配置內核的時候用到,這會在以後的文章中討論。

  MAINTAINERS - 這是一個目前維護者列表,他們的電子郵件地址,主頁,和他們負責開發和維護的內核的特定部分或文件。當一個開發者在內核中發現一個問題,並希望能夠報告給能夠處理這個問題的維護者時,這是是很有用的。

  Makefile - This script is the main file that is used to compile the kernel. This file passes parameters to the compiler as well as the list of files to compile and any other necessary information. 這個腳本是編譯內核的主要文件。這個文件將編譯參數和編譯所需的文件和必要的信息傳給編譯器。

  README - 這個文檔提供給開發者想要知道的如何編譯內核的信息。

  REPORTING-BUGS - 這個文檔提供如何報告問題的信息。


 

第二級目錄:

(1)ARCH目錄

對於Linux v3.9.4,arch下有以下文件夾:

alpha
arc
arm
arm64
avr32
blackfin
c6x
cris
frv
h8300
hexagon
ia64
m32r
m68k
metag
microblaze
mips
mn10300
openrisc
parisc
powerpc
s390
score
sh
sparc
tile
um
unicore32
x86
xtensa


該目錄中每個子目錄都與某種體系結構對應,用於存放系統結構相關代碼,向平臺無關的系統核心模塊提供所需的功能接口。每個體系結構對應的子目錄下通常至少包含以下幾個子目錄: 
         Kernel子目錄:用於存放特定體系結構特有信號量的實現代碼和對稱多處理器(Symmetric MultiProccessing,簡稱SMP)相關模塊。
Lib子目錄:用於存放以來依賴當前體系結構的輔助功能,如利用當前體系結構特性實現的strlen和memcpy內存操作函數;與通用的實現方法相比,他們的開銷小、更加高效。 
         Mm子目錄:用於存放體系架構特定的內存管理模塊,包括內存的初始化、頁表管理等內容。
         Boot子目錄:該目錄中包含了當前平臺上系統引導過程使用的部分或全部代碼。這部分代碼以來當前平臺,用於完成向系統內存裝載內核鏡像的工作。


各處理器簡單介紹:

alpha 處理器
Alpha 處理器最早由美國DEC 公司設計製造,在Compaq (康柏)公司收購DEC 之後,Alpha 處理器繼續得到發展,並且應用於許多高檔的Compaq 服務器上,HP (惠普)收購的Compaq ,Alpha 便爲HP(惠普)所有,不過HP (惠普)已經放棄發展alpha 處理器。
arm 處理器
Arm 系列處理器 是英國Arm 公司設計的主流嵌入式32 位RISC 處理器,Arm 公司不直接生產Arm 處理器,而是採用IP 授權的方式由第3 方開發生產,著名的公司如Ti 、Samsung 等都有出品Arm 處理器。目前在手機領域廣泛應用。
avr32 處理器
Avr32 處理器美國 Atmel 公司設計開發的32 位RISC 處理器, 設計目的是在每一個時鐘週期內完成更多處理工作,從而在較低的時鐘頻率下實現相同的吞吐量。適合在工業控制、汽車電子等嵌入式設備領域中使用。Avr32 屬於MCU 型的處理器。
blackfin 處理器
Blackfin 處理器是美國ADI 公司開發的具有DSP 能力的 32 位RISC 處理器, Blackfin 處理器基於由 ADI 和 Intel 公司聯合開發的微信號架構 (MSA ), 適用於 嵌入式音頻、視頻和通信應用等領域。
cris 處理器
Cris 處理器是 瑞典 Axis 通信公司開發的32 位RISC 處理器,主要用於網絡設備,屬於比較專業的應用領域。因爲 Axis 通信公司主要開發網絡監控設備,所以 Cris 處理器在其網絡監控設備中應用廣泛。
frv 處理器
Frv 處理器是 日本富士通開發的32 位高性能RISC處理器, 採用VLIW (Very Long Instruction Word )構架,具備良好的多媒體處理能力,在機頂盒(STB )、數碼刻錄機(DVR )、數碼相機(DSC)等嵌入式領域應用廣泛。
h8300 處理器
H8300 處理器是 日本瑞薩科技開發的32 位高性能RISC 處理器, 具有強大的位操作指令,最適於實時控制應用如汽車電子、家用電器、醫療器械等領域。H8300 屬於MCU 型的處理器。

ia64 處理器
Ia64 處理器是 美國英特爾開發的面向服務器應用的64 位處理器, 由於具有64 位尋址能力,它能夠使用100 萬TB 的地址空間,足以運算企業級或超大規模的數據庫任務;64 位寬的寄存器可以使CPU 浮點運算達到非常高的精度。
m32r 處理器
M32r 處理器是 日本瑞薩科技開發的32 位高性能RISC 處理器, 內置大容量存儲器,適用於車載系統、數字AV 設備、數字成像設備等產品領域。屬於MCU 型的處理器。
m68k 處理器
M68k 處理器是美國 Motorola 公司開發的高性能處理器, 具有高性價比、高集成度等特點,在工業自動化設備、控制設備、醫療儀器系統、安全系統等領域多有應用。現在爲Freescale 公司所有, 風頭已不敵PowerPC 處理器。
microblaze 處理器
Microblaze 處理器是美國 Xilinx 公司提供的嵌入在其FPGA 芯片上的32 位RISC 軟核。 它具有運算能力強、外圍接口配置靈活等特點,集成在 FPGA之中,可以和FPGA 實現協同設計,具備軟硬件可配置的靈活性。
mips 處理器
Mips 處理器 是由美國斯坦福大學Hennessy 教授領導的研究小組研製出來, 現爲Mips 公司擁有,和Arm 處理器一樣採用IP 授權的方式由第3 方開發生產。著名的公司如Broadcom 、Nxp 等都有出品Mips處理器。我國的龍芯CPU 也是採用Mips 體系結構。
mn10300 處理器
Mn10300 處理器 日本松下開發的32 位多媒體處理器。
parisc 處理器
Parisc 處理器是由 HP (惠普)開發設計的處理器,主要用於HP (惠普)公司的服務器中,目前HP(惠普)已經放棄 Parisc 處理器的開發,不過一些Parisc 處理器技術已經融合到ia64 處理器之中。
powerpc 處理器
Powerpc 處理器是由美國IBM 、Apple 、Motorola 聯合開發的處理器,Powepc 處理器在IBM 的服務器、Apple 的MAC 電腦中都有應用。不過現在多應用在網絡設備、視頻系統、工業系統等領域。Sony PS3 遊戲機Cell 處理器也是Powerpc 體系結構。
s390 處理器
S390 處理器是由美國IBM 開發的面向大型機應用的處理器 。
score 處理器
Score 處理器是由臺灣 凌陽開發的32 位RISC 處理器。Score 屬於MCU 型的處理器。
sh 處理器
Sh 處理器又稱SuperH 處理器 ,最先由日本Hitachi 公司開發,後由 Hitachi 及 ST Microelectronics 兩家公司共同開發,2003 年 瑞薩科技從 Hitachi 公司繼承到擁有權。Sh 屬於MCU 型的處理器。
sparc 處理器
Sparc 處理器是由美國SUN 和TI 公司共同開發的RISC 微處理器,最突出的特點就是它的可擴展性。SUN 公司將它做爲高端處理器應用到服務器產品。
x86 處理器
X86 處理器是由美國Intel 推出的 複雜指令集(cisc ) 處理器,廣泛應用在PC 電腦領域和服務器領域,在工業控制領域也有應用。目前主要是Intel、AMD 、VIA 在開發x86 體系結構的處理器。
xtensa 處理器
Xtensa 處理器是由美國 Tensilica (泰思立達)公司開發的可配置及可擴展的微處理器

OpenRisc處理器

OpenRisc是OpenCores組織提供的基於GPL協議的開放源代碼的RISC(精簡指令集計算機)處理器。有人認爲其性能介於ARM7和ARM9之間,適合一般的嵌入式系統使用。最重要的一點是OpenCores組織提供了大量的開放源代碼IP核供研究人員使用,因此對於一般的開發單位具有很大的吸引力


(2)drivers目錄有以下文件夾:
許多驅動程序是通用驅動程序,這意味着一個通用鍵盤驅動可以使內核可以處理幾乎所有的鍵盤。然而,有些驅動是專用驅動,像蘋果和Commodore就分別爲蘋果電腦和Amiga系統製造了專門的硬件。Linux內核中已經包含了許多諸如智能手機、蘋果、Amiga系統、PS3、Android平板,和許多其他設備的驅動程序。

  注意有些設備的驅動不在本目錄中。比如,射頻驅動在net和media文件夾下。

  accessibility - 這些驅動提供支持一些輔助設備。在Linux 3.9.4中,這個文件夾中只有一個驅動就是盲文設備驅動。

  acpi - 高級配置和電源接口(ACPI : Advanced Configuration and Power Interface)驅動用來管理電源使用。

  amba - 高級微控制器總線架構(AMBA : Advanced Microcontroller Bus Architecture)是與片上系統(SoC)的管理和互連的協議。SoC是一塊包含許多或所有必要的計算機組件的芯片。這裏的AMBA驅動讓內核能夠運行在這上面。

  ata - 該目錄包含PATA和SATA設備的驅動程序。串行ATA(SATA)是一種連接主機總線適配器到像硬盤那樣的存儲器的計算機總線接口。並行ATA(PATA)用於連接存儲設備,如硬盤驅動器,軟盤驅動器,光盤驅動器的標準。PATA就是我們所說的IDE。

  atm - 異步通信模式(ATM : Asynchronous Transfer Mode)是一種通信標準。這裏有各種接到PCI橋的驅動(他們連接到PCI總線)和以太網控制器(控制以太網通信的集成電路芯片)。

  auxdisplay - 這個文件夾提供了三個驅動。LCD 幀緩存(framebuffer)驅動、LCD控制器驅動和一個LCD驅動。這些驅動用於管理液晶顯示器 —— 液晶顯示器會在按壓時顯示波紋。注意:按壓會損害屏幕,所以請不要用力戳LCD顯示屏。

  base - 這是個重要的目錄包含了固件、系統總線、虛擬化能力等基本的驅動。

  bcma - 這些驅動用於使用基於AMBA協議的總線。AMBA是由博通公司開發。

  block - 這些驅動提供對塊設備的支持,像軟驅、SCSI磁帶、TCP網絡塊設備等等。

  bluetooth - 藍牙是一種安全的無線個人區域網絡標準(PANs)。藍牙驅動就在這個文件夾,它允許系統使用各種藍牙設備。例如,一個藍牙鼠標不用電纜,並且計算機有一個電子狗(小型USB接收器)。Linux系統必須能夠知道進入電子狗的信號,否則藍牙設備無法工作。

  bus - 這個目錄包含了三個驅動。一個轉換ocp接口協議到scp協議。一個是設備間的互聯驅動,第三個是用於處理互聯中的錯誤處理。

  cdrom - 這個目錄包含兩個驅動。一個是cd-rom,包括DVD和CD的讀寫。第二個是gd-rom(只讀GB光盤),GD光盤是1.2GB容量的光盤,這像一個更大的CD或者更小的DVD。GD通常用於世嘉遊戲機中。

  char - 字符設備驅動就在這裏。字符設備每次傳輸數據傳輸一個字符。這個文件夾裏的驅動包括打印機、PS3閃存驅動、東芝SMM驅動和隨機數發生器驅動等。

  clk - 這些驅動用於系統時鐘。

  clocksource - 這些驅動用於作爲定時器的時鐘。

  connector - 這些驅動使內核知道當進程fork並使用proc連接器更改UID(用戶ID)、GID(組ID)和SID(會話ID)。內核需要知道什麼時候進程fork(CPU中運行多個任務)並執行。否則,內核可能會低效管理資源。

  cpufreq - 這些驅動改變CPU的電源能耗。

  cpuidle - 這些驅動用來管理空閒的CPU。一些系統使用多個CPU,其中一個驅動可以讓這些CPU負載相當。

  crypto - 這些驅動提供加密功能。

  dca - 直接緩存訪問(DCA : Direct Cache Access)驅動允許內核訪問CPU緩存。CPU緩存就像CPU內置的RAM。CPU緩存的速度比RAM更快。然而,CPU緩存的容量比RAM小得多。CPU在這個緩存系統上存儲了最重要的和執行的代碼。

  devfreq - 這個驅動程序提供了一個通用的動態電壓和頻率調整(DVFS : Generic Dynamic Voltage and Frequency Scaling)框架,可以根據需要改變CPU頻率來節約能源。這就是所謂的CPU節能。

  dio - 數字輸入/輸出(DIO :Digital Input/Output)總線驅動允許內核可以使用DIO總線。

  dma - 直接內存訪問(DMA)驅動允許設備無需CPU直接訪問內存。這減少了CPU的負載。

  edac - 錯誤檢測和校正( Error Detection And Correction)驅動幫助減少和糾正錯誤。

  eisa - 擴展工業標準結構總線(Extended Industry Standard Architecture)驅動提供內核對EISA總線的支持。

  extcon - 外部連接器(EXTernal CONnectors)驅動用於檢測設備插入時的變化。例如,extcon會檢測用戶是否插入了USB驅動器。

  firewire - 這些驅動用於控制蘋果製造的類似於USB的火線設備。

  firmware - 這些驅動用於和像BIOS(計算機的基本輸入輸出系統固件)這樣的設備的固件通信。BIOS用於啓動操作系統和控制硬件與設備的固件。一些BIOS允許用戶超頻CPU。超頻是使CPU運行在一個更快的速度。CPU速度以MHz(百萬赫茲)或GHz衡量。一個3.7 GHz的CPU的的速度明顯快於一個700Mhz的處理器。

  gpio - 通用輸入/輸出(GPIO :General Purpose Input/Output)是可由用戶控制行爲的芯片的管腳。這裏的驅動就是控制GPIO。

  gpu - 這些驅動控制VGA、GPU和直接渲染管理(DRM :Direct Rendering Manager )。VGA是640*480的模擬計算機顯示器或是簡化的分辨率標準。GPU是圖形處理器。DRM是一個Unix渲染系統。

  hid - 這驅動用於對USB人機界面設備的支持。

  hsi - 這個驅動用於內核訪問像Nokia N900這樣的蜂窩式調制解調器。

  hv - 這個驅動用於提供Linux中的鍵值對(KVP :Key Value Pair)功能。

  hwmon - 硬件監控驅動用於內核讀取硬件傳感器上的信息。比如,CPU上有個溫度傳感器。那麼內核就可以追蹤溫度的變化並相應地調節風扇的速度。

  hwspinlock - 硬件轉鎖驅動允許系統同時使用兩個或者更多的處理器,或使用一個處理器上的兩個或更多的核心。

  i2c - I2C驅動可以使計算機用I2C協議處理主板上的低速外設。系統管理總線(SMBus :System Management Bus)驅動管理SMBus,這是一種用於輕量級通信的two-wire總線。

  ide - 這些驅動用來處理像CDROM和硬盤這些PATA/IDE設備。

  idle - 這個驅動用來管理Intel處理器的空閒功能。

  iio - 工業I/O核心驅動程序用來處理數模轉換器或模數轉換器。

  infiniband - Infiniband是在企業數據中心和一些超級計算機中使用的一種高性能的端口。這個目錄中的驅動用來支持Infiniband硬件。

  input - 這裏包含了很多驅動,這些驅動都用於輸入處理,包括遊戲杆、鼠標、鍵盤、遊戲端口(舊式的遊戲杆接口)、遙控器、觸控、耳麥按鈕和許多其他的驅動。如今的操縱桿使用USB端口,但是在上世紀80、90年代,操縱桿是插在遊戲端口的。

  iommu - 輸入/輸出內存管理單元(IOMMU :Input/Output Memory Management Unit)驅動用來管理內存管理單元中的IOMMU。IOMMU連接DMA IO總線到內存上。IOMMU是設備在沒有CPU幫助下直接訪問內存的橋樑。這有助於減少處理器的負載。

  ipack - Ipack代表的是IndustryPack。 這個驅動是一個虛擬總線,允許在載體和夾板之間操作。

  irqchip - 這些驅動程序允許硬件的中斷請求(IRQ)發送到處理器,暫時掛起一個正在運行的程序而去運行一個特殊的程序(稱爲一箇中斷處理程序)。

  isdn - 這些驅動用於支持綜合業務數字網(ISDN),這是用於同步數字傳輸語音、視頻、數據和其他網絡服務使用傳統電話網絡的電路的通信標準。

  leds - 用於LED的驅動。

  lguest - lguest用於管理客戶機系統的中斷。中斷是CPU被重要任務打斷的硬件或軟件信號。CPU接着給硬件或軟件一些處理資源。

  macintosh - 蘋果設備的驅動在這個文件夾裏。

  mailbox - 這個文件夾(pl320-pci)中的驅動用於管理郵箱系統的連接。

  md - 多設備驅動用於支持磁盤陣列,一種多塊硬盤間共享或複製數據的系統。

  media - 媒體驅動提供了對收音機、調諧器、視頻捕捉卡、DVB標準的數字電視等等的支持。驅動還提供了對不同通過USB或火線端口插入的多媒體設備的支持。

  memory - 支持內存的重要驅動。

  memstick - 這個驅動用於支持Sony記憶棒。

  message - 這些驅動用於運行LSI Fusion MPT(一種消息傳遞技術)固件的LSI PCI芯片/適配器。LSI大規模集成,這代表每片芯片上集成了幾萬晶體管、

  mfd - 多用途設備(MFD)驅動提供了對可以提供諸如電子郵件、傳真、複印機、掃描儀、打印機功能的多用途設備的支持。這裏的驅動還給MFD設備提供了一個通用多媒體通信端口(MCP)層。

  misc - 這個目錄包含了不適合在其他目錄的各種驅動。就像光線傳感器驅動。

  mmc - MMC卡驅動用於處理用於MMC標準的閃存卡。

  mtd - 內存技術設備(MTD :Memory technology devices)驅動程序用於Linux和閃存的交互,這就就像一層閃存轉換層。其他塊設備和字符設備的驅動程序不會以閃存設備的操作方式來做映射。儘管USB記憶卡和SD卡是閃存設備,但它們不使用這個驅動,因爲他們隱藏在系統的塊設備接口後。這個驅動用於新型閃存設備的通用閃存驅動器驅動。

  net - 網絡驅動提供像AppleTalk、TCP和其他的網絡協議。這些驅動也提供對調制解調器、USB 2.0的網絡設備、和射頻設備的支持。

  nfc - 這個驅動是德州儀器的共享傳輸層之間的接口和NCI核心。

  ntb - 不透明的橋接驅動提供了在PCIe系統的不透明橋接。PCIe是一種高速擴展總線標準。

  nubus - NuBus是一種32位並行計算總線。用於支持蘋果設備。

  of - 此驅動程序提供設備樹中創建、訪問和解釋程序的OF助手。設備樹是一種數據結構,用於描述硬件。

  oprofile - 這個驅動用於從驅動到用戶空間進程(運行在用戶態下的應用)評測整個系統。這幫助開發人員找到性能問題----性能分析機制-是用於 Linux 的若干種評測和性能監控工具中的一種

  parisc - 這些驅動用於HP生產的PA-RISC架構設備。PA-RISC是一種特殊指令集的處理器。

  parport - 並口驅動提供了Linux下的並口支持。

  pci - 這些驅動提供了PCI總線服務。

  pcmcia - 這些是筆記本的pc卡驅動

  pinctrl - 這些驅動用來處理引腳控制設備。引腳控制器可以禁用或啓用I/O設備。

  platform -這個文件夾包含了不同的計算機平臺的驅動像Acer、Dell、Toshiba、IBM、Intel、Chrombooks等等。

  pnp - 即插即用驅動允許用戶在插入一個像USB的設備後可以立即使用而不必手動配置設備。

  power - 電源驅動使內核可以測量電池電量,檢測充電器和進行電源管理。

  pps - Pulse-Per-Second驅動用來控制電流脈衝速率。這用於計時。

  ps3 - 這是Sony的遊戲控制檯驅動- PlayStation3。

  ptp - 圖片傳輸協議(PTP)驅動支持一種從數碼相機中傳輸圖片的協議。

  pwm - 脈寬調製(PWM)驅動用於控制設備的電流脈衝。主要用於控制像CPU風扇。

  rapidio - RapidIO驅動用於管理RapidIO架構,它是一種高性能分組交換,用於電路板上交互芯片的交互技術,也用於互相使用底板的電路板。

  regulator - 校準驅動用於校準電流、溫度、或其他可能系統存在的校準硬件。----用於控制系統中某些設備的電壓電流供應

  remoteproc - 這些驅動用來管理遠程處理器。

  rpmsg - 這個驅動用來控制支持大量驅動的遠程處理器通訊總線(rpmsg)。這些總線提供消息傳遞設施,促進客戶端驅動程序編寫自己的連接協議消息。----該基礎架構允許主處理器上的 Linux 操作系統管理遠程處理器上遠程軟件環境的生命週期和通信-用於在 AMP 環境中的操作系統之間實現 IPC 的 rpmsg 組件和 API

  rtc - 實時時鐘(RTC)驅動使內核可以讀取時鐘。

  s390 - 用於31/32位的大型機架構的驅動。

  sbus - 用於管理基於SPARC的總線驅動。

  scsi - 允許內核使用SCSI標準外圍設備。例如,Linux將在與SCSI硬件傳輸數據時使用SCSI驅動。

  sfi -簡單固件接口(SFI)驅動允許固件發送信息表給操作系統。這些表的數據稱爲SFI表。

  sh - 該驅動用於支持SuperHway總線。

  sn - 該驅動用於支持IOC3串口。

  spi - 這些驅動處理串行設備接口總線(SPI),它是一個在在全雙工下運行的同步串行數據鏈路標準,。全雙工是指兩個設備可以同一時間同時發送和接收信息。雙工指的是雙向通信。設備在主/從模式下通信(取決於設備配置)。

  ssb - ssb(Sonics Silicon Backplane)驅動提供對在不同博通芯片和嵌入式設備上使用的迷你總線的支持。

  staging - 該目錄含有許多子目錄。這裏所有的驅動還需要在加入主內核前經過更多的開發工作。

  target - SCSI設備驅動

  tc - 這些驅動用於TURBOchannel,TURBOchannel是數字設備公司開發的32位開放總線。這主要用於DEC工作站。

  thermal - thermal驅動使CPU保持較低溫度。---Linux溫控框架

  tty - tty驅動用於管理物理終端連接。

  uio - 該驅動允許用戶編譯運行在用戶空間而不是內核空間的驅動。這使用戶驅動不會導致內核崩潰。-----運行在用戶空間的IO技術

  usb - USB設備允許內核使用USB端口。閃存驅動和記憶卡已經包含了固件和控制器,所以這些驅動程序允許內核使用USB接口和與USB設備。

  uwb - Ultra-WideBand驅動用來管理短距離,高帶寬通信的超低功耗的射頻設備

  vfio - 允許設備訪問用戶空間的VFIO驅動。----用戶態驅動框架

  vhost - 這是用於宿主內核中的virtio服務器驅動。用於虛擬化中。

  video - 這是用來管理顯卡和監視器的視頻驅動。

  virt - 這些驅動用來虛擬化。

  virtio - 這個驅動用來在虛擬PCI設備上使用virtio設備。用於虛擬化中。

  vlynq - 這個驅動控制着由德州儀器開發的專有接口。這些都是寬帶產品,像WLAN和調制解調器,VOIP處理器,音頻和數字媒體信號處理芯片。

  vme - WMEbus最初是爲摩托羅拉68000系列處理器開發的總線標準

  w1 - 這些驅動用來控制one-wire總線。

  watchdog - 該驅動管理看門狗定時器,這是一個可以用來檢測和恢復異常的定時器。

  xen - 該驅動是Xen管理程序系統。這是個允許用戶運行多個操作系統在一臺計算機的軟件或硬件。這意味着xen的代碼將允許用戶在同一時間的一臺計算機上運行兩個或更多的Linux系統。用戶也可以在Linux上運行Windows、Solaris、FreeBSD、或其他操作系統。

  zorro - 該驅動提供Zorro Amiga總線支持。

  Linux內核是所有Linux系統的核心。如果有任何惡意代碼控制或破害了內核的任何一部分,那麼系統會嚴重受損,文件可能被刪除或損壞,私人信息可能被盜等等。很明顯,保持內核安全涉及到用戶的最大利益。值得慶幸的是,由於Linux內核極其安全,Linux是一個非常安全的系統。在用戶比例上,Linux病毒比Windows病毒更少,並且Linux用戶比Windows用戶個人更少感染病毒。(這就是爲什麼許多公司使用Linux來管理他們的服務器的一個原因。) 然而,我們仍然沒有藉口去忽視內核的安全。Linux有幾個安全特性和程序,但本文只討論Linux安全模塊(LSM)及其它的內核安全特性。

  提示: 絕不在內核源代碼內移動文件,除非你知道你在做什麼。否則,編譯會由於 失文件失敗。

發佈了18 篇原創文章 · 獲贊 2 · 訪問量 2502
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章