作業系統--從人工到智慧
自微處理器問世以來,強大的運算能力,使手動操作計算機成為歷史,作業系統作為面向使用者,接受使用者指令的,並將使用者指令傳達給處理器的“翻譯”,已經成為一臺計算機必不可少的配置。
計算機硬體經過60幾年的發展,歷經電子管時代、電晶體時代、積體電路時代、大規模積體電路時代和超大積體電路時代,相對應用的操作方法也從手工傳送變成了高度整合。
電子管時代(1946-1958年)的計算機作業系統,計算員將工程師寫的程式碼手工裝入計算機,然後再將計算結果從計算機中取出,做好記錄,執行下一次操作。每次只能完成一個作業。這個時期,是沒有作業系統的。類似於現在在工廠用手工製造一個螺絲,材料、工具和操作方法都交給工人,工人一步一步按照操作方法將螺絲做好。這個時期,主要是滿足“能用”的基本條件。
打孔帶
電晶體時代(1957-1964年)計算機造價依然昂貴,為了能提高計算機利用率,應儘量保持系統的連線執行。於是為了實現作業的批次處理,就把作業順序以離線的方式錄入到磁帶機,並在系統中配置監督(Monitor)程式,在監督的控制下,使作業可以批次完成。這個監督程式,為後來處理器的資源管理提供了參考,也就是排程權。
三極體
當批次作業完成後,監督程式又收回控制權,繼續下一個批處理作業。這樣的作業方法被稱為單道批處理。隨著硬體的不斷提升,單道批處理也不能充分利用計算機,於是就發明了將多個作業一起放進計算機,監督程式再按照之前設計好的排程原則分配作業,進行處理,從作業結束開始,退出執行和繼續下一作業都由系統自動完成,從而實現一個自動轉接和連續的作業流。
類似於現在在工廠,有了機床了,加工螺絲的速度雖然上來了,但中間還需要更換材料,於是就將材料放在送料口,材料一用完,便自動將下一個材料送上機床。隨著生意越來越好,螺絲的產能需要提高,但沒有更先進的機床可供選擇,於是就改造現有機床,利用現有的機床配置,增加了一些工具,使機床一次可以加工多組螺絲。
批處理
電晶體時代的作業系統被稱為批處理作業系統。
積體電路時代(1964--1972年),德州儀器的工程師基爾比(Jack Kilby,1923--2005)於1958年發明了積體電路(integrated circuit),積體電路將更多的電容、電阻、電感等元件結合到矽片,使計算機變得更小、能耗更低,價格下降。
積體電路
隨著計算機處理能力越來越強大,一臺計算機閒置的時間變得更長,為了充分利用計算機,於是將計算機按照使用時間分配給不同的使用者,一臺計算機可以為幾人甚至幾百人共用。積體電路時代的作業系統被稱為分時作業系統,值得注意的是,後期的UNIX就是分時作業系統,可以讓使用者透過終端同時訪問同一臺主機,CPU再根據使用者優先順序處理使用者作業。
分時作業系統
同時誕生的還有實時作業系統,實時作業系統是保證在一個時間期限下完成特定任務的作業系統。多用於需要實時檢視或排程資源的領域,如伺服器系統、衛星定位系統、時間同步系統等。
實時作業系統
大規模和超大規模積體電路時代(1974--現在)的作業系統,是隨著計算機應用在不同領域的劃分而不斷擴充套件的。同時出現了用於特定功能的嵌入式作業系統、用於網路操作的分散式作業系統和用於辦公和娛樂的桌面作業系統。
嵌入式作業系統
嵌入式作業系統(Embedded Operating System),是目前應用領域最廣泛的作業系統,如手機、數控機床、各種交換機等。嵌入式作業系統管理著硬體的底層驅動程式、系統核心、裝置驅動介面呼叫、通訊、使用者介面等功能。我們使用的Android、iOS等手機作業系統也歸屬於嵌入式作業系統。
嵌入式作業系統
分散式作業系統(Distributed Software Systems)被用於伺服器叢集、協同工作等領域,分散式作業系統集成了分散式語言設計及編譯、分散式檔案、分散式資料庫等核心內容。
分散式作業系統
國產企業和公司透過改良類UNIX作業系統,精簡了一些不必要的指令和功能,使這些作業系統更適配自己的硬體,並將這些自研裝置廣泛應用於如軍工、航天、鐵路等行業。但作為商業前景並不明顯的桌面操作,依然值得努力,畢竟十四億人的市場在未來還是有巨大商業潛力的。接下的後續文章裡,實習生將繼續總結整理我們建國以來計算機領域的發展歷程和取得的成就!請多多關注“莫爾小組實習生”!