在整個學習過程中,我個人對計算機的發展曆程很感興趣,總想知道計算機為什麼是今天這樣子。
我用一氣呵成的方式,把計算機發展曆史快速縷一遍。文章詳實、精彩且有趣,希望大家喜歡哦。
小時候,見過計算器,能很快完成計算,當時心想,計算器真厲害,能提前把所有結果存儲下來。
後來,吵着鬧着要買小霸王學習機,最後如願變成遊戲機,經典遊戲“超級瑪麗”和“坦克大戰”至今曆曆在目。
後來,讀初中,有了象征意義上的電腦課,穿着鞋套去電腦室,完全不會操作。有一次,把電腦弄死機了,吓得不輕,梅老師瞪了我一眼,直接把電源關了。
然後,他回到他自己的電腦上,潇灑地聽着任賢齊唱“讓我悲也好,讓我醉也好......”。那時,我知道了電腦還能唱歌。對電腦的屏幕畫面,也隻有個模糊的印象:
那時的電腦顯示器,真的很醜陋,在很長一段時間内,我一直誤以為,這一大坨東西就是電腦的全部。其實,它隻是顯示器而已,遠非核心部件。
廣義上講,上面提到的電子計算器、小霸王學習機和初中見到的那些電腦,都是計算機。你現在拿在手上用于閱讀的手機,也是計算機。總之,計算機無處不在。
要了解計算機,就應該了解它的發展過程,去探索曆史上那些精彩的瞬間。本文從宏觀的角度,浮光掠影般了解一下計算機曆史。我們将以下圖的框架目錄來展開簡述:
一. 手動計算機這裡講的手動計算機,是從遠古時代到17世紀初。很久很久以前,女同志白天忙采集,男同志白天忙打獵,昨日獵回幾隻羊,今朝逮回幾隻兔,都需要計數,這涉及到數的表示。
計數的曆史
遠古時代的人,也有十個手指,所以采用手指來計數,是很順其自然的事情,這也就是十進制的來源。小時候,我們學習十以内數字的加減,就是用手指來計數,來看常見表示:
我們來看下牛津詞典對digit的解釋,手指和數字的關系,一目了然。digit既有手指的意思,也有數字的意思。我們也順便學會了digit, digital, bit(binary digit)這幾個單詞。
想一下,手指計數有哪些不足?很顯然,當數字變大後,手指個數不夠了。而且,古代的人也需要吃飯, 某天逮回3隻羊,用手指記錄下來,吃飯時還得保持手指計數的姿勢。
至于睡覺,那也睡不好,睡醒之後,手指松了,一切都忘了,這就尴尬了。得想其他辦法,很自然地,不要用手指這樣的“活物”來計數,用石頭吧,畢竟石頭不需要吃飯睡覺:
我們來看下calculus這個單詞。容易看到,石頭和計算也聯系在一起,曆史淵源,原來如此。順便地,很輕松地學了單詞,下次看到calculator, calculation, 豈會陌生?
想象一下,要把石頭從北京帶到深圳,該多麻煩。石頭太笨重了,還是不好,得想其他辦法。于是,人們想到用繩子來計數,輕松多了,攜帶也更加方便了。
英語單詞cord就是繩子的意思,record就是記錄的意思,用繩子來記錄嘛。從詞源學來看,cord和record還是很有淵源的,很多東西聯系起來就簡單了。
用結繩計數的人,可能會深刻理解李煜說的“剪不斷,理還亂”,“别是一般滋味在心頭”。我曾遇到過多次解不開結而苦惱的場景,相信你肯定也有,看着就頭大頭暈。
而且,繩子計數沒法處理篡改的問題。昨天我從你那裡借了3隻兔,在繩子上打3個結,晚上回家偷偷解開其中的1個結,這就尴尬了,可見,要防止單方面偷偷篡改。
于是,古人采用了刻痕計數,有了刻痕,雙方立下契約,劈成兩半,每人一份,防止單方篡改。在商朝時,甲骨文很流行。前幾年,還有人在高考作文中用甲骨文呢。
我們提到的手指、石子、繩子和刻痕,主要用來計數,有了計數後,我們得對它進行加減乘除運算,這就涉及計算。接下來,我們簡要聊聊計算方法和工具的發展。
計算的曆史
中國的算籌,曆史悠久。也有很多詞語中包含籌,如觥籌交錯,運籌帷幄等,現代管理學中還有一門“運籌學”的課程。所謂籌,就是竹子,跟擺弄火柴棍差不多。
來看算盤,估計很多人見過,我家就有這個東西,“三下五除二”貌似盡人皆知。樓下培訓機構有個“珠心算課程”,曾經探頭去看了一眼,不怎麼火熱,來看看算盤:
再來看納皮爾籌,我琢磨了一下,道理很簡單,本質就是“九九乘法表”。比如,要計算125*8的值,預期結果是1000,具體是怎麼計算的呢?我試了一下,如圖:
納皮爾發明了對數,大家在高中肯定學過。大家應該記得這個符号:logaN, 那個N不僅僅指代正整數,也指代納皮爾名字中的N,表示對這位計算先驅的紀念。
後來,拉普拉斯說:對數的發明,以其節省勞力,而使天文學家的壽命增加一倍。伽利略說:給我空間、時間和對數,我就能創造宇宙。對數的本質是降維。
什麼意思呢?對數可以把乘法除法轉化為加法減法。類似的做法是非常普遍的,傅裡葉級數,傅裡葉變換,拉普拉斯變換,Z變換,都是如此,降維降級處理。
以常用的傅裡葉變換為例,它把卷積運算降維為乘法運算,實現了積分向乘法的轉換,使得計算複雜度大大降低,學過《信号與系統》的朋友,應該深有感悟。
再來看看由對數引出的滑尺計算,這個尺子是按照對數來制作的。很容易看出2*3=6,直接用尺子得到了結果,其背後的數學邏輯便是對數,log2+log3=log6, 所以2*3=6
那年國慶節,看了核潛艇之父黃旭華老先生獲得了共和國勳章獎,在他的一個視頻,有一把計算尺,在那個年代,就是靠類似的計算尺完成核潛艇計算的,挺不容易。
無論是算籌、算盤、納皮爾籌還是滑尺,都需要人參與具體過程和計算細節。那麼有沒有這樣的工具:輸入3和4,讓工具自動得到7呢?那就來看自動計算的工具吧。
機械計算機時代是從17世紀初到19世紀末。契克卡德是德國人,他制作了一個計算鐘,能實現簡單自動計算,當時的工藝肯定沒有下圖這麼精美,下圖是後人做的複制品:
法國的帕斯卡,就是搞壓強的那個物理學家。著名編程語言Pascal之名,正是取自帕斯卡,以紀念這位計算機先驅。帕斯卡制作了加法器,看着那些齒輪,真想去擰一擰:
德國的數學家萊布尼茨,就更有名了,也是個非常自負的家夥。大學高等數學中的“牛頓-萊布尼茨”公式,應該熟悉吧,還有萊布尼茨對于交錯級數是否發散的判定方法。
他敢跟牛頓爵爺叫闆,還是有幾把刷子的。另外,據說,萊布尼茨對二進制的發明,也有較大的貢獻,這是現代計算機計算的基礎。萊布尼茨當時做了個機器,能做乘法:
在計算機發展史上,上面都是鋪墊,直到巴貝奇差分機,才有了一些現代計算機理念的感覺。作為現代計算機的鼻祖,巴貝奇為計算機奮鬥一生的精神,一直鼓勵着很多人:
巴貝奇分析機更是思維超前,雖然最終沒有實際制造出來,但閃爍着天才般的智慧和火花,很多理念與現代計算機原理非常相似,來看下巴貝奇分析機模型,感覺挺炫酷的:
巴貝奇帶着遺憾離開人世,但給後人留下了寶貴遺産。1832年,17歲的Ada參觀了巴貝奇差分機,深深着迷。在巴貝奇去世後,Ada繼續發揚光大巴貝奇的工作,為機器編程。
Ada被認為是計算機曆史上的第一個程序員,是個女程序員哈。美國國防部曾經花了10年時間研發了一種編程語言,在命名時,他們想到了Ada, 并以此來命名,這就是Ada語言。
Ada的父親,是英國著名詩人拜倫,可曾記得他那經典的話:命運要我去流浪的地方還不少,去時還帶着多少可歎的記憶;但我唯一的慰藉的事情是:最不幸的遭遇也不足為奇。
扯遠了,回歸正題。可以看到,在機械計算機時代,人們用各種方式來制造精巧的機器,讓機器完成簡單的計算,這是很大的飛躍, 因為它把人從具體的計算過程中解放出來了。
三. 機電計算機機電計算機是從19世紀末到20世紀40年代。機械和機電的差别,從名字上就可以看出來。自18世紀中葉以來,電學蓬勃發展,一些機器開始可以用電來驅動了。
美國憲法中這樣一條規定:每10年需要做一次人口普通。1880的人口普查,花了7年的時間才得到結果。這就尴尬了,3年後,也就是1890年,還得再次普查。
随着美國人口越來越多,會出現這樣的問題:前一輪還沒普查完,後一輪又要開始。于是,開始想辦法盡量實現自動化,霍爾瑞斯發明了制表機,并脫穎而出。
1890年的人口普查數據,是1880年的兩倍,但總共卻隻耗時2年左右。當時,霍爾瑞斯制表機沒有選擇二進制,原因:二進轉換困難,二進制機器制作困難。
人口普查後,霍爾瑞斯名聲大振。在1896年,他開了個制表機公司。在1924年,公司改名為IBM, 響當當的名字,快100年了,IBM在每個時代,幾乎都不落伍。
在第二次世界大戰中,各國基于軍事需要,大力投入了計算機的研究,但是,德國似乎不怎麼看好計算機,希特勒更相信武器本身的威力,更相信密集式地狂轟亂炸。
祖斯,德國著名的計算機先驅,在1935-1945這十年左右的時間,先後建成了Z1/Z2/Z3/Z4計算機,這些計算機時運不濟,命途多舛,要麼不被重用,要麼被戰火吞噬。
祖斯的Z1/Z2/Z3/Z4都很有創造性,比如,Z1驗證了機器計算的可行性,Z2是第一台電磁式計算機,Z3可以用二進制控制Z4能用穿孔紙袋輸入輸出,甚至是處理條件。
在第二次世界大戰中,德國不怎麼重視計算機, 但美國就不一樣了,各類計算機相關的研究如火如荼地進行。也就是從這時開始,美國在信息領域的領先地位開始建立。
史蒂比茲在自己的廚房,用二進制做實驗,驗證二進制的可行性。很多書上能看到Model K, 這個K就是kitchen,是廚房的意思,他老婆取名Model K,挺有意思的哈。
貝爾實驗室的Model是一個系列,有很多不同的機型,比如Model I, 能完成遠程通信,畢竟電話與通信是貝爾實驗室的強項,這也為後來計算機網絡的發展奠定了基礎。
哈佛大學也不甘落後,與IBM合作制作了哈佛Mark系列,不過其總設計師艾肯卻宣稱哈佛Mark I是他一個人搞起來的,IBM的小沃森自然很惱火,最終不得不分道揚镳:
哈佛Mark II是當時最大的繼電器是計算機,有13000多個繼電器。我們來看看繼電器長啥樣子。我還記得,在讀初三時,物理課上,盧老師深入講解過繼電器:
1947年9月9日,那是一個秋季的九九豔陽天,一個蛾子飛進了哈佛Mark II的一個繼電器,導緻繼電器失效,機器無法正常工作,這就是曆史上有名的bug事件。
如今的軟件開發中,大家常說的軟件bug, 就是指軟件缺陷或者漏洞,實際上,其實說的就是1947年的那隻該死的蛾子。工作之後,我天天抓bug,抓得不亦樂乎。
四.電子計算機電子計算機從20世紀40年代至今,一直方興未艾。繼電器雖然可以用來做計算機零件,但并不完美,它是機械的,反複移動,容易斷裂,而且速度還很慢。
于是出現了電子管,也稱真空管,繼電器能做的二進制功能邏輯,電子管都能做,而且速度更快,快1000倍。來看看電子管長啥樣,我覺得挺好看,顔值不錯:
當時,很多機電計算機由繼電器構成,但到了1945年,電子管計算機基本上取代了機電計算機,線路亂七八糟,操作計算機的方式就是插電線, 拔電線。
那時的操作員,相當于今天的程序員,都是“編程”。不同之處是,那時工作很繁瑣,需要耐心,有很多女孩子加入,于是,男孩子也不愁找不到女朋友了。
不像今天,程序員找個女朋友,費勁得很,可能是因為女程序員太少了。不久之前,有個男程序員就跟我聊天,吐槽這件事情,我就聽聽,然後樂呵笑了。
電子管計算機固然快,但很昂貴,而且還受到“愛迪生效應”的影響:電子管工作的時候,容易發熱,動不動就被燒壞,這對于穩定性來說,是很緻命的呢。
比方說,好不容易寫好一篇公衆号文章,辛辛苦苦花了一周時間,結果某個電子管燒壞了,整個計算機失靈,文章丢失,肯定要罵人,丢過文章的人都知道。
鑒于電子管的缺點,人們開始研究新的器材。1947年,晶體管誕生了,學過模拟電路的朋友,應該很熟悉這個東西,我的專業就與此相關。話不多說,來看下晶體管外形:
1956年,肖克利因發明了晶體管而獲得了諾貝爾物理學獎,晶體管改變了世界。肖克利本人名利雙收,但想搞更多的錢,于是開始開公司,可是他智商很高,情商太低。
于是,肖克利手下的八個人,先後離開了他。肖克利自然不滿,給這八個人扣了一個大帽子,即“八叛逆(The Traitorous Eight)”,這可是很厲害的八個人哦,一起來看看:
1957年,這八個人接受一家公司資助,成立了後來很有名的仙童半導體公司,上圖的的字母F, 就是Fairchild, 意思就是仙童。學電子電路的朋友,應該基本都聽說過這個公司,它被譽為是矽谷的西點軍校。
喬布斯就曾将其比作成熟的蒲公英,隻要風一吹,其創新的精神,就像蒲公英的種子那樣,四處飛揚,生根發芽。然而,天下沒有不散的筵席,他們又陸續離開仙童公司,于是有了Intel和AMD, 是不是很熟悉?
大家電腦中的CPU, 基本都是這兩家的搞出來的。這裡順便說一下,摩爾是Intel的創始人之一,他提出了著名的摩爾定律,至今仍有效,并支配着硬件的發展。貌似扯遠了,我們來繼續看當時的晶體管計算機:
盡管晶體管使計算機簡化了很大,但計算機仍然是龐然大物,還能繼續進行壓縮嗎?1958年,就職于德州儀器公司的傑克基爾比,發出疑問:為什麼不在一塊矽片上,制造多個晶體管呢?這就是集成電路。
1959年,肖克利八弟子之一的羅伯特諾依斯(Intel創始人之一), 也想到了同樣的方法。他們後來為誰先發明集成電路而争論不休,現在普遍的觀點是:他們獨立發明了集成電路,可以說都是集成電路之父。
說到羅伯特諾依斯,在喬布斯的“Stay Hungry, Stay Foolish”演講中,他說自己被趕出蘋果公司後,曾去找過羅伯特諾依斯和HP創始人之一的戴維帕卡德,估計是一起喝酒吐槽。來看下集成電路芯片吧:
然而,這種集成度還遠遠不夠,能不能在更小的芯片上集成更多的晶體管和電子元件呢?當然可以,這就是大規模和超大規模集成電路。一塊芯片,指甲那麼大,居然集成了上億個晶體管和電子器件,而且還要正常穩定工作,每每想到此,就不寒而栗了。
當年占據整個房間大小的計算機,如今竟然被集成得這麼小, 而且功能遠遠超過當時的計算機。這背後是數學、物理、化學、微電子學、電磁學、光學和量子力學等學科的功勞。難怪華為任總說:搞芯片,砸錢是不行的,要砸數學家,物理學家和化學家。
我現在做着跟當時專業基本無關的東西,回想起自己學過的電子通信方面的知識,還是能喚起心中的漣漪。曾經在知乎上看到一個問題:為什麼硬件工程師的工資,整體不如軟件工程師?裡面給了一些很現實的原因,我覺得很有道理。
雖然我現在不做硬件了,但心中始終有些硬件的情懷,拿着單片機開發闆,就有種莫名的興奮,看到FPGA闆子,一定要去摸一下,買到了樹莓派,玩得不亦樂乎。那些執着在硬件行業,執着于國産芯片研發的公司和人員,值得尊敬。
講到這裡,似乎把計算機發展簡史叙述了一遍,但僅僅是從計算機硬件角度進行的,并不是計算機發展曆史的全部,甚至隻能算作是冰山一角。
從計算機科學上看,居然沒有講到計算機科學之父---阿蘭圖靈,沒有講到現代計算機之父---馮諾依曼,沒有講到信息論之父---克勞德香農。
從計算機型号上看,居然沒有講到ABC計算機,沒有講到ENIAC計算機, 沒有講到EDVAC計算機,更沒有講到後面各種樣琳琅滿目的計算機。
從計算機公司上看,居然沒有講到喬布斯創建的蘋果,沒有講到比爾蓋茨創建的微軟,沒有講到坦福大學一對夫婦創建的思科,統統沒講到。
從計算機整體上看,居然沒有講到軟件發展,沒有講到操作系統,沒有講到Windows和Linux,沒有講到編譯器和各種編程語言和數據庫等。
對了,連計算機網絡這麼的重要東西,也沒講到。所以這篇文章是不完整的,也不可能在一篇文章中把所有的東西介紹完畢,畢竟浩如煙海。
在後續的公衆号文章中,我會逐漸地講到上面的一些精彩曆史和相關知識點,一起再現計算機發展曆史上的璀璨時刻和節點,咱們不見不散。
下一篇
紫微鬥數——星在各宮
有話要說...