Linux 2.6.20.x內核編譯配置選項簡介

說明1:
文字中的Y表示選擇進內核。M表示編成模塊。N表示不選擇。有的只能選Y,有的只能選M。
在make menuconfig 下,*表示Y,M表示M,空白表示N。
make xconfig下,√ 表示Y,? 表示M,空白表示N。

說明2:
菜單中,有的選項你選了Y纔出現,有的選了Y,它反而不會出現。有的選項根本不會提供選擇。所以我提供的菜單項應該不是最完整的設置選項。如果你碰到了新的選項,你可以認真看它的英文說明,或者通過上網搜索、在論壇提問等方式來了解它。

1. Code maturity level options 代碼完成等級選項
1.1. Prompt for development and/or incomplete code/drivers
對開發中的或者未完成的代碼和驅動進行提示。
LINUX 下的很多東西,比如網絡設備、文件系統、網絡協議等等,它們的功能、穩定性、或者測試等級等等還不能夠符合大衆化的要求,還處於開發之中。這就 是所謂的阿爾法版本:最初開發版本;接下來的是BETA版本,公開測試版本。如果這是阿爾法版本,那麼開發者爲了避免收到諸如“爲何這東西不工作”的信件 的麻煩,常常不會讓它發佈出去。但是,積極的測試和使用阿爾法版本對軟件的開發是非常好的。你只需要明白它未必工作得很好,在某些情況有可能會出問題。匯 報詳細的出錯情況對開發者很有幫助。
這個選項同樣會讓一些老的驅動的可用。很多老驅動在將來的內核中已經被代替或者被移除。除非你想要幫助軟件的 測試,或者開發軟件,或者你的機器 需要這些特性,否則你可以選N,那樣你會在配置菜單中得到較少的選項。如果你選了Y,你將會得到更多的阿爾法版本的驅動和代碼的配置菜單。

2. General setup 常規安裝選項
2.1. Local version - append to kernel release
在你的內核後面加上一串字符來表示版本。這些字符在你使用uname -a 命令時會顯示出來。你的字符最多不能超過64位。

2.2. Automatically append version information to the version string (LOCALVERSION_AUTO)
自動生成版本信息。這個選項會自動探測你的內核並且生成相應的版本,使之不會和原先的重複。這需要Perl的支持。
由於在編譯的命令make-kpkg 中我們會加入- - append-to-version 選項來生成自定義版本,所以這裏選N。

2.3. Support for paging of anonymous memory (swap)
這個選項將使你的內核支持虛擬內存,也就是讓你的計算機好象擁有比實際內存更多的內存空間用來執行很大的程序。這個虛擬內存在LINUX中就是SWAP分區。除非你不想要SWAP分區,否則這裏必選Y。

2.4. System V IPC (IPC:Inter Process Communication)
中間過程連接是一組功能和系統調用,使得進程能夠同步和交換信息。這通常來說是好事,有一些程序只有你選擇了Y才能運行 。特別地,你想在LINUX下運行 DOS仿真程序,你必須要選Y。
你可以用info ipc 命令來了解IPC。

一定要選Y。 2.4.1. IPC Namespaces (IPC_NS)
IPC命名空間,命名空間的作用是區別同名的東西,就比如李寧和張寧,都叫“寧”,加個姓才能區分。這個選項也是爲不同的服務器提供IPC的多命名,達到一個IPC提供多對象支持的目的。不清楚的話選N。

2.5. POSIX Message Queues 可移植操作系統接口信息隊列
可移植操作系統接口信息隊列是IPC的一部分,在通信隊 列中有較高的優先權來保持通信暢通。如果你想要編譯和運行在Solaris操作系統上寫的 POSIX信息隊列程序,選Y,同時你還需要 mqueue 庫來支持這些特性。它是作爲一個文件系統存在(mqueue),你可以mount它。爲保證以後的不同程序的協同穩定,如果不清楚,選Y。

2.6. BSD Process Accounting BSD進程統計

如果你選Y,用戶級別的程序就可以通過特殊的系統調用方式來通知內核把進程統計信息記錄到一個文件,當這個進程存在的時候,信息就會被內核記錄進文 件。信息通常包括建立時間、所有者、命令名稱、內存使用、控制終端等。這對用戶級程序非常有用。所以通常選Y是一個好主意。 2.6.1. BSD Process Accounting version 3 file format
選Y,統計信息將會以新的格式(V3)寫入,這格式包含進程ID和父進程。注意這個格式和以前的 v0/v1/v2 格式不兼容,所以你需要升級相關工具來使用它。

2.7. Export task/process statistics through netlink (EXPERIMENTAL)
處於實驗階段的功能。通過通用的網絡輸出工作/進程的相應數據,和BSD不同的是,這些數據在進程運行的時候就可以通過相關命令訪問。和BSD類似,數據將在進程結束時送入用戶空間。如果不清楚,選N。

2.8. UTS Namespaces
通用終端系統的命名空間。它允許容器,比如Vservers利用UTS命名空間來爲不同的服務器提供不同的UTS。如果不清楚,選N。

2.9. Auditing support 審計支持(AUDIT)
允許審計的下層能夠被其他內核子系統使用,比如SE-Linux,它需要這個來進行登錄時的聲音和視頻輸出。沒有 CONFIG_AUDITSYSCALL 時(即下一個選項)無法進行系統調用。

2.9.1. Enable system-call auditing support (AUDITSYSCALL)
允許系統獨立地或者通過其他內核的子系統,調用審計支持,比如SE-Linux。要使用這種審計的文件系統來查看特性,請確保 INOTIFY 已經被設置。
上一項的子選項,兩項要選就都選。我並不清楚審計的意義,可能是爲了調用其他內核的東西吧。所以就都選了,因爲我機器上還有個官方2.6.15-27內核。

2.10. Kernel .config support
這個選項允許.config文件(即編譯LINUX時的配置文件)保存在內核當中。
它 提供正在運行中的或者還在硬盤中的內核的相關配置選項。可以通過內核鏡像文件 kernel image file 用命令 script scripts/extract-ikconfig 來提取出來,作爲當前內核重編譯或者另一個內核編譯的參考。如果你的內核在運行中,可以通過/proc/config.gz文件來讀取。下一個選項提供這 項支持。

看起來好像是一個不錯的功能,可以把編譯時的 .config文件保存在內核中,以供今後參考調用。用來重編譯和編譯其他的內核的時候可以用上。你是一個編譯內核的狂人的話,這項要選上(比如我,不過 我總是會備份所有的 .config 文件)。 2.10.1. Enable access to .config through /proc/config.gz
上一項的子項,可以通過/proc/config.gz 訪問當前內核的.config 。新功能,上一項選的話這個就選上吧。

2.11. Cpuset support
多CPU支持。這個選項可以讓你建立和管理CPU集羣,它可以動態地將系統分割在各個CPU和內存節點中,在各個節點是獨立運行的。這對大型的系統尤其有效。
如果不清楚,選N。

2.12. Kernel->user space relay support (formerly relayfs)
內核系統區和用戶區進行傳遞通訊的支持。這個選項在特定的文件系統中提供數據傳遞接口支持,它可以提供從內核空間到用戶空間的大批量的數據傳遞工具和設施。
如果不清楚,選N。

2.13. Initramfs source file(s)
沒有可選項。

2.14. Optimize for size (Look out for broken compilers!)
這個選項將在GCC命令後用 “-Os” 代替 “-O2″參數,這樣可以得到更小的內核。警告:某些GCC版本會導致錯誤。如果有錯,請升級你的GCC。
如果不清楚,選N。
這是優化內核大小的功能,沒必要選。一個編譯好的內核才7-10多M,大家不會少這麼點空間吧。選上了可能會出一些問題。最好不選。

2.15. Configure standard kernel features (for small systems)
這個選項可以讓內核的基本選項和設置無效或者扭曲。這是用於特定環境中的,它允許“非標準”內核。你要是選它,你一定要明白自己在幹什麼。
這是爲了編譯某些特殊用途的內核使用的,例如引導盤系統。通常你可以不選擇這一選項,你也不用關心他的子選項。

3. Loadable module support 引導模塊支持
3.1. Enable loadable module support
這 個選項可以讓你的內核支持模塊,模塊是什麼呢?模塊是一小段代碼,編譯後可在系統內核運行時動態的加入內核,從而爲內核增加一些特性或是對某種 硬件進行支持。一般一些不常用到的驅動或特性可以編譯爲模塊以減少內核的體積。在運行時可以使用modprobe命令來加載它到內核中去(在不需要時還可 以移除它)。一些特性是否編譯爲模塊的原則是,不常使用的,特別是在系統啓動時不需要的驅動可以將其編譯爲模塊,如果是一些在系統啓動時就要用到的驅動比 如說文件系統,系統總線的支持就不要編爲模塊,否則無法啓動系統。在啓動時不用到的功能,編成模塊是最有效的方式。你可以查看MAN手冊來了解: modprobe, lsmod, modinfo, insmod 和 rmmod.
如果你選了這項,你可能需要運行 “make modules_install” 命令來把模塊添加到/lib/modules/目錄下,以便 modprobe 可以找到它們。
如果不清楚,選Y。

3.2. Module unloading
這個選項可以讓你卸載不再使用的模塊,如果不選的話你將不能卸載任何模塊(有些模塊一旦加載就不能卸載,不管是否選擇了這個選項)。
如果不清楚,選Y。

3.2.1. Forced module unloading
這個選項允許你強行卸除模塊,即使內核認爲這不安全。內核將會立即移除模塊,而不管是否有人在使用它(用rmmod -f 命令)。這主要是針對開發者和衝動的用戶提供的功能。
如果不清楚,選N。

3.3. Module versioning support (MODVERSIONS)
有時候,你需要編譯模塊。有時候,你需要編譯模塊。選這項會添加一些版本信息,來給編譯的模塊提供獨立的特性,以使不同的內核在使用同一模塊時區別於它原有的模塊。這有時可能會有點用。
如果不清楚,選N。

3.4. Source checksum for all modules
這個功能是爲了防止你在編譯模塊時不小心更改了內核模塊的源代碼但忘記更改版本號而造成版本衝突。
如果不清楚,選N。

3.5. Automatic kernel module loading
允許內核自動加載模塊。一般情況下,如果我們的內核在某些任務中要使用一些被編譯爲模塊的驅動或特性時,我們要先使用modprobe命令來加載它,內核才能使用。不過,如果你選擇了這個選項,在內核需要一些模塊時它可以自動調用modprobe命令來加載需要的模塊。
如果不清楚,選Y。

4. Block layer 塊設備。
4.1. Enable the block layer (BLOCK)
這選項使得塊設備可以從內核移除。如果不選,那麼 blockdev 文件將不可用,一些文件系統比如 ext3 將不可用。這個選項會禁止 SCSI 字符設備和 USB 儲存設備,如果它們使用不同的塊設備。

選Y,除非你知道你不需要掛載硬盤和其他類似的設備。不過此項無可選項。 4.1.1. Support for Large Block Devices (LBD)
如果你要用大於2TB的硬盤,選這個。

4.1.2. Support for tracing block io actions
對塊設備進行跟蹤和分析的功能。

4.1.3. Support for Large Single Files (LSF)
大文件支持。如果你準備建的文件大於2TB,選這個。

4.1.4. IO Schedulers 磁盤I/O調度器

I/O是輸入輸出帶寬控制,主要針對硬盤,是核心的必須的東西。這裏提供了三個IO調度器。 4.1.4.1. Anticipatory I/O scheduler
搶先式 I/O 調度方式是默認的磁盤調度方式。它對於大多數環境通常是比較好的選擇。但是它和Deadline I/O 調度器相比有點大和複雜,它有時在數據調入時會比較慢。

4.1.4.2. Deadline I/O scheduler
Deadline I/O調度器簡單而又緊密,在性能上和搶先式調度器不相上下,在一些數據調入時工作得更好。至於在單進程I/O磁盤調度上,它的工作方式幾乎和搶先式調度器相同,因此也是一個好的選擇。
看介紹這個好像比上面的更好,可以試試。不過按照我的平衡觀點,好東西都會帶來問題。

4.1.4.3. CFQ I/O scheduler
CFQ調度器嘗試爲所有進程提供相同的帶寬。它將提供平等的工作環境,對於桌面系統很合適。

4.1.4.4. Default I/O scheduler 選擇默認的I/O調度器
我選了Anticipatory I/O scheduler。
我這樣理解上面三個IO調度器:搶先式是傳統的,它的原理是一有響應,就優先考慮調度。如果你的硬盤此時在運行一項工作,它也會暫停下來先響應用戶。
期限式則是:所有的工作都有最終期限,在這之前必須完成。當用戶有響應時,它會根據自己的工作能否完成,來決定是否響應用戶。
CFQ則是平均分配資源,不管你的響應多急,也不管它的工作量是多少,它都是平均分配,一視同仁的。

5. Processor type and features 處理器類型及特性
5.1. Symmetric multi-processing support (SMP) 對稱多處理器支持。
這將支持有多CPU的系統。如果你的系統只有一個CPU,選N。反之,選Y。
如果你選N,內核將會在單個或者多個CPU的機器上運行,但是隻會使用一個CPU。如果你選Y,內核可以在很多(但不是所有)單CPU的機器上運行,在這樣的機器,你選N會使內核運行得更快。
注意如果你選Y,然後在Processor family選項中選擇”586″ or “Pentium” ,內核將不能運行在486構架的機器上。同樣的,多CPU的運行於PPro構架上的內核也無法在 Pentium 系列的板上運行。
使用多CPU機器的人在這裏選Y,通常也會在後面的選項“Enhanced Real Time Clock Support”中選Y。如果你在這選Y,”Advanced Power Management” 的代碼將不可用。
如果不清楚,選N。

5.2. Subarchitecture Type 子構架類型 5.2.1. PC-compatible
選這個如果你的機器是標準PC
5.2.2. AMD Elan
注意,如果你是 K6/Athlon/Opteron處理器不要選這個
5.2.3. Voyager
5.2.4. NUMAQ (IBM/Sequent)
5.2.5. Summit/EXA (IBM x440)
5.2.6. SGI 320/540 (Visual Workstation)
5.2.7. Generic architecture (Summit, bigsmp, ES7000, default)
5.2.8. Support for Unisys ES7000 IA32 series

5.3. Processor family
處理器類型。針對自己的CPU類型,選取相應的選項。
這裏是處理器的類型。這裏的信息主要目的是用來優化。爲了讓內核能夠在所有X86構架的CPU上運行(雖然不是最佳速度),在這你可以選386。
內核不會運行在比你選的構架還要老的機器上。比如,你選了Pentium構架來優化內核,它將不能在486構架上運行。

如果你不清楚,選386。 5.3.1. - “386″
5.3.2. - “486″
5.3.3. - “586″
5.3.4. - “Pentium-Classic”
5.3.5. - “Pentium-MMX”
5.3.6. - “Pentium-Pro”
5.3.7. - “Pentium-II”
5.3.8. - “Pentium-III”
5.3.9. - “Pentium-4″
5.3.10. - K6, K6-II and K6-III
5.3.11. - “Athlon” K7 (Athlon/Duron/Thunderbird).
5.3.12. -Opteron/Athlon64/Hammer/K8
5.3.13. - “Crusoe”
5.3.14. - “Efficeon”
5.3.15. - “Winchip-C6″
5.3.16. - “Winchip-2″
5.3.17. - “Winchip-2A”
5.3.18. - “GeodeGX1″
5.3.19. - “Geode GX/LX”
5.3.20. - “CyrixIII/VIA C3″
5.3.21. - VIA C3-2 “Nehemiah”.

5.4. Generic x86 support
通用X86支持。
除了對上面你選擇的X86 CPU進行優化,它還對更多類型X86 CPU的進行優化。這將會使內核在其他的X86 CPU上運行得更好。
對於供應商來說,他們非常需要這些功能,因爲他們需要更通用的優化支持。
這個選項提供了對X86系列CPU最大的兼容性,用來支持一些少見的x86構架的CPU。如果你的CPU能夠在上面的列表中找到,就裏就不用選了。

5.5. HPET Timer Support
HPET時鐘支持
允許內核使用 HPET 。HPET 是代替當前8254的下一代時鐘,全稱叫作高精度事件定時器。你可以安全地選Y。但是,HEPT只會在支持它的平臺和BIOS上運行。如果不支持,8254將會激活。
選N,將繼續使用8254時鐘。

5.6. Maximum number of CPUs (2-255)
設置最高支持的CPU數,無法選擇。我的顯示爲8。

5.7. SMT (Hyperthreading) scheduler support
超線程調度器支持
超線程調度器在某些情況下將會對 Intel Pentium 4 HT系列有較好的支持。
如果你不清楚,選N。

5.8. Multi-core scheduler support
多核調度機制支持,雙核的CPU要選。
多核心調度在某些情況下將會對多核的CPU系列有較好的支持。
如果你不清楚,選N。

5.9. Preemptible Kernel 搶先式內核。
一些優先級很高的程序可以先讓一些低優先級的程序執行,即使這些程序是在覈心態下執行。從而減少內核潛伏期,提高系統的響應。當然在一些特殊的點的內核是不可搶先的,比如內核中的調度程序自身在執行時就是不可被搶先的。這個特性可以提高桌面系統、實時系統的性能。

下面有三個選項: 5.9.1. No Forced Preemption (Server) 非強迫式搶先。
這是傳統的LINUX搶先式模型,針對於高吞吐量設計。它同樣在很多時候會提供很好的響應,但是也可能會有較長的延遲。
如果你是建立服務器或者用於科學運算,選這項,或者你想要最大化內核的原始運算能力,而不理會調度上的延遲。

5.9.2. Voluntary Kernel Preemption (Desktop) 自動式內核搶先
這個選項通過向內核添加更多 的“清晰搶先點”來減少內核延遲。這些新的搶先點以降低吞吐量的代價,來降低內核的最大延遲,提供更快的應用程序響 應。這通過允許低優先級的進程自動搶先來響應事件,即使進程在內核中進行系統調用。這使得應用程序運行得更“流暢”,即使系統已經是高負荷運轉。
如果你是爲桌面系統編譯內核,選這項。

5.9.3. Preemptible Kernel (Low-Latency Desktop) 可搶先式內核(低延遲桌面)
這個選項通過使所有內核代碼(非致命部分)編譯爲“可搶先”來降低內核延遲。
這通過允許低優先級進程進行強制搶先來響應事件,即使這些進程正在進行系統調用或者未達到正常的“搶先點”。這使得應用程序運行得更加“流暢”即使系統已經是高負荷運轉。代價是吞吐量降低,內核運行開銷增大。
選這項如果你是爲桌面或者嵌入式系統編譯內核,需要非常低的延遲。
如果你要最快的響應,選第三項。我認爲萬物是平衡的,低延遲意味着系統運行不穩定,因爲過多來響應用戶的要求,所以我選第二個。

5.10. Preempt The Big Kernel Lock
搶先式大內核鎖(早期Linux用於支持SMP系統時所採用的非細粒度鎖)
這個選項通過讓大內核鎖變成“可搶先”來降低延遲。
選Y如果你在構建桌面系統。如果你不清楚,選N。

5.11. Machine Check Exception 機器例外檢查
機器例外檢查允許處理器在檢測到問題(比如過熱、組件錯誤)時 通知內核。內核根據問題的嚴重程度來決定下一步行爲,比如在命令行上打印告警信息, 或者關機。你的處理器必須是 Pentium或者更新版本才能支持這個功能。 用cat /proc/cpuinfo來檢測你的 CPU是否有mce 標誌。
注意一些老的 Pentium 系統存在設計缺陷,會提供假的MCE事件,所以在所有P5處理器上MCE被禁用,除非在啓動選項上明確 “mce”參數。同樣地,如果MCE被編譯入內核並在非標準的機器上導致錯誤,你可以用”nomce”啓動參數來禁用MCE。

MCE功能會自動忽視非MCE處理器,比如386和486,所以幾乎所有人都可以在這裏選Y。 5.11.1. Check for non-fatal errors on AMD Athlon/Duron / Intel Pentium 4
檢測AMD Athlon/Duron / Intel Pentium 4的非致命錯誤
允許這項特性,系統將會啓動一個計時器,每5秒進行檢測。非致命問題會自動修正(但仍然會記錄下來),如果你不想看到這些信息,選N。這些信息可以讓你發現要損壞的硬件,或者是非標準規格硬件(比如:超頻的)。
這個功能只會在特定的CPU上起作用。

5.11.2. check for P4 thermal throttling interrupt.
檢測P4節能器中斷
當P4進入節能狀態時,打印信息。

5.12. Toshiba Laptop support 東芝筆記本支持。
這個選項是針對Toshiba筆記本的,可以用來訪問Toshiba的系統管理模式,可以直接設置BIOS。不過要注意它只在 Toshiba自己的 BIOS中起作用。假如你有一臺Toshiba筆記本,而它的BIOS是Phoenix的,那這個選項仍然是無用的。

5.13. Dell laptop support
DELL筆記本支持。功能同上

5.14. Enable X86 board specific fixups for reboot
X86板的重啓修復功能。
這將打開芯片或者主板上的重啓修復功能 ,從而能夠使之正常工作。這功能僅僅在一些硬件和BIOS的特定組合上需要。需要這項功能的徵兆是重啓時使系統卡死或者掛起。
目前,這個修復功能僅僅支持Geode GX1/CS5530A/TROM2.1.的組合。
選Y如果你需要這項功能,目前,選Y是安全的,即使你不需要它。否則,選N。

5.15. /dev/cpu/microcode - Intel IA32 CPU microcode support
是否支持 Intel IA32架構的CPU。這個選項將讓你可以更新Intel IA32系列處理器的微代碼,顯然你需要到網上去下載最新的代碼,LINUX不提供這些代碼。當然你還必須在文件系統選項中選擇/dev file system support才能正常的使用它。如果你把它譯爲模塊 ,它將是 microcode。
IA32主要用於高於4GB的內存。詳見下面的“高內存選項”。

5.16. /dev/cpu/*/msr - Model-specific register support
是否打開CPU特殊功能寄存器的功能。這個選項桌面用戶一般用不到,它主要用在Intel的嵌入式CPU中的,這個寄存器的作用也依賴與不同的CPU類型而有所不同,一般可以用來改變一些CPU原有物理結構的用途,但不同的CPU用途差別也很大。

5.17. /dev/cpu/*/cpuid - CPU information support
是否打開記錄CPU相關信息功能。這會在/dev/cpu中建立一系列的設備文件,用以讓過程去訪問指定的CPU。

5.18. High Memory Support (4GB) 高容量內存支持
LINUX能夠在X86系統中使用64GB的物理內存。但是,32位地址的X86處理器只能支持到4GB大小的內存。這意味着,如果你有大於4GB的物理內存,並非都能被內核“永久映射”。這些非永久映射內存就稱爲“高階內存”。
如 果你編譯的內核永遠都不會運行在高於1G內存的機器上,選OFF(默認選項,適合大多數人)。這將會產生一個”3GB/1GB”的內存空間劃 分,3GB虛擬內存被內核映射以便每個處理器能夠“看到”3GB的虛擬內存空間,這樣仍然能夠保持4GB的虛擬內存空間被內核使用,更多的物理內存能夠被 永久映射。
如果你有1GB-4GB之間的物理內存,選4GB選項。如果超過4GB,那麼選擇64GB。這將打開 Intel 的物理地址延伸模式(PAE)。PAE將在IA32處理器上執行3個層次的內存頁面。PAE是被LINUX完全支持的,現在的Intel處理器 (Pentium Pro 和更高級的)都能運行PAE模式。注意:如果你選64GB,那麼在不支持PAE的CPU上內核將無法啓動。

你機器上的內存能夠被自動探測到,或者你可以用類似於”mem=256M”的參數強制給內核指定內存大小。 5.18.1. off 如果不清楚,選OFF。
5.18.2. 4GB 選這項如果你用的是32位的處理器,內存在1-4GB之間。
5.18.3. 64GB 選這項如果你用的是32位的處理器,內存大於4GB。

5.19. Memory model 內存模式
5.19.1. Flat Memory 平坦內存模式。
這個選項允許你改變內核在內部管理內存的一些方式。大多數用戶在這隻會有一個選項:Flat Memory。這是普遍的和正確的選項。
一 些用戶的機器有更高級的特性,比如 NUMA 和內存熱拔插,那將會有不同的選項。Discontiguous Memory(非接觸式內存模式)是一個更成熟、更好的測試系統。但是對於內存熱拔插系統不太合適,會被”Sparse Memory”代替。如果你不清楚”Sparse Memory”和”Discontiguous Memory”的區別,選後者。
如果不清楚,就選Flat Memory。

5.19.2. Sparse Memory 稀疏內存模式。
這對某些系統是唯一選項,包括內存熱拔插系統。這正常。
對於其他系統,這將會被Discontiguous Memory選項代替。這個選項提供潛在的更好的特性,可以降低代碼複雜度,但是它是新的模式,需要更多的測試。
如果不清楚,選擇”Discontiguous Memory” 或 “Flat Memory”。
我的機器上只有這兩個選項,我選Flat Memory。

5.20. 64 bit Memory and IO resources (EXPERIMENTAL)
64位內存和IO資源
這個選項將使內存和IO資源變成64位的。
實驗選項,可以讓內存和I/O變爲64位。我的總線是32位的,所以還是不選了。選了不知道會不會出錯。

5.21. Math emulation
數學仿真
LINUX可以仿真一個數學協處理器(用來進行浮點運算),如果你沒有的話。486DX 和 Pentium 處理器內建有數學協處理器。486SX和386的沒有,除非你專門加過487DX 或者387協處理器。所有人都需要協處理器或者這個仿真。
如果你沒有數學協處理器,你需要在這選Y。如果你有了協處理器還在這選Y,你的協處理器仍然被用到。這意味着如果你打算把編譯的內核用在不同的機器上,選Y是明智的選擇。
如果不清楚,選Y,這將使內核增加66KB,無傷大雅。

5.22. MTRR (Memory Type Range Register) support
內存類型區域寄存器
在 Intel P6 系列處理器(Pentium Pro, Pentium II 和更新的)上,MTRR將會用來規定和控制處理器訪問某段內存區域的策略。
如 果你在PCI或者AGP總線上有VGA卡,這將非常有用。例如可將MTTR設爲在顯存的地址範圍上使用“write-combining”策 略,這樣CPU可以在PCI/AGP總線爆裂之前將多次數據傳輸集合成一個大的數據傳輸,這樣可以提升圖像的傳送速度2.5倍以上。選Y,會生成文件 /proc/mtrr,它可以用來操縱你的處理器的MTRR。典型地,X server 會用到。
這段代碼有着通用的接口,其他CPU的寄存器同 樣能夠使用該功能。Cyrix 6×86, 6×86MX和 M II處理器有ARR ,它和 MTRR有着類似的功能。AMD K6-2/ K6-3有兩個MTRR, Centaur C6有8個MCR允許複合寫入。所有這些處理器都支持這段代碼,你可以選Y如果你有以上處理器。
選Y同樣可以修正SMP BIOS的問題,它僅爲第一個CPU提供MTRR,而不爲其他的提供。這會導致各種各樣的問題,所以選Y是明智的。
你可以安全地選Y,即使你的機器沒有MTRR。這會給內核增加9KB。

5.23. Boot from EFI support
EFI啓動支持
這裏允許內核在EFI平臺上使用儲存於EFI固件中的系統設置啓動。這也允許內核在運行時使用EFI的相關服務。
這個選項只在有EFI固件的系統上有用,它會使內核增加8KB。另外,你必須使用最新的ELILO 登錄器才能使內核採用EFI的固件設置來啓動(GRUB和LILO完全不知道EFI是什麼東西)。即使你沒有EFI,卻選了這個選項,內核同樣可以啓動。
大家應該用的是GRUB,所以選上這個也沒什麼用。

5.24. Enable kernel irq balancing (IRQBALANCE) 中斷平衡。
這個選項使系統進行中斷平衡。
如果你是雙核CPU,如果不選這項,那麼中斷負荷都在第一個CPU上,其他的CPU可能得不到中斷。

5.25. Use register arguments (REGPARM) 寄存器參數使用。
使用寄存器參數
用‘-mregparm=3’的參數編譯內核。這使 gcc 使用更高效的應用程序二進制接口(ABI)來跳過編譯時的前三個調用寄存器參數。這使得代碼編譯更精巧更快速。
如果你不選這個選項,默認的ABI將會使用。
如果不清楚,選Y。

5.26. Enable seccomp to safely compute untrusted bytecode (SECCOMP)
允許SECCOMP(快速計算)安全地運算非信任代碼。
這個內核特性在程序出現數碼錯誤,需要重新對非信任的代碼進行運算時非常有效。它使用管道或者其他傳輸方式,使文件描述進程支持讀/寫的系統調用,這樣可以利用SECCOMP隔離那些程序本身的空間。
一旦 seccomp 通過/proc/ /seccomp運行,它將不能停止,任務也只能進行一些安全的被seccomp認證的系統調用。
如果不清楚,選Y。只有嵌入式系統選N。

5.27. Timer frequency 時鐘頻率
允許設置時鐘頻率。
這是用戶定義的時鐘中斷頻率 100HZ-1000 HZ ,不過 100 HZ 對服務器和NUMA系統更合適,它們不需要很快速的響應用戶的要求,因爲時鐘中斷會導致總線爭用和緩衝打回。注意在SMP環境中,時鐘中斷由變量 NR_CPUS * Hz定義在每個CPU產生。

其實和前面的搶先式進程差不多,就是多少頻率來響應用戶要求。我選了250HZ的。要快點的可以選1000HZ的。但是還是那句話,一切是平衡的。機器過快響應你,它自己的活就不知道做得好不好了。 5.27.1. 100 HZ (HZ_100)
100 HZ是傳統的對服務器、SMP 和 NUMA的系統選項。這些系統有比較多的處理器,可以在中斷較集中的時候分擔中斷

5.27.2. 250 HZ (HZ_250)

250 HZ對服務器是一個好的折衷的選項,它同樣在SMP 和 NUMA 系統上體現出良好的反應速度。

5.27.3. 1000 HZ (HZ_1000)
1000 HZ對於桌面和其他需要快速事件反應的系統是非常棒的。

5.28. kexec system call (KEXEC) 快速重啓調用。
kexec 系統調用
kexec是一個用來關閉你當前內核,然後開啓另一個內核的系統調用。它和重啓很像,但是它不訪問系統固件。由於和重啓很像,你可以啓動任何內核,不僅僅是LINUX。
kexec這個名字是從 exec 系統調用來的。它只是一個進程,可以確定硬件是否正確關閉,所以如果這段代碼沒能正確爲你進行初始化工作,請不要奇怪。它對設備的熱拔插會有點幫助。由於它對硬件接口會亂寫點東西,所以我沒什麼好的建議給你。
Linus本人都沒話說,估計是受害不淺。我們當然不能上當,選N!

5.29. Support for hot-pluggable CPUs (EXPERIMENTAL)
對熱拔插CPU的支持
選Y,可以做個實驗,把CPU關閉和打開,也可以中止SMP系統。CPU可以通過/sys/devices/system/cpu 來進行控制。

5.30. Compat VDSO support (COMPAT_VDSO)
Compat VDSO 支持
如果你運行的是最新的glibc(GNU C函數庫)版本( 2.3.3 或更新),選N,這樣可以移除高階的VDSO 映射,使用隨機的 VDSO。
如果不清楚,選Y。

5.31. Firmware Drivers 固件驅動。

固件就是你板上的BIOS、各種顯卡芯片之類的已經固化好的記錄某些特定數據的東西。 5.31.1. BIOS Enhanced Disk Drive calls determine boot disk
BIOS加強磁盤功能,確定啓動盤。
選y或M,如果你要使用BIOS加強磁盤服務功能來確定BIOS用哪個磁盤來啓動。啓動後這個信息會反映在系統文件中。
這個選項是實驗性的,而且已經被確認在某些未測試選項下會啓動失敗。很多磁盤控制器的BIOS供應商都不支持這個特性。

5.31.2. BIOS update support for DELL systems via sysfs
用於DELL機器的BIOS升級支持。

5.31.3. Dell Systems Management Base Driver (DCDBAS)
DELL系統管理器的基本驅動。

6. Power management options (ACPI, APM)

電源管理選項(ACPI、APM) 6.1. Power Management support
電源管理支持
電源管理意味着你電腦上的某一部分在不用的時候可以關閉或者休眠。這領域有兩個競爭對手:APM和ACPI。如果你需要兩者之一,請把這裏選上,再把下面的相關內容選上。
電源管理對於使用電池的筆記本相當重要。如果你有筆記本,請參照幾個網站上的說明。
注意,即使你在這選N,在X86構架的機器上,LINUX會發出 hlt 指令如果沒有任務,因此會讓處理器休眠,達到節電的目的。

6.1.1. Legacy Power Management API (PM_LEGACY)
電源管理繼承接口
爲pm_register() (電源管理寄存器)和同類寄存器提供支持。
如果不清楚,選Y。

6.1.2. Power Management Debug Support
電源管理調試支持
這個選項提供詳細的電源管理調試信息。當你調試和報告電源管理漏洞的時候非常有用,有點像電源管理的“中斷”支持。

6.1.3. Driver model /sys/devices/…/power/state files (DEPRECATED)
驅動模式文件 /sys/devices/…/power/state (不贊成使用)
這個驅動模式通過系統文件類型啓動,試圖來給電源管理設備提供用戶空間連通裝置。這個特性從來沒有能很好地工作過,除非是用來進行測試,否則它處在被移除之列。我們不清楚用通用的方法能否進行各種各樣的設備電源管理,目前是專用的總線和驅動來替代相關功能。

6.2. ACPI Support 高級電源配置接口支持
高級電源設置接口(ACPI)支持需要整合了ACPI的平臺(固件/硬件),並且這個平臺要支持操作系統和電源管理軟件的設置。這個選項會給你的內核增加70KB。
LINUX ACPI提供了相當強大的電源接口,甚至可以取代一些傳統的設置和電源管理接口,包括PNP BIOS(即插即用BIOS)規範,MPS(多處理器規範),和APM(高級電源管理)規範。如果ACPI和APM同時被選上,先被系統調用的起作用。
6.2.1. AC Adapter AC 交流電源適配器
這個驅動給AC 交流電源適配器提供支持,它指示出系統是否在AC下工作。如果你的系統可以在AC和電池狀態下切換,選Y。

6.2.2. Battery 電池
這個驅動通過/proc/acpi/battery 提供電池信息。如果你有使用電池的移動系統,選Y。

6.2.3. Button 按鈕
這個驅動通過電源、休眠、鎖定按鈕來提交事件。後臺程序讀取/proc/acpi/event 來運行用戶要求的事件,比如關機。這對軟件控制關機是必要的。

6.2.4. Video (ACPI_VIDEO) 視頻
提供ACPI對主板上的集成顯示適配器的擴展支持驅動。詳見ACPI2.0驅動範例,附錄B,它提供了基本支持,比如定義視頻的啓動設備、返回EDID信息或者設置視頻傳輸等等。
注意這僅僅是文字上的信息而已。它可能(或許不可能)在你的集成顯卡設備上運行。

6.2.5. Generic Hotkey (EXPERIMENTAL) 通用熱鍵。
實驗中的整合式熱鍵驅動。
如果不清楚,選N。

6.2.6. 05.03.05、<*> Fan 風扇
這個驅動對ACPI風扇設備提供支持,允許用戶模式的程序進行風扇的基本控制(開、關、狀態顯示)

6.2.7. Dock
提供ACPI Docking station支持
Docking station是筆記本的擴展塢,就是用來擴展筆記本電腦功能的底座,通過接口和插槽,它可以連接多種外部設備(驅動器、大屏幕顯示器、鍵盤、打印機、掃 描儀……)。可以彌補輕薄筆記本電腦本身攜帶附件較少的缺陷,這種設計讓用戶在辦公室裏能夠享受到臺式機一樣的便利和舒適,在移動辦公時又能發揮筆記本的 便攜性。

6.2.8. Processor 處理器
這個驅動以空閒管理者方式給LINUX安裝ACPI,使用ACPI C2 和 C3處理器狀態來節約電能,如果你的系統支持的話。一些CPU頻率調節的驅動需要這個功能。

6.2.8.1. Thermal Zone
溫控區域
ACPI溫控區域驅動。大多數筆記本和臺式機支持ACPI溫控區域。強烈要求你選Y,否則你的處理器可能會壞掉。

6.2.9. ASUS/Medion Laptop Extras
華碩筆記本擴展支持

6.2.10. IBM ThinkPad Laptop Extras
IBM筆記本擴展支持

6.2.11. Toshiba Laptop Extras
Toshiba筆記本擴展支持

6.2.12. (0) Disable ACPI for systems before Jan 1st this year 千年蟲

6.2.13. Debug Statements
調試語句
ACPI驅動可以自定義報告詳細的錯誤信息。選Y開啓這項功能,這將讓你的內核增加50KB。

6.2.14. ACPI0004,PNP0A05 and PNP0A06 Container Driver
ACPI0004,PNP0A05 和PNP0A06 容器驅動
這裏允許物理上對CPU和內存的插入和移除。這對一些系統,比如NUMA,非常有用,這些系統支持ACPI基本的物理拔插。
如果選擇M,這個驅動可以通過命令:”modprobe acpi_container”加入。

6.2.15. Smart Battery System
袖珍電池系統
這個驅動對袖珍電池系統提供支持,依賴於I2C (在選項Device Drivers —> I2C support) 。袖珍電池非常古老,也非常稀少,對於今天的ACPI支持的電池規範來說。

6.3. APM (Advanced Power Management) BIOS Support
高級電源管理BIOS支持。(APM)
ACPI和APM就好比XP和LINUX。我用了ACPI,這個就只編成模塊放着,萬一要用到再加模塊。不清楚的可以先在機器上用ps -A|less看看有沒有這個相關的進程。我的只有ACPID。
沒有認真研究過下面的選項,也不列出來糊弄人了。要是用到APM的可以自己研究。

6.4. CPU Frequency scaling 6.4.1. CPU Frequency scaling
CPU變頻控制
CPU變頻控制允許你在運行中改變CPU的時鐘速度。這是對於節約電能來說是一個不錯的主意,因爲CPU頻率越低,它消耗的電能越少。
注意這個驅動不會自動改變CPU的時鐘速度,你要麼允許動態的頻率調節器(看下面),要麼使用用戶工具。
如果不清楚,選N。

6.4.2. Enable CPUfreq debugging
是否允許調試CPU改變主頻的功能,如果要調試,還需要在啓動時加上參數。cpufreq.debug= 1:變頻技術的內核調試 2:變頻技術的驅動調試 3:變頻技術的調節器調試

6.4.3. CPU frequency translation statistics CPU頻率統計功能
6.4.4. CPU frequency translation statistics details CPU頻率統計功能(詳細)

6.4.5. Default CPUFreq governor (performance) 默認的主頻調節,圓括號內的是你選擇的結果,這裏表示以性能爲主。 6.4.5.1. performance 性能優先
6.4.5.2. userspace 用戶定義,可以設定頻率。

6.4.6. ‘performance’ governor性能調節器
6.4.7. ‘powersave’ governor 節約電能調節器。
6.4.8. ‘userspace’ governor for userspace frequency scaling 用戶自定義調節器。
6.4.9. ‘ondemand’ cpufreq policy governor 自動調節主頻。
6.4.10. ‘conservative’ cpufreq governor 傳統方式調節
6.4.11. CPUFreq processor drivers 變頻驅動模塊
6.4.12. ACPI Processor P-States driver 報告處理器的狀態。
6.4.13. AMD Mobile K6-2/K6-3 PowerNow! AMD移動版K6處理器的變頻驅動。
6.4.14. AMD Mobile Athlon/Duron PowerNow! AMD移動版毒龍、雷烏的變頻驅動。
6.4.15. Cyrix MediaGX/NatSemi Geode Suspend Modulation Cyrix處理器的變頻驅動。
6.4.16. Intel Enhanced SpeedStep Intel的移動變頻技術支持。
6.4.16.1. Use ACPI tables to decode valid frequency/voltage pairs 使用BIOS中的主頻/電壓參數。
6.4.16.2. Built-in tables for Banias CPUs 迅馳一代的主頻/電壓參數。
注:
筆記本 : 什麼是迅馳技術
2003 年3月英特爾正式發佈了迅馳移動計算技術,英特爾的迅馳移動計算技術並非以往的處理器、芯片組等 單一產品形式,其代表了一整套移動計算解決方案,迅馳的構成分爲三個部分:奔騰M處理器、855/915系列芯片組和英特爾PRO無線網上,三項缺一不可 共同組成了迅馳移動計算技術。
奔騰M首次改版叫Dothan
在兩年多時間裏,迅馳技術經歷了一次改版和一次換代。初期迅馳中奔騰M處理器 的核心代號爲Bannis,採用130納米工藝,1MB高速二級緩 存, 400MHz前端總線。迅馳首次改版是在2004年5月,採用90納米工藝Dothan核心的奔騰M處理器出現,其二級緩存容量提供到2MB,前端總線仍 爲400MHz,它也就是我們常說的Dothan迅馳。首次改版後,Dothan核心的奔騰M處理器迅速佔領市場,Bannis核心產品逐漸退出主流。雖 然市場中流行着將Dothan核心稱之爲迅馳二代,但英特爾官方並沒有給出明確的定義,仍然叫做迅馳。也就是在Dothan奔騰M推出的同時,英特爾更改 了以主頻定義處理器編號的慣例,取而代之的是一系列數字,例如:奔騰M 715/725等,它們分別對應1.5GHz和1.6GHz主頻。首次改版中,原802.11b無線網卡也改爲了支持802.11b/g規範,網絡傳輸從 11Mbps提供至14Mbps.
新一代迅馳Sonoma
迅馳的換代是2005年1月19日,英特爾正式發佈基於Sonoma平臺的新一 代迅馳移動計算技術,其構成組件中,奔騰M處理器升級爲 Dothan核心、 90納米工藝、533MHz前端總線和2MB高速二級緩存,處理器編號由奔騰M 730—770,主頻由1.60GHz起,最高2.13GHz。915GM/PM芯片組讓迅馳進入了PCI-E時代,其中915GM整合了英特爾 GMA900圖形引擎,讓非獨立顯卡筆記本在多媒體性能上有了較大提高。915PM/GM還支持單通道DDR333或雙通道DDR2 400/533MHz內存,性能提供同時也降低了部分功耗。目前Sonoma平臺的新一代迅馳漸漸成爲市場主流。
6.4.17. Intel Speedstep on ICH-M chipsets (ioport interface) Intel ICH-M移動南橋芯片組的支持
6.4.18. Intel Pentium 4 clock modulation P4處理器的時鐘模塊支持。
6.4.19. Transmeta LongRun Transmeta處理器的支持。
6.4.20. VIA Cyrix III Longhaul VIA Cyrix處理器的支持。
6.4.21. shared options
6.4.22. /proc/acpi/processor/../performance interface (deprecated) 從/proc/acpi/processor/../performance獲得CPU的變頻信息。
6.4.23. Relaxed speedstep capability checks
不全面檢測Intel Speedstep,有的系統雖然支持Speedstep技術,卻無法通過全面的檢測。

7. Bus options (PCI, PCMCIA, EISA, MCA, ISA) 總線選項
7.1. PCI support
PCI總線支持(一定要進內核,不能編成模塊)
找找你的主板資料,看看你用的是不是PCI主板。PCI是總線系統的名稱,是CPU用來與其他設備進行通信的通道。其他總線系統有ISA、EISA、MCA和VESA。如果你有PCI,選Y。否則,選N。 7.1.1. PCI access mode (Any)
PCI訪問模式
在PCI系統中,BIOS可以檢測PCI設備和確定它們的設置。但是,一些老的PCI主板有BIOS問題,如果這裏選上會讓系統當機。同時,一些嵌入式的基於PCI系統沒有任何BIOS。LINUX可以在不使用BIOS的情況下嘗試直接檢測PCI硬件。
選 上這個以後,你可以設定LINUX如果檢測PCI設備。如果你選擇”BIOS”,BIOS會用到。你選 “Direct”, BIOS不會用到。如果你選”MMConfig”,PCI加速的 MMCONFIG 會用到。如果你選”Any” ,內核先用 MMCONFIG ,然後 “Direct”,最後纔是”BIOS”如果前面的都無法工作。如果不清楚,選”Any”。 7.1.1.1. BIOS

7.1.1.2. MMConfig
7.1.1.3. Direct
7.1.1.4. Any
7.1.2. PCI Express support
PCI Express 支持
這 裏自動支持 PCI Express 端口總線。用戶可以選擇 Native Hot-Plug support, Advanced Error Reporting support, Power Management Event support,Virtual Channel support 4個選項來支持 PCI Express 端口(啓動或者切換)。 我的板是PCI Express。大家可以用lshw|less來看看自己的PCI是什麼類型。 7.1.2.1. Root Port Advanced Error Reporting support
高級啓動錯誤報告支持。

7.1.3. Message Signaled Interrupts (MSI and MSI-X) 信息信號中斷
這允許設備驅動開啓MSI。MSI允許一個設備用非裝訂內存寫入方式在自己的PCI總線中產生一箇中斷,而不是常規的IRQ針腳中斷。 在內核啓動時,用 ‘pci=nomsi’選項可以禁用PCI MSI中斷。這將在整個系統禁用MSI。 如果不知道怎麼做,選N。
7.1.4. Interrupts on hypertransport devices
高速傳輸設備中斷
允許高速傳輸設備使用中斷。
如果不清楚,選Y。

7.2. ISA support ISA總線
看看你主板上是否有ISA插槽。ISA是比較老的總線,現已基本被PCI取代。如果你沒有老 式的ISA設備,可以不選這項。不過我估計你的主板上 應該會有ISA總路。因爲我的INTEL 945板都還有一路,接老式打印機用的。選上備用。如果你認爲你永遠都不會用到那一路的話,可以不選。 7.2.1. EISA support
擴展工業標準架構總線(EISA)是爲IBM 微通道開發的項目。EISA總線可以爲IBM 微通道提供一些特性,如果你在使用很老的卡。目前EISA很少用到,已經被PCI取代。選Y,如果你爲ESIA系統編譯內核。否則,選N。

7.2.2. MCA support
IBM PS/2上的總線,現已淘汰,建議關閉。微通道總線IBM的臺式機和筆記本上可能會有這種總線,包括它的p系列、e系列、z系列機器上都用到了這種總線。

7.2.3. NatSemi SCx200 support
松下的一種半導體處理器的驅動。

7.3. PCCARD (PCMCIA/CardBus) support
一般只有筆記本電腦上纔會有PCMCIA插槽,如果你是臺式機 的話,可以不選這一項,然後跳過這一部份。我的IBM機器是辦公用的,經常會臨時接一些亂七八糟的設備。我自己都不知道哪些設備需要什麼模塊。所以這裏我 都搞成模塊,免得以後接上用不了,又得切換到XP下。 7.3.1. PCCard (PCMCIA/CardBus) support
PCI Hotplug Support
PCI熱插撥支持
選Y,如果你的主板有PCI熱拔插控制器,這允許你熱拔插PCI卡。
選M,將編譯爲模塊,叫做pci_hotplug。
如果不清楚,選N。
一般來講只有服務器上會有熱插拔的設備,如果你使用的是臺式機,你可以不選擇此項並跳過這一部份。
8. Executable file formats 可執行文件格式。
8.1. Kernel support for ELF binaries
ELF支持
ELF(可執行和可鏈接格式)是一種用來連接不同架構和操作系統的可執行文件、庫函數格式。選Y,你的內核可以運行ELF二進制文件,這也使你的內核增大13KB。
ELF現在基本代替了傳統的 a.out 格式(QMAGIC and ZMAGIC用到),因爲它是可移植的(可移植不代表它可以直接運行在不同構架和操作系統上),而且建立相關運行庫文件非常容易。很多新的可執行文件都用ELF格式發佈,你在這裏當然要選Y。

8.2. Kernel support for a.out and ECOFF binaries
對 a.out 和 ECOFF 二進制文件的支持
A.out (Assembler.OUTput)是一種二進制文件格式,它用在最早的UNIX版本中。LINUX在QMAGIC 和 ZMAGIC兩個鏡像中使用A.out,直到它最近被ELF取代。ELF的轉變開始於1995年。這個選項主要是給研究歷史的人提供感興趣的信息,或者你 要是有那個年代的文件,你需要這個選項。
大多數人在這可以選N。如果你認爲你有可能會用到這個格式,選M編譯成模塊。模塊名爲binfmt_aout。如果你係統的關鍵部件(比如/sbin/init 或者 /lib/ld.so)是 a.out 格式的的,你要在這選Y。

8.3. Kernel support for MISC binaries
內核對 MISC 二進制文件的支持
如果你在這選 Y,它將可以將 wrapper-driven 二進制格式嵌入內核。當你使用一些程序的解釋器時,比如 Java, Python, .NET或者Emacs-Lisp,或者當你經常通過DOS 仿真器運行DOS程序時,它將非常有用。當你在這個選項選Y,你可以簡單地通過在shell打相應命令運行以上的程序,LINUX可以自動匹配正確的格 式。
要使用 binfmt_misc 你可能需要掛載它:
mount binfmt_misc -t binfmt_misc /proc/sys/fs/binfmt_misc
你可以選M作爲模塊,以後再加載,模塊名爲 binfmt_misc。如果你不知道怎麼辦,選Y。

 

本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/smilewwh/archive/2008/02/28/2127179.aspx

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章