最近在寫一個Android、IOS、Fuchsia、HarmonyOS對比的報告,需要了解一下各作業系統的起源聯系以及內核的對比,因此有了這個文章總結(算是學習筆記吧),
一、各歷史階段的作業系統
我們都知道,作業系統自20世紀50年代誕生,作業系統誕生后經歷了從專用作業系統(每個主機與應用場景均需要一個新的作業系統)到通用作業系統(一個作業系統覆寫很多設備與應用場景,如Windows、Linux等)的轉變,
- PC時代
由于Windows作業系統的廣泛應用部署,微軟于20世紀90年代成為全球市值最高的公司;
蘋果研制的macOS也支撐蘋果一度成為全球最賺錢的科技公司, - 資料中心時代
在IBM、Intel等企業的支持下,Linux作業系統又逐步在服務器等場景占據主體地位, - 移動互聯網時代
蘋果基于NEXTSTEP作業系統構筑的IOS支撐蘋果成為全球市值最高的科技公司;
谷歌2005年收購了Andy Rubin 在2003年創立的Android公司,并通過持續不斷的研發投入與快速迭代,如今已將Android作業系統打造成世界上發行量最大的移動智能作業系統,
Statcounter資料截至2021年4月,全球移動作業系統中,谷歌Android占比72.2%,蘋果IOS占比26.99%,其余平臺占比之和低于1%, - 物聯網快速發展的時代
當前越來越多的智能設備接入互聯網,智能終端逐漸呈現多樣化發展趨勢,加之第五代移動通信技術網路的建成商用,更是提供了大連接、低延時、高吞吐的基礎網路能力,萬物互聯的物聯網時代到來趨勢已勢不可擋,
隨著物聯網時代的到來,覆寫全場景的單一作業系統已經很難適配多樣化終端設備不同硬體能力、不同應用場景、不同運算能力的需求,目前,谷歌、華為等各大企業紛紛在物聯網作業系統方面重兵投入:
谷歌從2016年開始投入基于微內核的Fuchsia作業系統,應用場景上希望適用于個人移動設備、IoT(Internet of Things 物聯網)設備甚至無人駕駛汽車等不同運算能力和需求的場景,
華為于2019發布了基于物聯網的鴻蒙作業系統HarmonyOS,透露HarmonyOS采用微內核架構,天生具備模塊化解耦優勢,可針對不同硬體能力的物聯網設備進行模塊剪裁,從而實作彈性部署,并已于2020年面向128KB-128MB記憶體的物聯網終端設備開源,
Statcounter2021年4月資料,全球桌面作業系統與移動作業系統市場占比中,Android以40.66%超過Windows,成為第一大作業系統,

二、作業系統的發展史
1946年2月14日,世界上公認的第一臺通用計算機ENIAC在美國賓夕法尼亞大學誕生,
在這時候,如何管理計算機上的程式也逐步成為一個非常重要的問題,早期的計算機采用紙帶的方式記錄要計算的任務,并通過打孔的紙帶或磁盤記錄輸出的結果,這樣就需要一個專門的操作員值守在計算機旁邊,并且操作的效率也不高,因此,人民開始關注如何能使這一程序自動化,1956年,世界上第一個公認的批處理作業系統 GM-NAA I/O(通用汽車公司和北美航空輸入/輸出系統)誕生,
GM-NAA I/O由Robert L.Patrick和Owen Mock在IBM 704上實作,GM-NAA I/O實作的主要是對輸入和輸出的自動化管理:操作員只要將相關的任務交給GM-NAA I/O,計算機就會一直作業直到所有任務執行結束,1964年,美國IBM公司發布了通用作業系統IBM System/360,
通過定義指令集,將計算機的架構與實作分開,從而在一套架構上可以實作多代計算機,并且允許使用者通過自定義的架構去擴展外設;由于指令集與具體實作的分離,IBM System/360的成功也標志著作業系統從面向每種計算機進行定制開發轉變為與計算機底層硬體實作解耦,自此,作業系統開始進入通用作業系統時代,1964年,通用電氣和麻省理工學院聯合發起了Multics專案,目標是設計與實作一套多用戶、多任務、多層次的作業系統,
貝爾實驗室于1964年加入了Multics這個專案中,但后來由于Multics專案的復雜性導致專案的的作業進度緩慢,1969年貝爾實驗室退出了Multics專案,Multics專案也因進度緩慢,資金短缺,宣告失敗,1969年,曾參與Multics專案的貝爾實驗室員工Ken Tompson和Dennis Ritchie基于匯編語言開發出了UNIX作業系統,并在1973年采用C語言重寫了UNIX,
由于UNIX系統著作權復雜且收費,錯過了發展的黃金時機,導致了其在后續的作業系統競爭中并未占據主導地位,1987年,荷蘭自由大學Andrew S.Tanenbaum教授開源了用于教學的Minx作業系統(采用微內核架構),
由于UNIX著作權的限制(AT&T在Version 7 Unix 推出之后,將 UNIX 源代碼私有化,禁止在教學中使用 UNIX 源代碼),為了方便教學Andrew S.Tanenbaum教授參考UNIX的設計,開發了名為Minx(即小型的UNIX)的作業系統,并將全部源代碼開放給大學教學和研究作業,但由于Minx發布之初對商業化很不友好(禁止商業使用),因此并未被廣泛使用,1991年,芬蘭程式員Linus Torvalds發布了Linux作業系統,
Linux在設計上參考了Minx作業系統,如今已成為目前世界上最成功的、使用最廣泛的開源作業系統之一,2001年,蘋果公司發布了Mac OS X 作業系統,
Mac OS X 的核心作業系統為 Darwin,是一種類Unix的作業系統,Darwin在實作上,以FreeBSD源代碼和Mach微內核為基礎,采用混合內核架構,由蘋果公司和獨立研發;
三、Minix
有興趣的朋友可以研究一下Minix,
Minix采用微內核架構,第一個版本于1987年發布,是荷蘭計算機科學家Andrew S. Tanenbaum為了教學而創作,如今為Andrew S. Tanenbaum教授所著《作業系統:設計與實作》的示例代碼,
Minix啟發了Linux內核的創作,1990年,還在上大學的Linus Torvalds從Minix得到靈感,出于對作業系統的興趣,于1991年發布了Linux,
Minix目前有三個主要的版本:
- Minix1
https://github.com/gdevic/minix1
Minix1是《作業系統:設計與實作》教材的演示代碼,側重于教學和學習(年代久遠,很難編譯安裝), - Minix 2.0.4
http://download.minix3.org/previous-versions/Intel-2.0.4/
Minix 2.0.4側重于自學,鏈接中有詳細的安裝教程, - Minix 3.2.1
http://download.minix3.org/iso/minix_R3.2.1-972156d.iso.bz2
Minix 3.2.1是個實用版本,有iso映像可供下載,安裝方便,
參考:
《現代作業系統原理與實作》陳海波 夏虞斌
StatCounter Global Stats:
http://gsa.statcounter.com/
Linux和UNIX的關系及區別:
http://c.biancheng.net/view/707.html
Unix/Linux/BSD 關系及介紹:
https://blog.csdn.net/liaowenxiong/article/details/116082478
Linux、Mac OS由來與區別:
https://blog.csdn.net/zaishuiyifangxym/article/details/89202623
========== THE END ==========

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/295486.html
標籤:其他
