成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Devyn的Linux內核專題:配置內核特性

系統 Linux
Linux內核擁有許多可以配置的特性,接下來我們還有許多要配置。

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

[[90380]]

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

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

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

這是一個應該被啟用的有用的安全方式(Enable seccomp to safely compute untrusted bytecode (SECCOMP))。這個安全特性在使用非可信的字節碼的數值計算(執行大量計算的軟件)中使用。字節碼(可移植代碼)是一種被解釋器有效讀取的代碼。字節碼不是源代碼,但它也不是匯編或者二進制代碼。非可信的代碼是一種可能導致系統/數據損壞的代碼。可能會破壞系統或者毀壞數據的非可信的代碼通過seccomp被隔離在獨立的地址空間中。這是通過文件描述符傳輸的方法。通常上,最好啟用這個安全特性,即使會有一些性能開銷,除非你在制作一個需要榨干性能的內核。

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

提示:要知道你使用的版本號,在命令行內鍵入"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通常來講對許多系統而言太快了。定時器頻率決定著定時器中斷被使用的頻率。這有助于在時間線上的系統操作。程序并不是隨機地執行一條命令,相反它們會等到定時器中斷結束。這保持著有組織和結構的處理。頻率為100Hz的定時器中斷之間的時間是10ms,250Hz是4ms,1000Hz是1ms。現在許多開發者會馬上想到1000Hz是最好的。好吧,這取決于你對開銷的要求。一個更大的定時器頻率意味著更多的能源消耗和更多的能源被利用(在定時器上),產生更多的熱量。更多的熱量意味著硬件損耗的更快。

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

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

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

 

  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的調試特性(kernel crash dumps (CRASH_DUMP))。當kexec被調用時,一個崩潰信息(crash dump)會生成。除非你有必要調試kexec,否則這個并不必要。我禁用了這個特性。

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

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

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

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

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

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

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

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

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

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

這里,我們可以設置默認的恢復分區(Default resume partition (PM_STD_PARTITION))。很少有開發者和管理員需要這個特性。當系統從睡眠中恢復時,他會加載默認的恢復分區。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

我們正在進一步配置內核中,但在接下來的文章中還有更多要做。

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

責任編輯:奔跑的冰淇淋 來源: Linux中國
相關推薦

2013-12-18 14:44:10

2013-11-05 09:58:39

Linux內核

2013-11-12 11:01:46

Linux內核

2013-11-06 13:03:10

Linux內核

2013-11-07 13:59:56

Linux內核

2013-12-18 11:14:57

Linux內核Linux Kerne

2013-11-05 09:55:37

2013-10-31 14:09:14

Linux內核

2013-10-31 14:15:10

2013-11-25 17:39:17

Linux內核PCIACPI

2013-12-20 13:08:12

Linux內核服務器

2013-10-31 16:29:10

Linux內核

2009-12-09 09:27:35

linux內核

2021-02-20 06:08:07

LinuxWindows內核

2019-04-01 17:43:21

Linux內核網關設計

2011-01-14 16:23:46

Linux內核

2010-03-02 09:17:32

Linux local

2013-05-13 09:52:52

Windows內核Linux內核

2010-01-13 09:58:42

2021-02-25 09:50:01

LinuxWindows內核
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲欧美视频一区 | 国产成人免费一区二区60岁 | 中文字幕一区二区三区四区 | 91麻豆精品国产91久久久久久久久 | 欧美日韩一区在线播放 | 欧美精品一区二区三区在线 | 国产精品视频一区二区三区, | 99精品国产一区二区三区 | 国产精品国产三级国产aⅴ中文 | 日韩中文字幕在线观看 | 激情欧美一区二区三区中文字幕 | 青青伊人久久 | 国产精品美女久久久久aⅴ国产馆 | 国产精品一区在线观看你懂的 | 2020亚洲天堂 | 久久久成人精品 | 精品欧美一区二区中文字幕视频 | 久久国产福利 | 亚洲福利av | 视频一二区 | 亚洲一区二区在线视频 | 精品1区2区 | 亚洲精品在线视频 | 91久久久久久久 | 日本理论片好看理论片 | 一级少妇女片 | 欧美精品在线免费观看 | 亚洲成人高清 | 一区二区免费 | 亚洲视频在线观看 | 99久久久无码国产精品 | 亚洲视频国产视频 | www.一区二区三区.com | 亚洲风情在线观看 | 九九久久国产 | 91中文 | 久久综合狠狠综合久久综合88 | 亚洲精品一区二区三区中文字幕 | 日韩av电影院 | 成人免费黄色片 | 亚洲欧美激情视频 |