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

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

系統(tǒng) Linux
Linux內(nèi)核擁有許多可以配置的特性,接下來我們還有許多要配置。

Linux內(nèi)核擁有許多可以配置的特性,接下來我們還有許多要配置。

[[90380]]

下一個可以配置的特性是x86的隨機(jī)數(shù)生成器(x86 architectural random number generator (ARCH_RANDOM))。記住,我們現(xiàn)在配置的是針對AMD64系統(tǒng)的內(nèi)核代碼。這個隨機(jī)數(shù)生成器使用Intel x86的RDRAND指令。這并不通用,所以為了一個更輕量的內(nèi)核我禁用了它。

接著,我們可以啟用或者禁用"Supervisor Mode Access Prevention (X86_SMAP)"。這是Intel處理器使用的安全特性。SMAP在一些條件下只允許內(nèi)核訪問用戶空間。這個有助于保護(hù)用戶空間。如果啟用,這里有一點性能和內(nèi)核大小的開銷,但是開銷很小。由于我是用的是AMD系統(tǒng),所以我禁用了這個特性。

開發(fā)者可以啟用"EFI runtime service support (EFI)"。只有在有EFI固件的系統(tǒng)上啟用它。擁有這個特性,內(nèi)核可以使用的EFI服務(wù)。EFI是一個操作系統(tǒng)和硬件如何交流的規(guī)范,所以EFI固件是使用這個規(guī)范的硬件代碼。因為我沒有EFI固件,所以我禁用了它。

這是一個應(yīng)該被啟用的有用的安全方式(Enable seccomp to safely compute untrusted bytecode (SECCOMP))。這個安全特性在使用非可信的字節(jié)碼的數(shù)值計算(執(zhí)行大量計算的軟件)中使用。字節(jié)碼(可移植代碼)是一種被解釋器有效讀取的代碼。字節(jié)碼不是源代碼,但它也不是匯編或者二進(jìn)制代碼。非可信的代碼是一種可能導(dǎo)致系統(tǒng)/數(shù)據(jù)損壞的代碼??赡軙茐南到y(tǒng)或者毀壞數(shù)據(jù)的非可信的代碼通過seccomp被隔離在獨立的地址空間中。這是通過文件描述符傳輸?shù)姆椒?。通常上,最好啟用這個安全特性,即使會有一些性能開銷,除非你在制作一個需要榨干性能的內(nèi)核。

這里是另外一個安全特性(Enable -fstack-protector buffer overflow detection (CC_STACKPROTECTOR))。緩沖溢出是數(shù)據(jù)被寫在超出了它的內(nèi)存界限而進(jìn)入了鄰近的內(nèi)存中。這是一個安全威脅。一些惡意軟件使用緩沖區(qū)溢出來破壞系統(tǒng)。啟用這個會使用GCC選項 "-fstack-protector"。GCC是一個Linux編譯器,在你配置完成后用它來編譯內(nèi)核。這個編譯器參數(shù)會在返回地址前在棧上加入一個canary值(特殊的安全代碼)。這個值會在返回前被驗證。當(dāng)內(nèi)存溢出發(fā)生時,canary值會得到覆蓋消息。這時,會導(dǎo)致內(nèi)核崩潰。如許多人知道的那樣,內(nèi)核錯誤意味著系統(tǒng)將要崩潰,但是這比系統(tǒng)被入侵或者數(shù)據(jù)永久損害的好。發(fā)生內(nèi)核錯誤,系統(tǒng)會重啟,但是如果緩沖溢出則可能導(dǎo)致系統(tǒng)被入侵。一個簡單的重啟無法修復(fù)破壞(譯注:但也不會更壞)。你必須用GCC 4.2或者更高版本支持這個參數(shù)的GCC來編譯內(nèi)核。

提示:要知道你使用的版本號,在命令行內(nèi)鍵入"gcc --version"。

在這之后,我們可以配置定時器頻率。配置工具建議使用250Hz,所以我們使用這個值。

 

  1. Timer frequency 
  2. 1. 100 HZ (HZ_100) 
  3. >2. 250 HZ (HZ_250) 
  4. 3. 300 HZ (HZ_300) 
  5. 4. 1000 HZ (HZ_1000) 
  6. choice[1-4?]: 2 

 

使用1000Hz通常來講對許多系統(tǒng)而言太快了。定時器頻率決定著定時器中斷被使用的頻率。這有助于在時間線上的系統(tǒng)操作。程序并不是隨機(jī)地執(zhí)行一條命令,相反它們會等到定時器中斷結(jié)束。這保持著有組織和結(jié)構(gòu)的處理。頻率為100Hz的定時器中斷之間的時間是10ms,250Hz是4ms,1000Hz是1ms。現(xiàn)在許多開發(fā)者會馬上想到1000Hz是最好的。好吧,這取決于你對開銷的要求。一個更大的定時器頻率意味著更多的能源消耗和更多的能源被利用(在定時器上),產(chǎn)生更多的熱量。更多的熱量意味著硬件損耗的更快。

注意:如果某個特定的特性對你并不重要或者你不確定該選擇什么,就使用配置工具選擇的默認(rèn)值。比如,就我現(xiàn)在正在配置的內(nèi)核而言,使用哪個定時器對我并不重要。總的來說,如果你沒有特別的原因去選擇任何一個選項時,就使用默認(rèn)值。

下面這個有趣的系統(tǒng)調(diào)用可能會對一些用戶有用(kexec system call (KEXEC))。kexec調(diào)用會關(guān)閉當(dāng)前內(nèi)核去啟動另外一個或者重啟當(dāng)前內(nèi)核。硬件并不會關(guān)閉,并且這個調(diào)用可以無需固件的幫助工作。bootloader是不執(zhí)行的(bootloader是啟動操作系統(tǒng)的軟件) 。這個重啟發(fā)生在操作系統(tǒng)級別上而不是硬件上。使用這個系統(tǒng)調(diào)用會快于執(zhí)行一個標(biāo)準(zhǔn)的關(guān)機(jī)或者重啟,這會保持硬件在加電狀態(tài)。這個系統(tǒng)調(diào)用并不能工作在所有系統(tǒng)上。為了更高性能,啟用這個熱啟動功能。

為了使用kexec,對重啟后要使用的內(nèi)核使用如下命令替換""。同樣,使用之前我們講過的內(nèi)核參數(shù)替換"" (我會在以后的文章中更深入的討論。)

 

  1. kexec -l <kernel-image> --append="<command-line-options>”  

特別地,我這里輸入:

 

  1. kexec -l /boot/vmlinuz-3.8.0-27-generic –append="root=/dev/sda1"  

注意:硬件有時不需要重置,所以這不依賴于kexec。

下面,我們有一個適用于kexec的調(diào)試特性(kernel crash dumps (CRASH_DUMP))。當(dāng)kexec被調(diào)用時,一個崩潰信息(crash dump)會生成。除非你有必要調(diào)試kexec,否則這個并不必要。我禁用了這個特性。

再者,我們有另外一個kexec特性(kexec jump (KEXEC_JUMP))。kexec跳允許用戶在原始內(nèi)核和kexec啟動的內(nèi)核之間切換。

最好對內(nèi)核啟動地址使用默認(rèn)值(Physical address where the kernel is loaded (PHYSICAL_START) [0x1000000])。

下一個內(nèi)核選項(Build a relocatable kernel (RELOCATABLE))允許內(nèi)核放在內(nèi)存的任何地方。內(nèi)核文件會增大10%,但是超出部分會在執(zhí)行時從內(nèi)存移除。許多人也許想知道這為什么很重要。在2.6.20內(nèi)核前,救援內(nèi)核(rescue kernel)必須被配置和編譯運行在不同的內(nèi)存地址上。當(dāng)這個特性發(fā)明后,開發(fā)者不必再編譯兩個內(nèi)核。救援內(nèi)核不會在第一個已加載的內(nèi)核的地方加載,因為該塊內(nèi)存已被占用或者發(fā)生了錯誤。(如果你正在使用救援內(nèi)核,那么明顯第一個內(nèi)核發(fā)生了錯誤)

下面這個特性應(yīng)該在可以增加CPU數(shù)量的系統(tǒng)中啟用,除非你有特別的理由不去這么做(Support for hot-pluggable CPUs (HOTPLUG_CPU))。配置工具會自動啟用這個特性。在這個特性下,你可以在一個擁有很多處理器的系統(tǒng)上激活/停用一個CPU,這并不是說在系統(tǒng)中插入新的CPU,所有的CPU必須已經(jīng)安裝在系統(tǒng)中。

下面的選項會讓我們選擇設(shè)置上面的特性是否默認(rèn)啟用(Set default setting of cpu0hotpluggable (BOOTPARAM\HOTPLUG_CPU0))。為了性能最好禁用這個特性直到需要的時候。

接著的這個調(diào)試特性允許開發(fā)者調(diào)試CPU熱插拔特性(Debug CPU0 hotplug (DEBUG_HOTPLUG_CPU0))。我禁用了它。

為了兼容舊版本的glibc(<2.3.3),可以啟用這個特性(Compat VDSO support (COMPAT_VDSO))。這適用于通過映射32位在VDSO(虛擬動態(tài)鏈接共享對象)的舊式地址。Glibc是GNC C庫;這是GNU工程實現(xiàn)的C標(biāo)準(zhǔn)庫。

如果系統(tǒng)內(nèi)核被用于一個缺乏完整功能的bootloader上,那么啟用這個特性(Built-in kernel command line (CMDLINE_BOOL))。這允許用戶在內(nèi)核自身上使用一條命令行(譯注:及其參數(shù)),那么管理員可以修復(fù)內(nèi)核問題。如果bootloader已經(jīng)有了一條命令行(像grub),那么這個特性不必啟用。

現(xiàn)在我們可以配置ACPI和電源了。首先,我們被要求選擇系統(tǒng)是否可以掛起到內(nèi)存(Suspend to RAM and standby (SUSPEND))。高級配置和電源接口(ACPI)是一種對于設(shè)備配置和電源管理的開放標(biāo)準(zhǔn)。掛起系統(tǒng)會將數(shù)據(jù)放在內(nèi)存上,同時硬件進(jìn)入一種低功耗的狀態(tài)。系統(tǒng)不會完全關(guān)機(jī)。如果用戶需要計算機(jī)進(jìn)入一個低功耗的狀態(tài),但是希望保留當(dāng)前已打開程序時是非常有用的。關(guān)閉一個系統(tǒng)會完全關(guān)閉系統(tǒng)電源并且清理內(nèi)存。

下面,我們可以啟用睡眠(Hibernation (aka 'suspend to disk') (HIBERNATION))。睡眠就像掛起模式,但是內(nèi)存中所有數(shù)據(jù)被保存到硬盤上,并且設(shè)備完全關(guān)閉。這允許用戶在電源恢復(fù)后繼續(xù)使用他們已打開的程序。

這里,我們可以設(shè)置默認(rèn)的恢復(fù)分區(qū)(Default resume partition (PM_STD_PARTITION))。很少有開發(fā)者和管理員需要這個特性。當(dāng)系統(tǒng)從睡眠中恢復(fù)時,他會加載默認(rèn)的恢復(fù)分區(qū)。

在這之后,我們可以啟用"Opportunistic sleep (PM_AUTOSLEEP)"。這會讓內(nèi)核在沒有活躍的喚醒調(diào)用被調(diào)用時進(jìn)入掛起或者睡眠狀態(tài)。這意味著空閑的系統(tǒng)將會進(jìn)入掛起模式以節(jié)省電源。我啟用了這個特性。

接下來,是詢問關(guān)于"User space wakeup sources interface (PM_WAKELOCKS)"。啟用這個特性將會允許喚醒源對象被激活、停用,并通過基于sysfs接口由用戶空間創(chuàng)建。喚醒源對象會追蹤喚醒事件源。

sysfs是位于/sys/的虛擬文件系統(tǒng)。這個虛擬文件系統(tǒng)包含了關(guān)于設(shè)備的信息。當(dāng)進(jìn)入/sys/時,它似乎是硬盤的一部分,但是這個并不是一個真正的掛載點。這些文件實際存在于內(nèi)存中。這與/proc/是同一個概念。

注意:"/sysfs/"是一個文件夾,而"/sysfs"則可以是一個根目錄下名為"sysfs"的文件。許多Linux用戶會混淆這兩種命名約定。

如果啟用了上面的選項,那么你可以設(shè)置"Maximum number of user space wakeup sources (0 = no limit) (PM_WAKELOCKS_LIMIT)"。最好選擇默認(rèn),那么你就可以啟用垃圾收集器(Garbage collector for user space wakeup sources (PM_WAKELOCKS_GC))。垃圾收集是一種內(nèi)存管理方式。

注意:在需要更多內(nèi)存的系統(tǒng)中,通常最好在大多數(shù)情況下盡可能啟用垃圾收集。不然內(nèi)存會消耗得更快且雜亂。

下一個電源選項關(guān)于IO設(shè)備(Run-time PM core functionality (PM_RUNTIME))。這個選項允許IO硬件在運行時進(jìn)入低功耗狀態(tài)。硬件必須支持這個才行,不是所有硬件都支持。

與其他許多內(nèi)核組件一樣,如果啟用了(Power Management Debug Support),電源管理代碼同樣有調(diào)試支持。我禁用了這個選項。

注意:注意這些我引用/顯示的配置工具上的選項或問題不再顯示選項代碼(括號間所有的大寫字母)。這是因為我沒有使用基于ncurses的配置工具(make menuconfig)而是使用默認(rèn)工具去得到選項、設(shè)置和問題。記住,"make config"缺乏保存當(dāng)前進(jìn)度的能力。

在這之后,配置工具會啟用"ACPI (Advanced Configuration and Power Interface) Support"。最好允許這個電源管理規(guī)范。通常配置工具會啟用這個特性。

為了允許向后兼容,啟用"Deprecated /proc/acpi files"。新的實現(xiàn)使用更新的在/sys下的實現(xiàn)。我禁用了這個選項。一個相似的問題詢問關(guān)于"Deprecated power /proc/acpi directories"。通常上,如果你禁用了這些文件,你不再需要這些文件夾,所以我禁用了他們。一些舊的程序可能會使用這些文件和文件夾。如果你在給舊的的Linux系統(tǒng)上編譯一個新的內(nèi)核,最好啟用這個選項。

下面,我們有另外一個文件接口可以啟用或者禁用(EC read/write access through)。這會在/sys/kernek/debug/ec下創(chuàng)建一個嵌入式控制器接口。嵌入式控制器通常在筆記本中讀取傳感器,內(nèi)核代碼通過系統(tǒng)的BIOS表提供的ACPI代碼訪問嵌入式控制器。

這里有另外一個可以啟用或者禁用的向后兼容特性 (Deprecated /proc/acpi/event support)。acpi守護(hù)進(jìn)程可能會讀取/proc/api/event來管理ACPI生成的驅(qū)動。不同于這個接口,守護(hù)進(jìn)程使用netlink事件或者輸入層來得到送給用戶空間的事件,acpi守護(hù)進(jìn)程管理ACPI事件。

下一個選項允許開發(fā)者啟用一個特性,它會通知內(nèi)核現(xiàn)在使用的是交流電源(AC Adapter)還是電池。下一個選項從/proc/acpi/battery/ (Battery)中提供電池信息。

為了內(nèi)核在電源/睡眠按鈕按下或者蓋子合上時不同表現(xiàn),啟用這個“按鈕”選項(Button)。這些事件在/proc/acpi/event/中控制。比如這樣的行為,如果在用戶賬戶的電源選項啟用了掛起,當(dāng)筆記本電腦的蓋子關(guān)閉后系統(tǒng)將會掛起。

下一個ACPI擴(kuò)展是針對顯卡的(Video)。

ACPI風(fēng)扇控制可以被啟用/禁用(Fan)。最好啟用ACPI風(fēng)扇管理,這有助于節(jié)能。

我們正在進(jìn)一步配置內(nèi)核中,但在接下來的文章中還有更多要做。

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

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

2013-12-18 14:44:10

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-11-07 13:59:56

Linux內(nèi)核

2013-12-18 11:14:57

Linux內(nèi)核Linux Kerne

2013-11-05 09:55:37

2013-10-31 14:09:14

Linux內(nèi)核

2013-10-31 14:15:10

2013-11-25 17:39:17

Linux內(nèi)核PCIACPI

2013-12-20 13:08:12

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

2013-10-31 16:29:10

Linux內(nèi)核

2009-12-09 09:27:35

linux內(nèi)核

2021-02-20 06:08:07

LinuxWindows內(nèi)核

2019-04-01 17:43:21

Linux內(nèi)核網(wǎng)關(guān)設(shè)計

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-02-25 09:50:01

LinuxWindows內(nèi)核
點贊
收藏

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