- 奔跑吧 Linux內核
- 張天飛
- 1572字
- 2019-01-05 04:11:44
推薦序二
非常榮幸接到張天飛的邀請,為《奔跑吧Linux內核》一書寫序。
初識天飛,大概是十幾年前了。那時的天飛大學畢業不久,我已經當了十多年的大學教師。由于共同的愛好和熱情,我們有緣在計算機底層系統軟件,尤其是Linux操作系統內核這一神秘而充滿樂趣的領域中一起摸爬滾打、專研內核技術。跟他的名字一樣,天飛給我的印象就像一個活力四射的雄鷹,有著渴望求知的翅膀,永遠不知疲倦地在Linux內核這一廣闊天空自由自在地翱翔。雖然我年長于天飛,但是我們習慣稱呼他為“飛哥”,因為他有一個很酷的網名叫Figo,我猜想他是足球天才菲戈的粉絲。又正巧我也非常喜愛足球,這加深了我們惺惺相惜的戰斗情誼。十幾年前,我們倆在一個“戰壕”里工作了很長一段時間,并且合作出版了一本嵌入式系統相關的教材書籍。
轉眼間,當年的飛哥如今已經成為穩健成熟的“笨叔叔”,從事Linux內核和驅動開發有十余年的時間,也曾在多家芯片公司從事過手機芯片底層軟件開發和客戶支持工作,還從事Android手機底層軟件開發和項目管理工作。十幾年的技術浸潤,使得他從身體到靈魂都烙上Linux的印記。從一個飛天少年,到一個內功深厚的Linux“笨企鵝”,他永遠在Linux內核的自由世界里不停地奔跑。這一次,他還要帶上他的作品,跟廣大讀者朋友一起分享Linux內核的樂趣。
言歸正傳,說一說《奔跑吧Linux內核》。在物聯網、大數據、云計算這些充滿創新的領域,操作系統作為計算機系統軟件的基石,吸引著無數技術愛好者投身其中。社會在奔跑,技術也在奔跑,Linux內核發展至今已經越來越復雜、越來越龐大。許多新技術、新算法、新補丁不斷融入到Linux內核之中,同時也有許多內核初學者和開發工程師加入到研究Linux內核的隊伍之中。要充分閱讀和理解Linux內核代碼越來越不容易。各種Linux內核學習經典著作如同不滅的火種,點燃學習者思想的火把,使他們在Linux內核這條崎嶇不平的道路上勇敢追尋理想、探索光明。這些經典著作,我認為大致可以分為3類。
(1)內核原理類:從理論層面上為讀者介紹操作系統設計與實現中所涉及的技術原理,代表作有《操作系統:精髓與設計原理》《現代操作系統》《操作系統概念》。
(2)內核剖析類:從代碼實現角度為讀者分析操作系統主要模塊的設計與實現,代表作有《FreeBSD操作系統設計與實現》《Linux內核設計與實現》《深入理解Linux內核》。
(3)動手實踐類:從零開始帶領讀者實現一個小型內核,代表作有《Orange's:一個操作系統的實現》《30天自制操作系統》,以及我的拙著《操作系統設計與實現》。
與上述這些書相比,《奔跑吧\2inux內核》有著自己的獨特之處。
第一,該書采用問題導向式的內核源代碼分析方式。這是非常有益的嘗試,顛覆了傳統內核分析書籍的做法。我們都知道,Linux內核代碼動輒幾百萬行,閱讀起來時間成本呈指數式上升,難免會讓讀者望而卻步或者昏昏欲睡。本書作者創新性地在每一章的開頭以提問的方式拋出相應問題,以吸引讀者的注意力和好奇心。而且這些問題非常有趣并且貼近讀者需求,它們有的來源于作者長期實際工程項目中遇到的問題并抽象總結,有的是作者在閱讀和學習內核代碼時產生過的疑問,有的是作者及其朋友在相關面試中關于\2inux內核的題目。
第二,該書基于最新的Linux內核版本,力求反映Linux內核社區最新的開發技術,一些熱點話題令我印象深刻,例如內存管理漏洞Dirty COW的分析、手機操作系統Android 7.1.1中各種新算法等內容。
第三,作者別出心裁地在本書開篇提供一份Linux內核奔跑卷,讀者可以將它作為水平測量、面試題目準備之用,希望能提高讀者興趣,讓讀者在快樂中開始奔跑。
第四,該書內容選擇少而精,以ARM32和ARM64體系結構為基礎,重點介紹了Linux內核中最基本最常用的內存管理、進程管理、并發與同步、中斷管理等模塊。
相信本書的特色和內容將使讀者受益匪淺。
自由軟件的精神在天上飛,Linux的企鵝在地上跑。非常誠摯地歡迎大家跟著昔日的“飛哥”、現在的“笨叔叔”一起翱翔、一起奔跑!
“奔跑吧!Linux內核學習者!”
陳文智
2017年6月于浙江大學
- The Complete Rust Programming Reference Guide
- HTML5移動Web開發技術
- Dynamics 365 Application Development
- Android 9 Development Cookbook(Third Edition)
- R語言游戲數據分析與挖掘
- Ray分布式機器學習:利用Ray進行大模型的數據處理、訓練、推理和部署
- 區塊鏈技術進階與實戰(第2版)
- PHP 7從零基礎到項目實戰
- Deep Learning with R Cookbook
- 單片機原理及應用技術
- Training Systems Using Python Statistical Modeling
- Exploring SE for Android
- Clojure High Performance Programming(Second Edition)
- 3D Printing Designs:The Sun Puzzle
- Scratch編程從入門到精通