爬過這 6 個坡,你就能對 Linux 操作系統瞭如指掌

在平時的生活中,我們幾乎時時刻刻都在使用操作系統,只是大部分時間你都意識不到它的存在。 操作系統到底在背後默默地做了哪些事情,才能讓我們輕鬆地使用電子設備呢? 不知道你有沒有產生過這些疑問:

  • 桌面上的圖標到底是啥?憑啥我在鼠標上一雙擊,就會出來一個美麗的畫面?這都是從哪裡跑出來的?
  • 電腦怎麼知道我鼠標點擊的是這個地方,又是怎麼知道我要輸入的是這個地方?
  • 為什麼我一回車,這些字符就發到遙遠的另外一臺機器上去了?

對於普通用戶來講,其實只要會用就行了,但是咱們作為專業人士,要深入探究一下背後的答案。 操作系統其實就像一個軟件外包公司,其內核就相當於這家外包公司的老闆。為什麼這麼說呢?

假設,我們現在就是在做一家外包公司,我們的目標是把這家公司做上市。其中,操作系統就是這家外包公司的老闆。 我們把這家公司的發展階段分為這樣幾個時期:

  • 初創期 :這個老闆基於開放的營商環境(x86 體系結構),創辦一家外包公司(系統的啟動)。因為一開始沒有其他員工,老闆需要親自接項目(實模式)。
  • 發展期 :公司慢慢做大,項目越接越多(保護模式、多進程),為了管理各個外包項目,建立了項目管理體系(進程管理)、會議室管理體系(內存管理)、文檔資料管理系統(文件系統)、售前售後體系(輸入輸出設備管理)。
  • 壯大期 :公司越來越牛,開始促進內部項目的合作(進程間通信)和外部公司合作(網絡通信)。
  • 集團化 :公司的業務越來越多,會成立多家子公司(虛擬化),或者鼓勵內部創業(容器化),這個時候公司就變成了集團。大管家的調度能力不再侷限於一家公司,而是集團公司(Linux 集群),從而成功上市(從單機操作系統到數據中心操作系統)。

把外包公司做上市的過程,就是我們對 Linux 操作系統從入門到精通的過程。 要做到對 Linux 瞭如指掌,我認為你需要爬 6 個陡坡。

第一個坡:拋棄舊的思維習慣,熟練使用 Linux 命令行

上手 Linux 的第一步,要先從 Windows 的思維習慣,切換成 Linux 的“ 命令行 + 文件”使用模式。不過,在這個專欄裡,命令行並不是我們的重點,但是考慮到一些剛起步的同學,在第一部分我會簡單介紹一些能夠讓你快速上手 Linux 的命令行。專欄每一模塊的第一節,我都會有針對性地講解這一模塊的常用命令,足夠你把 Linux 用起來。

第二個坡:通過系統調用或者 glibc,學會自己進行程序設計

用代碼操作 Linux,可以直接使用 Linux 系統調用,也可以使用 glibc 的庫。 如果說使用命令行的人是吃饅頭的,那寫代碼操作命令行的人就是做饅頭的。 你會發現,你平時用的一個簡單的命令行,卻需要 N 個系統調用組合才能完成。其中每個系統調用都要進行深入地學習、讀文檔、做實驗。經過一段時間的學習,你已經很接近操作系統的原理了,你能看到另一番風景。

第三個坡:瞭解 Linux 內核機制,反覆研習重點突破

進一步瞭解內核的原理,有助於你更好地使用命令行和進行程序設計,能讓你的運維和開發水平上升一個層次。Linux 內核機制是我們這個專欄重點要講述的部分,我會基於最新 4.x 的內核進行講解,當然我也意識到了內核機制的複雜性,所以我選擇通過 故事性和圖形化 的方式,幫助你瞭解並記住這些機制。

第四個坡:閱讀 Linux 內核代碼,聚焦核心邏輯和場景

一旦爬上這個坡,對於操作系統的原理,你應該就掌握得比較清楚了。這個時候,你就可以有針對性地去做課題,把所學和你現在做的東西結合起來重點突破。例如你是研究虛擬化的,就重點看 KVM 的部分;如果你是研究網絡的,就重點看內核協議棧的部分。

第五個坡:實驗定製化 Linux 組件,已經沒人能阻擋你成為內核開發工程師了

紙上得來終覺淺,絕知此事要躬行。從只看內核代碼,到上手修改內核代碼,這又是一個很大的坎。例如,你可以自己實現一個設備驅動程序,實現一個自己的系統調用,或者實現一個自己的文件系統等等。專欄最後一個部分,我專門設計了兩個實驗,幫你度過這個坎。只要跟著我的步伐進行學習,接下來,就沒人能夠阻擋你成為一名內核開發工程師了。

第六個坡:面向真實場景的開發,實踐沒有終點

說了這麼多,我們都只是走出了萬里長征第一步。我始終堅信,真正的高手都是在實戰中摸爬滾打練出來的。

如果你是運維,僅僅熟悉上面基本的操作是不夠的,生產環境會有大量的不可控因素,尤其是集群規模大的更是如此,大量的運維經驗是實戰來的,不能光靠讀書。

如果你是開發,對內核進行少量修改容易,但是一旦面臨真實的場景,需要考慮各種因素,併發與並行,鎖與保護,擴展性和兼容性,都需要真實項目才能練出來。

爬過這 6 個坡,你就能對 Linux 操作系統瞭如指掌

文件操作在各個層的數據結構的關聯

相關推薦

推薦中...