極客時間出品的《趣談Linux作業系統》由劉超所作,劉超是網易杭州研究院雲端計算技術部首席架構師,《趣談Linux作業系統》課程作者。本專欄課程將帶你入門Linux作業系統。
《趣談Linux作業系統》背景介紹
作業系統在計算機中承擔著“大管家”的角色。它合理分配計算機硬體和軟體資源,並處理多種基本事務,比如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入與輸出裝置、操作網路與管理檔案系統等,還提供一個讓使用者與系統互動的操作介面。在劉超看來,Linux 作業系統這個“大管家”的角色,就好比一家公司的老闆。
假設我們現在的目標是把這家公司做上市,怎麼做呢?至少要經歷以下四個發展階段:
這樣一來,你是不是就能設身處地理解到,作業系統就是協調各種資源,幫助我們成事的。你就不再侷限於原有的“外部思維”,而是進入 Linux 內部,全方位理解計算機的工作原理,掌握程式的執行機制。如此,你的併發程式設計、程式設計和效能分析能力都會上升一個層次,開發效率會得到質的提升。在遇到實際問題時,你也能從系統層面出發,去編寫程式碼和解決問題。
《趣談Linux作業系統》作者介紹
劉超,網易杭州研究院雲端計算技術部首席架構師。曾在 EMC 從事分散式儲存系統開發,在惠普從事 OpenStack 的開發和架構設計,目前在網易從事容器、Kubernetes 和微服務的架構工作,出版有《Lucene 應用開發解密》。
2018 年 5 月,他在極客時間開設的“趣談網路協議”專欄,已有超過 30000 人訂閱。這次,他將延續“趣談”的風格,為你奉上一堂精彩的 Linux 作業系統基礎課。
他將以 Linux 4.x 的核心原始碼為基礎,用一個完整的創業故事,配合生動詳實的圖片,深入剖析 Linux 作業系統的方方面面。他會教你快速上手 Linux 命令,掌握學習 Linux 的方法和路徑,帶你詳細推演 Linux 核心的工作原理,讓你對 Linux 作業系統的細節和全貌都有個完整的認識,並能站在一定高度去理解和優化當下的工作。
《趣談Linux作業系統》模組介紹
專欄分為三大模組,共 52 講。
入門準備篇
這一模組首先為你精心準備了一套入門測試題,你可以檢驗一下自己的水平,然後根據測試結果,明確學習目標,之後再結合 Linux 作業系統的學習路徑,設定自己的爬坡計劃,為進入正式學習做好準備。
核心原理篇
將帶你快速上手幾個 Linux 命令,學會系統呼叫;進而講到程式管理、記憶體管理、檔案系統、輸入輸出系統;最後講到程式間的通訊、網路系統和虛擬化、容器化。帶你搞清 Linux 作業系統的核心原理和工作機制,學習背後的程式設計和實現原理,學會從系統層面編寫程式碼和解決問題。
實戰串講篇
將帶你搭建一個作業系統實驗環境,並用創業故事串起整個作業系統的知識點,幫助你複習、鞏固每一模組細碎的知識點,並把它們有機地連線起來。另外,這一模組同樣為你準備了一套期末測試題,幫你檢驗學習效果,查漏補缺,形成閉環。
《趣談Linux作業系統》課程目錄
入門準備篇
開篇詞丨為什麼要學習Linux作業系統?
入學測驗:你究竟對作業系統瞭解多少?
學習路徑:爬過這六個陡坡,你就能對Linux瞭如指掌
核心原理篇
第一部分Linux作業系統綜述
你可以把Linux核心當成一家軟體外包公司的老闆
快速上手幾個Linux命令:每家公司都有自己的黒話
學會幾個系統呼叫:我們們公司能接哪些型別的專案?
第二部分系統初始化
X86體系結構:有了開放的架構,才能打造開放的營商環境
MBIOS到BootLoader:創業伊始,有活兒老闆自己上
核心初始化:生意做大了就得成立公司
系統呼叫:公司成立好了就要開始接專案
第三部分程式管理
程式:公司接這麼多專案,如何管?
執行緒:如何讓複雜的專案並行執行?
程式資料結構(上):專案多了就需要專案管理系統
程式資料結構(下):專案多了就需要專案管理系統
排程(上):如何制定專案管理流程?
排程(下):如何制定專案管理流程?
程式的建立:如何發起一個新專案?
執行緒的建立:如何執行一個新子專案?
第四部分記憶體管理
記憶體管理:為客戶保密,專案組獨享會議室封閉開發
程式空間管理:專案組還可以自行佈置會議室
實體記憶體管理:會議室管理員如何分配會議室?
記憶體對映:如何找到正確的會議室?
第五部分檔案系統
檔案系統:專案成果要歸檔,我們就需要檔案庫
硬碟檔案系統:如何最合理地組織檔案庫的文件?
虛擬檔案系統:文件多了就需要檔案管理系統
檔案快取:常用文件應該放在觸手可得的地方
第六部分輸入輸出系統
輸入與輸出:如何建立售前售後生態體系?
字元裝置:如何建立直銷模式?
塊裝置:如何建立代理商銷售模式?
第七部分程式間通訊
程式間通訊:遇上大專案,需要專案組之間合作才能完成
訊號:專案組A完成了,如何及時通知給專案組B?
管道:專案組A完成了,如何交接給專案組B?
函IPC (上):不同專案組之間搶資源,如何協調?
龜IPC (下):不同專案組之間搶資源,如何協調?
第八部分網路系統
Socket通訊:遇上特大專案,要學會和其他公司合作
Socket核心資料結構:如何成立特大專案合作部?
接收網路包:如何搞明白合作伙伴想讓我們做什麼?
傳送網路包:如何表達我們想讓合作伙伴做什麼?
第九部分虛擬化
虛擬機器:如何成立子公司,讓公司變集團?
計算虛似化:如何建立獨立的辦公室,自己招人?
儲存虛擬化:如何建立自己保管的單獨檔案庫?
網路虛擬化:如何成立獨立的合作部?
第十部分容器化
容器:大公司為保持創新,鼓勵內部創業
Namespace技術:內部創業公司應該獨立經營
CGroup技術:內部創業公司應該獨立核算成本
資料中心的作業系統:上市敲鐘
核心原理篇總結與答疑
實戰串講篇
搭建作業系統實驗環境(上):授人以魚不如授人以漁
搭建作業系統實驗環境(下):授人以魚不如授人以漁
知識串講(上):用一個創業故事串起作業系統知識點
知識串講(下):用一個創業故事串起作業系統知識點
期末測試:你真的把Linux作業系統搞明白了嗎?
實戰串講篇總結與答疑
訂閱價格:
為回報猿人學的粉絲,所有通過我分享的二維碼購買的使用者,請加我微訊號:dismissmewp,備註:返現。
享受完其它優惠後,我再給大家立即返¥12元現金。
我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。
***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***