什麼是操做系統windows
可能不少人都會說,咱們平時裝的windows7 windows10都是操做系統,沒錯,他們都是操做系統。還有沒有其餘的?bash
想一想咱們使用的手機,Google公司的Android系統,Apple公司筆記本上的的MacOSX、IPhone的IOS,他們都是操做系統。服務器
那麼咱們想一想,操做系統均可以作什麼?併發
咱們買來電腦的後第一件事情就是安裝操做系統,有的電腦則在咱們買來的時候已經安裝好了操做系統,好比說品牌機(Dell、HP、lenovo)。工具
咱們能夠在操做系統上經過安裝程序來看視頻,聽音樂,玩遊戲、瀏覽網頁,還能夠彈出移動硬盤和U 盤、管理咱們硬盤中的文件等等;咱們經過操做系統來和計算機交互,系統協調咱們安排給計算機的各類任務。操做系統(Operating System, OS)是指控制和管理整個計算機系統的硬件和軟件資源,併合理地組織調度計算機的工做和資源的分配,以提供給用戶和其餘軟件方便的接口和環境的程序集合。計算機操做系統是隨着計算機研究和應用的發展逐步造成並發展起來的,它是計算機系統中最基本的系統軟件。性能
咱們經過操做系統來使用計算機。 知道了系統是用來作什麼的,咱們來了解一下系統的發展歷史。(操做系統工做方式的演變——20世紀五六十年代)。spa
手工操做(無操做系統)操作系統
人們先把程序紙帶(或卡片)裝上計算機,而後啓動輸入機把程序和送入計算機,接着經過控制檯開關啓動程序運行。計算完畢,打印機輸出計算結果,用戶卸下並取走紙帶(或卡片)。第二個用戶上機,重複一樣的步驟。設計
特色: 用戶獨佔機器,CPU等待手工操做,CPU利用不充分。unix
因爲手工操做的滿速度和計算機的高速度之間造成了尖銳矛盾,手工操做的方式是計算機的資源利用率極低,惟一的解決辦法只有擺脫手工操做,實現做業的自動過渡。
批處理系統
批處理系統: 加載計算機上的一個監督軟件,在監督程序的控制下,計算機可以自動的、成批的處理一個或多個用戶的做業(做業包括程序、數據、命令)。
首先出現的是聯機批處理系統,即做業的輸入輸出由CPU來處理。
聯機批處理系統
在主機和輸入機之間增長兩個存儲設備——磁帶機,在監督程序的自動控制下,計算機自動完成任務。
成批的把輸入機上的用戶做業讀入磁帶,依次把磁帶上的用戶做業讀入主機內存並執行,執行完成後把計算結果想輸出機輸出。 完成一批做業後,監督程度又從輸入機讀取做業存入磁帶機。按照上面的步驟重複處理任務。監督程序不停的處理各個做業,實現了做業的自動轉接,減小了做業的創建時間和手工操做時間,有效的克服了人機矛盾,提升了計算機資源的利用率。
問題: 在輸入做業和輸出結果時,CPU仍是會處於線空閒狀態,等待慢速的輸入/輸出設備完成工做——主機處於忙等狀態。
脫機批處理系統
爲了克服與緩解告訴主機與慢速外設(輸入輸出設備),提升CPU利用率,用又引入了脫機批處理系統,即輸入輸出脫離主機控制。
顯著特徵就是:增長一臺不與主機直接相連衛星機。衛星機用來從輸入機上讀取用戶做業並放到磁帶機上;將磁帶機上的執行結果傳給輸出機。這樣主機再也不與慢速的輸入輸出設備鏈接。主機與衛星機二者並行工做,分工明確,可充分發揮主機的告訴計算能力。
問題:每次主機內存中僅存放一道做業,每當它運行期間發出輸入/輸出(I/O)請求後,高速的CPU便處於等待低速的I/O完成狀態,導致CPU空閒。
多道程序系統
多道程序設計技術,就是指容許多個程序同時進入內存並運行。即同時把多個程序放入內存,並容許它們交替在CPU中運行,它們共享系統中的各類硬、軟件資源。當一道程序因I/O請求而暫停運行時,CPU便當即轉去運行另外一道程序。
單道程序運行過程 :在A程序計算時,I/O空閒, A程序I/O操做時,CPU空閒(B程序也是一樣);必須A工做完成後,B才能進入內存中開始工做,二者是串行的,所有完成共需時間=T1+T2。
多道程序運行過程 :將A、B兩道程序同時存放在內存中,它們在系統的控制下,可相互穿插、交替地在CPU上運行:當A程序因請求I/O操做而放棄CPU時,B程序就可佔用CPU運行,這樣 CPU再也不空閒,而正進行A I/O操做的I/O設備也不空閒,顯然,CPU和I/O設備都處於「忙」狀態,大大提升了資源的利用率,從而也提升了系統的效率,A、B所有完成所需時間<T1+T2。
多道程序設計技術不只使CPU獲得充分利用,同時改善I/O設備和內存的利用率,從而提升了整個系統的資源利用率和系統吞吐量(單位時間內處理做業(程序)的個數),最終提升了整個系統的效率
多道:系統內可同時容納多個做業。這些做業放在外存中,組成一個後備隊列,系統按必定的調度原則每次從後備做業隊列中選取一個或多個做業進入內存運行,運行做業結束、退出運行和後備做業進入運行均由系統自動實現,從而在系統中造成一個自動轉接的、連續的做業流。
成批:在系統運行過程當中,不容許用戶與其做業發生交互做用,即:做業一旦進入系統,用戶就不能直接干預其做業的運行。批處理系統的追求目標:提升系統資源利用率和系統吞吐量,以及做業流程的自動化。批處理系統的一個重要缺點:不提供人機交互能力,給用戶使用計算機帶來不便。
雖然用戶獨佔全機資源,而且直接控制程序的運行,能夠隨時瞭解程序運行狀況。但這種工做方式因獨佔全機形成資源效率極低。
20世紀60年代中期,在前述的批處理系統中,引入多道程序設計技術後造成多道批處理系統。
多道批處理系統的一個重要缺點:不提供人機交互能力,給用戶使用計算機帶來不便。雖然用戶獨佔全機資源,而且直接控制程序的運行,能夠隨時瞭解程序運行狀況。但這種工做方式因獨佔全機形成資源效率極低。即便CPU能夠1分鐘運算100W次,若是做業是按照每分鐘100次來作運算,資源被大大浪費。
分時系統
分時技術:把處理機的運行時間分紅很短的時間片,按時間片輪流把處理機分配給各聯機做業使用。若某個做業在分配給它的時間片內不能完成其計算,則該做業暫時中斷,把處理機讓給另外一做業使用,等待下一輪時再繼續其運行。因爲計算機速度很快,做業運行輪轉得很快,給每一個用戶的印象是,好象他獨佔了一臺計算機。而每一個用戶能夠經過本身的終端向系統發出各類操做控制命令,在充分的人機交互狀況下,完成做業的運行。具備上述特徵的計算機系統稱爲分時系統,它容許多個用戶同時聯機使用計算機。
問題: 沒法對特殊任務作出及時響應
實時系統
雖然多道批處理系統和分時系統能得到較使人滿意的資源利用率和系統響應時間,但卻不能知足實時控制與實時信息處理兩個應用領域的需求。因而就產生了實時系統,即系統可以及時響應隨機發生的外部事件,並在嚴格的時間範圍內完成對該事件的處理。
實時系統可分紅兩類:
實時控制系統。當用于飛機飛行、導彈發射等的自動控制時,要求計算機能儘快處理測量系統測得的數據,及時地對飛機或導彈進行控制,或將有關信息經過顯示終端提供給決策人員。當用於軋鋼、石化等工業生產過程控制時,也要求計算機能及時處理由各種傳感器送來的數據,而後控制相應的執行機構。
實時信息處理系統。當用於預約飛機票、查詢有關航班、航線、票價等事宜時,或當用於銀行系統、情報檢索系統時,都要求計算機能對終端設備發來的服務請求及時予以正確的回答。此類對響應及時性的要求稍弱於第一類。
實時操做系統的主要特色:
及時響應,每個信息接收、分析處理和發送的過程必須在嚴格的時間限制內完成。
高可靠性,需採起冗餘措施,雙機系統先後臺工做,也包括必要的保密措施等。
通用操做系統
操做系統的三種基本類型:多道批處理系統、分時系統、實時系統。
具備多種類型操做特徵的操做系統。能夠同時兼有多道批處理、分時、實時處理的功能,或其中兩種以上的功能。
例如:實時處理+批處理=實時批處理系統。首先保證優先處理實時任務,插空進行批處理做業。常把實時任務稱爲前臺做業,批做業稱爲後臺做業。
再如:批處理+分時處理=分時批處理系統。即:時間要求不強的做業放入「後臺」(批處理)處理,需頻繁交互的做業在「前臺」(以去銀行辦理業務,這個銀行只有一個窗口能夠辦理業務。離業務窗口不遠的地方是等候區,二者之間走路須要1分鐘。分時)處理,處理機優先運行「前臺」做業。
從上世紀60年代中期,國際上開始研製一些大型的通用操做系統。這些系統試圖達到功能齊全、可適應各類應用範圍和操做方式變化無窮的環境的目標。可是,這些系統過於複雜和龐大,不只付出了巨大的代價,且在解決其可靠性、可維護性和可理解性方面都遇到很大的困難。
咱們舉例來講明一下系統的發展過程:
最開始的時候,每次只能一我的去業務窗口辦理業務,等第一我的業務辦理完成,回到等候區後,下一我的才能夠去窗口辦理業務。可是,每次在用戶走向/離開業務窗口的時候,都須要等到一分鐘,辦理一我的的業務就須要等待2分鐘。若是業務處理一我的的業務須要一個小時的時候,這個問題並不明顯,可是隨着業務窗口辦理業務的速度加快,變成10分鐘處理一個業務的時候,這個問題就凸顯出來了。不那裏業務的速度越快,問題就明顯。 ( 此時至關於操做系統的發展史中的——手工操做)。
爲了改進上面的問題,安排了一個調度員T,每次調度員T從等候區叫10我的,來窗口排隊辦理業務,這樣就相對上面來講,節省了不少時間,可是還有一個問題。在每次隊伍走向業務窗口和離開窗口的時候,仍是會浪費時間。(此時至關於聯機批處理系統)在此基礎上改進,調度員T 每次安排多個隊伍,在處理第一個隊伍的時候,隊伍2已經被調度員T安排好, 這樣就避免了在 每次隊伍走向業務窗口和離開窗口的時候浪費的時間。(此時至關於聯機批處理系統)若是業務窗口在爲某人辦理業務的時候,辦理業務的人來了個電話,這個時候業務窗口就須要等待他打完電話後才能繼續辦理業務。
爲了解決上述問題,業務窗口又進行了改進,此次是業務窗口一個讓5我的同時等待窗口(而不是窗口前只等待一我的),若是在辦理業務的時候,第一我的來電話,業務窗口就先暫停辦理第一我的的業務,此時去辦理第二我的的業務,若是第二我的此時也來了電話,業務窗口就去辦理第三我的的業務。這樣業務窗口就提升了工做效率。 在相同的時間內辦理了更過的業務。 (此當至關於多道程序系統)辦理業務的時候,一我的獨佔業務窗口,資源效率低。
業務窗口再次進行了改進。 業務窗口同時接待10我的,沒10秒處理一我的的業務,時間到了之後,無論有沒有處理完成當前業務,都會在下一個10秒鐘去處理下一我的的業務,這樣去輪流給10我的處理業務。隨着業務窗口辦理業務速度的提升,變成每一秒處理一我的的業務。這樣對在也窗口前的10我的來講,他們的業務就好像被同時處理同樣。(至關於分時操做系統)。若是這個時候,行長的親戚來辦理業務,可是行長親戚不想等,但願本身的業務立刻被處理。這個時候,就沒法知足需求了。如今沒法知足實時問題的處理。
業務窗口再次改進,對待特殊的業務需求立刻處理。這樣就能夠對實時發生的問題進行處理,實時問題優先處理。(此時至關於實時系統)更形象的例子是,好比咱們在開飛機,忽然發現前面有一座大山,這個時候就須要咱們立刻進行規避動做,躲開大山,對於非實時系統在此時須要有一個響應時間,若是響應時間過長,飛機就會撞山。
因爲辦理業務的時候須要處理多種狀況,將上面的各類狀況進行綜合,吸收各自的優勢,這樣業務窗口就能根據狀況來處理業務。(至關於通用操做系統)早期的操做系統很是多樣化,生產商生產出針對各自硬件的系統。每個操做系統都有很不一樣的命令模式、操做過程和調試工具,即便它們來自同一個生產商。最能反映這一情況的是,廠家每生產一臺新的機器都會配備一套新的操做系統。
同一廠家相同的操做系統
這種狀況一直持續到二十世紀六十年代IBM公司開發了System/360系列機器。儘管這些機器在性能上有明顯的差別,可是他們有統一的操做系統——OS/360
1965年時,AT&T公司 下貝爾實驗室(Bell Labs)加入一項由奇異電子(General Electric)和麻省理工學院(MIT)合做的計劃;該計劃要創建一套多使用者、多任務、多層次(multi-user、multi- processor、multi-level)的MULTICS操做系統。
Multics 的目標是整合分時技術以及當時其餘先進技術,容許用戶在遠程終端經過電話(撥號)登陸到主機,而後能夠編輯文檔,閱讀電子郵件,運行計算器等等。可是項目目標太過激進,進度嚴重滯後。最後,直到1969年AT&T 高層決定放棄這個項目。
其中有一個 叫Ken Thompson 的人 ,由於工做須要,他但願開發一個小小的做業系統,,他花了一個月的時間 在這臺PDP-7上寫了一個做業系統,和一些經常使用的工具程序,——這就是鼎鼎大名的Unics——後被更名爲Unix。
到了1970年,PDP-7卻只能支持兩個用戶 ,由於PDP-7的性能不佳,肯·湯普遜 與丹尼斯·裏奇決定把初版UNIX移植到PDP-11/20的機器上,開發第二版UNIcs。在性能提高後,真正能夠提供多人同時使用, 布萊恩·柯林漢提議將它的名稱改成UNIX。
Unix被稱爲計算機/互聯網行業的基石。
肯·湯普遜的同事看到他寫的程序很好用,都開始使用這個系統,中間通過了屢次改版。
因爲當時的機器結構不一樣,因此每次安裝系統時,都須要從新編寫一遍。初版的Unix是使用匯編語言和B語言來開發的,B語言不夠強大,因此Thompson和Ritchie對其進行了改造,並於1971年共同發明了C語言。
1973年Thompson和丹尼斯·裏奇用C語言重寫了UNIX。這個時候,Unix的正式版本發行了。
同年,學術界參與到UNIX的開發工做中,重要的就是加州伯克利(Berkeley)大學。伯克利大學的Bill Joy在獲取了UNIX的核心源碼後,着手修改爲適合本身機器的版本,而且同時增長了不少工具軟件與編譯程序,最終將其命名爲Berkeley Software Distribution(BSD)。
因爲UNIX的高度可移植性與強大的性能,加上當時並無版權糾紛,因此不少商業公司開始了UNIX操做系統的開發,例如AT&T本身的System V、IBM的AIX以及HP與DEC等公司,都採用本身的主機與本身的UNIX操做系統。但當時 並無統一的硬件標準,不一樣公司生產的硬件 不同,不一樣公司開發的的程序 沒法兼容使用,只能運行在本身公司生產的硬件裏。這個時候也沒有人針對我的電腦來開發unix系統。
Windows系統、蘋果系統? 先看一下下圖:
一直到1979年,AT&T推出 System V 第七版 Unix ,這個時候開始支持我的電腦。出於商業上的考慮,AT&T決定收回unix的版權,最重要的就是不可對學生提供源代碼。學校受到很大的衝擊,教學受到影響。
這個時候有一位 Andrew Tanenbaum(譚邦寧)教授,在1984-1986年間寫了一個叫Minix的Unix Like 核心程序;意思爲:mini unix,而且與 unix兼容、支持X86 我的電腦。爲避免版權糾紛,在編寫的時候不看unix的源代碼。因爲譚邦寧教授 認爲Minix主要用在教育事業上,因此對MInix的開發只是點到爲止,不能知足用戶的需求。在1988年間,Linus Torvalds進入了赫爾辛基大學,選讀了計算機科學系。在就學期間,託瓦茲接觸到了Unix 這個操做系統,可是使用unix須要等待,其餘人使用的時候他就沒法使用。他就想「我爲何不本身搞一部Unix玩?」 , 不久以後,他就據說有一個相似 Unix 的系統,和 Unix 徹底兼容,還能夠在 Intel 386 機器上面跑的操做系統,因而他在購買了最新的 Intel 386 的我的計算機後,就當即安裝了 Minix 這個操做系統。
託瓦茲跟在研究Minix的過程當中,發現 Minix 雖然真的很棒,可是譚寧邦教授就是不肯意進行功能的增強,致使一堆工程師在操做系統功能上面的慾求不滿! 這個時候年輕的託瓦茲就想:『既然如此,那我何不本身來改寫一個我想要的操做系統?』 二是他就開始了核心程序的撰寫了。到了1991年,Linus Torvalds在BBS上面貼了一則消息,宣稱他以bash、gcc等工具寫了一個小小的核心程序,不過還不夠,他但願這個程序能夠得到你們的一些修改建議,這個核心程序能夠在Intel的386機器上運行。同時提供了下載地址。這讓不少人感興趣,今後便開始了Linux不平凡的路程。
Linux 應用領域
企業服務器 - 企業
嵌入式 - 手機、我的數字助理(PDA)、消費性電子產品及航空航天等領域中
桌面- 我的電腦
其餘
Android
2003 安迪·魯賓創辦了Android公司 。Android--基於Linux內核的開放移動操做系統
2005年,Android公司被Google收購。
2007年11月5日,谷歌公司正式公佈Android操做系統。
蘋果公司
Apple-I
Macintosh,簡稱Mac
微軟
Windows timeline history
蘋果與微軟
1973年施樂公司開發除了Alto——真正意義上的我的PC,有鍵盤、顯示器、圖形界面、以太網等。 可是並無重視。
1979年,喬布斯據說了Alto,決定去看看,看到之後震驚了,回去就讓技術人員去實現圖形界面,爲此還從施樂挖了好多技術人員,開發Lisa項目;而後最後失敗了。可是爲後來的Macintosh,積攢了好多經驗。
1980年微軟和IBM合做PC系統,微軟以捆綁的方式在IBM-PC上預裝DOS,廉價銷售(5$)許可證。
1981年,喬布斯邀請蓋茨看Macintosh樣機,想讓微軟幫助Macintosh開發應用軟件,蓋茨看到Macintosh的圖形後,也震驚了,心想,這東西要是上市,個人DOS立馬完蛋,將來的天下是圖形的。不過喬布斯看出了蓋茨的信息,就要求微軟在給蘋果開發軟件過程當中學到的東西用於任何非蘋果的設備上。可是喬布斯忽略了,不讓爲微軟編寫相似Macintosh的系統。
蓋茨瞭解到Macintosh效法於施樂,因而也從施樂挖人,開發本身的圖形系統——windows。微軟把win的研發放在第一位,耽誤了Macintosh的發佈。 1984年Macintosh 發佈,風靡世界。 1985年 windows1.0發佈,喬布斯發現win很想Macintosh,就說蓋茨偷了蘋果的東西。