操作系統的歷史

計算機操作系統(OS)提供了大多數應用程序在計算機上所需和使用的功能,以及控制和同步計算機硬件所需的鏈接。在沒有操作系統的第一台計算機上,每個程序都需要完整的硬件規範才能正確運行並執行標準任務,以及其自己的驅動程序,用於外圍設備,例如打印機和打孔紙牌讀取器。硬件和應用程序的複雜性日益增長,最終使操作系統成為日常使用的必要性。

背景

最早的計算機是缺乏任何形式的操作系統的大型機。每個用戶在預定的時間內都使用機器的唯一使用,並且將帶有程序和數據到達計算機,通常是在打孔卡以及磁性或紙帶上。該程序將被加載到計算機中,並將機器設置為工作,直到程序完成或崩潰為止。通常可以使用撥盤,切換開關和麵板燈通過控制面板通過控制面板進行調試。

為程序員開發了符號語言,彙編器編譯器,以將符號程序代碼轉換為以前本來可以手工編碼的機器代碼。後來的計算機帶有打孔卡或磁帶上支持代碼的,這些庫將鏈接到用戶的程序,以協助輸入和輸出等操作。這是現代操作系統的起源;但是,機器一次仍然跑了一份工作。在英格蘭的劍橋大學,工作隊列曾經是一條繩子,從該繩子上掛在相應的工作票上,掛在文具釘上。

隨著機器的運行時間越來越強大,相比之下,將設備移交給下一個用戶的時間變得很大。從檢查壁時鐘到計算機自動記錄的機器使用情況。奔跑的隊列從門口的字面上的隊列演變為在待台上的工作桌上的一堆媒體,或者在讀者中堆放在另一張的批次卡片上,直到機器本身能夠選擇和選擇和磁帶驅動磁帶的序列。如果程序開發人員最初可以在機器上運行自己的工作,那麼他們被專門的機器運營商取代,這些機器運營商照顧機器,並且越來越不關心手動執行任務。當商業可用的計算機中心面臨著通過篡改或操作錯誤而丟失的數據的含義,設備供應商面臨著增強運行時庫以防止濫用系統資源的壓力。自動監控不僅需要用於CPU使用,還需要計算印刷,打孔,卡片讀取,使用的磁盤存儲以及在需要操作員干預的情況下,例如更改磁帶和紙質表單等工作時發出信號。例如,將安全功能添加到操作系統中,以記錄哪些程序正在訪問哪些文件的審計跟踪,並阻止工程計劃訪問生產工資單文件。

所有這些功能都朝著功能齊全的操作系統的曲目構建。最終,運行時庫成為一個合併的程序,該程序是在第一個客戶工作之前啟動的,可以在客戶工作中閱讀,控制其執行,記錄其使用情況,在工作結束後重新選擇硬件資源,並立即繼續處理下一份工作。在建立“操作系統”一詞之前,這些能夠管理多步驟過程的居民背景程序通常被稱為監視器或監視程序。

提供基本硬件管理,軟件調度和資源監控的基礎程序似乎似乎是個人計算時代以用戶為導向的OSE的偏遠祖先。但是OS的含義發生了變化。在早期汽車缺乏後來成為標準的速度計,收音機和空調,越來越多的可選軟件功能成為每個操作系統套件的標準功能,儘管某些應用程序(例如數據庫管理系統電子表格)仍然是可選的,並分別定價。這導致了OS作為完整的用戶系統的感知,該用戶系統具有集成的圖形用戶界面,實用程序,某些應用程序,例如文本編輯器文件管理器以及配置工具。

早期操作系統的真正後代是現在稱為“內核”的後代。在技​​術和開髮圈中,由於使用手持式小工具到工業機器人和實時控制系統,不會在前端運行用戶應用程序。如今,設備中的嵌入式操作系統並沒有像1950年代的祖先那樣刪除。

計算機軟件文章中討論了更廣泛的系統和應用程序軟件類別。

大型機

用於實際工作的第一個操作系統是GM-NAA I/O ,該操作系統由General MotorsIBM 704於1956年生產。 IBM大型機的大多數其他早期操作系統也是由客戶生產的。

早期的操作系統非常多樣化,每個供應商或客戶都會生產一個或多個針對其特定大型機器計算機的操作系統。每個操作系統,即使是來自同一供應商,都可以具有根本不同的命令,操作程序以及調試艾滋病等設施的不同模型。通常,每次製造商帶出新機器時,都會有一個新的操作系統,並且大多數應用程序都必須手動調整,重新編譯和重新測試。

IBM硬件上的系統

狀況一直持續到1960年代,當時IBM已經是領先的硬件供應商,停止了現有系統的工作,並將其所有精力投入開發系統/360系列機器,所有這些機器都使用了相同的指令和輸入/輸出架構。 IBM打算為新硬件OS/360開發一個單個操作系統。 OS/360的開發中遇到的問題是傳奇的,並由弗雷德·布魯克斯(Fred Brooks)神話般的人月中描述,這本書已成為軟件工程的經典書籍。由於硬件範圍內的性能差異以及軟件開發的延遲,因此引入了整個操作系統家族,而不是單個OS/360。

IBM最終釋放了一系列的停滯,然後是兩個壽命較長的操作系統:

  • OS/360用於中端和大型系統。這可以在三個系統生成選項中獲得:
    • PCP適用於早期用戶和沒有用於多編程的資源的人。
    • 中端系統的MFT ,由OS/360版本15/16中的MFT-II取代。這是一個繼任者OS/VS1 ,該繼任者在1980年代停產。
    • 大型系統的MVT 。這在大多數方面都與PCP和MFT相似(大多數程序可以放置在三個而不會重新編譯的情況下),但是具有更複雜的內存管理和時間共享的設施TSO 。 MVT有幾個繼任者,包括當前的Z/OS
  • 小型系統/360型號的DOS/360具有多個繼任者,包括當前的Z/VSE 。它與OS/360明顯不同。

IBM保持與過去的完全兼容性,因此在六十年代開發的程序仍然可以在z/vse(如果是為DOS/360開發)或Z/OS(如果是為MFT或MVT開發的)而沒有更改的。

IBM還開發了TSS/360 ,這是系統/360型67的時間共享系統。他們認為開發分時度假系統的重要性過於補償,他們使數百名開發人員可以從事該項目。 TSS的早期版本緩慢且不可靠。到TSS具有可接受的性能和可靠性時,IBM希望其TSS用戶遷移到OS/360和OS/VS2;當IBM提供TSS/370 PRPQ時,他們在3個發行後將其放下。

IBM S/360和S/370架構的幾個操作系統是由第三方開發的,包括密歇根州終端系統(MTS)和Music/Sp

其他大型機組操作系統

Control Data Corporation在1960年代開發了範圍操作系統,用於批處理處理,後來開發了時間共享的MACE操作系統,這是後來Kronos的基礎。與明尼蘇達大學合作,克羅諾斯(Kronos)和後來的NOS操作系統是在1970年代開發的,該系統支持同時批量生產和時間共享使用。像許多商業時間共享系統一樣,其界面是DTSS時間共享系統的擴展,這是分時和編程語言中開創性的努力之一。

在1970年代後期,控制數據和伊利諾伊大學開發了柏拉圖系統,該系統使用了等離子體面板顯示器和長距離時間共享網絡。柏拉圖的時代非常創新。柏拉圖的導師編程語言的共享內存模型允許應用程序,例如實時聊天和多用戶圖形遊戲。

對於Univac 1107 ,第一家商用計算機製造商Univac生產了Exec I操作系統,計算機科學公司開發了Exec II操作系統並將其交付給Univac。 Exec II已移植到Univac 1108 。後來,Univac為1108開發了EXEC 8操作系統;它是後來家庭成員的操作系統的基礎。像所有早期的大型機系統一樣,Exec I和Exec II是一個面向批處理的系統,該系統管理磁性鼓,磁盤,讀卡器和線條打印機。 Exec 8支持批處理處理和在線交易處理。在1970年代,Univac生產了實時基本(RTB)系統,以支持大規模分享,也以達特茅斯基本系統的形式進行了圖案。

Burroughs Corporation於1961年通過MCP(主控制計劃)操作系統引入了B5000 。 B5000是一台堆棧機,旨在獨家支持高級語言,沒有軟件,甚至在操作系統的最低級別上,直接用機器語言彙編語言編寫; MCP是第一個完全用高級語言編寫的操作系統 - ESPOLAlgol 60的方言 - 儘管ESPOL在B5000指令集中的每個“音節”都有專門的語句。 MCP還引入了許多其他突破性的創新,例如是虛擬記憶的第一個商業實現之一。現在,B6500的MCP重寫為Unisys ClearPath/MCP。

GE於1962年與通用電氣綜合運營主管(GECOS)操作系統一起推出了GE-600系列。霍尼韋爾收購了GE的計算機業務後,它將其重命名為一般綜合操作系統(GCOS)。霍尼韋爾(Honeywell)擴展了GCOS名稱在1970年代涵蓋其所有操作系統的使用,儘管其許多計算機與早期的GE 600系列沒有任何共同點,並且其操作系統並非來自原始GECOS。

與GE和Bell Labs合作的Mac Project Mac開發了Multics ,該項目介紹了環形安全特權級別的概念。

Digital Equipment Corporation於1967年為其PDP-10系列的PDP -10系列開發了TOPS-10 。在廣泛使用Unix之前,Tops-10是大學和ARPANET早期社區中特別受歡迎的系統。 Bolt,Beranek和Newman開發了Tenex ,用於支持要求分頁的修改後的PDP-10;這是研究和ARPANET社區中的另一個流行系統,後來由DEC開發為Tops-20

科學數據系統/Xerox數據系統為Sigma系列計算機開發了多個操作系統,例如基本控制監視器(BCM),批處理處理監視器(BPM)和基本的時間共享監視器(BTM)。後來,BPM和BTM由通用時間共享系統(UTS)繼承;它旨在為在線(交互式)用戶程序提供多編程服務,除了批處理模式生產作業外,它還由CP-V操作系統繼承,該操作系統將UTS與面向批處理的Xerox操作系統相結合。

微型計算機

數字設備公司為其16位PDP-11機器創建了多個操作系統,包括簡單的RT-11系統,共享時間共享RST操作系統以及RSX-11實時操作系統家族,以及32位VAX機器的VMS系統。

Data GeneralHewlett-PackardComputer Automation等數字設備公司的幾個競爭對手創建了自己的操作系統。為模塊化計算機系統MADCOMP II和MODCOMP III計算機開發了一種這樣的“ Max III”。它的特徵是目標市場是工業控制市場。 Fortran庫包括一個可以訪問測量和控制設備的庫。

IBM在此類操作系統中的關鍵創新(他們稱為“中端”)是系統/38的“ CPF”。這具有基於功能的地址,使用了機器接口體系結構來隔離應用程序軟件,大多數操作系統與硬件依賴關係(包括諸如地址大小和寄存器大小之類的詳細信息),並包括集成的RDBMSIBM AS/400及以後的IBM Power Systems的成功OS/400(現在稱為IBM I )沒有文件,只有不同類型的對象,這些對象仍然存在於非常大的,平坦的虛擬內存中,稱為單層存儲。

UNIX操作系統是在1960年代後期在AT&T Bell Laboratories開發的,最初是針對PDP-7 ,後來又用於PDP-11。因為它在早期版本中基本上是免費的,易於獲得且易於修改,因此獲得了廣泛的接受。它也成為Bell Systems運營公司的要求。由於它是用C語言編寫的,當該語言移植到新的機器體系結構時,Unix也可以移植。這種可移植性使其成為第二代微型計算機和第一代工作站的選擇,並且其使用變得廣泛。 Unix舉例說明了在各種硬件平台上概念上相同的操作系統的想法。由於其實用性,它啟發了許多及以後成為自由軟件機芯和開源軟件的根源之一。許多操作系統基於它,包括MinixGNU/Linux伯克利軟件分佈。 Apple的MacOS也通過NextStepFreeBSD基於Unix。

選拔操作系統是在各種硬件品牌上可用的另一個操作系統。 1973年在商業上發行的核心是一種基本的語言,稱為數據/基本語言和一種稱為英語的SQL風格的數據庫操縱語言。在1980年代初期的觀察家身上,獲得了各種製造商和供應商的許可,將選拔賽視為UNIX的強大競爭對手。

微型計算機

從1970年代中期開始,一類新的小型計算機進入了市場。這些系統具有8位處理器,通常是MOS技術6502Intel 8080Motorola 6800Zilog Z80 ,以及基本的輸入和輸出接口以及RAM和實用性,這些系統最初是基於Kit的Hobbyist Computers,但很快就進化為必不可少的業務工具。

家用計算機

雖然1980年代的許多八位家用計算機,例如BBC MicroCommodore 64Apple II系列Atari 8位Amstrad CPCZX Spectrum Series等人可以加載第三方磁盤加載操作系統,例如CP/MGEOS ,通常沒有使用它們。他們的內置操作系統是在一個時代設計的,當時軟盤驅動器非常昂貴,並且預計大多數用戶不會使用,因此大多數標準存儲設備是使用標準緊湊型盒式磁帶的磁帶驅動器。 Most, if not all, of these computers shipped with a built-in BASIC interpreter on ROM, which also served as a crude command line interface , allowing the user to load a separate disk operating system to perform file management commands and load and save to磁碟.最受歡迎的家用計算機,Commodore 64,是一個值得注意的例外,因為它的DOS在磁盤驅動器硬件中在ROM上,並且該驅動器的地址與打印機,調製解調器和其他外部設備相同。

此外,這些系統以最少的計算機存儲器運輸-4-8千座是早期家用計算機的標準配置 - 以及8位處理器,沒有專門的支持電路,例如MMU甚至是專用的實時時鐘。在此硬件上,一個複雜的操作系統支撐多個任務和用戶可能會損害機器的性能而無需真正需要。由於這些系統的銷售在很大程度上已完成,並具有固定的硬件配置,因此,操作系統也無需為各種硬件提供驅動程序來抽像差異。

視頻遊戲,甚至是家庭計算機的可用電子表格數據庫文字處理器都是完全具有獨立的程序,這些程序完全接管了機器。儘管這些計算機存在集成軟件,但與獨立等效物相比,它們通常缺乏功能,這主要是由於內存限制。數據交換主要是通過ASCII文本或CSV等標準格式或專門的文件轉換程序進行的。

視頻遊戲和遊戲機中的操作系統

由於幾乎所有的視頻遊戲機和街機櫃在1980年之後設計和建造都是基於微處理器的真正數字機器(與較早的乒乓球和衍生物不同),因此其中一些具有最小的BIOS或內置遊戲形式,例如ColeCovisionSega Master SystemSNK Neo Geo

PC-Engine開始的現代遊戲機和視頻遊戲都有最小的BIOS,還提供了一些交互式實用程序,例如存儲卡管理,音頻視頻CD播放,複製保護,有時還帶有供開發人員使用等。但是,這些情況中很少有資格成為真正的操作系統。

最值得注意的例外可能是Dreamcast Game遊戲機,其中包括最小的BIOS,例如PlayStation ,但可以從遊戲磁盤上加載Windows CE操作系統,從而允許PC World輕鬆移植遊戲,而Xbox Game Console則是僅僅是基於Intel的PC,在後台運行了Microsoft Windows的秘密,修改的版本。此外,還有Linux版本將在Dreamcast和後來的遊戲機上運行。

在此之前,索尼發布了一種開發套件,稱為其第一個PlayStation平台的Net Yaroze ,該套件提供了一系列的編程和開發工具,可與普通PC一起使用,並提供了特殊修改的“ Black PlayStation”使用PC並從中下載程序。這些操作通常需要在兩個平台上使用功能性操作系統。

總的來說,可以說,在1970年代,1980年代和1990年代的大多數情況下,視頻遊戲機和街機硬幣操作機器最多使用的機器,而從PlayStation時代開始,他們開始變得越來越複雜,更加複雜,更加複雜,到需要通用或定制的操作系統來協助開發和擴展性。

個人計算機時代

蘋果麗莎運行麗莎OS

微處理器的開發使小型企業和業餘愛好者提供了便宜的計算,這反過來又導致了使用共同互連的可互換硬件組件的廣泛使用(例如S-100 ,SS-50, Apple II , ISA, ISAPCI公交車),以及對控制它們的“標準”操作系統的需求越來越多。這些機器上最重要的OS是8080 /8085 / Z -80 CPU的數字研究CP / M -80。它基於多個數字設備公司操作系統,主要用於PDP-11體系結構。微軟的第一個操作系統MDOS/MIDAS是沿許多PDP-11功能設計的,但用於基於微處理器的系統。 IBM提供時, MS-DOSPC DOS的設計與CP/M-80相似。這些機器中的每一個都有一個在ROM中的小啟動程序,該程序從磁盤上加載了OS本身。 IBM-PC類機器上的BIOS是該想法的擴展,並且自1981年引入了第一個IBM-PC以來的20年中,它具有更多的功能。

展示設備和處理器的成本降低使得為許多操作系統提供圖形用戶界面,例如帶有許多Unix系統的通用X窗口系統,或其他圖形系統,例如AppleClassic的MacMacOS無線電棚彩色計算機的OS -9級II/Multi-VueCommodoreAmigaosAtari TosIBMOS/2Microsoft Windows 。最初的GUI是在1970年代初在施樂帕洛阿爾托研究中心Xerox Alto計算機系統上開發的,並在整個1980年代和1990年代由許多供應商商業化。

自1990年代後期以來,個人計算機上的廣泛使用中已經有三個操作系統: Apple Inc.Macos開源LinuxMicrosoft Windows 。自2005年以來,以及Mac向英特爾處理器的過渡,所有這些都主要是在X86平台上開發的,儘管MacOS一直保留了PowerPC的支持,直到2009年,Linux仍被移植到許多體系結構中,包括68KPA-RISC和DEC ALPHA,以及DEC ALPHA,以及DEC ALPHA ,以及長期以來已經取代並過時了生產,以及用於服務器或嵌入式系統的SPARCMIP ,但不再用於台式計算機。其他操作系統(例如Amigaos和OS/2)仍在使用中,如果有的話,主要是通過翻譯愛好者或專門的嵌入式應用程序。

移動操作系統

Android是最常用的移動操作系統

在1990年代初期, Psion發布了一種小型移動計算設備PSION系列3 PDA 。它支持在稱為EPOC的操作系統上運行的用戶編寫的應用程序。後來的Epoc版本成為Symbian ,這是一種操作系統,該操作系統用於諾基亞愛立信索尼愛立信摩托羅拉三星和由SharpFujitsuMitsubishiNTT Docomo開發的手機。直到2010年, Symbian是世界上使用最廣泛的智能手機操作系統,2006年的峰值市場份額為74%。1996年, Palm Computing發行了Plyot 1000和Pilot 5000,運行Palm OS 。 Microsoft Windows CE是Pocket PC 2000的基礎,在2003年更名為Windows Mobile ,在2007年達到頂峰,是美國智能手機最常見的操作系統

在2007年,蘋果引入了iPhone及其操作系統,即簡單的iPhone操作系統(直到iOS 4發行),它像Mac OS X一樣,基於Unix型Darwin 。除了這些基礎外,它還引入了功能強大且創新的圖形用戶界面,後來也在平板電腦iPad上使用。一年後, Android具有自己的圖形用戶界面,基於修改後的Linux內核,並在2015年通過Windows Phone重新進入移動操作系統市場,該市場在2015年被Windows 10 Mobile取代。

除此之外,該領域還競爭了其他各種移動操作系統

虛擬化的興起

操作系統最初直接在硬件本身上運行,並為應用程序提供服務,但是通過虛擬化,操作系統本身在管理程序的控制下運行,而不是直接控制硬件。

在大型機上,IBM在1968年在IBM System/360 Model 67引入了虛擬機的概念,並於1972年晚些時候使用虛擬機器設備/370 (VM/370)在System/370上擴展。

在基於X86個人計算機上, VMware通過其1999年的產品VMware Workstation及其2001 VMware GSX Server和VMware ESX ESX服務器產品推廣了這項技術。後來,包括XENKVMHyper-V在內的其他各種產品都意味著,到2010年,據報導,超過80%的企業擁有虛擬化程序或項目,所有服務器工作負載中有25%將在虛擬機中。

隨著時間的流逝,虛擬機,監視器和操作系統之間的界線變得模糊:

  • 管理程序變得更加複雜,獲得了自己的應用程序編程接口,內存管理或文件系統。
  • 虛擬化成為操作系統的關鍵功能,如KVMLXC在Linux中的例證, Windows Server 2008中的Hyper-VHP-Integrity虛擬機中的Hyper-V
  • 在某些系統中,例如來自IBM的Power5Power6的服務器,該管理程序不再是可選的。
  • 從根本上簡化的操作系統(例如CoreOS)旨在僅在虛擬系統上運行。
  • 已重新設計應用程序直接在虛擬機監視器上運行。

在許多方面,虛擬機軟件今天扮演以前由操作系統擔任的角色,包括管理硬件資源(處理器,內存,I/O設備),應用調度策略或允許系統管理員管理系統。

也可以看看