Linux 2.6.25 核心編譯配置選項簡介

來源:互聯網
上載者:User
1.Code maturity level options代碼成熟度等級選項

1.1General setup

常規設定

1.1.1 Prompt for development and/or incomplete code/drivers

顯示尚在開發中或尚未完成的代碼與驅動.除非你是測試人員或者開發人員,否則請勿選擇

1.1.2 Local version - append to kernel release

在核心版本後面加上自訂的版本字串(小於64字元),可以用"uname -a"命令看到

1.1.3 Automatically append version information to the version string

自動在版本字串後面添加版本資訊,編譯時間需要有perl以及git倉庫支援

1.1.4 Support for paging of anonymous memory (swap)

使用交換分區或者分頁檔來做為虛擬記憶體

1.1.5 System V IPC

System V處理序間通訊(IPC)支援,許多程式需要這個功能.必選,除非你知道自己在做什麼

1.1.6 POSIX Message Queues

POSIX訊息佇列,這是POSIX IPC中的一部分

1.1.7 BSD Process Accounting

將進程的統計資訊寫入檔案的使用者級系統調用,主要包括進程的建立時間/建立者/記憶體佔用等資訊

1.1.8 BSD Process Accounting version 3 file format

使用新的第三版檔案格式,可以包含每個進程的PID和其父進程的PID,但是不相容老版本的檔案格式

1.1.9 Export task/process statistics through netlink

通過netlink介面向使用者空間匯出任務/進程的統計資訊,與BSD Process Accounting的不同之處在於這些統計資訊在整個任務/進程生存期都是可用的

1.1.10 Enable per-task delay accounting

在統計資訊中包含進程等候系統資源(cpu,IO同步,記憶體交換等)所花費的時間

1.1.11 Enable extended accounting over taskstats

收集額外的進程統計資訊並通過taskstats介面發送到使用者空間

1.1.12 Enable extended accounting over taskstats
在統計資訊中包含擴充進程所花費的時間

1.1.13 Enable per-task storage I/O accounting
在統計資訊中包含I/O儲存進程所花費的時間

1.1.14 Auditing support

審計支援,某些核心模組(例如SELinux)需要它,只有同時選擇其子項才能對系統調用進行審計

1.1.15 Kernel .config support

把核心的配置資訊編譯進核心中,以後可以通過scripts/extract-ikconfig指令碼來提取這些資訊

1.1.16 Kernel .config support
把核心的配置資訊編譯進核心中,以後可以通過scripts/extract-ikconfig指令碼來提取這些資訊

1.1.17 Kernel log buffer size (16 => 64KB, 17 => 128KB)
核心資訊大小

1.1.18 Control Group support
cgroup支援,如cpusets那樣來使用cgroup子系統進程(不確定可以不選)
1.1.19 Example debug cgroup subsystem
cgroup子系統調試例子
1.1.20 Namespace cgroup subsystem
cgroup子系統命名空間
1.1.21 Group CPU scheduler
CPU組調度(Group Scheduling,可以為進程賦予不同於nice level的調度 優先順序。尤其在企業級硬體系統上,可以進一步最佳化即時任務的調度。案頭使用者可以不選)

1.1.22 Group scheduling for SCHED_OTHER
SCHED_OTHER(SCHED:Process Scheduler,負責控制進程對CPU的使用.調度演算法的公平,有效,硬體有關事件的及時處理)組調度

1.1.23 Group scheduling for SCHED_RR/FIFO
SCHED_RR?FIFO組調度
1.1.24 Basis for grouping tasks
基於組分配的任務
1) user id
使用者id 
2)Control groups
控制組
1.1.25 Simple CPU accounting cgroup subsystem
簡單cgroup子系統cpu所花費的時間
1.1.26 Resource counters
資源計數器
1.1.27 Memory Resource Controller for Control Groups
cgroup記憶體資源控制器
1.1.28 Create deprecated sysfs files
建立過時的sysfs檔案系統(雖然寫著過時然而許多版本仍然有編譯)
1.1.29Kernel->user space relay support (formerly relayfs)
在某些檔案系統上(比如debugfs)提供從核心空間向使用者空間傳遞大量資料的介面
1.1.30 Namespaces support
命名空間支援,允許伺服器為不同的使用者資訊提供不 同的使用者名稱空間服務
1)UTS namespace
UTS命名空間,不確定可以不選
2)IPC namespace
IPC命名空間,不確定可以不選
3)User namespace
User命名空間,不確定可以不選
4)PID Namespaces
PID命名空間,不確定可以不選
1.1.31 Initial RAM filesystem and RAM disk (initramfs/initrd) support
初始RAM的檔案和RAM磁碟( initramfs /initrd)支援(如果要採用initrd啟動則要選擇,否則可以不選)
1.1.32 Initramfs source file(s)
initrd已經被initramfs取代,如果你不明白這是什麼意思,請保持空白
1.1.33 Optimize for size (Look out for broken compilers!)
編譯時間最佳化核心尺寸(使用"-Os"而不是"-O2"參數編譯),有時會產生錯誤的二進位代碼
1.1.34 Configure standard kernel features (for small systems)
配置標準的核心特性(為小型系統)
1)Include all symbols in kallsyms
在kallsyms中包含核心知道的所有符號,核心將會增大300K 
2)Do an extra kallsyms pass
除非你在kallsyms中發現了bug並需要報告這個bug才開啟該選項
1.1.35 Disable heap randomization
禁用隨機heap(heap堆是一個應用程式層的概念,即堆對CPU是不可見的,它的實現方式有多種,可以由OS實現,也可以由運行庫實現,如果你願意,你也可以在一個棧中來實現一個堆)

1.1.36 Enable Android’s Shared Memory Subsystem

1.1.37 Choose SLAB allocator
選擇記憶體配置管理器(強烈推薦使用SLUB)
SLAB
各種環境通用的記憶體配置管理器
SLUB (Unqueued Allocator)
更加優秀的記憶體配置管理器
1.1.38 Profiling support (EXPERIMENTAL)

#支援系統評測(對於大多數使用者來說並不是必須的),其實就是提供一種檢測代碼運行效率的工具,如果你不編程的話,這個東西也沒有用.

Profiling是用來檢核一支程式中那些部份(which bits)是最常呼叫或是執行的時間最久的方法.這對程式的最佳化與找出何時時間是浪費掉的而言,是相當好的方式.你必須就你所要的時程資訊(timing information)的目的檔案(object files)加上-p來編譯,而且如果要讓輸出的檔案(output files)有意義(make sense),你也會需要gprof(來自binutils套件的命令).

1.1.39 Activate markers
啟用標誌(不確定可以不選)
1.1.40 OProfile system profiling
OProfile評測和效能監控工具
1.1.41 Kprobes
除非開發人員,否則不選

2 Enable loadable module support可載入模組支援

2.1Enable loadable module support
開啟可載入模組支援,如果開啟它則必須通過"make modules_install"把核心模組安裝在/lib/modules/中

2.2 Module unloading
允許卸載已經載入的模組

2.3 Forced module unloading
允許強制卸載正在使用中的模組(比較危險)

2.4 Module versioning support
允許使用其他核心版本的模組(可能會出問題)
2.5 Source checksum for all modules
為所有的模組校正源碼,如果你不是自己編寫核心模組就不需要它
2.6 Automatic kernel module loading
讓核心通過運行modprobe來自動載入所需要的模組,比如可以自動解決模組的依賴關係

3. Enable the block layer塊裝置支援,使用硬碟/USB/SCSI裝置者必選
3.1 Support for Large Block Devices
僅在使用大於2TB的塊裝置時需要
3.2 Support for tracing block io actions
塊隊列IO跟蹤支援,它允許使用者查看在一個塊裝置隊列上發生的所有事件,可以通過blktrace程式獲得磁碟當前的詳細統計資料
3.3 Support for Large Single Files
僅在可能使用大於2TB的檔案時需要
3.4 Block layer SG support v4
通用scsi塊裝置第4版支援
3.5 IO Schedulers
IO調度器
3.5.1 Anticipatory I/O scheduler
假設一個塊裝置只有一個物理尋找磁頭(例如一個單獨的SATA硬碟),將多個隨機的小寫入流合并成一個大寫入流,用寫入延時換取最大的寫入輸送量.適用於大多數環境,特別是寫入較多的環境(比如檔案伺服器) 
3.5.2Deadline I/O scheduler
使用輪詢的調度器,簡潔小巧,提供了最小的讀取延遲和尚佳的輸送量,特別適合於讀取較多的環境(比如資料庫) 
3.5.3 CFQ I/O scheduler
使用QoS策略為所有任務分配等量的頻寬,避免進程被餓死並實現了較低的延遲,可以認為是上述兩種調度器的折中.適用於有大量進程的多使用者系統
3.5.4 Default I/O scheduler
預設IO調度器(建議選擇CFQ)

1)Anticipatory

2) Deadline

3)CFQ

4) No-op

4.System Type 系統類別型

此部分暫時未整理,要根據晶片的具體指標確定。

5 .Bus support

5.1 PCCard(PCMCIA/CardBus) supoort

5.1.1 Enable PCCARD debugging

僅供調試.通常不需要選擇調試PCMCIA裝置,除非你是裝置驅動的開發人員。

5.1.2 16-bit PCMCIA support

一些老的PCMCIA卡使用16位的CardBus

5.1.3 Load CIS updates from userspace

有些PCMCIA卡的正確使用需要升級的CIS,選這個選項就可以實現自動的使用核心的韌體載入以及熱插拔子系統。

如不確定,就選Y。(本選項為測試級)

5.1.4 PCMCIA control ioctl (obsolete)

本選項是個很舊的選項,應該用新的組件代替,詳情見:Documentation/Changes

6 .Kernel Features

6.1 Preemptible Kerenl (EXPERIMENTAL)

搶佔式核心

6.2 Dynamic tick timer

6.3 use the ARM EABI to compile the kernel

我們必須使用ARM的eabi相容的工具鏈編譯核心。

6.4 Allow old ABI binaries to run with this kernel(EXPERIMENTAL)

6.5 Memory model (Flat Memory)

6.5.1 Falt Memory

一般選"Flat Memory",其他選項涉及記憶體熱插拔

6.6 64 bit Memory and IO resources

6.7 Timer and CPU usage LEDs

6.8 Timer LED

6.9 CPU usage LED

7.Boot options啟動選項

7.1 Compressed ROM boot loader base address

7.2 Compeesed ROM boot laoder BSS address

7.3 Kernel Execute-In-Place from ROM

7.4 Kexec system call

8 Floating point emulation

8.1 NWFPE math emulation

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.