作業系統簡介
一、為什麼需要作業系統
我們的電腦由非常非常多的裝置組成,如鍵盤,滑鼠,硬碟,cpu等等,是一個非常複雜的系統!
因此帶來兩個問題
1.如何能夠使得這些裝置能夠完成我們指定的任務,這需要對各個硬體都有一定的瞭解
2.如何管理這麼多裝置 讓它們能夠協調工作;是一個非常有挑戰性的工作
總結:我們無法掌握所有的硬體細節,也無法管理如此多的元件並協調他們的工作, 所以需要一個更加直觀,清晰,簡單的解決方案!使得我們的可
以從繁瑣的硬體操作中解放出來, 這就是作業系統出現的原因!說白了就是降低使用難度。
二、作業系統是什麼?
簡單的說作業系統就是協調,管理和控制計算機硬體資源和軟體資源的控制程式
下圖是作業系統在整個計算機中所在的位置:
位於應用軟體和硬體裝置之間,本質上也是一個軟體,
由系統核心(管理所有硬體資源)與系統介面(提供給程式設計師使用的介面)組成
作業系統詳解:
作業系統是為方便使用者操作計算機而提供的一個執行在硬體之上的軟體
主要完成了兩個任務
1.為使用者遮蔽了複雜繁瑣的硬體介面,為應用程式提供了,清晰易用的系統介面, 有了這些介面以後程式設計師不用再直接與硬體打交道了
例子:有了作業系統後我們就可以使用資源管理器來操作硬碟上的資料,而不用操心,磁頭的移動啊,資料的讀寫等等
2.作業系統將應用程式對硬體資源的競爭變成有序的使用
例子:所有軟體 qq啊 微信啊 吃雞啊都共用一套硬體裝置 假設現有三個程式都在使用印表機,如果不能妥善管理競爭問題,可能一個程式列印了一半圖片後,另一個程式搶到了印表機執行權於是列印了一半文字,導致兩個程式的任務都沒能完成,作業系統的任務就是將這些無序的操作變得有序
疑惑:
作業系統與一般軟體有什麼區別
二者的區別不在再出的地位,作業系統可以看做一款特殊的軟體
1.作業系統是是受保護的:無法被使用者修改(應用軟體如qq不屬於作業系統可以隨便解除安裝)
2.大型:linux或widows原始碼都在五百萬行以上,這僅僅是核心,不包括使用者程式,如GUI,庫以及基本應用軟體(如windows Explorer等),很容易就能達到這個數量的10倍或者20倍之多
3.長壽:由於作業系統原始碼量巨大,編寫是非常耗時耗力的,一旦完成,作業系統所有者便不會輕易的放棄重寫,二是在原有基礎上改進,基本上可以把windows95/98/Me看出一個作業系統
三、第一代計算機:真空管和穿孔卡片
第一代計算機採用的是真空管,類似燈泡一樣的電子器件來設計運算電路,所以整個計算機體積非常龐大,當時還沒有設計語言這個概念更沒有作業系統一說,運算電路的執行過程完全通過硬體操作來完成
特點:沒有作業系統, 直接操作硬體, 程式在外掛板或是, 打孔卡上進行設計
缺點:程式是序列的同一時間段只能有一 個程式被執行造成了資源的浪費
四、第二代計算機: 電晶體和批處理系統
由於當時的計算機非常昂貴,自然要想辦法較少機時的浪費。通常採用的方法就是批處理系統。
並且由於電晶體的出現 計算機的體積也得到了縮小
特點:有了作業系統有了組合語言和FORTRAN語言 需要人工輔助完成輸入與輸出操作
優點:降低了機時的浪費,程式設計師將自己的卡交給操作員,操作員收集所有的卡片後送到磁帶機上,計算機依次執行卡片上的程式,這樣一次性可以處理一批程式
缺點:
1.需要人工參與
2.執行過程依然是序列的
3.無法及時除錯程式
五、第三代計算機:積體電路與多道程式設計
第二代計算機問題的解決方案
1.需要人工參與
第三代計算機引入了SPOOLING(同時外部裝置連線操作),從而可以讓輸如輸出裝置直接連線到計算機來執行任務,徹底解放了人工勞動
2.程式序列
序列如何到導致資源浪費?
例如在程式需要寫入一個大檔案通常比較耗時,這個過程cpu需要等到寫入完成才能執行下一個任務,這就導致了CPU的資源浪費
多道技術:
空間複用:將記憶體分為幾個單獨部分,每個部分存入一個程式,這樣同一時間記憶體中就有了多個程式
時間複用:當一個程式在等待I/O時,CPU切換執另一個程式,如果程式足夠多,CPU利用率可達百分百
3.除錯效率低
分時作業系統 = 多個聯機終端 + 多道技術
CTTS:麻省理工(MIT)在一臺改裝過的7094機上開發成功的,CTSS相容分時系統,第三代計算機廣泛採用了必須的保護硬體(程式之間的記憶體彼此隔離)之後,分時系統才開始流行 貝爾實驗室和通用電氣在CTTS成功研製後決定開發能夠同時支援上百終端的MULTICS(其設計者著眼於建造滿足波士頓地區所有使用者計算需求的一臺機器),很明顯真是要上天,最後摔死了。 後來一位參加過MULTICS研製的貝爾實驗室電腦科學家Ken Thompson開發了一個簡易的,單使用者版本的MULTICS,這就是後來的UNIX系統。基於它衍生了很多其他的Unix版本,在1987年,出現了一個UNIX的小型克隆,即minix,用於教學使用。芬蘭學生Linus Torvalds基於它編寫了Linux 第三代作業系統簡要
六、第四代作業系統:
第四代也就是我們常見的作業系統,大多是具備圖形化介面的,例如:Windows,macOS ,CentOS等
由於採用了IC設計,計算機的體積下降,效能增長,並且成本以及可以被普通消費者接受,而第三代作業系統大都需要進行專業的學習才能使用,於是各個大佬公司開始開發那種不需要專業學習也可以快速上手的作業系統,即上述作業系統!
它們都是用了GUI 圖形化使用者介面,使用者只需要通過滑鼠點選拖拽介面上的元素即可完成大部分操作