FreeBSD操作系統設計與實現,內容回顧與作者采訪

jopen 9年前發布 | 22K 次閱讀 FreeBSD


Pearson/Addison-Wesley Professional 出版的 《FreeBSD操作系統設計與實現》 歷經人們的期盼而終于完成,它是FreeBSD內核的權威指南。第二版涵蓋了從FreeBSD 5 到11之間的所有主要更新,根據發行注記,相比于第一版大范圍的修改了三分之一的內容,而且還有三分之一的內容是新增加的。

第二版要明顯的比第一版增加了很多內容,光頁數都超過900多頁,而且覆蓋了FreeBSD的諸如虛擬化,沙箱,NFSv4,以及ZFS支持等等很多新的特性。

書的第一章介紹了FreeBSD的發展歷史,第二章簡要的概括了FreeBSD內核的所有組件,剩下的章節即是根據第二章的結構引導讀者進入每個題目的細節。

此書采用的是按照FreeBSD的技術架構由內而外的來講述的,從內核的服務開始,繼而是進程和內容管理,然后是I/O和設備,文件系 統,IPC(進程間通信),網絡協議,最后是系統的啟動與關閉。內容豐富,知識密集,以清晰明了的方式講述技術話題,書中采用了大量的偽代碼,示意圖,表 格來說明主要的觀點,每一章均是以日常見到的主題開始介紹,然后深入擴展到細節。

盡管此書深入到FreeBSD的底層細節,但仍然提供了很多操作系統設計和概念的深刻洞見,這不僅對于FreeBSD的開發者有吸引力,任何對現代操作系統的思考和討論有興趣的人都是有益處的。

InfoQ采訪了本書的作者之一 Marshall Kirk McKusick

InfoQ:FreeBSD操作系統設計與實現描述了FreeBSD內部的運作機理,而且提供了大量翔實的資料,您此書的目標讀者是哪些人?人們能夠通過閱讀此書能夠學習到關于FreeBSD的什么內容?

Marshall:我們的書的目標是哪些工作在FreeBSD下的專業人士,應用程序開發者可以學到如何有效的利用接口和系統交互;系統程序員可以學到如 何擴展、加強系統;沒有FreeBSD內核經驗的系統管理員們可以學習到如何維護、調試和配置系統;技術和銷售支持的個人參與者可以學習到系統具備哪些能 力以及有哪些局限。

我們的書提供了FreeBSD如何實現它的基本服務的廣泛的概述。這對哪些需要學習FreeBSD是如何提供服務的人們非常的有幫助。能夠從本 書中受益的人們包括操作系統實現者,系統程序員,UNIX應用程序開發者,系統管理與,以及對FreeBSD充滿好奇的用戶。本書針對的是擁有至少一年的 使用類Unix系統的人們,懂一些C語言是非常有幫助的,但不是必須的。讀者需要了解基本的算法(搜索、排序、哈希)和數據結構(鏈表、隊列、數組)。

本書講述了FreeBSD內核背后的機理。從介紹內核和服務開始,其中包含了用于并發控制的鎖。接下來,就是進程的細節描述,包括諸如調度,信 號等進程管理任務。概述了安全的框架和策略,包括Capsicum 沙箱和FreeBSD jail,Jail是一個允許在同一個系統中創建隔離的虛擬主機的程序,以內核和進程的內存管理的描述結束了進程的管理。然后轉到內核的I/O,通過介紹 I/O的框架,服用I/O的基礎設施細節,以及本地和遠程文件系統的支持。然后描述了如何配置、操作字符設備和批量數據傳輸設備,例如磁盤,以及如何管理 虛擬設備從而支持Xen和bhyve虛擬化的。也涵蓋了三個文件系統的設計和實現,它們分別是:快速文件系統(FFS),Zettabyte文件系統 (ZFS),和網絡文件系統(NFS)。接下來是進程間通信(IPC/套接字)接口,通過涵蓋了網絡的分層和實現進行了詳細的描述,網絡包括了路由,轉發 以及安全的TCP/IP協議。最后,講述了內核的啟動過程,本書更加的強調代碼的組織,數據結構的表示,以及算法本身,而不是過一遍內核的代碼。它沒有包 含機器的某個特定部分,例如設備驅動的實現。

InfoQ: 您認為FreeBSD在其它的類Unix操作系統中是一個什么樣的地位?

Marshall:FreeBSD是三大主要發行版中最為流行的系統(另外兩個分別是OpenBSD和NetBSD)。FreeBSD大范圍的應用于世界 上很多公司的核心基礎設施,包括NetFlix,WhataApp,Yahoo!,Juniper網絡,EMC/Isilon。另外蘋果公司的 Darwin使用的也是FreeBSD,也就是Mac OS X的基礎操作系統。也由于它可以構建一個非常小的系統,所以能夠在嵌入式系統中的應用逐漸增多。開源界主要替代FreeBSD的還是Linux。 FreeBSD的許可條款允許修改和改進系統而無需再發行,這樣使得FreeBSD的許可更加的友好,無論是企業還是個人用戶。Linux的許可條款要求 所有的更改和改進內核進行源代碼可以以最低的成本再發布。因此,若企業需要控制發行版的知識產權,那么使用FreeBSD來構建他們的產品就是不錯的選 擇。

InfoQ: FreeBSD在過去相當長的一段時間里是最為流行的BSD系統,你認為導致項目如此成功的主要因素是什么?

Marshall:從1993年成立伊始,FreeBSD項目的目標就是能夠為一些企業和個人提供易用和易安裝的發行版。

另外一個讓FreeBSD成功的原因是FreeBSD不像其他開源項目那樣設有永久的掌控者(例如Linux中Linus Torvolds和他的忠實的副手),FreeBSD的系統治理是自我組織型的,允許受到鼓舞的人們上升到關鍵角色,且設置了開發者輪流掌控的機制。

在外圍,有5000到6000名開發者,他們每個人都為系統的某個部分工作,例如,維護FreeBSD內核,持續開發FreeBSD 1000個核心工具,撰寫FreeBSD文檔,移植其它開源軟件到FreeBSD中等等。開發者可以訪問FreeBSD的倉庫,但是沒有更改的權限。他們 若想提交,則必須和級別更高的提交者代為提交,或者是將問題以文件對形式報告給提交者,方可為系統添加代碼。

比外圍更近一層的是比開發者更高級別的提交者,目前有300到400名提交者,和開發者一樣,他們大多數也是為系統的某個部分工作。和開發者不 同的是,他們具有更改屬于自己的系統部分,并提交到代碼倉庫。所有的非同尋常的變更都須有一個或多個其他的提交者審核后才能正式到進入到源碼倉庫。多數的 提交者除了自己的本職工作以及審核之外,均會幫助多個開發者提交代碼。

由開發者晉升為提交者的建議是由現有的提交者來做的,絕大多數的情況是提名開發者晉升的提交者,他們往往原來就是在一起共事過的,晉升的描述和評估,以過去的工作和當前的工作為準,然后發送給核心團隊等待批準。

處于項目中心的是核心團隊。核心團隊由9人組成,每2年一次選舉出來的。核心團隊的候選人來自提交者,且由提交者選舉。核心團隊扮演著源代碼最 后的守護者的角色,他們會監控已經提交的內容,以及在兩個或多個提交者就如何解決特定問題無法達成共識的情況下解決他們的沖突。核心團隊還有一項職責是批 準開發者晉升為提交者,(在罕見情況下)暫時或永久的將一些人從提交者組中清除。被清除的原因多數是不再活躍(超過一年的時間對系統沒有任何的更改)。 ```

InfoQ: 是什么讓FreeBSD成為獨特的,或者說,你個人意愿,為什么選擇FreeBSD而不是其它BSD系統?

Marshall:不像其它的BSD系統或者是通常的開源項目,FreeBSD對于每個大版本的維護最少周期為5年,在整個支持期間提供bug修復和安全更新。在這加大的支持期間,哪些基于某個版本開發自己產品的公司就無須為其自己所構建的產品失去支持而擔心不已。

InfoQ: FreeBSD在過去幾年中增加的最為引人注目的特性有哪些?

Marshall:FreeBSD最近新增的一個引人注目的特性是:Capsicum 接口,允許來歷不明不明的代碼在沙箱中運行,Capsicum允許具有安全影響的應用程序有非常緊密的邊界,從而確保應用不能訪問到,修改或盜取任何未授權到信息。

另外一個引人注目的特性是為FreeBSD添加了非常重要的ZFS文件系統,ZFS文件系統來自Open Solaris。不像Linux因為許可的沖突不允許引入ZFS,FreeBSD將ZFS完全整入內核,并且交付ZFS的全部功能集以及性能。

InfoQ: 在2012年對FreeBSD基金會的總監Dru Lavigne的 采訪 中,他說:“FreeBSD一直很幸運的是具有吸引安全研究經費和與學術界在安全領域的合作的能力。”這對FreeBSD過去幾年產生了什么樣的影響?

Marshall:我們剛才提到的Capsicum項目,就是來自劍橋大學(UK)的研究項目。這完全是研究員們使用FreeBSD作為他們的開發平臺的 功勞,簡直是天作之合,今天由FreeBSD所提供的產品接口,輔助庫以及支持的程序均非常的適應他們的研究。真如Dru所指出的,FreeBSD基金會 籌集資金來將研究原型轉化為產品,這些轉換工作離不開這些發掘,掏腰包和管理的人們。

InfoQ: 你認為FreeBSD能夠為學習關于操作系統提供一個很好的參考嗎?如果是的話,作為學習工具它能提供何種優勢?

Marshall:三位作者均倡導以FreeBSD作為教學工具。我們開發教學計劃,課程筆記,以及實驗室試驗,用于教授高年級的本科生或者是第一、兩年 的研究生課程,這些我們開發的課程我們都發布在www.teachbsd.com網站上了,關于此項目我們才剛剛開始做,希望在一、兩后有更多豐富的內 容。

FreeBSD基金會最近開始了一個項目,將FreeBSD引入高中計算機科學課程。雖然這個項目才剛剛開始,愿景是希望能夠提高高中學生對計算機技術的興趣,尤其是FreeBSD。

InfoQ: 哪里是FreeBSD所引導的方向?其未來有何愿景?

Marshall:項目的RoadMap由開發者們來驅動,這一般是在每年至少舉辦兩次的FreeBSD開發者峰會上引入新的想法,開發者峰會分別是 BSDCan(在加拿大的渥太華)和EruoBSD(在歐盟國家輪流)研討會。當然,它也有來自FreeBSD用戶社區的反饋,這一般是來自于每年3-4 次的FreeBSD供應商峰會。

傳統的FreeBSD發行主要是針對服務器和嵌入式系統的。 PC-BSD 的目標用戶則是桌面用戶,它基于當前的FreeBSD發行版,從移植集中將一些軟件包整合在一起(桌面、瀏覽器、郵件客戶端等),打造為一個簡單易用且輕松安裝的桌面(筆記本)系統。

此采訪基于 ‘FreeBSD操作系統設計與實現’, 第二版一書,作者:Marshall Kirk McKusick, George V. Neville-Neil , Robert N.M. Watson, Pearson/Addison-Wesley Professional出版, 2014年9月, ISBN 978–0–321–96897–5. 更多信息請訪問 出版商網站

在2015年9月,出版商又發行了McKuscik新的視頻教程:“ FreeBSD開源操作系統介紹在線課程 ”。

關于作者

Marshall Kirk McKusick 長期從事于Unix和BSD相關的寫作、咨詢和教授學生的工作,在加利福利亞伯克利分校期間完成了4.2BSD的快速文件系統。他還是伯克利計算系統研究 小組的一名科學家,負責開發和發布4.3BSD和4.4BSD,他是FreeBSD基金會的董事會成員,FreeBSD的長期貢獻者,USENIX協會的 兩屆主席,他還是 ACM, IEEE, 和 AAAS的成員。

FreeBSD操作系統設計與實現,內容回顧與作者采訪 George V. Neville-Neil 安全、網絡、操作系統方面的黑客,作家,教師,和咨詢師。FreeBSD基金會董事成員,在FreeBSD核心團隊工作了4年,2004年起,他為ACM 的隊列和通信寫專欄“Kode Vicious”,他是ACM的從業者委員會副主席,也是Usenix協會,ACM,IEEE和美國科學促進會的成員。

FreeBSD操作系統設計與實現,內容回顧與作者采訪 Robert N.M. Watson 大學講師,劍橋大學計算機實驗室的安全研究小組中講授系統,安全以及架構。他負責監督計算機體系結構,編譯器,程序分析,操作系統,網絡和安全等先進領域 的研究。FreeBSD基金會董事成員,在FreeBSD核心團隊10年,作為貢獻者有15年的歷史,他是在Usenix協會和ACM的會員。

查看英文原文: The Design and Implementaiton of FreeBSD Operating System, Review and Q&A With Author

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!