今天,Linux 為互聯網上超過一半的服務器、大多數智能手機(通過建立在 Linux 之上的 Android 系統)以及世界上所有最強大的超級計算機提供支持。
Linux 的設計原則有一條是這樣介紹的,讓每一個程序只做好一件事情。Linux 中有很多隻做好一件事情的小程序,通過集中精力應對單一任務,程序可以減少冗餘代碼,從而避免過高的開銷、不必要的複雜性和缺乏靈活性。
其中 Linux 基本的命令行工具(ls、cp、rm 等等)都是 GNU coreutils 工具包提供的,而這裡面的很多工具都是在踐行只做好一件事情的原則,通過組合這些工具可以做非常多的事情。如果你能夠仔細去研究上述這些工具,一定能夠發現很多有趣的設計和知識。
今天要推薦一個網站,這個網站是對 GNU coreutils 工具包的詳細介紹,逐一分析其中近 100 個工具的內部實現。
該網站並不是一個用戶手冊,如果你想知道具體命令怎麼使用,使用 man 命令就可以很輕鬆的知道。這個網站是你想去了解某個工具的源碼實現過程中的輔助手冊,能夠幫助你更好的了解對應工具的設計背景。
比如大部分工具的基礎設計如下:
對應具體的命令 kill 來說,它的設計是這樣的:
以上都是該網站中包含的內容,非常詳盡的介紹超過 100 個工具的內部實現。目錄如下圖,有沒有你想了解的命令呢?
更多項目詳情請查看如下鏈接。
網站地址:http://www.maizure.org/projects/decoded-gnu-coreutils/index.html
開源書籍&資料:點擊
點如下卡片後台回覆:1,與技術極客們一起交流開源項目,一起成長。