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

Devyn的Linux內核專題:配置內核(1)

系統 Linux
現在我們已經了解了內核,現在我們可以進入主要工作:配置并編譯內核代碼。

現在我們已經了解了內核,現在我們可以進入主要工作:配置并編譯內核代碼。配置內核代碼并不會花費太長時間。配置工具會詢問許多問題并且允許開發者配置內核的每個方面。如果你有不確定的問題或者特性,你最好使用配置工具提供的默認值。本系列教程會使讀者逐步了解配置內核的整個過程。

[[88844]]

配置代碼前需要在源文件的文件夾內打開一個終端。當終端打開后,基于你喜好的配置界面,這里有幾種不同的配置方法:

  • make config - 純文本界面 (最常用的選擇)。
  • make menuconfig - 基于文本彩色菜單和單選列表。這個選項可以加快開發者開發速度。需要安裝ncurses(ncurses-devel)。
  • make nconfig - 基于文本的彩色菜單。需要安裝curses (libcdk5-dev)。
  • make xconfig - QT/X-windows 界面。需要安裝QT。
  • make gconfig - Gtk/X-windows 界面。需要安裝GTK。
  • make oldconfig - 純文本界面,但是其默認的問題是基于已有的本地配置文件。
  • make silentoldconfig - 和oldconfig相似,但是不會顯示配置文件中已有的問題的回答。
  • make olddefconfig -和silentoldconfig相似,但有些問題已經以它們的默認值選擇。
  • make defconfig - 這個選項將會創建一份以當前系統架構為基礎的默認設置文件。
  • make ${PLATFORM}defconfig - 創建一份使用arch/$ARCH/configs/${PLATFORM}defconfig中的值的配置文件。
  • make allyesconfig - 這個選項將會創建一份盡可能多的問題回答都為‘yes’的配置文件。
  • make allmodconfig - 這個選項將會創建一份將盡可能多的內核部分配置為模塊的配置文件。
注意:內核代碼可以放進內核自身,也可以成為一個模塊。例如,用戶可以將藍牙驅動作為一個模塊加入(獨立于內核),或者直接放到內核栗,或者完全不加藍牙驅動。當代碼放到內核本身時,內核將會請求更多的內存并且啟動會花費更長的時間。然而,內核會執行的更好。如果代碼作為模塊加入,代碼將會一直存在于硬盤上直到被需要時加載。接著模塊被加載到內存中。這可以減少內核的內存使用并減少啟動的時間。然而,因為內核和模塊在內存上相互獨立所以會影響內核的性能。另一種選擇是不添加一些代碼。舉例來說,內核開發人員假如知道系統永遠都不會使用藍牙設備,因此這個驅動就可以不加到內核中。這提升了內核的性能。然而,如果用戶之后需要藍牙設備,那么他么需要安裝藍牙模塊或者升級內核才行。
  • make allnoconfig - 這個選項只會生成內核所必要代碼的配置文件。它對盡可能多的問題都回答no。這有時會導致內核無法工作在為編譯該內核的硬件上。
  • make randconfig - 這個選項會對內核選項隨機選擇(譯注:這是做什么用途的?!)。
  • make localmodconfig - 這個選項會根據當前已加載模塊列表和系統配置來生成配置文件。
  • make localyesconfig - 將所有可裝載模塊(LKM)都編譯進內核。

譯者注:這里與原文 ‘This will set all module options to yes - most (or all) of the kernel will not be in modules’的意思不同,作者也作出了解釋:

http://www.linux.org/threads/the-linux-kernel-configuring-the-kernel-part-1.4274/#post-13307)&#12290

貼士:最好使用“make menuconfig”,因為用戶可以保存進度。“make config”不會提供這樣的便利,因為配置過程會耗費大量時間。


配置:

大多數開發者選擇使用“make menucongfig”或者其他圖形菜單之一。當鍵入上述配置命令后,第一個問題,是受否將內核編譯成64位。選項有“Y”、“n”和“?”。問號用來解釋這個問題,“n”代表這個問題回答否(no),"Y"代表這個問題回答是(yes)。在這個教程里,我選擇是。 這里我輸入"Y"(這里是大小寫敏感的)并輸入回車。

注意:當內核在32位系統上編譯時,編譯工具會詢問內核是否編譯成32位。第一個問題在不同的處理器上不一樣。

下一行顯示的是"Cross-compiler tool prefix (CROSS_COMPILE) []"(交叉編譯器工具前綴)。如果你不是做交叉編譯就直接按下回車。如果你正在交叉編譯,對ARM系統輸入像"arm-unknown-linux-gnu-",對64位PC輸入像"x86_64-pc-linux-gnu-"的字樣。對其他處理器而言還有許多其他可能的命令,但是這個表太大了。一旦一名開發者知道他們想要支持的處理器,很容易就可研究出處理器需要的命令。

注意:交叉編譯是為別的處理器編譯代碼。比如,一臺Intel系統正編譯著不在Intel處理器上運行的程序,比如,這個系統可能正在編譯著要在ARM或AMD處理器上運行的代碼。

注意:每一項選擇會改變接下來顯示什么問題及何時顯示。我會(在教程里)包含上我的選擇讓讀者可以在他們自己的系統上跟上配置的進度。

接下來,用戶會看到“Local version - append to kernel release (LOCALVERSION) []”(本地版本號,附加到內核版本號后面)。這使開發人員可以給定一個特殊版本號或命名他們自定義的內核。我將輸入“LinuxDotOrg”,這樣,內核版本會顯示為“3.9.4-LinuxDotOrg”。接下來,配置工具會詢問“Automatically append version information to the version string (LOCALVERSION_AUTO) [N/y/?]”(是否自動添加版本信息到版本號后)。如果本地有一個git版本庫,git的修訂號會被添加到版本號后面。這個例子中我們沒有使用git,所以我回答"no"。不然git修訂號將會追加到版本號中。還記得vmlinuz和幾個類似的文件么?好了,下一個問題就是問使用哪一種格式壓縮內核。開發人員可以從五個選項中選擇一個。它們是

  1. Gzip (KERNEL_GZIP)
  2. Bzip2 (KERNEL_BZIP2)
  3. LZMA (KERNEL_LZMA)
  4. XZ (KERNEL_XZ)
  5. LZO (KERNEL_LZO)

Gzip是默認值,所以我選擇"1"并按回車。每種壓縮格式和其他壓縮格式相比都有更高或者更低的壓縮比。更好的壓縮比意味著更小的體積,但是與低壓縮比文件相比,它解壓時需要更多的時間。

現在這行顯示“Default hostname (DEFAULT_HOSTNAME) [(none)]”(默認主機名)。這里可以配置主機名。通常地,開發者這行留空(我這里留空),以便以后Linux用戶可以自己設置他們的主機名。

接下來開發者可以啟用或者禁用交換分區。Linux使用一個叫做"swap space"的獨立分區來使用虛擬內存。這相當于Windows中的頁面文件。典型地,開發者在這行“Support for paging of anonymous memory (swap) (SWAP) [Y/n/?]”(是否支持匿名內存換頁)回答“Y”。

接下來的一行(System V IPC (SYSVIPC) [Y/n/?])詢問內核是否支持IPC。進程間通信使進程間可以通信和同步。最好啟用IPC不然許多程序將無法工作。這個問題回答“Y”會使配置工具接下來問“POSIX Message Queues (POSIX_MQUEUE) [Y/n/?]”(是否使用POSIX消息隊列),這個問題只會在IPC啟用后看見。POSIX消息隊列是一種給每條消息一個優先級的消息隊列(一種進程間通信形式)。默認的選擇是“Y”。按回車選擇默認選擇(以大寫選擇指示默認)。

下一個問題“open by fhandle syscalls (FHANDLE) [Y/n/?]”(是否使用文件句柄系統調用來打開文件)是問當有需要進行文件系統操作的時候,程序是否允許使用文件句柄而不是文件名進行。默認上,這個選擇是“Y”。

有時,開發者在做了一些選擇后,某些問題會自動回答。比如,下一個問題“Auditing support (AUDIT) [Y/?]”(是否支持審計)會在沒有提示的情況下自動回答,因為先前的選項需要這個特性。審計支持會記錄所有文件的訪問和修改。下一個關于審計的問題“Enable system-call auditing support (AUDITSYSCALL) [Y/n/?]”(是否啟用系統調用審計支持)。如果啟用,所有的系統調用都會記錄下來。如果開發者想要更好的性能,那么最好盡可能地禁用審計特性并且不把它加入內核。而另外一些開發者可能為了安全監控而啟用審計。這個問題我選擇“n”。下一個審計方面的問題“Make audit loginuid immutable (AUDITLOGINUIDIMMUTABLE) [N/y/?]”(是否要審計進程身份ID不可變)是詢問進程是否可以改變它們的loginuid(LOGIN User ID),如果啟用,用戶空間的進程將無法改變他們的loginuid。為了更好的性能,我們這里禁用這個特性。(譯注:對于使用systemd這樣的系統,其是通過中央進程來重啟登錄服務的,設置為“y”可以避免一些安全問題;而使用較舊的SysVinit和Upstart的系統,其需要管理員手工重啟登錄服務,應該設置為“N”)

注意:當通過“make config”配置時,這些通過配置工具回答的問題會顯示出來但是用戶無法改變答案。當通過"make menuconfig"配置時,無論用戶按任何鍵都無法改變選項。開發者不需要去改變這些選項,因為之前的選擇決定了另外一個問題的選擇。

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

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

2013-11-25 14:07:11

Linux內核內核特性

2013-11-07 13:59:56

Linux內核

2013-11-12 11:01:46

Linux內核

2013-11-06 13:03:10

Linux內核

2013-10-31 14:09:14

Linux內核

2013-11-05 09:55:37

2013-12-18 14:44:10

2013-10-31 14:15:10

2013-11-25 17:39:17

Linux內核PCIACPI

2013-12-18 11:14:57

Linux內核Linux Kerne

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內核

2011-01-14 16:23:46

Linux內核

2010-03-02 09:17:32

Linux local

2022-06-10 10:37:33

Linux

2013-05-13 09:52:52

Windows內核Linux內核

2010-01-13 09:58:42

2021-02-25 09:50:01

LinuxWindows內核
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 成人国产免费视频 | 精品视频久久久久久 | 久久夜视频 | 国产精品亚洲一区二区三区在线 | 97国产在线观看 | 日本在线一区二区 | 久久男人天堂 | 一本一道久久a久久精品综合蜜臀 | 国产激情一区二区三区 | 欧美日韩成人影院 | 亚洲色图综合 | 国产精品99999| 香蕉视频一区二区 | av一区二区三区四区 | 欧美二区在线 | 天堂久 | 亚洲欧美一区二区三区视频 | 一区在线视频 | 精品久久久久久久久久久 | 午夜精品一区 | 成人亚洲在线 | 国产精品成人一区二区三区 | 一区二区三区免费 | av中文字幕在线观看 | 成人国产精品免费观看视频 | 天天操天天干天天透 | 99精品久久99久久久久 | 中文字幕在线观看 | 毛片一级片 | 99精品国产一区二区三区 | 精品欧美一区二区三区久久久 | 人人看人人草 | 欧美成人猛片aaaaaaa | 蜜桃视频成人 | 精品成人在线 | 精品在线视频播放 | 成人一区二区在线 | 日韩一区二区三区精品 | 午夜免费福利片 | 欧美性video 精品亚洲一区二区 | 亚洲国产成人精品女人久久久 |