- Linux內(nèi)核完全注釋(20周年版·第2版)
- 趙炯編著
- 1090字
- 2024-05-10 12:20:14
前言
本書是一本有關(guān)Linux操作系統(tǒng)內(nèi)核工作原理的入門讀物,主要目標是使用盡量少的篇幅和有限的學(xué)習(xí)時間,對完整的Linux內(nèi)核源代碼進行解剖,使讀者對操作系統(tǒng)的基本功能和實現(xiàn)方式有一個全面的理解。
目前已有的闡述Linux內(nèi)核的書籍,均盡量選用Linux內(nèi)核的新版本進行描述,但由于這些版本的內(nèi)核源代碼龐大,只能對源代碼進行選擇性的講解,許多實現(xiàn)細節(jié)被忽略。本書則對完整的Linux內(nèi)核源代碼進行了全面解剖。表面看來,本書對Linux早期內(nèi)核版本注釋的內(nèi)容似乎過時,但通過學(xué)習(xí)你會發(fā)現(xiàn),利用本書學(xué)習(xí)Linux內(nèi)核,由于源代碼短小精干,因此會有極高的學(xué)習(xí)效率,能夠做到事半功倍、快速入門,并為進一步選擇新內(nèi)核學(xué)習(xí)打下堅實的基礎(chǔ)。
正如Linux系統(tǒng)的創(chuàng)始人Linus所說,要理解一個系統(tǒng)的真正運行機制,一定要閱讀其源代碼。系統(tǒng)本身是一個整體,具有很多看似不重要的細節(jié)。只有在詳細閱讀過完整的內(nèi)核源代碼之后,才會對整個系統(tǒng)的運作過程有深刻的理解。以后再選擇較新內(nèi)核源代碼進行學(xué)習(xí)時,也不會碰到大問題,基本上都能順利地理解新代碼的內(nèi)容。
為了幫助讀者提高學(xué)習(xí)效率,作者通過對多個Linux內(nèi)核版本進行比較和選擇,最終選擇了與目前Linux內(nèi)核基本功能較為相近,又非常短小的0.11版作為入門學(xué)習(xí)的最佳版本。0.11版內(nèi)核源代碼只有一萬四千行左右(325KB),其中包括的內(nèi)容基本上都是Linux系統(tǒng)的精髓。
在閱讀本書時,讀者應(yīng)該具備基本的有關(guān)80x86處理器編程和相關(guān)外圍硬件的知識,還應(yīng)具備使用Linux系統(tǒng)的初級技能。由于Linux最早是根據(jù)M. J. Bach的《UNIX操作系統(tǒng)設(shè)計》一書的基本原理開發(fā)的,因此若能適當參考該書,則更有利于對源代碼的理解。
在對每個程序進行描述時,首先說明程序的主要用途、輸入輸出參數(shù)以及與其他程序的關(guān)系,然后在程序中對代碼進行詳細注釋。注釋時對源代碼和原注釋不做任何改動。在代碼之后對程序中出現(xiàn)的一些語句或硬件方面的相關(guān)知識進行說明。
本書所需的一些基本概念均分布在各章中,這樣編排主要是為了能夠使讀者方便地找到相關(guān)信息,而且在結(jié)合源代碼閱讀時,對一些基本概念能有更深的理解。另外,由于篇幅所限,書中對內(nèi)核源代碼多數(shù)文件開始處的版權(quán)信息做了省略,但程序中的行號仍然按原來的編號。
最后要說明的是,當你已經(jīng)完全理解了本書解說的一切內(nèi)容時,并不代表你已經(jīng)成為一個Linux行家了,你只是剛剛踏上Linux的征途,具有了成為一個Linux高手的初步知識。這時你應(yīng)該去閱讀更多的源代碼。
本書讀者群的定位是一些知曉Linux系統(tǒng)一般使用方法或具有一定編程經(jīng)驗,但比較缺乏閱讀目前最新內(nèi)核源代碼的基礎(chǔ),又急切希望能夠進一步理解類UNIX操作系統(tǒng)內(nèi)核工作原理和實際代碼實現(xiàn)的愛好者。在閱讀時可以參考為本書專門開設(shè)的網(wǎng)站www.oldlinux.org。從中可以下載到很多學(xué)習(xí)資料和上機實習(xí)軟件。
作者
- Learning OpenDaylight
- Linux設(shè)備驅(qū)動開發(fā)詳解(第2版)
- Linux自動化運維:Shell與Ansible(微課版)
- 細說Linux基礎(chǔ)知識
- 分布式系統(tǒng)設(shè)計實踐
- Mastering Windows 8 C++ App Development
- Ubuntu Linux操作系統(tǒng)實用教程
- iOS 10快速開發(fā):18天零基礎(chǔ)開發(fā)一個商業(yè)應(yīng)用
- Linux系統(tǒng)管理初學(xué)者指南:基于CentOS 7.6
- Website Development with PyroCMS
- Serverless Architectures with Kubernetes
- Windows Azure實戰(zhàn)
- Mastering AWS CloudFormation
- Android Telephony原理解析與開發(fā)指南
- C#實用教程(第2版)