偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

Devyn的Linux內(nèi)核專題:配置內(nèi)核(3)

系統(tǒng) Linux
OK,我們還繼續(xù)配置內(nèi)核。還有更多功能等待著去配置。

OK,我們還繼續(xù)配置內(nèi)核。還有更多功能等待著去配置。

[[89101]]

下一個問題(Enable ELF core dumps (ELF_CORE))詢問的是內(nèi)核是否可以生成內(nèi)核轉(zhuǎn)儲文件。這會使內(nèi)核變大4KB。所以我選擇了"no"。

注意:內(nèi)核轉(zhuǎn)儲文件(內(nèi)存或者系統(tǒng)的轉(zhuǎn)儲)是程序崩潰前已記錄的狀態(tài)。內(nèi)核轉(zhuǎn)儲是用來調(diào)試問題的。這個轉(zhuǎn)儲文件的格式是ELF(Executable and Linkable Format )。

下面可以啟用PC揚(yáng)聲器(Enable PC-Speaker support (PCSPKR_PLATFORM))。大多數(shù)計算機(jī)用戶擁有并使用揚(yáng)聲器,所以這個啟用它。

雖然下面的特性會增加內(nèi)核的大小(Enable full-sized data structures for core (BASE_FULL))(啟用完全大小的內(nèi)核數(shù)據(jù)結(jié)構(gòu)),但性能也隨之增加。所以我選擇"yes"。

為了使內(nèi)核可以運(yùn)行基于glibc的程序,必須啟用FUTEX(Enable futex support (FUTEX))。這個特性啟用了快速用戶空間互斥鎖(Fast Userspace muTEXes)。

注意:glibc(GNU C Library)是由GNU實(shí)現(xiàn)的標(biāo)準(zhǔn)C庫。

注意:FUTEX (fast userspace mutex)是用來防止兩個線程訪問同一個不能被多個線程使用的共享資源。

下一個問題(Enable eventpoll support (EPOLL))可以通過回答"no"來禁用epoll系統(tǒng)調(diào)用。然而,為了含有epoll系統(tǒng)調(diào)用,我選擇了"yes"。epoll是一種I/O事件通知系統(tǒng)。

為了收到來自文件描述符的信號,我們啟用signalfd系統(tǒng)調(diào)用(Enable signalfd() system call (SIGNALFD)。

如果啟用這個特性(Enable timerfd() system call (TIMERFD)),它允許程序使用定時器事件獲取文件描述符。

我們現(xiàn)在的配置必須啟用eventfd系統(tǒng)調(diào)用(Enable eventfd() system call (EVENTFD))。它默認(rèn)啟用訪問共享內(nèi)存文件系統(tǒng)(Use full shmem filesystem (SHMEM)。共享內(nèi)存文件系統(tǒng)是一種虛擬內(nèi)存文件系統(tǒng)。

下一個問題是"Enable AIO support (AIO)"。這個特性啟用了線程化程序使用的POSIX異步I/O。

注意:異步I/O用來處理輸入/輸出,它允許線程在傳輸完成前就完成處理。

如果你正在給一個嵌入式系統(tǒng)配置一個內(nèi)核,那么問題“Embedded system (EMBEDDED)”可以選擇"yes"。否則就像我一樣選擇"no"。

注意:嵌入式系統(tǒng)是運(yùn)行在一個更大的電子系統(tǒng)的實(shí)時計算機(jī)。

現(xiàn)在,我們可以配置內(nèi)核性能事件和計時器了。配置工具沒有給開發(fā)者選擇,直接啟用了事件和計數(shù)器(Kernel performance events and counters (PERF_EVENTS))(內(nèi)核性能事件和計數(shù)器)。這是一個重要特性。

接下來,我們可以禁用另外一個調(diào)試特性(ebug: use vmalloc to back perf mmap() buffers (DEBUG_PERF_USE_VMALLOC))。

如果啟用了VM事件計數(shù)器,那么事件計數(shù)就會顯示在/proc/vmstat(Enable VM event counters for /proc/vmstat (VM_EVENT_COUNTERS))。如果禁用了事件計數(shù)就不會顯示,/proc/vmstat只會顯示內(nèi)存頁計數(shù)。

為了更好地支持PCI芯片,(Enable PCI quirk workarounds (PCI_QUIRKS))回答yes。這會啟用對PCI芯片的怪異行為和bug的臨時解決方案。

下面一個調(diào)試特性可以像我一樣禁用掉(Enable SLUB debugging support (SLUB_DEBUG))。這個特性會耗費(fèi)很多空間并且會禁用用于調(diào)試內(nèi)核的SLB sysfs。如果這個特性被禁用,那么/sys/slab就不會存在并且系統(tǒng)上也不再支持緩沖驗證。

堆隨機(jī)化是一個讓利用堆漏洞更加困難的特性(Disable heap randomization (COMPAT_BRK))。然而我們不應(yīng)該去啟用它,因為任何基于libc5的軟件都無法工作在這個系統(tǒng)上!只有我們有特別的理由這么做或者如果你不會使用基于libc5的軟件時才去啟用它。我禁用了這個特性。當(dāng)編譯一個通用的內(nèi)核時,開發(fā)這會希望禁用這個特性。

接下來必須選擇一個SLAB分配器。SLAB分配器是一個沒有碎片且有效率地將內(nèi)核對象放置在內(nèi)存中的內(nèi)存管理系統(tǒng)。默認(rèn)選擇是"2"。

Choose SLAB allocator

1. SLAB (SLAB)

> 2. SLUB (Unqueued Allocator) (SLUB)

3. SLOB (Simple Allocator) (SLOB)

choice[1-3?]: 2

為了支持?jǐn)U展性能支持,(Profiling support (PROFILING))回答"yes"。

下一個問題讓開發(fā)者選擇是否啟用OProfile系統(tǒng)。它可以禁用、啟用或者添加為一個模塊在需要時載入。我選擇禁用這個特性。

Kprobes允許用戶捕捉幾乎任意的內(nèi)核地址去啟動一個回調(diào)函數(shù)。這是一個可以像我一樣禁用的調(diào)試工具(Kprobes (KPROBES))。

這個優(yōu)化特性可以啟用(Optimize very unlikely/likely branches (JUMP_LABEL))(優(yōu)化非常近似/不近似的分支)。這使分支預(yù)判更加簡單并可以減小開銷。

配置工具啟用了一個實(shí)驗性特性"透明用戶空間探針"(Transparent user-space probes (EXPERIMENTAL) (UPROBES))。不過不要擔(dān)心,系統(tǒng)可以很好工作,并不是所有的實(shí)驗性特性是不穩(wěn)定或者壞的。

接下來,我們會被詢問基于gcov的內(nèi)核分析(Enable gcov-based kernel profiling (GCOV_KERNEL))。這可以被禁用。

為了允許內(nèi)核加載模塊,需要啟用可加載模塊支持(Enable loadable module support (MODULES))。

內(nèi)核一般只能加載有版本號的模塊。如果想允許內(nèi)核加載沒有版本號的模塊,就啟用這個特性(Forced module loading (MODULE_FORCE_LOAD))(強(qiáng)制模塊載入)。這么做是一個很糟糕的注意,所以我已經(jīng)禁用了它,除非你有特定的需求需要這個特性。

如果啟用了這個特性(Module unloading (MODULE_UNLOAD)),Linux內(nèi)核也能卸載模塊,最好啟用。如果內(nèi)核判斷你要卸載的模塊不應(yīng)該被卸載,那么用戶則無法卸載模塊。啟用強(qiáng)制卸載也行,但是不建議(Forced module unloading (MODULE_FORCE_UNLOAD)。

為了使用不是為你的內(nèi)核開發(fā)的或者并不適用你的版本號的模塊,可以啟用版本支持(Module versioning support (MODVERSIONS))。最好不要混用不同版本號的模塊,所以我禁用了這個特性。

模塊在它們的modinfo(模塊信息)里有一個字段名為"srcverion"。這個字段允許開發(fā)者知道使用什么源碼版本來編譯模塊。啟用這個選項可以在編譯模塊的時候加入這個字段。這個并不必要,所以我禁用了它(Source checksum for all modules (MODULE_SRCVERSION_ALL))。如果啟用了先前的選項,開發(fā)者可以將校驗和加入到模塊中(Source checksum for all modules (MODULE_SRCVERSION_ALL))。

為了啟用模塊簽名驗證(Module signature verification (MODULE_SIG)),這個選項回答"yes"。因為這個并不必要,我選擇了"no",否則內(nèi)核在加載模塊前會檢查并驗證簽名。

為了啟用塊級支持(Enable the block layer (BLOCK)),像我一樣選擇"yes"。禁用這個將會使塊設(shè)備無法使用并且無法啟用某些文件系統(tǒng)。

下面,SG支持已經(jīng)默認(rèn)啟用(Block layer SG support v4 (BLK_DEV_BSG))(塊級SG支持V4版),并且輔助庫也啟用了(Block layer SG support v4 helper lib (BLK_DEV_BSGLIB))。

下面回答的問題是關(guān)于對塊設(shè)備的數(shù)據(jù)完整性支持(Block layer data integrity support (BLK_DEV_INTEGRITY))。這個特性允許擁有更好的數(shù)據(jù)完整性來提供設(shè)備數(shù)據(jù)保護(hù)特性。許多設(shè)備不支持這個特性,所以我禁用了它。

如果啟用了塊級bio帶寬限制(Block layer bio throttling support (BLK_DEV_THROTTLING))那就可以限制設(shè)備的IO速率。

為了啟用外部分區(qū)方案的支持,這個問題就回答"yes"(Advanced partition selection (PARTITION_ADVANCED))。我禁用了這個特性。

為了啟用CSCAN(譯注:循環(huán)掃描)和FIFO過期請求,那就啟用最后期限IO調(diào)度器(Deadline I/O scheduler (IOSCHED_DEADLINE))。

CFQ IO調(diào)度器在處理器之間平均地分配帶寬。因此啟用這個特性feature (CFQ I/O scheduler (IOSCHED_CFQ))是個好主意。

下面,開發(fā)者可以啟用或禁用CFQ組支持(CFQ Group Scheduling support (CFQ_GROUP_IOSCHED))。接下來,開發(fā)者可以選擇默認(rèn)的IO調(diào)度器,最好選擇DEFAULT_DEADLINE。

對于小于32位尋址的設(shè)備,下面的特性會分配16MB的尋址空間(DMA memory allocation support (ZONE_DMA))。如果你不使用這些設(shè)備,那么這個是可以禁用的,所以我禁用了它。

對于有多個CPU的系統(tǒng),最好啟用SMP(Symmetric multi-processing support (SMP))。對于只有單個處理器的設(shè)備,內(nèi)核會在禁用這個特性后執(zhí)行得更快。我啟用了這個特性。

對于支持x2apic的CPU,啟用x2apic支持support (Support x2apic (X86_X2APIC))。如果你的系統(tǒng)缺乏這個特性就像我一樣禁用它。

接下來我們可以啟用對那些缺乏合適的ACPI支持的舊式SMP系統(tǒng)的MPS表(Enable MPS table (X86_MPPARSE))。一些擁有ACPI、DSDT、MADT支持的更新的系統(tǒng)不需要這個特性。我禁用了它。

下面的問題允許我們啟用擴(kuò)展x86平臺的支持(Support for extended (non-PC) x86 platforms (X86_EXTENDED_PLATFORM))。只有在你需要一個通用內(nèi)核或者內(nèi)核運(yùn)行在某個特定的需要擴(kuò)展支持的處理器上時才啟用它。我禁用了這個特性。

為了支持Intel低功耗子系統(tǒng),就啟用這個特性(Intel Low Power Subsystem Support (X86_INTEL_LPSS))。

單一深度WCHAN輸出(Single-depth WCHAN output (SCHED_OMIT_FRAME_POINTER))是用來計算電量(/proc//wchan),然而這會導(dǎo)致更多的功耗。

下面,我們啟用虛擬客戶系統(tǒng)支持(Paravirtualized guest support (PARAVIRT_GUEST))。這允許一個Guest操作系統(tǒng)與主操作系統(tǒng)一起運(yùn)行。我會禁用這個特性。

Memtest是一個在系統(tǒng)啟動時檢測內(nèi)存的軟件。Memtest可以配置為每次或者有時開機(jī)運(yùn)行。Memtest并不必要,所以我禁用了它。

這里我們可以選擇一個內(nèi)核應(yīng)該支持的處理器家族。我選擇了5 – Generic-x86-64。這是一個64位的系統(tǒng),x86是32系統(tǒng)。

下面我們能選擇也支持x86(32位)處理器 (Supported processor vendors (PROCESSOR_SELECT))。

為了發(fā)現(xiàn)機(jī)器異常,我們可以啟用DMI掃描(Enable DMI scanning (DMI)),這可以檢測異常。

要啟用DMA訪問系統(tǒng)上32位內(nèi)存的3GB以上的內(nèi)存,下一個問題(GART IOMMU support (GART_IOMMU))我們回答"yes"。

via: http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-3.4369/

責(zé)任編輯:奔跑的冰淇淋 來源: Linux中國
相關(guān)推薦

2013-11-25 14:07:11

Linux內(nèi)核內(nèi)核特性

2013-11-05 09:58:39

Linux內(nèi)核

2013-11-12 11:01:46

Linux內(nèi)核

2013-11-06 13:03:10

Linux內(nèi)核

2013-10-31 14:09:14

Linux內(nèi)核

2013-12-18 14:44:10

2013-11-05 09:55:37

2013-11-25 17:39:17

Linux內(nèi)核PCIACPI

2013-10-31 14:15:10

2013-10-31 16:29:10

Linux內(nèi)核

2013-12-18 11:14:57

Linux內(nèi)核Linux Kerne

2013-12-20 13:08:12

Linux內(nèi)核服務(wù)器

2009-12-09 09:27:35

linux內(nèi)核

2021-02-20 06:08:07

LinuxWindows內(nèi)核

2011-01-14 16:23:46

Linux內(nèi)核

2010-03-02 09:17:32

Linux local

2013-05-13 09:52:52

Windows內(nèi)核Linux內(nèi)核

2010-01-13 09:58:42

2021-05-19 07:56:26

Linux內(nèi)核搶占

2011-01-11 13:45:06

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號