選單

花 3 天,手寫了個作業系統~|極客時間

都說作業系統(簡稱 OS ),是程式設計師的三大浪漫之一,我們經常會用

靈魂、大腦、核心、基石

等詞來形容它,足以見得它對計算機而言有多麼重要。最近,我用 3 天的時間,自己寫了個作業系統。

在手寫 OS 的過程中,之前遇到的很多和

作業系統密切相關的疑難雜症,都找到了答案

。比如:

記憶體為什麼會洩漏、服務程序為什麼會 dang 掉、檔案為什麼打不開?

MySQL 的 IO 效能還能不能再提升?

網路服務為什麼會掉線?模式靠什麼技術支撐?

Node。js 的 I/O 模型長什麼模樣?

除此之外,在做

高效能服務端程式設計的時候

,經常會用到記憶體、程序、執行緒、IO 相關的知識。

“學好作業系統,能

直接解決你在工作中遇到的這些問題

”。就這一個原因,它就已經是每個程式設計師必須好好修煉的“

基本功

”了。

而且我一直認為,花大量時間研究 OS 這些底層知識,是很有必要的,它就相當於“指數函式”,雖然短期看不到效果,但卻是

0 到 1 必然的過程

學懂了這些基本功,再去琢磨那些被“追捧”的流行技術啊、demo 啊,都能輕鬆地理解背後高階的設計,理解系統中的效能瓶頸。

不誇張地說,學懂了作業系統,同時具備不錯的程式設計能力,找工作就很有優勢。要知道,很多在職的工程師其實很多這裡面的概念都不懂,工作多年,還得回來補課。

作業系統很難,有什麼學習的 “捷徑”?

捷徑沒有,心得有一點。作業系統需要大量的知識儲備,除了要理論要體系化,更重要的是一定要實踐,

當你真的動手寫了一個 OS 的時候,你對作業系統的理解會是質的飛躍。

但有配套實驗完成一個 OS 的學習資料很少,極客時間的

《作業系統實戰 45 講》

專欄算一個,作者是

計算機“鬼才”——彭東

,這課上線 2 個月,訂閱量已經

破萬

了,這個結果其實並不意外,畢竟,

國內這類實戰課程真的太稀缺了

下面是彭東整理的

「作業系統核心知識圖譜」

,就出自這個專欄,建議先馬後看。

花 3 天,手寫了個作業系統~|極客時間

作業系統簡化知識體系圖

關於計算機“鬼才”彭東

彭東非科班出身,卻憑藉驚人的意志和熱愛,自學微機原理,程式語言,資料結構與演算法,翻遍作業系統和硬體層相關書籍,獨立開發了 LMOS 作業系統。

LMOS 現在已經發布了 8 個測試版本,是多程序、多執行緒、多 CPU、支援虛擬記憶體的 x86_64 體系下的全 64 位作業系統核心,程式碼量已經有 10 萬多行了。

不止於此,強烈的興趣促使他又開發了基於 Linux 的嵌入式作業系統——LMOSEM。

他還是《深度探索嵌入式作業系統:從零開始設計、架構和開發》的作者,Intel 傲騰專案的關鍵開發者。

數十年深入研究作業系統,他精通

Linux、BSD、SunOS 等開源作業系統核心、熟悉 Windows 的 NT 核心

,瞭解計算機底層技術,在編譯器,資料庫等基礎架構方面也頗有研究。

可以說彭東非常瞭解,在作業系統的學習過程中,有哪些難點和阻礙,會踩哪些坑。其實,當我知道他要出專欄時,非常驚訝,早在專欄在上線前,我就迫不及待地從運營同學那裡要樣章來看了,確實讓我很驚喜。

總結來說,他會帶著你,一步步實現一個基於 x86 平臺的 64 位多程序的作業系統——Cosmos,這真是

從 0 到 1,手把手教你自制一個作業系統

了,不僅如此,專欄中對於 Linux 核心也講解得很透徹。聽極客時間的運營說這門課馬上就要漲價了,所以趕緊推薦給大家!

掃碼免費試讀

秒殺+口令「ososos666」

現到手僅需

¥89

,即將漲價至

¥199

相比市面上難啃的大部頭教材,這門課真的太友好了,除了能手把手教你實現一個自己的作業系統,還有幾點也非常值得稱讚:

1.“保姆級”圖示 + 程式碼解析,小白也適用

為了方便“計算機小白”理解,快速上手實操,課程中加入了大量圖示和詳細的程式碼註釋,這個體量的程式碼註釋是非常少見的,足以看出老師的用心。

當然如果你是老手,也能根據課程中的提示,快速定位到關鍵性的核心程式碼。

花 3 天,手寫了個作業系統~|極客時間

摘自《作業系統實戰 45 講》第 9 講

瞧一瞧 -Linux 的自旋鎖和訊號量如何實現?

邊學邊練,對比分析,強化理解 Linux

在介紹每個核心元件實現時,都會先講清原理,再帶你基於設計理解去動手實現;然後與 Linux 核心的實現做前後對比。既能邊學邊練,又能幫你從“上帝視角”審視 Linux 核心。

花 3 天,手寫了個作業系統~|極客時間

配套原始碼,真正動手“run”起來

專欄中的每一講,都會匹配可以工作的程式碼,傳在 gitee 上;你可以跟著課程一步步的實現,也可以直接使用每節課提供的程式碼進行除錯,直到最終實現一個作業系統。

花 3 天,手寫了個作業系統~|極客時間

Cosmos 系統執行演示

整個專欄學下來,作業系統架構設計能力肯定會大幅提升,還可以學到

系統級別的軟體程式設計技巧

,這對我們拓展技術深度和廣度是大有裨益的。

在日常開發中遇到問題的時候,也就能從更多維度去解決了。當然,

求職也一定會是加分項

,自己動手寫過作業系統,簡歷自然增色不少。

還有一點,不得不提,所有專欄的讀者,都可以

免費加入

LMOS(作者彭東)建立的

「作業系統交流群」

,他經常在群裡答疑解惑,這裡還有很多技術內功深厚的大佬,大家互相監督,共同探討,學習進步,是個難得的氛圍活躍又有價值的群。

花 3 天,手寫了個作業系統~|極客時間

訂閱後在

課程詳情頁

說了這麼多,來看看目錄吧。反正我第一眼看目錄,就知道這門課絕對錯不了。

花 3 天,手寫了個作業系統~|極客時間

還要再次強調,課程漲價前特惠:

秒殺+口令「ososos666」

現到手僅需

¥89

,即將漲價至

¥199

新人無需口令,直接購買僅需

59.9

掃碼免費試讀

一次訂閱,永久有效

很多人都覺得,學好作業系統很難,編寫一個作業系統更是大佬們才能做到的事。

其實不然,彭東和我們一樣,是一個普通人,最開始的基礎也遠遠不如科班出身的同學。

你可以想象,他在學習過程中面臨了怎樣的困難,但這依然沒有阻礙他在作業系統的海洋裡乘風破浪。

我們又有什麼理由學不好呢?

難者不會,會者不難,不要給自己設限,辦法總比困難多。