作業系統歷史
作業系統的歷史在某種意義上來說也是計算機的歷史。作業系統提供對硬體控制的調用和應用程式所必需的功能。
計算機歷史 |
---|
1960年代前的計算機硬體 |
1960年代後的計算機硬體 |
蘇聯計算機硬體歷史 |
作業系統 |
軟體工程 |
程式語言 |
圖形用戶介面 |
網際網路 |
全球資訊網 |
電腦遊戲 |
電腦作業系統提供應用程式必須與最常使用的整套功能,還有控制與同步電腦硬體連結,在第一代電腦裡,是沒有作業系統的,當時的每一個程式都需要編寫完整的硬體驅動,還有他自己對印表機和打孔卡等外部裝置的驅動程式,來正確運作與執行指定任務,最終硬體與應用程式複雜性的成長無可避免的創造了作業系統迫切的需求。
背景
早期的電腦沒有作業系統。只有單獨的機器,操作者會帶著記錄有程式和資料的卡片(punch card)或較後期的打孔紙帶去操作機器。程式讀入機器後,機器就開始工作直到程式停止。由於程式難免有誤,所以機器通常都會中途崩潰。程式一般通過控制板的開關和狀態燈來除錯。據說圖靈能非常熟練地用這種方法操作曼切斯特1型機器。
後來,機器引入幫助程式輸入輸出等工作的代碼庫。這是現代作業系統的起源。然而,機器每次只能執行一件任務。在英國劍橋大學,這些任務的磁帶從前是排成一排掛在衣鉤上的,衣鉤的顏色代表任務的優先級。
概念意義上的作業系統和通俗意義上的作業系統差距越來越大。通俗意義上的作業系統為了方便而把最普通的包和應用程式的集合包括在作業系統內。隨著作業系統的發展,一些功能更強的「第二類」作業系統軟體也被包括進去。在今天,沒有圖形介面和各種檔案瀏覽器已經不能稱為一個真正的通俗意義上的作業系統了,但事實上,執行在資料中心和伺服器等領域的作業系統往往是沒有圖形介面的。
大型電腦時代
早期的作業系統非常多樣化,生產商生產出針對各自硬體的系統。每一個作業系統都有很不同的命令模式、操作過程和除錯工具,即使它們來自同一個生產商。最能反映這一狀況的是,廠家每生產一台新的機器都會配備一套新的作業系統。這種情況一直持續到二十世紀六十年代IBM公司開發了System/360系列機器。儘管這些機器在效能上有明顯的差異,但是他們有統一的作業系統——OS/360(在開發OS/360過程中遇到的問題在Fred Brooks寫的軟體工程經典之作《人月神話》中詳細地敘述了)
UNIX作業系統是在 1960 年由AT&T公司的貝爾實驗室開發出來的,原本是要用於 PDP-7 ,後來用於 PDP-11。 因為它的早期版本是完全免費的,可以輕易取得並容易修改,所以它得到了廣泛的接受。他也成了貝爾實作業系統公司的系統基礎,由於他是以 C語言 撰寫,當這種語言撰寫的程式被移植到另一個架構時,unix 也能移植過去。 這種方便移植的特性,讓它成為發展第二代迷你電腦和第一代工作站作業系統的其中一種選項。
由於早期的廣泛應用,UNIX 已經成為的作業系統的典範。不過,它始終屬於AT&T公司,只有那些能負擔的起許可費的企業才用得起,這限制了它的應用範圍。早期的作業系統是可以被使用者軟體所利用的功能的集合。一些有能力的公司發展更好的系統,但他們不支援其他公司硬體的特性。
60年代末70年代初,幾種硬體支援相似的或提供埠的軟體可在多種系統上執行。早期的系統已經利用微程式來在他們的系統上實現功能。事實上,除了360/165和360/168外,360/40之後的大部分360系列的機器都實行微程式設計。
藉由廣泛的被大量採用,UNIX 展示了在不同硬體架構上作業系統可以是一致的概念。後來還成 自由軟體 與 開源軟體 包含 GNU, Linux, BSD 的發展根基。
個人電腦時代:Apple, DOS 和以後
微型處理器的發展使電腦的應用普及至中小企業及個人愛好者。而電腦的普及又推動了硬體組件公共介面的發展(如S-100,SS-50,Apple II,ISA和PCI匯流排),並逐漸地要求有一種「標準」的作業系統去控制它們。在這些早期的電腦中,主要的作業系統是8080/8085/Z-80 CPU用的CP/M-80,它建立在數位研究公司(Digital Research)先前幾個針對PDP-11架構的作業系統的基礎上。在此基礎上又產生了MS-DOS(或IBM公司的PC-DOS)。這些電腦在ROM(唯讀記憶體)都有一個小小的啟動程式,可以把作業系統從磁碟裝載到主記憶體。IBM-PC系列的BIOS是這一思想的延伸。自1981年第一台IBM-PC誕生以來,BIOS的功能得到不斷地增強。
隨著顯示裝置和處理器成本的降低,很多作業系統都開始提供圖形化使用者介面。如:許多UNIX提供的X Window一類的系統、微軟的Windows系統、蘋果公司的Mac OS和IBM公司的OS/2等。最初的圖形化使用者介面是由Xerox Palo Alto研究中心70年代初期研發出來的,之後被許多公司模仿,繼承發展。