以下的內容轉載自
http://hp.envir.online.sh.cn/vega/hacker.htm
=================================================
本篇原作者為Eric S. Raymond [email protected],他是一位大哥級的 Hacker,寫了很多自由軟件,知名著作有Jargon File等,近年來發表“大教堂與集市”論文為Opensource software努力,Netscape 願意公開Navigator的原始碼,與這篇文章有很大的關系。
故事一開始,我要介紹的是所謂的Real Programmer。
他們從不自稱是Real Programmer、Hacker或任何特殊的稱號;`Real Programmer’ 這個名詞是在1980年代才出現,但早自1945年起,電腦科學便不斷地吸引世界上頭腦最頂尖、想像力最豐富的人投入其中。從Eckert &Mauchly發明ENIAC後,便不斷有狂熱的programmer投入其中,他們以撰寫軟件與玩弄各種程式設計技巧為樂,逐漸形成具有自我意識的一套科技文化。當時這批Real Programmers主要來自工程界與物理界,他們戴著厚厚的眼鏡, 穿聚酯纖維T恤與純白襪子,用機器語言、匯編語言、FORTRAN及很多古老的 語言寫程式。他們是Hacker時代的先驅者,默默貢獻,卻鮮為人知。
從二次大戰結束後到1970早期,是打卡計算機與所謂"大鐵塊"的mainframes 流行的年代,由Real Programmer主宰電腦文化。Hacker傳奇故事如有名的 Mel (收錄在Jargon File中)、Murphy’s Law的各種版本、mock- German`Blinkenlight’ 文章都是流傳久遠的老掉牙笑話了。
※譯者:
Jargon File亦是本文原作者所編寫的,裡面收錄了很多Hacker用語、縮寫意 義、傳奇故事等等。Jargon File有出版成一本書:The New Hacker’s Dictionary,MIT PRESS出版。也有Online版本: http://www.ccil.org/jargon
※譯者:
莫非定律是:當有兩條路讓你抉擇,若其中一條會導致失敗,你一定會選到它。 它有很多衍生說法:比如一個程式在demo前測試幾千幾萬次都正確無誤,但demo 那一天偏偏就會出bug。
一些Real Programmer仍在世且十分活躍 (本文寫在1996年)。超級電腦Cray 的設計者Seymour Cray,據說親手設計Cray全部的硬體與其操作系統,作業 系統是他用機器碼硬干出來的,沒有出過任何bug或error。Real Programmer 真是超強!
舉個比較不那麼誇張的例子:Stan Kelly-Bootle,The Devil’s DP Dictionary 一書的作者(McGraw-Hill,1981年初版,ISBN 0-07-034022-6)與Hacker 傳奇專家,當年在一台Manchester Mark I開發程式。他現在是電腦雜志的專欄 作家,寫一些科學幽默小品,文筆生動有趣投今日hackers所好,所以很受歡迎。 其他人像David E. Lundstorm,寫了許多關於Real Programmer的小故事, 收錄在A few Good Men From UNIVAC這本書,1987年出版,ISBN-0- 262-62075-8。
※譯:看到這裡,大家應該能了解,所謂Real Programmer指的就是用組合語 言或甚至機器碼,把程式用打卡機punch出一片片紙卡片,由主機讀卡機輸入電 腦的那種石器時代Programmer。
Real Programmer的時代步入尾聲,取而代之的是逐漸盛行的Interactive computing,大學成立電算相關科系及電腦網絡。它們催生了另一個持續的工程傳統,並最終演化為今天的開放代碼黑客文化。
Hacker時代的濫觞始於1961
年MIT出現第一台電腦DEC PDP-1。MIT的Tech Model Railroad Club(簡稱TMRC)的Power and Signals Group買了這台機器後,把它當成最時髦的科技玩具,各種程式工具與電腦術語開始出現,整個環境與文化一直發展下去至今日。 這在Steven Levy的書`Hackers’ 前段有詳細的記載(Anchor/Doubleday 公司,1984年出版,ISBN 0-385-19195-2)。
※譯:Interactive computing並非指Windows、GUI、WYSIWYG等介面, 當時有terminal、有shell可以下指令就算是Interactive computing了。 最先使用Hacker這個字應該是MIT。1980年代早期學術界人工智慧的權威:MIT 的Artificial Intelligence Laboratory,其核心人物皆來自TMRC。從1969年 起,正好是ARPANET建置的第一年,這群人在電腦科學界便不斷有重大突破與 貢獻。
ARPANET是第一個橫跨美國的高速網絡。由美國國防部所出資興建,一個實驗性 質的數位通訊網絡,逐漸成長成聯系各大學、國防部承包商及研究機構的大網絡。 各地研究人員能以史無前例的速度與彈性交流資訊,超高效率的合作模式導致科技 的突飛猛進。
ARPANET另一項好處是,資訊高速公路使得全世界的hackers能聚在一起,不再像以前孤立在各地形成一股股的短命文化,網絡把他們匯流成一股強大力量。 開始有人感受到Hacker文化的存在,動手整理術語放上網絡,在網上發表諷刺文學與討論Hacker所應有的道德規范。(Jargon File的第一版出現在1973年,就是一個好例子),Hacker文化在有接上ARPANET的各大學間快速發展,特別是(但不全是)在信息相關科系。
一開始,整個Hacker文化的發展以MIT的AI Lab為中心,但Stanford University 的Artificial Intelligence Laboratory(簡稱SAIL)與稍後的Carnegie-Mellon University(簡稱CMU)正快速崛起中。三個都是大型的資訊科學研究中心及人工智慧的權威,聚集著世界各地的精英,不論在技術上或精神層次上,對Hacker文
化都有極高的貢獻。
為能了解後來的故事,我們得先看看電腦本身的變化;隨著科技的進步,主角MIT AI Lab也從紅極一時到最後淡出舞台。
從MIT那台PDP-1開始,Hacker們主要程式開發平台都是Digital Equipment Corporation 的PDP迷你電腦序列。DEC率先發展出商業用途為主的interactive computing及time-sharing操作系統,當時許多的大學都是買DEC的機器, 因為它兼具彈性與速度,還很便宜(相對於較快的大型電腦mainframe)。 便宜的分時系統是Hacker文化能快速成長因素之一,在PDP流行的時代, ARPANET上是DEC機器的天下,其中最重要的便屬PDP-10,PDP-10受到 Hacker們的青睐達十五年;TOPS-10(DEC的操作系統)與MACRO-10(它的組譯器),許多懷舊的術語及Hacker傳奇中仍常出現這兩個字。
MIT像大家一樣用PDP-10,但他們不屑用DEC的操作系統。他們偏要自己寫一個:傳說中赫赫有名的ITS。
ITS全名是`Incompatible Timesharing System’,取這個怪名果然符合MIT的搞怪作風 -- 就是要與眾不同,他們很臭屁但夠本事自己去寫一套操作系統。ITS始終不穩,設計古怪,bug也不少,但仍有許多獨到的創見,似乎還是分時系統 中開機時間最久的紀錄保持者。
ITS本身是用匯編語言寫的,其他部分由LISP寫成。LISP在當時是一個威力強大與極具彈性的程式語言;事實上,二十五年後的今天,它的設計仍優於目前大多數的程式語言。LISP讓ITS的Hacker得以盡情發揮想像力與搞怪能力。LISP是MIT AI Lab成功的最大功臣,現在它仍是Hacker們的最愛之一。
很多ITS的產物到現在仍活著;EMACS大概是最有名的一個,而ITS的稗官野史仍為今日的Hacker們所津津樂道,就如同你在Jargon File中所讀到的一般。 在MIT紅得發紫之際,SAIL與CMU也沒閒著。SAIL的中堅份子後來成為PC 界或圖形使用者介面研發的要角。CMU的Hacker則開發出第一個實用的大型專 家系統與工業用機器人。
另一個Hacker重鎮是XEROX PARC公司的Palo Alto Research Center。從 1970初期到1980中期這十幾年間,PARC不斷出現驚人的突破與發明,不論質或量,軟件或硬體方面。如現今的視窗滑鼠介面,雷射印表機與區域網絡;其D系列的機器,催生了能與迷你電腦一較長短的強力個人電腦。不幸這群先知先覺者並不受到公司高層的賞識;PARC是家專門提供好點子幫別人賺錢的公司成為眾所皆知的大笑話。即使如此,PARC這群人對Hacker文化仍有不可抹滅的貢獻。 1970年代與PDP-10文化迅速成長茁壯。Mailing list的出現使世界各地的人得以組成許多SIG(Special-interest group),不只在電腦方面,也有社會與娛樂方面的。DARPA對這些非`正當性’活動睜一只眼閉一只眼,因為靠這些活動會吸引更多的聰明小夥子們投入電腦領域呢。
有名的非電腦技術相關的ARPANET mailing list首推科幻小說迷的,時至今日ARPANET變成Internet,愈來愈多的讀者參與討論。Mailing list逐漸成為一種公眾討論的媒介,導致許多商業化上網服務如CompuServe、Genie與Prodigy 的成立。
此時在新澤西州的郊外,另一股神秘力量積極入侵Hacker社會,終於席卷整個PDP-10的傳統。它誕生在1969年,也就是ARPANET成立的那一年,有個在AT&T Bell Labs的年輕小夥子Ken Thompson發明了Unix。
Thomspon曾經參與Multics的開發,Multics是源自ITS的操作系統,用來實做當時一些較新的OS理論,如把操作系統較復雜的內部結構隱藏起來,提供一個介面,使的programmer能不用深入了解操作系統與硬體設備,也能快速開發程式。
譯:那時的programmer寫個程式必須徹底了解操作系統內部,或硬體設備。比方說寫有IO的程式,對於硬碟的轉速,磁軌與磁頭數量等等都要搞的一清二楚才行。
在發現繼續開發Multics是做白工時,Bell Labs很快的退出了(後來有一家公司Honeywell出售Multics,賠的很慘)。Ken Thompson很喜歡Multics上的作業環境,於是他在實驗室裡一台報廢的DEC PDP-7上胡亂寫了一個操作系統, 該系統在設計上有從Multics抄來的也有他自己的構想。他將這個操作系統命名Unix,用來反諷Multics。
譯:其實是Ken Thompson寫了一個游戲`Star Travel’ 沒地方跑,就去找一台的報廢機器PDP-7來玩。他同事Brian Kernighan嘲笑Ken Thompson說:「你寫的系統好遜哦,乾脆叫Unics算了。」(Unics發音與太監的英文eunuches一樣),後來才改為Unix。
他的同事Dennis Ritchie,發明了一個新的程式語言C,於是他與Thompson用C把原來用匯編語言寫的Unix重寫一遍。C的設計原則就是好用,自由與彈性, C與Unix很快地在Bell Labs得到歡迎。1971年Thompson與Ritchie爭取到一個辦公室自動化系統的專案,Unix開始在Bell Labs中流行。不過Thompson與Ritchie的雄心壯志還不止於此。
那時的傳統是,一個操作系統必須完全用匯編語言寫成,始能讓機器發揮最高的效能。Thompson與Ritchie,是頭幾位領悟硬體與編譯器的技術,已經進步到作業系統可以完全用高階語言如C來寫,仍保有不錯的效能。五年後,Unix已經成功地移植到數種機器上。
譯:Ken Thompson與Dennis Ritchie是唯一兩位獲得Turing Award(電腦界的諾貝爾獎)的工程師(其他都是學者)。
這當時是一件不可思議的事!它意味著,如果Unix可以在各種平台上跑的話,Unix 軟件就能移植到各種機器上。再也用不著為特定的機器寫軟件了,能在Unix上跑最重要,重新發明輪子已經成為過去式了。
除了跨平台的優點外,Unix與C還有許多顯著的優勢。Unix與C的設計哲學是Keep It Simple, Stupid’。programmer可以輕易掌握整個C的邏輯結構(不像其他之前或以後的程式語言)而不用一天到晚翻手冊寫程式。而Unix提供許多有用的小工具程式,經過適當的組合(寫成Shell script或Perl script),可以發
揮強大的威力。
※注:The C Programming Language是所有程式語言書最薄的一本,只有兩百多頁哦。作者是Brian Kernighan與Dennis Ritchie,所以這本C語言的聖經又稱`K&R’。
※注:`Keep It Simple, Stupid’ 簡稱KISS,今日Unix已不follow這個原則,幾乎所有Unix都是要灌一堆有的沒的utilities,唯一例外是MINIX。
C與Unix的應用范圍之廣,出乎原設計者之意料,很多領域的研究要用到電腦時,他們是最佳拍檔。盡管缺乏一個正式支援的機構,它們仍在AT&T內部中瘋狂的散播。到了1980年,已蔓延到大學與研究機構,還有數以千計的hacker想把Unix裝在家裡的機器上。
當時跑Unix的主力機器是PDP-11、VAX系列的機器。不過由於UNIX的高移植性,它幾乎可安裝在所有的電腦機型上。一旦新型機器上的UNIX安裝好,把軟件的C原始碼抓來重新編譯就一切OK了,誰還要用匯編語言來開發軟件? 有一套專為UNIX設計的網絡 --- UUCP:一種低速、不穩但很成本低廉的網絡。 兩台UNIX機器用條電話線連起來,就可以使用互傳電子郵件。UUCP是內建在UNIX系統中的,不用另外安裝。於是UNIX站台連成了專屬的一套網絡,形成其Hacker文化。在1980第一個USENET站台成立之後,組成了一個特大號的分散式布告欄系統,吸引而來的人數很快地超過了ARPANET。
少數UNIX站台有連上ARPANET。PDP-10與UNIX的Hacker文化開始交流, 不過一開始不怎麼愉快就是了。PDP-10的Hacker們覺得UNIX的擁護者都是些什麼也不懂的新手,比起他們那復雜華麗,令人愛不釋手的LISP與ITS,C與
UNIX簡直原始的令人好笑。『一群穿獸皮拿石斧的野蠻人』他們咕哝著。
在這當時,又有另一股新潮流風行起來。第一部PC出現在1975年;蘋果電腦在1977年成立,以飛快的速度成長。微電腦的潛力,立刻吸引了另一批年輕的 Hackers。他們最愛的程式語言是BASIC,由於它過於簡陋,PDP-10的死忠派與UNIX迷們根本不屑用它,更看不起使用它的人。
譯:這群Hacker中有一位大家一定認識,他的名字叫Bill Gates,最初就是他在8080上發展BASIC compiler的。
1980年同時有三個Hacker文化在發展,盡管彼此偶有接觸與交流,但還是各玩 各的。ARPANET/PDP-10文化,玩的是LISP、MACRO、TOPS-10與ITS。UNIX與C的擁護者用電話線把他們的PDP-11與VAX機器串起來玩。還有另一群散亂無秩序的微電腦迷,致力於將電腦科技平民化。
三者中ITS文化(也就是以MIT AI LAB為中心的Hacker文化)可說在此時達到全盛時期,但烏雲逐漸籠罩這個實驗室。ITS賴以維生的PDP-10逐漸過時,開始有人離開實驗室去外面開公司,將人工智慧的科技商業化。MIT AI Lab的高手擋不住新公司的高薪挖角而紛紛出走,SAIL與CMU也遭遇到同樣的問題。
譯:這個情況在GNU宣言中有詳細的描述,請參閱:(特別感謝由AKA的chuhaibo翻成中文)
http://www.aka.citf.net/Magazine/Gnu/manifesto.html
致命一擊終於來臨,1983年DEC宣布:為了要集中在PDP-11與VAX生產線, 將停止生產PDP-10;ITS沒搞頭了,因為它無法移植到其他機器上,或說根本沒人辦的到。而Berkeley Univeristy修改過的UNIX在新型的VAX跑得很順,是 ITS理想的取代品。有遠見的人都看得出,在快速成長的微電腦科技下,Unix一
統江湖是遲早的事。
差不多在此時Steven Levy完成``Hackers’’ 這本書,主要的資料來源是Richard M. Stallman(RMS)的故事,他是MIT AI Lab領袖人物,堅決反對實驗室的研 究成果商業化。
Stallman接著創辦了Free Software Foundation,全力投入寫出高品質的自由軟件。Levy以哀悼的筆調描述他是`the last true hacker’,還好事實證明Levy完全錯了。
譯:Richard M. Stallman的相關事跡請參考: http://www.aka.citf.net/Magazine/Gnu/cover.htm
Stallman的宏大計劃可說是80年代早期Hacker文化的縮影 -- 在1982年他 開始建構一個與UNIX相容但全新的操作系統,以C來寫並完全免費。整個ITS 的精神與傳統,經由RMS的努力,被整合在一個新的,UNIX與VAX機器上的 Hacker文化。 微電腦與區域網絡的科技,開始對Hacker文化產生影響。Motorola 68000 CPU 加Ethernet是個有力的組合,也有幾家公司相繼成立生產第一代的工作站。 1982年,一群Berkeley出來的UNIX Hacker成立了Sun Microsystems,他們的算盤打的是:把UNIX架在以68000為CPU的機器,物美價廉又符合多數
應用程式的要求。他們的高瞻遠囑為整個工業界樹立了新的裡程碑。雖然對個人而言,工作站仍太昂貴,不過在公司與學校眼中,工作站真是比迷你電腦便宜太多了。在這些機構裡,工作站(幾乎是一人一台)很快地取代了老舊龐大的VAX等timesharing機器。 譯:Sun一開始生產的工作站CPU是用Motorola 68000系列,到1989才
推出自行研發的以SPARC系列為CPU的SPARCstation。
1984年AT&T解散了,UNIX正式成為一個商品。當時的Hacker文化分成兩大類,一類集中在Internet與USENET上(主要是跑UNIX的迷你電腦或工作站連上網絡),以及另一類PC迷,他們絕大多數沒有連上Internet。
※譯:台灣在1992年左右連上Internet前,玩家們主要以電話撥接BBS交換資訊,但是有區域性的限制,發展性也大不如USENET。 Sun與其他廠商制造的工作站為Hacker們開啟了另一個美麗新世界。工作站訴求的是高效能的繪圖與網絡,1980年代Hacker們致力為工作站撰寫軟件,不斷挑戰及突破以求將這些功能發揮到百分之一百零一。Berkeley發展出一套內建支援ARPANET protocols的UNIX,讓UNIX能輕松連上網絡,Internet也成長
的更加迅速。
除了Berkeley讓UNIX網絡功能大幅提升外,嘗試為工作站開發一套圖形界面也不少。最有名的要算MIT開發的X window了。X window成功的關鍵在完全公開原始碼,展現出Hacker一貫作風,並散播到Internet上。X成功的干掉其他商業化的圖形界面的例子,對數年後UNIX的發展有著深遠的啟發與影響。 少數ITS死忠派仍在頑抗著,到1990年最後一台ITS也永遠關機長眠了;那些死忠派在窮途末路下只有悻悻地投向UNIX的懷抱。
UNIX們此時也分裂為Berkeley UNIX與AT&T兩大陣營,也許你看過一些當時的海報,上面畫著一台钛翼戰機全速飛離一個爆炸中、上面印著AT&T的商標的死星。Berkeley UNIX的擁護者自喻為冷酷無情的公司帝國的反抗軍。就銷售量來說,AT&T UNIX始終趕不上BSD/Sun,但它贏了標准制訂的戰爭。到1990年,AT&T與BSD版本已難明顯區分,因為彼此都有采用對方的新發明。 隨著90年代的來到,工作站的地位逐漸受到新型廉價的高檔PC的威脅,他們主要是用Intel 80386系列CPU。第一次Hacker能買一台威力等同於十年前的迷你電腦的機器,上面跑著一個完整的UNIX,且能輕易的連上網絡。 沈浸在MS-DOS世界的井底蛙對這些巨變仍一無所知,從早期只有少數人對微電腦有興趣,到此時玩DOS與Mac的人數已超過所謂的"網絡民族"的文化,但他們始終沒成什麼氣候或搞出什麼飛機,雖然聊有佳作光芒乍現,卻沒有穩定發展出統一的文化傳統,術語字典,傳奇故事與神話般的歷史。它們沒有真正的網絡,只能聚在小型的BBS站或一些失敗的網絡如FIDONET。 提供上網服務的公司如CompuServe或Genie生意日益興隆,事實顯示non-UNIX的操作系統因為並沒有內附如compiler等程式發展工具,很少有source 在網絡上流傳,也因此無法形成合作開發軟件的風氣。 Hacker文化的主力,是散布在Internet各地,幾乎可說是玩UNIX的文化。他們玩電腦才不在乎什麼售後服務之類,他們要的是更好的工具、更多的上網時間、
還有一台便宜32-bit PC。
機器有了,可以上網了,但軟件去哪找?商業的UNIX貴的要命,一套要好幾千大洋($)。90年代早期,開始有公司將AT&T 與BSD UNIX移植到PC上出售。 成功與否不論,價格並沒有降下來,更要緊的是沒有附原始碼,你根本不能也不准 修改它,以符合自己的需要或拿去分享給別人。傳統的商業軟件並沒有給Hacker
們真正想要的。
即使是Free Software Foundation(FSF)也沒有寫出Hacker想要的操作系統,
RMS承諾的GNU操作系統 -- HURD說了好久了,到1996年都沒看到影子(雖
然1990年開始,FSF的軟件已經可以在所有的UNIX平台執行)。
在這空窗期中,1992年一位芬蘭Helsinki University的學生 -- Linus Torvalds 開始在一台386PC上發展一個自由軟件的UNIX kernel,使用FSF的程式開發工具。
他很快的寫好簡單的版本,丟到網絡上分享給大家,吸引了非常多的Hacker來幫 忙一起發展Linux -- 一個功能完整的UNIX,完全免費且附上全部的原始碼。 Linux最大的特色,不是功能上的先進而是全新的軟件開發模式。直到Linux的 成功前,人人都認為像操作系統這麼復雜的軟件,非得要靠一個開發團隊密切合作, 互相協調與分工才有可能寫的出來。商業軟件公司與80年代的Free Software Foundation所采用都是這種發展模式。
Linux則迥異於前者。一開始它就是一大群Hacker在網絡上一起塗塗抹抹出來 的。沒有嚴格品質控制與高層決策發展方針,靠的是每周發表新版供大家下載測試, 測試者再把bug與patch貼到網絡上改進下一版。一種全新的物競天擇、去蕪存菁的快速發展模式。令大夥傻眼的是,東修西改出來的Linux,跑的順極了。
1993年底,Linux發展趨於成熟穩定,能與商業的UNIX一分高下,漸漸有商業應用軟件移植到Linux上。不過小型UNIX廠商也因為Linux的出現而關門大吉 - 因為再沒有人要買他們的東西。幸存者都是靠提供BSD為基礎的UNIX的完整原 始碼,有Hacker加入發展才能繼續生存。
Hacker文化,一次次被人預測即將毀滅,卻在商業軟件充斥的世界中,披荊斬棘,
筚路藍縷,開創出另一番自己的天地。
Linux能快速成長的來自令一個事實:Internet大受歡迎,90年代早期ISP如雨後春筍般的冒出來,World-Wide Web的出現,使得Internet成長的速度, 快到有令人窒息的感覺。
BSD專案在1994正式宣布結束,Hacker們用的主要是免費的UNIX(Linux與一些4.4BSD的衍生版本)。而Linux CD-ROM銷路非常好(好到像賣煎餅般)。 近幾年來Hacker們主要活躍在Linux與Internet發展上。World Wide Web
讓Internet成為世界最大的傳輸媒體,很多80年代與90年代早期的Hacker們現在都在經營ISP。
Internet的盛行,Hacker文化受到重視並發揮其政治影響力。94、95年美國政府打算把一些較安全、難解的編碼學加以監控,不容許外流與使用。這個稱為Clipper proposal的專案引起了Hacker們的群起反對與強烈抗議而半途夭折。 96年Hacker又發起了另一項抗議運動對付那取名不當的"Communications
Decency Act",誓言維護Internet上的言論自由。
電腦與Internet在21世紀將是大家不可或缺的生活用品,現代孩子在使用 Internet科技遲早會接觸到Hacker文化。它的故事傳奇與哲學,將吸引更多人投入。未來對Hacker們是充滿光明的。