歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux內核 >> 戴文的Linux內核專題

戴文的Linux內核專題

日期:2017/2/28 14:38:58   编辑:Linux內核

譯者按:

本文作者戴文.科利爾.約翰遜(Devyn Collier Johnson)今年才19歲,但是他在Linux內核、人工智能、編程語言方面擁有豐富的經驗,本文是其在linux.org上連載的一系列關於內核的文章。文章寫的深入淺出,本站不揣淺陋,由LCTT成員geekpi進行了系列翻譯,以分享給廣大Linux愛好者。

在1991年,一個叫林納斯·本納第克特·托瓦茲的芬蘭學生制作了一個現在非常流行的操作系統的內核。他於1991年9月發布了Linux 0.01,並且於1992年以GPL許可證的方式授權了該內核。GNU通用許可證(GPL)允許人們使用、擁有、修改,以及合法和免費的分發源代碼。這使得內核變得非常流行,因為任何人都可以免費地下載。現在任何人都可以生成他們自己的內核,這有助於人們學習如何獲取、編輯、配置、編譯並安裝Linux內核。

內核是操作系統的核心。操作系統是一系列的管理硬件並允許用戶在電腦上運行應用的程序。內核控制著硬件和應用。應用並不直接和硬件打交道,而是首先和內核交互。總之,軟件運行在內核上,而內核操作著硬件。沒有內核,電腦就是一個沒用的物件。

用戶制作他們自己的內核有各種各樣的原因。許多用戶也許想要一個只包含他們需要的代碼的系統內核。比如說我的內核包含了火線設備驅動,但是我的電腦缺乏這些端口。當系統啟動時,時間和內存就會浪費在那些我系統上並沒有安裝的設備上。如果我想要簡化我的內核,我會制作自己不包含火線驅動的內核。至於另外一個理由,某個用戶可能擁有一台有特殊硬件的設備,但是最新的Ubuntu版本中的內核缺乏所需的驅動。這個用戶可以下載最新的內核(比當前Ubuntu的Linux內核要新),並制作他們自己的有相應驅動的內核。不管怎樣,這兩個原因是用戶想要制作自己的Linux內核的普遍原因。

在下載內核前,我們應該討論一些重要的術語和事實。Linux內核是一個宏內核,這意味著整個操作系統都運行在內核預留的內存裡。說的更清楚一些,內核是放在內存裡的。內核所使用的空間是內核預留的。只有內核可以使用預留的內核空間。內核擁有這些內存空間,直到系統關閉。與內核空間相對應的還是用戶空間。用戶空間是內存上用戶程序擁有的空間。比如浏覽器、電子游戲、文字處理器、媒體播放器、壁紙、主題等都是放在內存裡的用戶空間。當一個程序關閉的時候,任何程序都可以使用新釋放的空間。在內核空間,一旦內存被占用,則沒有任何其他程序可以使用這塊空間。

Linux內核也是一個搶占式多任務內核。這意味該內核可以暫停一些任務來保證任何應用都有機會來使用CPU。舉個例子,如果一個應用正在運行但是正在等待一些數據,內核會把這個應用暫停並允許其他的程序使用新釋放的CPU資源,直到數據到來。否則的話,系統就會浪費資源給那些正在等待數據或者其他程序執行的的任務。內核將會強制程序去等待或者停止使用CPU。沒有內核的允許,應用程序不能脫離暫停或者使用CPU。

Linux內核使得設備作為文件顯示在/dev文件夾下。舉個例子,USB端口位於/dev/bus/usb。硬盤分區則位於/dev/disk/分區。因為這個特性,許多人說:“在Linux上,一切皆文件”。舉個例子,如果一個用戶想要訪問在存儲卡上的數據,他們能通過設備文件訪問這些數據。(譯注:此處原文是“If a user wanted to access data on their memory card, for example, they cannot access the data through these device files.”,但根據上下文和實際經驗看,應該是“can 能”

Linux內核是可移植的。可移植性是Linux流行的一個最重要的原因。可移植性使得內核可以工作在各種處理器和系統上。一些內核支持的處理器的型號包括:Alpha、AMD、ARM、C6X、Intel、x86、Microblaze、MIPS、PowerPC、SPARC、UltraSPARC等,這還不是全部的列表。

在引導文件夾(/boot),用戶會看到諸如“vmlinux”或者“vmlinuz”的文件。這兩者都是已編譯的Linux內核。以“z”結尾的是已壓縮的。“vm”代表虛擬內存。在SPARC處理器的系統上,用戶可以看見一個zImage文件。一小部分用戶可以發現一個bzImage文件,這也是一個已壓縮的Linux內核。無論用戶有哪個文件,這些引導文件都是不能更改的,除非用戶知道他們正在做什麼。否則系統會變成無法引導,也就是說系統啟動不了了。

內核源代碼就是程序編碼。有了源代碼,程序員可以修改內核並能觀察到內核是如何工作的。

下載內核:

現在我們想更多地了解了內核,就要下載內核源代碼了。進入kernel.org並點擊那個巨大的下載按鈕。下載完成後,解壓下載的文件。

對於本文,我使用的源代碼是Linux kernel 3.9.4.這個文章系列的所有指導對於所有的內核版本是相同的(或者非常相似的)

更多精彩內容請看下一頁:http://www.linuxidc.com/Linux/2013-09/92120p2.htm

Linux Kernel 的詳細介紹:請點這裡
Linux Kernel 的下載地址:請點這裡

推薦閱讀:

怎樣在 Ubuntu 上安裝 Linux 3.11 內核 http://www.linuxidc.com/Linux/2013-09/89674.htm

Ubuntu 13.10 (Saucy Salamander) 內核已升級至 Linux Kernel 3.10 RC5 http://www.linuxidc.com/Linux/2013-06/86110.htm

Linux內核參數設置文件sysctl.conf http://www.linuxidc.com/Linux/2013-08/89384.htm

Copyright © Linux教程網 All Rights Reserved