第一臺(tái)真正的數(shù)字計(jì)算機(jī)是英國數(shù)學(xué)家Charles Babbage建造的分析機(jī)。這臺(tái)機(jī)器本有希望成為真正的電腦丙挽,可以運(yùn)行包含“條件”、“循環(huán)”語句的程序匀借,有寄存器用來存儲(chǔ)數(shù)據(jù)颜阐,但是由于當(dāng)時(shí)(大約在1832年--1840年,對(duì)應(yīng)中國的歷史是林則徐虎門銷煙前后)技術(shù)和工藝條件的限制吓肋,大量精密零件難以制造凳怨,這臺(tái)機(jī)器沒有完成。Babbage當(dāng)時(shí)雇傭了名為Ada Lovelace的年輕女性來編寫軟件是鬼,她是著名詩人拜倫的女兒肤舞,她被公認(rèn)為世界上第一個(gè)程序員。程序語言Ada則是以她命名的均蜜±钇剩看完Ada生平事跡,感嘆她在那個(gè)時(shí)代就是一個(gè)傳奇囤耳,這是維基百科關(guān)于Ada的介紹
第一代:真空管和穿孔卡片
第二次世界大戰(zhàn)刺激了計(jì)算機(jī)研究的爆炸性開展篙顺,這可能是戰(zhàn)爭帶給人們的為數(shù)不多的“財(cái)富”。研究的開展主要是在大學(xué)內(nèi)充择,包括俄亥俄州立大學(xué)(John教授和他的學(xué)生Cliiford Berry建造了據(jù)認(rèn)為是第一臺(tái)可工作的數(shù)字計(jì)算機(jī)德玫,使用了300個(gè)真空管)、哈佛大學(xué)椎麦、賓夕法尼亞大學(xué)等宰僧。不過這些機(jī)器沒有操作系統(tǒng),程序員都是直接與硬件打交道的观挎,所有的程序設(shè)計(jì)都是用純粹的機(jī)器語言編寫的琴儿。
使用機(jī)器的一般方式是:在墻上的機(jī)時(shí)表上預(yù)約一段時(shí)間段化,然后到機(jī)房中將插件版插到計(jì)算機(jī)里,在接下來的幾個(gè)小時(shí)里凤类,期盼正在運(yùn)行中的兩萬個(gè)真空管不會(huì)被燒壞穗泵。
后來,有了改進(jìn)谜疤,出現(xiàn)了穿孔卡片佃延,這時(shí)將程序?qū)懺诳ㄆ希缓笥奢斎朐O(shè)備(如卡片閱讀器)載入計(jì)算機(jī)夷磕,如果一個(gè)錯(cuò)誤使得程序停止履肃,錯(cuò)誤原因由顯示燈提示。如果程序正常完成坐桩,輸出結(jié)果出現(xiàn)在打印機(jī)中尺棋。
第一代系統(tǒng)的模式稱為串行處理。這類系統(tǒng)有兩個(gè)主要的問題:
- 調(diào)度:如果用戶在預(yù)定的的時(shí)間為1小時(shí)绵跷,實(shí)際上只用了45分鐘就完成了工作膘螟,剩下的15分鐘內(nèi)計(jì)算機(jī)只能閑置,這時(shí)就會(huì)導(dǎo)致資源浪費(fèi)碾局。如果用戶遇到了問題荆残,在一個(gè)小時(shí)內(nèi)沒有解決,那么時(shí)間到了也會(huì)被終止净当。
- 準(zhǔn)備時(shí)間:一個(gè)程序稱作作業(yè)内斯,它可能包括往內(nèi)存中加載編譯器和高級(jí)語言程序,保存好編譯好的程序像啼,然后加載目標(biāo)程序和公用函數(shù)并連接在一起俘闯。每一步都可能包括安裝或拆卸磁帶,或準(zhǔn)備卡片組忽冻。如果在此期間發(fā)生了錯(cuò)誤真朗,用戶只能全部重新開始。
第二代:晶體管和批處理系統(tǒng)
早期的計(jì)算機(jī)是非常昂貴的甚颂,同時(shí)由于調(diào)度和準(zhǔn)備時(shí)間是難以接受的蜜猾,為了提高資源的利用率,開發(fā)出了批處理系統(tǒng):用戶不在直接訪問機(jī)器振诬,而是將卡片或磁帶中的作業(yè)交給計(jì)算機(jī)操作員,由他把這些作業(yè)按順序組織成一批衍菱,然后將整個(gè)批作業(yè)交給監(jiān)控程序使用赶么。它從磁帶上讀入第一個(gè)作業(yè)并開始運(yùn)行,其輸出寫到第二盤磁帶上脊串,而不打印辫呻。每個(gè)作業(yè)結(jié)束后清钥,操作系統(tǒng)自動(dòng)地從磁帶上讀入下一個(gè)作業(yè)并運(yùn)行。當(dāng)一批作業(yè)結(jié)束后放闺,操作員取下輸入和輸出磁帶祟昭,將輸入磁帶換成下一批作業(yè),并把輸出磁帶進(jìn)行打印怖侦。
批處理系統(tǒng)的使用提高了計(jì)算機(jī)的利用率篡悟,但是還存在缺點(diǎn):
- 用戶程序和監(jiān)控程序的交替執(zhí)行,使得一部分內(nèi)存要交付給監(jiān)控程序使用匾寝,監(jiān)控程序消耗了一部分時(shí)間搬葬。
- 每次只能執(zhí)行一道程序,I/O速度較處理器速度太慢艳悔,導(dǎo)致處理器經(jīng)臣被耍空閑。
第三代:集成電路芯片和多道程序設(shè)計(jì)
這類系統(tǒng)的特點(diǎn)是可“同時(shí)”運(yùn)行多個(gè)程序猜年,在某個(gè)程序等待I/O時(shí)抡锈,可以選擇其他程序來運(yùn)行。它是現(xiàn)代操作系統(tǒng)的主要方案乔外。
第四代:分時(shí)系統(tǒng)
通過使用多道程序設(shè)計(jì)床三,可以使批處理變得更加有效。但是袁稽,對(duì)許多作業(yè)來說勿璃,需要提供一種模式,以使用戶可以與直接計(jì)算機(jī)交互推汽。
因?yàn)樵S多程序員很懷念第一代計(jì)算機(jī)的使用方式补疑。那時(shí),他們可以幾個(gè)小時(shí)地獨(dú)占一臺(tái)機(jī)器歹撒,可以即時(shí)調(diào)試他們的程序莲组。
當(dāng)今,通常使用專用的個(gè)人計(jì)算機(jī)或工作站來完成交互任務(wù)暖夭,但在20世紀(jì)60年代锹杈,卻是行不通的,當(dāng)時(shí)計(jì)算機(jī)都非常龐大而且昂達(dá)迈着,動(dòng)不動(dòng)就上百萬美元竭望,因此分時(shí)系統(tǒng)應(yīng)運(yùn)而生。在分時(shí)系統(tǒng)中裕菠,多個(gè)用戶可以通過終端同時(shí)訪問系統(tǒng)咬清,由操作系統(tǒng)控制每個(gè)用戶程序以很短的時(shí)間為單位交替執(zhí)行。
1980年至今:個(gè)人計(jì)算機(jī)
隨著大規(guī)模集成電路的發(fā)展,每平方厘米的芯片上可以集成數(shù)千個(gè)晶體管旧烧,于是影钉,迎來了個(gè)人計(jì)算機(jī)時(shí)代,如windows操作系統(tǒng)掘剪、Linux操作系統(tǒng)平委,這些我們已經(jīng)很熟悉了。