黑客和開源革命之間的關係

11 贊 回覆發表於2015-02-28

如何成為一名黑客!

本文糾正了主流媒體給讀者造成的“黑客”和“駭客”之間的混淆。同時也考慮到了黑客的歷史、自然、屬性、道德和裝束,更多的是,有興趣想要成為其中一員的你可以聽聽別的黑客們反省社會為什麼這樣對待他們的心裡話吧。繼續讀下去!

在今天的計算機世界裡新一代黑客正把開源變為一股強大的力量。他們是20世紀六七十年代剛剛有計算機時蓬勃發展的早期黑客文化的繼承者——相信軟體應該共享、大家都能受益的團隊的部分成員。軟體的建立者,從另一方面講自然不同意黑客的這種觀點。他們選擇增加數字安全的措施,以保持他們的軟體安全性。

這些專家級程式設計師和網路天才追溯他們的族譜可以回到最早的分時小型機和 ARPAnet 實驗。這個團隊的成員創造了“黑客”。黑客建立了網際網路並開發如今的 UNIX 作業系統。黑客運營網路新聞組,使得全球資訊網執行良好。

得益於成本相對較低的計算機和網際網路的出現,新的黑客相對自己的前輩多不勝數、效率更高、更加團結。他們因一個共同的目標——編寫優秀的軟體,和一個共同的願望——軟體應該對所有人免費聯絡在一起。

黑客引發了開源革命

1991年,Linus Torvalds 在網際網路新聞組發了個帖子,詢問建立更好的作業系統的建議。他建立專案的原因只是由於個人愛好。他說,自己在這方面也永遠不會是“大而專業”。1994年,Linux 第一個正式版本釋出。

Marleen Wynants 和 Jan Cornelis 在他們的論文《未來會有多開源?》裡討論免費和開源軟體對經濟、社會和文化的影響時提出,Linux 不僅僅只是黑客的玩具。在 Linux 的推動下,開源黑客文化已從地下浮出水面。業餘黑客程式設計師開始和軟體生產和分銷部門結成聯盟。於是新的公司和組織伴隨著新產品、許可證和團隊一起建立了。

1997年的春天,一群自由軟體社群的領導人聚集在加利福尼亞州。這夥人包括 Eric Raymond 、Tim O’Reilly 和 VA Research 主席 Larry Augustin 等等。他們關心的是找到一種方法以把免費軟體推廣給曾經迴避這個概念的人。這些人正是免費軟體基金會的“反商業資訊”(避免全世界真正欣賞免費軟體能力)所關注的。

在 Eric Raymond 的堅持下,小組認為,他們很大程度上缺乏的是贏得注意力市場營銷活動設計能力,而不僅僅是市場佔有率。源於此次討論一個描述他們推廣的軟體的新術語誕生了:開源。一系列的指導方針被制定出來定義開源軟體。然而早就有了發展多年的開源應用和網際網路協議的黑客亞文化,只是沒有明確使用“開源”標籤。在最近幾年,尤其是本次會議之後,這種說法才出現在大眾面前。

1998年,一份萬聖節文件透漏出了微軟的焦慮。文件包含了一系列免費軟體、開源軟體、尤其是和Linux 的相關政策的機密備忘錄。在這些洩露出來的文件中還有對原始備忘錄的一些列應對措施。

洩露的檔案和應對措施被 Eric Raymond 於1998年萬聖節期間發表出來。被迫承認該備忘錄確實源於公司內部,微軟以個人行為為由解僱他們這幾個工程師。“Linux 已經被部署在關鍵任務、被公眾認可的卓越的商業環境。”Vinod Valloppillil 指出,他是備忘錄的作者之一。

該檔案還承認開源軟體是長期可信的,FUD(傳播恐懼、不確定和懷疑)策略不能被用來打擊它,最近的案例研究提供了非常顯著的證據:其商品品質可能被OSS專案追平/超出。

FUD曾是微軟的傳統營銷策略,曾被內部認可和理解。該策略的例子包括宣佈推出不存在的產品或散佈競爭產品會導致 Windows 崩潰的謠言。

那麼,這些黑客是什麼人呢?

如果你恰巧碰到他們,並詢問他們的手藝,黑客會興高采烈地告訴你,程式設計是你穿著衣服時最好玩的事情,雖然衣服並不是必須的。

相對大多數只喜歡學習最低需求的使用者,黑客就是那個喜歡探索計算機細節並擴充套件其能力的人。最初,“黑客”曾是計算機程式設計師、設計師和工程師之間表達尊重的術語。黑客曾是那個最初原創程式的創造者。

對程式設計師來說,“黑客”意味著掌握最本質的東西:那些可以讓電腦做他們所想的——不論計算機本身願意與否。不幸的是,這個詞已經被濫用,並賦予了一個貶義——某個利用計算機和網路闖入系統、破壞資料、竊取正版軟體、並執行其他破壞性或非法行為的人。

準確定義那種人的術語其實是“駭客”。

黑客腦袋裡隨時充滿了想法。他們的大腦不停地採集、消耗、或拆分事物、同時再重新組裝。但似乎驅動他們的是一種強烈的本能,或者是進行分析和組織的需求。當黑客首次遇到技術,他們不是吸收其形,而是直奔細節。他們以技術的邏輯為食。當他們溝通時,他們可以很精準地說出或寫下他們學到的東西。

黑客的態度

黑客解決問題並建立事物,他們相信自由並自願互助。黑客精神並不侷限於軟體(或硬體)領域。黑客本質是獨立於其工作的介質。

黑客主義思想已經超越了計算機行業。理想的黑客文化適用於任何投入激情去追求的人。蘋果Macintosh 計算機團隊的核心成員 Burrell Smith 說“黑客幾乎可以做任何事情。你也可以是一個黑客木匠,並不一定要高科技。我認為它必須要有技藝,並關心你做的事。”

在他的《生物朋克》一書中,Marcus Wohlsen 給出了原因:修補匠的原始衝動是成為黑客的一個重要的先決條件。在這些天才從業者手中,修修補補是創造力的重要形式。相對於那種隱含的獨行的藝術家或天才的發明家試圖獲取無中生有的靈感的浪漫形象,它是不同品牌的創造力、實踐在不同的精神中。

修補一般是說擺弄或調整,週末在車庫裡試圖把雅馬哈 FZ 16 多擠幾個馬力出來。但這仍然停留在“工作並非真正的工作”的想法。頂起你吉普車的減震系統並換上低壓輪胎並不是你想做而只是你必須做的事情。而修補是因興趣而工作。

黑客們喜歡修修補補的樂趣,不過他們的信條中也有惡作劇:僅僅因為工作有樂趣並不意味著不重要。“玩”在黑客的感官裡不僅僅是娛樂的方式,也是對待創新的態度,就像帶有競爭力活力和天賦的奪冠的小動作和理智地羨慕。

玩象棋時,特級大師和普通人都是16個棋子。但在前者手中,遊戲表現出了美麗和智慧的力量。同樣的方式,天才工匠可以重新排列現有引擎零件或計算機程式碼片段,從而創造出全新的形式。

對於黑客來說,心靈的邏輯框架需要擴充套件到越來越多的普遍活動中。你可以問黑客問題,並去感受他們在給出確切答案前精神積蓄的過程。

瑪吉·桑德斯每週六早上會開大眾汽車到 Safeway 超市,回程時會問她的丈夫:“你願意幫我生成雜貨嗎?”鮑勃·桑德斯會回答:“不。”驚呆了,瑪吉會自己買雜貨。這發生了幾次,她突然爆發了,詛咒他並要求他解釋為什麼不幫她。

“這是個愚蠢的問題”,他說,“當然,我不會幫你生成雜貨。如果你問我,能幫你買雜貨嗎,那就另當別論。“這就像瑪吉提交了一份程式到TX-0,程式執行時發現語法不當,所以崩潰了。直到她除錯成功,鮑勃·桑德斯心理計算機才能正確執行。

黑客倫理

維基百科把“黑客倫理”作為一個通用片語進行了精確地解釋:黑客團隊的道德價值觀和哲學標準。早期的黑客文化和哲學產生在20世紀50、60年代的美國麻省理工學院(MIT)。

術語“黑客倫理”是源於記者史蒂芬,他的1984年的書把黑客描述為計算機革命的英雄。駭客倫理的指導方針使我們更容易的理解計算機是怎麼演變成今天我們瞭解和依賴的個人裝置的。

黑客倫理是一種充滿哲學、倫理和夢想的新的生活方式。雖然,黑客倫理的內容沒有經過公開辯論和討論,但已被默默地認可和接受了。

正如史蒂芬描述的“黑客倫理已演變為免費和開源軟體(FOSS)”。真正遵從黑客倫理的黑客——尤其勇於實踐的——一直都是免費和開源軟體運動的支持者。

黑客倫理的一般原則是: 

  • 使用電腦——和任何可能教你一些關於世界的運作方式的東西——應該是完全不受限制的。永遠要勇於實踐!黑客們相信分解事物才能瞭解系統、瞭解個世界的本質、看到他們如何運轉,並利用這些知識來創造新的、更有趣的事物。他們大多是怨恨任何阻礙他們這樣做得人、物理屏障或法律。
  • 所有資訊都應該是免費的。如果你沒有獲得怎麼改善事物的資訊,你怎麼去改善呢?免費交換資訊,特別是當該資訊是計算機程式的形式,就能得到獲得更大的創造力。
  • 質疑權威——促進權力下放。促進這種免費資訊交流最好的辦法是有一個開放的系統,在黑客和資訊、獲取知識的裝置零件、線上時間之間不設如何障礙。最後他們還需要的就是一個官方機構,無所謂設在企業界、政府或是大學裡。官方機構是個有缺陷的系統、當它不適用真正黑客的探索衝動時就會很危險。官方機構藏在隨意性規則之後(就像機器和電腦程式執行的邏輯演算法):他們呼叫這些規則以鞏固自己的權力,並認為黑客有益的衝動是一種威脅。
  • 黑客希望通過行為來審判,而不是如學位、年齡、種族或職務這些虛假的標準。黑客文化唯才是舉,靠知識和成就獲取職務。黑客不關心人的外在表現,而是關注他們推進黑客生態、建立令人羨慕的程式、談論系統新功能等等的潛力。
  • 你可以在計算機上創造藝術和美麗。黑客深深喜愛實現很少的指令執行很複雜的任務的程式的創新技術。他們任務程式程式碼是美麗的,需要仔細地譜寫並巧妙地編排。學習到建立佔用最少空間的程式幾乎成了早期黑客最愛的遊戲。
  • 計算機開源使你的生活更美好。這句話已被巧妙地證實。黑客很少會試圖把利用計算機的方式獲取知識的便利告知局外人。這個前提決定了黑客的日常行為。毫無疑問的是,計算機改變了他們的生活、讓它備受矚目、豐富多彩、同時充滿刺激。計算機也是黑客成為一方世界的主人。由於這些事那麼的明顯,黑客確信每個人都能從中獲益。顯然每個人都可以從基於黑客倫理的世界中獲益。這就是黑客的隱含信念,他們要超越使用計算機的老套方式——把世界引向與計算機互動的新方式。
  • 傳統道德的最後兩點今天看來好不驚奇。他們只能在自己的歷史背景下被理解。70年代,計算機對大多數人來說都是陌生和不熟悉的。那時它主要在管理資料處理、運算中心、打孔卡和電傳介面等地方有用。藝術、美麗和生活的變化不是和計算機相關的主流觀念。 

黑客的奇特穿著

黑客穿著僅為舒適、功能和少維護,而不是特別在意外觀。他們無法容忍套裝和其他正裝。因為不願統一著裝而辭去工作對黑客來說並非罕見。

當他們無故被要求統一著裝,總是會想法破壞,比如,搭配一條荒謬新奇的領帶。我認識的大部分黑客把領帶看做能夠妨礙大腦供血的凶器,客觀解釋了戴領帶者的行為。一條領帶彰顯了你超級失敗者的名聲,就像沒有本事卻著正裝的超級使用者——某些用UNIX系統root特權卻不清楚自己在幹啥的人;相當於三歲的小孩拿AK-47當玩具。在嚴峻的壓力下,他或許會挽起袖子、鬆開領帶,但這毫無用處。女黑客幾乎從不畫濃妝,很多人一點兒都不化妝。

如何成為一名黑客

在他的同名散文中,Eric Steven Raymond 在其他事項中列出想成為黑客者需要的基本技能。他推薦了以下五種語言:Python、Java、C/C ++、Perl 和 Lisp。

Python——這是個對初學者來說設計清新、文件良好並簡單易學的語言。作為一個好的第一語言,它不只是一個玩具;它是非常強大和靈活的,並且非常適合大型專案。Paul Graham 指出,許多黑客使用 Python 是因為他們喜歡原始碼樣式。

這樣選擇語言好似很輕率。其實並非看上去那麼輕率——當你程式設計時,閱讀程式碼時間遠大於寫程式碼的時間。你要像雕塑家處理陶器生的斑點一樣處理你的原始碼。所以原始碼醜陋的語言會使嚴格的程式設計師發狂,就像滿是腫塊的陶器會逼瘋雕塑家一樣。

Java——Eric Raymond 認為 Java 是一門學習程式設計的好語言。當今的大多數黑客可能不會同意。最大的異議是 Java 不具備擴充套件性。程式設計時媒介的擴充套件性是探索過程的一部分,其中包括理解所有的要求和力量—— 內部的或外部的——一個系統的設計核心。

James Gosling——著名的Java語言之父,在他的論文《Java:概述》中說,“像 Lisp、TCL 和Smalltalk 這樣的高動態語言通常用於原型設計。其中一個成功的原因是高魯棒性;另一個原因是他們不要求早期決策。 Java 特性完全相反:它迫使你明確地做出選擇“。

就像 Lisp 和 Java 之間的不同,Paul Graham 在他的書《黑客和畫家》中指出,Lisp 用於指出計算的思路和表達方式,而 Java 則用了表達完整的程式。

正如 James Gosling 說的,Java 要求你早做決策。而且一旦確定下來,該系統——一組型別宣告、編譯器和執行時系統——就很難被更改了,即便是因為你無意的錯誤導致需要更改。其影響就像為了減少人為損傷而在你的賽車上裝的調速器(車速限制器)。黑客不喜歡語言限制他們。黑客要的只是力量。

C/C++——如果你要正式程式設計,你將不得不學習 C 這個 UNIX 的核心語言。C++ 和 C 關係密切,如果你已知其一,學習另一個就不困難。然而,第一次學的話哪個都不容易學。

Perl——這是對黑客來說另一個尤其重要的語言,實踐證明值得學習。它非常廣泛用於動態網頁和系統管理,因此,即使你從不寫 Perl 程式碼,你也要會讀。

Lisp——真正認真的黑客應該考慮學習 Lisp。學會 Lisp 就能得到淵博的啟蒙經驗;即使你從來沒有真正使用 Lisp,這種體驗也將使你餘生成為一個更好的程式設計師。

獲取 Linux

任何新手都可以採取的獲得的黑客技能的一個最重要的一步是獲取 Linux 或 BSD-Unix 的副本,並把它安裝到個人計算機上執行。是的,這個世界上除了 UNIX/Linux 還有其他的作業系統。但他們都是以二進位制形式釋出的——您不可能讀懂這樣的程式碼,更不能修改了。

努力學習去破解 Windows 機器上就像是在努力學習跳舞。UNIX 是網際網路作業系統。即便不知道 UNIX 你也可以學習使用網際網路,但是你不理解 UNIX 就無法成為網際網路黑客。因此,當今的黑客文化是相當強烈以 UNIX 為中心的。

因此,搞個 Linux、學習它、執行它、修改它。用它上網。閱讀並修改程式碼。你會得到比 Windows 作業系統下夢想的更好的程式設計工具(包括 C、Lisp、、Python 和 Perl)。你獲取樂趣並獲得比想象中更多的知識,直到你作為一個王牌黑客再來回顧。

所以,你是黑客?

你必須贏得“黑客”稱號,而不是自稱。Eric S Raymond 的同一篇文章中提到早期獲取黑客界地位的的一些寶貴經驗。其中有兩方面的事情你做了就能得到黑客的尊重(完整列表請閱讀 Erics Raymond 寫的“如何成為一名黑客”)。

編寫開源軟體。首先(最核心和最傳統的)是編寫其他黑客覺得很有趣或有用的程式,並給出程式原始碼。黑客界最受尊敬的半神是那些寫過大的滿足普遍需求、並完全共享、人人能用的程式的人。

幫助測試和除錯開源軟體。站出來除錯開源軟體也是服務黑客界。世界並不完美,我們難免會把大量的軟體開發時間花費在除錯階段。這就是為什麼任何開源作者都會告訴你好的beta測試員(能夠清晰地描述症狀、問題定位準確、容忍快速釋出的bug、願意應用簡單的診斷程式)像紅寶石一樣珍貴。他們會使整個充滿延期、精疲力盡的夢魘和小損害的除錯階段大不相同。

如果你是一個新手,試著去找個感興趣的正在開發中的程式,並當好一個beta測試員把。從幫忙測試程式到幫忙除錯程式再到幫忙修改程式是很自然的積累過程。這樣你不僅會學到很多東西,也會和將來能幫到你的人結個善緣。

最後,我不得不再次引述 Eric S Raymond 的話,​​因為他所說的如此美妙:

我們半開玩笑說'一統天下',但實現這個目標的方式只有服務世界。那意味著你我唯一的出路,意味著要學習如何思考我們在做的這條全新的途徑,如何極力去降低預設環境的使用者複雜度。

計算機是人類的工具。基本上,設計硬體和軟體的挑戰最重還是為人類設計—— 所有的人。這條道路將很漫長,而且也不容易。但我們應該為自己和對方把它做好。願開源與你同在!

相關文章