什麼是操做系統以及如何學習操做系統

操做系統是什麼

  1. 計算機是由若干硬件組成:顯示器、CPU、內存、主板(提供總線)、鍵盤、鼠標、硬盤等。
  2. 計算的發明是幫助人類完成一些計算與邏輯任務。
  3. 可是人們不能直接的使用計算機硬件,須要在計算機硬件上包上一層軟件,咱們使用這些軟件來完成一些特定的任務,好比進行數學計算、文字排版、聊天、郵件等。
  4. 操做系統就是計算機硬件與應用軟件之間的一層軟件(或者說是接口),兩個目標:1)方便咱們使用硬件;2)高效的使用硬件
  5. 操做系統管理哪些硬件呢:CPU管理、內存管理、終端管理、磁盤管理、文件管理、網絡管理、電源管理和多CPU管理。
  6. 網絡管理、電源管理和多核管理屬於高級操做系統的相關知識。在Udacity的高級操做系統中有講授。

操做系統的發展歷史

操做系統是伴隨着計算機的發展而發展的,在任什麼時候期都是以解決當時遇到的實際問題爲創新點,大體經歷了以下幾個時期:html

  • 第一個階段,以上古神機IBM7094爲表明的計算上的操做系統,計算機的主要目的是大量計算,因此當時的操做系統是一種批處理操做系統,做業一批一批的被順序執行。輸入輸出都是磁帶。
  • 第二個階段,計算機開始進入多個行業,須要完成各類不一樣的任務,一臺計算機須要幹更多的事,這時候就出現了多道程序操做系統,由於有的做業是計算任務,有的做業是IO類型的任務,因此能夠在做業之間進行切換和調度,讓CPU忙碌起來。典型表明爲IBM OS/360。
  • 第三個階段,出現了分時操做系統,每一個使用計算機的人均可以啓動一個做業,做業之間快速的進行切換,而不是像上個階段那樣只有處理IO時,纔會換到下個做業。這個時期的表明是MIT的MULTICS。
  • 第四個階段是,隨着小型機的大量普及,出現了Unix和Linux操做系統。從設計上更簡單和靈活。同時Windows操做系統也誕生了,它主要是在用戶界面方面作了很大的創新與改進。

學習操做系統的三個層次

Learn OS concepts by coding them!git

學習操做系統根據學習深淺的不一樣能夠分爲三個層次:github

  • 層次一:從應用軟件出發「探到操做系統」,主要講解如何使用操做系統提供的接口如:printf/fork/open/read等。
  • 層次二:從應用軟件出發「進入操做系統」:瞭解操做提供的系統接口是如何實現的,能夠本身給操做系統增長服務接口,爲新的硬件寫驅動程序等。
  • 層次三:硬件出發「設計操做系統」,給一個硬件板子,經過查硬件手冊,能夠本身配一個操做系統,針對這個板子實現本身的操做系統。

咱們要以對照一下Standford的操做系統的學習要求,主要是能完成4個操做系統實驗,這4個實驗也體現了操做系統的真正核心。網絡

  • 實驗一: 擴展線現,實現線程調度
  • 實驗二: 實現系統調用,將整個接口剝掉,添加
  • 實驗三: 實現虛存管理,擴展實現內存管理
  • 實驗四: 擴展文件系統,擴展實現一個文件管理

操做系統相關學習資源

相關文章
相關標籤/搜索