一步一步學linux操作系統: 01 linux操作系統與外包公司

操作系統其實就像一個軟件外包公司,其內核就相當於這家外包公司的老闆。

從"雙擊QQ"看使用的硬件

  • 對屏幕QQ圖標雙擊
  • 使用到的鼠標和鍵盤是計算機的輸入設備。
  • 顯示器將雙擊產生的結果顯示出來,將計算機處理用戶請求後的結果展現給客戶。
  • 顯示器上面顯示的東西是由顯卡控制的。

在操作系統中鼠標和鍵盤會有輸入設備驅動相當於客戶對接員,當客戶告訴對接員需求的時候,對於操作系統來講,輸入設備會發送一箇中斷,客戶發送的需求就被稱爲中斷事件

顯卡會有顯卡驅動,在操作系統中稱爲輸出設備驅動,相當於外包公司的交付人員

從"雙擊QQ"看操作系統全貌

  • 鼠標雙擊會觸發一箇中斷,操作系統發現雙擊的是一個圖標,就明白了用戶的原始訴求,準備運行 QQ 和別人聊天。
  • 運行 QQ,相當於外包公司接了一個大單,需要立項交由項目組來處理。立項就需要項目執行計劃書,說明這個項目打算怎麼做,一步一步如何執行,遇到什麼情況應該怎麼辦等等。也就相當於QQ程序編譯成的二進制代碼
  • 二進制代碼保存在硬盤上,除了QQ還有什麼有道雲筆記的程序、Word 程序等等。硬盤是個物理設備,要按照規定格式化成爲文件系統,才能存放這些程序。文件系統需要一個系統進行統一管理,稱爲文件管理子系統
  • 操作系統從硬盤上拿到 QQ 的二進制執行文件的時候,就可以運行這個文件了,而運行起來的 QQ,成爲一個進程
  • QQ運行中需要使用計算機各種資源,就像項目要想順暢進行,需要用到公司的各種資源,比如說蓋個公章、開個證明、申請個會議室、打印個材料等等。這又涉及到一方面,資源畢竟是有限的,甚至是涉及機密的,不能由項目組濫取濫用;另一方面,就是效率。爲了兼顧兩方面設立了統一的辦事大廳,明文列出提供哪些服務,誰需要可以來申請,然後就會有迴應。
  • 同樣的操作系統也提供一個辦事大廳,也就是系統調用。系統調用列出來提供哪些接口可以調用,進程有需要的時候就可以去調用。其中,立項是辦事大廳提供的關鍵服務之一。同樣,任何一個程序要想運行起來,就需要調用系統調用,創建進程。
  • 項目正式立項,就要開始執行,就要成立項目組,將開發人員分配到這個項目組,按照項目執行計劃書一步一步執行。這需要項目經理對項目進行管理,人員進行調度。在操作系統中,進程的執行也需要分配 CPU 。於是,爲了管理進程,我們還需要一個進程管理子系統
  • 每個項目都有自己的私密資料,這些資料不能被其他項目組看到,這需要把不同的項目組分配到不同的會議室,當然會議室是有限的,需要有人管理和分配,並且需要一個會議室管理系統。在操作系統中,不同的進程有不同的內存空間,但內存是有限的,所以需要統一的管理和分配,這就需要內存管理子系統

圖片來自極客時間趣談linux操作系統

圖片來自極客時間趣談linux操作系統

參考資料:

趣談Linux操作系統(極客時間)鏈接:
http://gk.link/a/10iXZ
歡迎大家來一起交流學習

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章