【電子算力時代】
第一次和第二次工業(yè)革命,分別是蒸汽革命和電氣革命,屬于能源和動力方面的變革。
除了將電用于能源之外,19世紀(jì)的科學(xué)家,還開始探索電對信息存儲和傳遞的作用。1837年,電報的發(fā)明,就是一個重要的標(biāo)志。
電報是將信息通過電脈沖的方式進(jìn)行傳遞。在傳遞之前,還是要解決信息編碼問題。
電報發(fā)明人塞繆爾·莫爾斯(Samuel Morse)在發(fā)明電報之前,先發(fā)明了摩斯碼。摩斯碼就是將字符轉(zhuǎn)換成點dot(.)、劃dash(-)兩種符號的一種編碼方式。電脈沖可以很好地傳遞這種編碼。
后來,人類對電技術(shù)的駕馭能力越來越成熟,我們又有了電話。基于電磁理論的發(fā)展,我們還有無線電報和廣播。所有這些,都為計算技術(shù)(信息技術(shù))從機(jī)械化走向電子化作出了鋪墊。
1937-1946:電子計算機(jī)的誕生
機(jī)械時代的計算機(jī),可以通過齒輪或者帶刻度的圓柱,進(jìn)行數(shù)字的標(biāo)記。到了電子時代,這樣做就不太合適了。電的特點是有(通電)和無(不通電),它比較適合的,顯然是二進(jìn)制。
17世紀(jì)后半葉,德國數(shù)學(xué)家萊布尼茨(是的,又是他。他也是微積分的發(fā)明人)率先提出了二進(jìn)制。他形象地用1表示上帝,用0表示虛無,上帝從虛無中創(chuàng)造出所有的實物。
19世紀(jì)中葉,英國數(shù)理邏輯學(xué)家喬治·布爾(George Boole)提出了邏輯代數(shù)(后來被人們稱為“布爾代數(shù)”)。
他通過二進(jìn)制,將算數(shù)和簡單的邏輯統(tǒng)一起來,通過使用與、或、非等邏輯運算符,以及基于真和假的二值邏輯,為我們提供了一種理解和操縱邏輯關(guān)系的工具。
布爾代數(shù)為計算機(jī)的二進(jìn)制、開關(guān)邏輯電路的設(shè)計鋪平了道路,并最終為現(xiàn)代計算機(jī)的發(fā)明奠定了數(shù)學(xué)基礎(chǔ)。
除了邏輯基礎(chǔ)之外,硬件當(dāng)然也要跟上。
1904年,英國人約翰·安布羅斯·弗萊明(John Ambrose Fleming)發(fā)明了真空電子二極管,可以實現(xiàn)單向?qū)щ?,檢波、整流。1906年,美國人德·福雷斯特(Lee De Forest)在二極管的基礎(chǔ)上加以改進(jìn),發(fā)明了真空三級電子管,可以實現(xiàn)信號放大。
真空管的出現(xiàn),推動人類電子技術(shù)向前邁了一大步,初步補(bǔ)足了硬件短板。
那一時期,信息存儲技術(shù)也有了很大進(jìn)步。
1898年,丹麥工程師瓦蒂瑪·保爾森(Valdemar Poulsen)在自己的電報機(jī)中首次采用了磁線技術(shù),使之成為人類第一個實用的磁聲記錄和再現(xiàn)設(shè)備。1928年,德國工程師弗里茨·普弗勒默(Fritz Pfleumer)發(fā)明了錄音磁帶。1932年,奧地利工程師古斯塔夫·陶謝克(Gustav Tauschek)發(fā)明了磁鼓存儲器。
磁性存儲時代,正式開始了。
1937年,英國劍橋大學(xué)的阿蘭·圖靈(Alan M. Turing)提出了被后人稱之為“圖靈機(jī)”的數(shù)學(xué)模型。這為現(xiàn)代計算機(jī)的邏輯工作方式指引了方向。
同樣是1937年,貝爾試驗室的喬治·斯蒂比茲(George Stibitz)展示了用繼電器表示二進(jìn)制的裝置。盡管僅僅是個展示品,但卻是第一臺二進(jìn)制電子計算機(jī)。
二戰(zhàn)爆發(fā)后,軍事需求大大刺激了算力的發(fā)展。軍方需要更加強(qiáng)勁的算力,完成密碼加密解密、火炮彈道計算甚至火箭發(fā)射等重要任務(wù)。
1941年12月,德國人康拉德·楚澤(Konrad Zuse)制作完成了世界上第一臺可編程電子計算機(jī)——Z3。
這臺計算機(jī)用于空氣動力學(xué)計算,使用了大量的繼電器和真空管,每秒鐘能做3到4次加法運算,一次乘法需要3到5秒。(遺憾的是,Z3后來毀于柏林轟炸。)
1942年,美國愛荷華州立大學(xué)物理系副教授阿塔納索夫(John V.Atanasoff)和他的學(xué)生克利福德·貝瑞(Clifford Berry)設(shè)計制造了世界上第一臺電子計算機(jī),名為"ABC"(Atanasoff-Berry Computer),也被稱為“珍妮機(jī)”。
ABC使用了IBM的80列穿孔卡作為輸入和輸出,使用真空管處理二進(jìn)制格式的數(shù)據(jù)。數(shù)據(jù)的存儲,則是使用的再生電容磁鼓存儲器(Regenerative Capacitor Memory)。
雖然ABC無法進(jìn)行編程(僅用于求解線性方程組),但使用二進(jìn)制數(shù)字來表示數(shù)據(jù)、使用電子元件進(jìn)行計算(而非機(jī)械開關(guān))、計算和內(nèi)存分離等特點,都足以證明它是一臺現(xiàn)代意義上的數(shù)字電子計算機(jī)。
1944年,在IBM公司的支持下,哈佛大學(xué)博士霍華德·艾肯 (Howard Aiken) 成功研制了通用電子計算機(jī)——Mark I,也稱ASCC(Automatic Sequence Controlled Calculator,自動控制序列計算器)。
Mark I長16米,重4.3噸,擁有75萬個零部件,使用了800公里長的電線,300萬個連接、3500個多極繼電器、2225個計數(shù)器。
它可以在一秒鐘內(nèi)進(jìn)行3次加法或減法。乘法需要6秒,除法需要15.3秒,對數(shù)或三角函數(shù)需要超過1分鐘。當(dāng)時,它被用來為美國海軍計算彈道火力表。
值得一提的是,第一個在Mark I上運行的程序是由馮·諾依曼(John von Neumann)于1944年3月29日牽頭開發(fā)的。當(dāng)時,馮·諾依曼正在研究曼哈頓計劃,需要確定內(nèi)爆是否是原子彈的可行選擇。
還需要提一句,Mark I的研究團(tuán)隊中,有一位名叫格蕾絲·霍珀(Grace Hopper)的海軍預(yù)備役女軍官?!癰ug(現(xiàn)在經(jīng)常指代程序漏洞)”這個詞,就是她引入的。
1945年,Mark II在運行過程中,飛進(jìn)了一只飛蛾,導(dǎo)致出現(xiàn)故障?;翮晗麥缌孙w蛾,解決了問題,成為第一個“調(diào)試(debug)”計算機(jī)的人。
終于,到了1946年2月14日,大名鼎鼎的ENIAC(埃尼阿克)誕生了。
ENIAC是一個真正的“龐然大物”。它占地170平方米,重達(dá)30噸,功率超過150千瓦。
之所以體積和功耗這么大,是因為它采用了17468根真空管。這些真空管,使其可以每秒完成5000次加法或400次乘法,約為手工計算的20萬倍。
ENIAC在人類計算機(jī)發(fā)展史上擁有重要地位,也有極高的知名度。至少我們的《計算機(jī)基礎(chǔ)理論》課本上,肯定有它的名字。
這里需要澄清一下,雖然人們一貫將ENIAC稱為世界上第一臺數(shù)字式電子計算機(jī),但這個說法其實是有爭議的。
前面提到的ABC,就是這個稱謂的有力爭奪者。ENIAC甚至稱不上第二。那一時期問世的數(shù)字電子計算機(jī)很多,嚴(yán)格來說,ENIAC只能排第11。
國外主流觀點認(rèn)為,ENIAC的設(shè)計者盜竊了ABC的設(shè)計。1973年,美國法院也裁定,取消了ENIAC的專利,認(rèn)定ENIAC專利是ABC的衍生品。
關(guān)于誰是第一,我們就不多討論了。反正,1945年左右,電子計算機(jī)誕生的浪潮,標(biāo)志著人類算力正式進(jìn)入了數(shù)字電子計算機(jī)時代。波瀾壯闊的信息技術(shù)革命,正式開啟。以計算機(jī)為中心的信息技術(shù)產(chǎn)業(yè),也正式起步。
從這一刻起,人類的算力,進(jìn)入了全新的階段。
1946-1949:信息革命的奠基
1945年至1948年,除了ENIAC誕生外,科技領(lǐng)域還發(fā)生了好幾件大事。
第一件大事:馮·諾依曼架構(gòu)的提出
馮·諾依曼(John Von Neumann)是美籍匈牙利人,1903年出生,1930年移民美國,成為普林斯頓大學(xué)的教授。
1944年,馮·諾依曼開始參與原子彈的研制。因為研制過程需要進(jìn)行大量的計算,他就開始關(guān)注計算機(jī)相關(guān)的研究進(jìn)展。經(jīng)人引薦,他作為顧問,參與到了ENIAC的研究中。
基于ENIAC的研究,馮·諾依曼等人在1945年又提出了一個新的方案——EDVAC(Electronic Discrete Variable Automatic Computer,電子離散變量計算機(jī))。
在馮·諾依曼撰寫的總結(jié)報告《關(guān)于EDVAC的報告草案》中,他詳細(xì)闡述了一種制造電子計算機(jī)和進(jìn)行程序設(shè)計的新思路,并設(shè)計了由運算器、邏輯控制、存儲器、輸入和輸出設(shè)備組成的新型架構(gòu)。
是的沒錯,這就是著名的馮·諾依曼架構(gòu)。
直到現(xiàn)在,馮·諾依曼架構(gòu)仍然是我們計算機(jī)的主流架構(gòu)。基于這個貢獻(xiàn),馮·諾依曼也被世人譽(yù)為“現(xiàn)代計算機(jī)之父”。(他在數(shù)學(xué)和經(jīng)濟(jì)學(xué)領(lǐng)域的貢獻(xiàn)也很卓著,被稱為“博弈論之父”。)
第二件大事:信息論的提出
1948年,貝爾實驗室的克勞德·香農(nóng)(Claude Elwood Shannon)出版了《通信的數(shù)學(xué)理論》。這本書被看作是信息論的奠基之作。
香農(nóng)給出了通信系統(tǒng)的基本模型,提出了信息熵的概念以及數(shù)學(xué)表達(dá)式。
他指出,信息是可以被量化的,用數(shù)字編碼可以代表任何類型的信息。香農(nóng)還推出了比特(bit)的概念,將其稱為“用于測量信息的單位”。
香農(nóng)提出的香農(nóng)公式,更是指導(dǎo)了整個通信行業(yè)發(fā)展,直到現(xiàn)在也沒有被突破。
簡單來說,香農(nóng)的信息論,為信息技術(shù)奠定了真正的理論基礎(chǔ)。他是當(dāng)之無愧的現(xiàn)代信息通信技術(shù)“祖師爺”。
第三件大事:晶體管的發(fā)明
1947年,同樣是來自貝爾實驗室的威廉·肖克利(William Shockley)、約翰·巴?。↗ohn Bardeen)和沃爾特·布拉頓(Walter Brattain),共同發(fā)明了世界上第一個晶體管。
晶體管的問世,為電路的小型化打下了基礎(chǔ),也為集成電路以及芯片的出現(xiàn)創(chuàng)造了前提。它開辟了電子時代的全新紀(jì)元。
上面說的三件大事,是信息技術(shù)革命爆發(fā)的前提條件,對人類社會的進(jìn)步造成了極其深遠(yuǎn)的影響。
1950-1967:集成電路時代
1951年,發(fā)明了ENIAC的約翰·??颂兀↗. Presper Eckert)和約翰·莫奇利(John Mauchly)再度合作,研制了世界上第一臺商用計算機(jī)系統(tǒng)——UNIVAC-1。
這套系統(tǒng)被美國人口普查部門用于人口普查,它還成功預(yù)測了1952年底的美國總統(tǒng)大選,一夜之間名聲大噪。
1952年,馮·諾依曼領(lǐng)導(dǎo)設(shè)計的EDVAC終于制造完成,開始運行。
相比ENIAC,EDVAC擁有獨立的存儲,是第一臺使用磁帶的計算機(jī)。當(dāng)時,磁存儲已初露鋒芒,成為信息載體的新選擇。
晶體管的應(yīng)用
再后來,晶體管技術(shù)開始逐漸成熟,進(jìn)入市場。相比真空管(電子管),晶體管的體積更小,功耗更低,使得電子設(shè)備變得更加小巧、省電。
1954年,世界上第一臺晶體管計算機(jī)TRADIC,在美國空軍投入使用(貝爾實驗室研制)。其運行功耗不超過100W,體積不超1立方米,相比當(dāng)年的ENIAC有天壤之別。
1958年,美國的RCA公司造出了世界上第一臺全部使用晶體管的計算機(jī)——RCA501。
不久后,1959年,IBM公司不甘落后,也生產(chǎn)出全部晶體管化的計算機(jī)——IBM 7090。
基于IBM 7090,美洲航空公司和IBM共同研發(fā)了世界上第一款訂票系統(tǒng)——Sabre。Sabre迅速普及,帶動了IBM計算機(jī)的市場份額激增,也給其它行業(yè)展示了計算機(jī)的巨大潛力。
集成電路的誕生
說到這里,我們要回過頭,講講發(fā)明了晶體管的威廉·肖克利。
肖克利所帶領(lǐng)的團(tuán)隊雖然合作發(fā)明了晶體管,但內(nèi)部關(guān)系并不好。主要原因,是因為肖克利這個人為人刻薄,很難相處。晶體管發(fā)明后,沒多久,團(tuán)隊成員紛紛離開了他。
1954年,肖克利在貝爾實驗室也待不下去了,就跑去教書。再后來,1956年,他來到美國西部加利福尼亞州的山景城,在一個名叫Palo Alto的小城市(后來是硅谷的一部分),成立了“肖克利半導(dǎo)體實驗室”。
實驗室吸引了很多優(yōu)秀年輕人的加入。其中就包括羅伯特·諾伊斯(Robert Noyce)和戈登·摩爾(Gordon Moore)等8人。
后來,肖克利的事業(yè)再次因個人原因走入困境。于是,1957年9月18日,上面提到的8個年輕人,一起向肖克利提交辭呈。肖克利大發(fā)雷霆,痛斥這幫“忘恩負(fù)義”的年輕人,罵他們是“八叛徒”(traitorous eight)。
“八叛徒”出走后,共同成立了仙童半導(dǎo)體(Fairchild Semiconductor)。
仙童半導(dǎo)體在科技史上擁有舉足輕重的地位。它是世界半導(dǎo)體產(chǎn)業(yè)的搖籃,也被譽(yù)為芯片界的黃埔軍校。
1959年,德州儀器的杰克·基爾比(Jack St. Clair Kilby)和仙童半導(dǎo)體的羅伯特·諾伊斯,先后發(fā)明了基于鍺基底擴(kuò)散工藝和硅基底平面工藝的集成電路,打開了集成電路時代的大門。
1959年之后的計算機(jī),大量采用了晶體管和集成電路。計算機(jī)的算力不斷增強(qiáng),體積和功耗反而不斷減小。
軟件產(chǎn)業(yè)的萌芽
計算機(jī)硬件技術(shù)準(zhǔn)備騰飛的同時,計算機(jī)軟件也開始萌芽了。
包括ENIAC在內(nèi)的早期計算機(jī),沒有操作系統(tǒng)的概念,都是操作員進(jìn)行手工操作。
后來,進(jìn)入1950年代,為了提升操作效率,開發(fā)了批處理系統(tǒng)。
到了1960年代,處理器的速度越來越快,需要執(zhí)行的任務(wù)越來越多。于是,“多道程序系統(tǒng)”出現(xiàn)了?!岸嗟莱绦蛳到y(tǒng)”,采用了通道和中斷技術(shù),允許系統(tǒng)執(zhí)行“掛起”操作。計算機(jī)從串行變成了并行,可以同時運行多個任務(wù),提升了效率。
“多道程序系統(tǒng)”,基本上已經(jīng)接近于真正的操作系統(tǒng)了。
除了操作系統(tǒng)之外,計算機(jī)語言也有了突破。
1957年,IBM公司成功開發(fā)了FORTRAN高級語言。它是世界上第一個被正式采用并流傳至今的高級編程語言。
所謂高級語言,就是一種接近于人們使用習(xí)慣的程序設(shè)計語言。它容易學(xué)習(xí),通用性強(qiáng),寫出的程序比較短,便于推廣和交流。
1960年4月,COBOL語言正式發(fā)布。1964年,BASIC語言發(fā)布。高級語言的不斷涌現(xiàn),為后面的軟件產(chǎn)業(yè)爆發(fā)奠定了基礎(chǔ)。
IBM System/360
1960年代,IBM是世界計算機(jī)行業(yè)毫無疑問的“領(lǐng)頭羊”。在計算機(jī)市場,他們占據(jù)絕對的市場領(lǐng)先地位(在北美市場,市占率超過三分之二)。
1961年12月,IBM公司啟動了一項人類史上規(guī)模最大的商用產(chǎn)品開發(fā)計劃。這項計劃耗資50億美元(約今日的460億美元)、雇用6萬多名新員工、新建5座工廠。
1964年4月7日,計劃成果初現(xiàn),IBM公司正式發(fā)布了六種規(guī)格的System/360商用大型主機(jī)。
360,是360度角的意思,表示全方位的服務(wù)。它是世界上首個指令集可兼容計算機(jī)。單個操作系統(tǒng)可以適用整個系列,而不需要像之前的計算機(jī)一樣,每種主機(jī)量身定做操作系統(tǒng)。
這時,人們才明白,原來電腦主體硬件升級之后,操作系統(tǒng)、應(yīng)用軟件還有外圍硬件,都是可以繼續(xù)使用的?!凹嫒荨钡母拍睿_始形成了。
IBM System/360是IBM史上最成功的機(jī)型,雖然研發(fā)投入巨大,但回報同樣可觀——每臺主機(jī)的價格在250萬到300萬美元之間(約合現(xiàn)在的2000萬美元),每月售出超過千臺。
藍(lán)色巨人年銷售額的一半,都來自于這個系列。美國太空總署的阿波羅登月計劃,全美的銀行跨行交易系統(tǒng),以及航空業(yè)界最大的在線票務(wù)系統(tǒng)等,都使用了IBM System/360。
值得一提的是,雖然IBM霸占了大型機(jī)市場,但60年代初,很多IT公司創(chuàng)立,他們轉(zhuǎn)向了IBM不太在乎的小型化計算機(jī)市場,并取得了不錯的成果。
例如,DEC公司(1957年成立)以及他們發(fā)布的PDP-8、PDP-11、VAX-11系列主機(jī)。這些主機(jī)體積小、功耗低、運算速度也不算差(每秒幾十萬次基本運算),獲得了很多用戶的歡迎。