瘋子程式設計師編寫了一個作業系統,來與他的上帝溝通

2020-11-19 遊研社

2013年,特裡·A·戴維斯發布了他自己編寫的作業系統「神廟OS」(Temple OS)的最終版本。


「神廟OS」看起來像是一個玩笑。一啟動,主界面就是一張劍與天平的畫,下面寫著:「神聖智慧,公共領域,64位,狀態完美的作業系統。」

這個「狀態完美」的系統,界面無比簡陋:後臺代碼和內存地址的片段赤裸裸地塞在屏幕的邊邊角角,程序的圖標看起來像是小朋友在畫圖軟體上滑鼠勾出的簡筆畫。

特裡在系統裡留下了很多注釋和旁白,但是大部分都語無倫次,就像是午夜醉漢的呢喃一般,很多時候,看了注釋,反而讓人更迷惑了。


1

去年有款蒸汽波風的遊戲叫《催眠空間浪子》,主界面惡搞了90年代的作業系統和網際網路。就是這麼一款純粹為了娛樂和惡搞創作的假「作業系統」,看起來也比「神廟OS」像樣得多。

然而「神廟OS」卻並不只是一個玩笑,也不是一個偽裝成作業系統的遊戲。這是一款真正的,完整的,獨立的作業系統。它有一套自己內核,還有簡單的驅動,可以支持一些非常基礎的硬體,比如老式IDE硬碟、光碟機和PS2接口的鍵盤滑鼠。如果有合適的硬體,就可以直接安裝並運行這個作業系統。

特裡演示如何使用作業系統

「神廟OS」還預裝了不少軟體,從文本編輯器,到繪圖軟體,再到程序編譯器。甚至作業系統本身的外殼(shell)還自帶計算器功能,隨便找個地方輸入算式,系統就會自動返回結果。

「神廟OS」裡有各種各樣的遊戲:從模擬飛行、象棋,再到模擬經營和賽車,幾乎你能想到的遊戲類型,都能夠在這個系統裡找到。有好幾款都是3D渲染出來的,畫面表現還挺像回事。

對於許多程式設計師來說,編寫一個作業系統,或者發明一套程式語言,兩件事完成一件,就是了不起的成就。當然,在今天,網上有許多現成的代碼資源可以借用,做到這兩件事情沒有當年那麼困難了,但是依然需要花費大量的時間和精力。

「神廟OS」的作者特裡不但做到了這兩件事情,而且是以最艱難、最原始的方式。他先是基於C語言,自己發明了一套新的程式語言和語法邏輯,然後用這套語言,從頭開始編寫了一個64位開源作業系統,然後還寫了各種各樣的程序和遊戲。

令人震撼的是,在開發「神廟OS」期間,直到2018年去世,特裡一直飽受精神分裂症的折磨。這也是為什麼「神廟OS」裡面充斥著各種凌亂的設計和令人費解的囈語。

這導致特裡的編程思路也和一般程式設計師完全不同。在很長一段時間裡,沒有人能弄懂特裡在做什麼。特裡曾經在論壇上和別人討論過自己遇到的各種困難,卻遭到別的程式設計師的嘲笑,說他的系統根本不可能跑起來。特裡無法直接照抄現成的代碼,也無法和任何人討論自己遇到的問題,最終只能自己獨自去尋找答案。獨自編程的難度,現代程式設計師已經很難體會了。

特裡從2003年開始開發「神廟OS」,2005年第一個版本「耶穌OS」上線,再到2013年最後一個版本發布,特裡在這個系統上,花費了整整十年時間。


2

在這十年裡,一個「瘋子」,完成了許多頭腦清醒的程式設計師想都不敢想的壯舉。

從小,特裡就有很高的編程天賦,自己編寫過許多軟體和遊戲。在他還是個中學生的時候,他曾經應家人的要求,寫了一個體感聯動遊戲,用動感單車操縱遊戲裡的角色,猛踩踏板就能躲避鬼魂的追擊。他還發明了一個自動鋸木機,可以按照程序設置把木板切成各種形狀。但是特裡不太滿意機器的效果,最後把整臺機器都扔掉了。

1992年,特裡在亞利桑那州立大學取得了計算機工程學士學位,並在兩年後拿到了電子工程碩士學位。之後他在票務巨頭Ticketmaster任職程式設計師。按照這個道路下去,他原本將會成為高收入中產階級的一員,結婚生子,度過平淡而又幸福的一生。

然而一切在1996戛然而止。這一年,特裡被診斷出雙相障礙,隨後又發展成了精神分裂症,並且產生了各種妄想症狀。特裡覺得外星人在冥冥中統治了地球,而CIA是他們的幫兇。而他自己由於窺探到了機密,陷入了無孔不入的監控中,只有上帝才能拯救自己和人類。隨後的幾年裡,他一直在各個精神病院中輾轉。

「我那時挺瘋癲的,」特裡後來回憶,「當然,我現在也很瘋癲,但是這不是同一種瘋癲。」

2003年,特裡的狀況有所好轉,便開始了「神廟OS」的開發進程。特裡說,這一切都是因為上帝的啟示:他將建造一座供奉上帝的神廟,就像舊約中所羅門的神廟一樣。而當2.0時代到來的時候,他也將像所羅門一樣加冕為王。不過特裡並不覺得自己信仰上帝,他覺得自己是個無神論者,只是剛好和上帝有一些交流而已。

特裡「按照上帝的指示」對C語言進行了改造,發明了屬於他自己的「神聖C語言」(Holy C,諧音Holy See,隱含教皇、聖座的意思),用來編寫「神廟OS」。

「神廟OS」就是特裡為「上帝」所建造的神廟,而特裡所說的 「上帝」,則在神廟裡降下了代言人——一個用聖經全文作為種子的隨機數生成器(RNG)。

特裡的「神廟OS」充滿了各種奇怪的設定。比如OS不支持外掛GPU,因為特裡覺得圖形處理應該是透明的,公開的,不應該藏在GPU的黑盒裡。而神廟OS只支持用光碟機安裝,不支持USB,因為特裡覺得USB是CIA發明的,目的是通過授權費偷偷向民眾收稅。

特裡總是宣稱自己是「世界上最聰明的程式設計師」。如果有人不同意他的觀點,特裡就會怒噴對方是「尼哥」,「娘炮」。這讓許多人覺得特裡妄自尊大,難以理喻。

但特裡的編程天分又著實讓人難以忽視。在一般的作業系統裡面,文件會分成文本、圖片等等不同的類型。但是在「神廟OS」裡,所有的文件都是同一種文件。文字、圖片、3D模型和超連結全部都可以混合放在一個文件裡面,直接指向原始碼。

通常,在Windows這樣的系統上運行的程序,要先用原始碼編譯一遍。而 「神廟OS」的程序文件直接以原始碼的形式存在。當程序要運行的時候,有一個即時(JIT)編譯器會直接把原始碼轉化成程序運行。

這些另闢蹊徑的做法,讓「神廟OS」非常便於開發和調試,也加快了系統的運行速度,整個系統非常輕量,只有幾十MB。12萬行代碼,沒有任何現代的版本控制,全靠一個人手動寫完,居然能夠順利跑起來,各種功能也大體運轉正常,既證明了特裡的才華,也說明他的編程方式確實有不少可取之處。

著名程式設計師和科技記者理察·米頓曾經仔細研究過「神廟OS」的開發環境,並感嘆:現在的程式設計師已經習慣把事情搞得太複雜,沒有人想過,一切還可以這麼簡單直接。


3

由於「神廟OS」太過特別,開發周期又很長,特裡在程式設計師圈子裡一直有點小名氣。他在網上很活躍,很喜歡發表自己的觀點和言論,當然也少不了「不太正確」的那些。有次,一家科技網站採訪了特裡,但是文章發布以後,因為特裡總在下面和其他網友互噴,網站不得不把他的帳號禁掉了。

在社交網絡和直播興起之後,特裡也開始直播他的「神廟OS」開發進程,向觀眾展示他編寫的作業系統裡的各種功能。

「上帝喜歡大象,我也喜歡大象。所以我用插值向量創作了這個非常寫實的大象。如果你不想要只是寫實,你也可以做到比現實更好。你問『比現實更好是什麼意思?』,那你要看看我的這個藍眼睛的大象。」

他最得意的作品是一款叫《埃及之後》的模擬經營遊戲。他覺得這款遊戲真正體現了如何用「神廟OS」來和上帝進行交流。玩家扮演摩西,負責照顧一群信眾的生活,以給信眾餵食餵水,也可以到山上去祈求神諭。特裡還展示了一下遊戲裡的法庭系統。

「一個婦女犯下了罪——我選擇懲罰她。一個孩子犯下了罪——我選擇狠狠懲罰他。」

在「神廟OS」完工之後,特裡很高興自己能夠完成十年前發下的宏願,但又似乎因為失去了人生目標而有點失落。他給自己加冕,叫自己「特裡王」,並說,他已經搭建好了地基,只等待別人來分享這份喜悅。

「不要光顧著玩遊戲,你們應該在神廟OS上多寫些遊戲,然後分享給別人!」特裡一有機會就呼籲別人多為「神廟OS」的生態做出貢獻。確實有不少閒得發慌的程式設計師研究了特裡的「神聖C語言」,甚至編寫了一些簡單的程序,但是特裡還是覺得,沒有人像他期望的那樣用「神廟OS」來和上帝交流——當然,特裡自己也始終沒有說清楚,正常人應該怎麼和「神廟OS」裡的隨機數上帝交流。

有那麼幾年,特裡就一直呆在父母家裡,上網直播,和網友互動。特裡頗有一些「粉絲」,有些人是發自內心欣賞他的天才,被他和精神疾病鬥爭的故事所打動。但是在社交媒體的時代,更多的粉絲並不在乎「神廟OS」背後的故事,他們只是拿特裡當做消遣,慫恿他發表更多充滿了F打頭、B打頭和N打頭詞彙的言論。

特裡的父母一直希望他能夠按時服用治療精神病的藥物。但是特裡覺得這樣會傷害到他的創造力,一直不願意接受治療。最終,特裡的父母下了最後通牒:他要麼乖乖吃藥,就要被送去精神病院。

特裡不想吃藥,也不想去精神病院。於是他選擇離家出走,開始了一段流浪生涯。在幾個月裡,他先從中西部城市菲尼克斯,一路遊蕩到了加利福尼亞,北上到了波特蘭,最後又到了俄勒岡州的戴爾斯。

一路上,他依然不斷上傳視頻。一些粉絲依然和他保持著聯繫,並且用各種方式接濟他。Terry接受了粉絲贈送的食物和生活用品,但是卻拒絕了粉絲們為他提供的住處。

這場漫長的遊蕩,讓Terry的精神狀態越來越差。他的鬍子越長越長,衣服也變得破破爛爛。他依然沉浸在自己當代所羅門王的幻境中,但旁人只覺得他邋裡邋遢,神經兮兮,滿嘴瘋話。在Terry去世的前一天,他想要到圖書館去上會網,卻因為衣衫襤褸被趕了出來。

Terry大受打擊,上傳了他人生中最後一個視頻。

「這個城市很純潔,很乾淨,我這樣骯髒的人一定是把他們嚇壞了,才會把我趕走。我挺喜歡這個圖書館的,不過他們真的估計氣得夠嗆。」


Terry咳嗽了一下,對著鏡頭擠出一個笑容。

「當國王的感覺真棒。但在別人眼裡,也許我只是一個走來走去的怪人而已吧。」


第二天,特裡在鐵道上遊蕩的時候被火車撞擊身亡。火車司機堅信他是臥軌自殺,但有目擊證人的證詞說,特裡在被撞擊前一刻轉了身,似乎剛剛意識到火車正從他身後開來。

特裡曾經試圖用各種比喻來幫助別人了解他的生活。精神分裂症讓他難以分清自己生活中的真實和虛幻。別人對他說的話,都仿佛摩爾斯密碼,他知道自己逐漸陷入瘋狂,對此卻無能為力。

「什麼才是真實?我不知道。我有的時候看見鳥在盯著我的電腦屏幕,我會想,『這隻傻鳥,根本不知道它在看什麼』。但是傻鳥不會明白自己是一隻傻鳥,也不會為此驚慌失措。傻鳥也沒有什麼選擇,只能這樣活下去。雖然它不知道這個世界到底是怎麼運轉的,但它總能學會,哪些是危險的,哪些是安全的,然後就這樣活下去。我就是這麼活著的。」

沒人知道,假如特裡沒有患上精神病,他會取得什麼樣的成就。也沒人知道,「神廟OS」巧妙地底層設計,究竟是歸功天才的特裡更多一些,還是瘋癲的特裡更多一些。特裡從混沌中醒來,留下了一座古怪的遺產,又回到了混沌之中,讓活著的西西弗斯們,再也無法忘卻死去的所羅門王。

相關焦點

  • 為了避免成為代碼狗 程式設計師用AI來訓練代碼
    他們有專門的編寫、存儲和調用記憶系統。他們通過邏輯、形式語法來操作。大腦並不是一個黑盒子,它更像是一個電腦。所謂的認知革命開始時規模很小,但隨著計算機在心理學實驗室在全國範圍內普及,它獲得更廣泛的認可。到70年代後期,認知心理學推翻了行為主義,同時出現了談論精神生活的全新語言。
  • 2020中國(南京)軟體谷首屆1024程式設計師節圓滿舉辦
    中國(南京)軟體谷管委會副主任劉峰出席開幕式並致辭,表達了對軟體谷近30萬涉軟從業人員的關懷,並表示程式設計師群體在我國軟體產業發展歷程中發揮著重要作用,舉辦程式設計師節能夠更好地弘揚「數字工匠」精神,讓全社會了解尊重程式設計師,激發程式設計師創新熱情。
  • 嚴肅紳士喜劇《你好,瘋子!》
    黑客帝國告訴我們:關鍵在於選擇    柯南告訴我們:真相只有一個    瘋子告訴我們:叫醒瘋子與弄瘋正常人都是同樣的殘忍    當悲劇發生,你無法面對的時候,你可以瘋掉,或者選擇瘋掉    如果你不選擇瘋掉,你一定會瘋掉    其實就這麼簡單    我們從始至終都在闡述著這樣一個問題,而這也是全人類所思考的恆古不變的命題
  • 16 歲程式設計師 59 天開發疫苗宣傳遊戲,還做了首說唱歌曲
    Josh Ternyak 說,他從 11 歲開始學編程時就意識到了非常重要的一點,那就是開發應用程式或網站只是難題的第一步,更重要的是許多開發人員都沒有做到,編寫乾淨的、可維護的代碼。編寫易於使用和理解的代碼是非常重要的,當 Josh Ternyak 開發 CovidInvaders 時,他最注重的就是這一點。
  • C# 讀作 C 井,程式設計師讀錯發音是不是也需要道歉
    null[nʌl][naʊ]Angular['æŋgjʊlə]['æŋɡələ; 'æŋdʒʌlə]Vue [v'ju:][v'ju:i]關於開發工具和相關技術的英文詞彙暫且說到這裡,下面繼續看看經常引起程式設計師信仰之爭的程式語言以及作業系統
  • 貓是你的上帝還是上帝是你的貓?
    但這些宗教的一個特殊的共同點便是——信仰上帝(伊斯蘭教稱上帝為真主),但其實誰都沒有見過真正的上帝,真正的上帝是一個謎,而貓本身就充滿著某種神秘感,這種與生俱來的神秘面紗使得人們願意將其與上帝聯繫起來,換言之就是某種移情吧!在人們的眼裡他們不止是貓更像是換了一種形態的人,是上帝的使者,「狗以為人類是慈愛之神,但貓不會這麼想,貓知道人類是以中間人的身份遵照神的旨意行動。」
  • 程式設計師節是什麼節日?1024程式設計師節怎麼來的?祝福程式設計師的話
    程式設計師節是什麼節日?1024程式設計師節怎麼來的?祝福程式設計師的話  1024是2的十次方,二進位計數的基本計量單位之一,因此每年的10月24日被大家親切稱為程式設計師節,也是一個屬於中國程式設計師的共同節日。  至於有些品牌和機構直接把1024程式設計師節佔為己有,以「1024程式設計師節」創始人、定義者自居就過分了。
  • 他是現代計算機科學的鼻祖,編程界的上帝
    他在8歲的時候    為了幫自己班級    在一個拼寫單詞活動奪得冠軍    裝病待家裡兩周背單詞    最後比賽時寫出了4500多個單詞        當時他工作的隔壁房(學校的機房)    放了一臺IBM650計算機    他在學校機房裡研究了好幾天    大二結束後他選了數學專業    後來還設計了一個數學模型    根據球員在每場比賽中的多項表現的統計數據    對球員進行綜合評估    (評估計算則通過程序交給了計算機)
  • 軟體谷「碼農」迎來首屆1024程式設計師節|程式設計師|1024|軟體產業|軟體...
    交匯點訊 10月24日,由中國(南京)軟體谷管委會主辦的2020中國(南京)軟體谷首屆1024程式設計師節開幕,活動以「Hello Software Valley」(你好軟體谷)為核心主題,旨在依託軟體谷雙創服務中心平臺和全國17家企業及機構,打響軟體谷1024程式設計師節系列品牌,更好弘揚「數字工匠」精神,激發程式設計師創新熱情。
  • 給程式設計師的幾點建議和體會,內含程式設計師職場表情包!
    程式設計師當久了,自然而然就會產生一些心得體會,下面我就分享出來我這麼多年的一些體會,大部分也找到了一些表情配圖,快快快,來瞧一瞧哦! 2、不交流,就會頭破血流 不愛說話和溝通
  • 《教授與瘋子》:《牛津英語詞典》背後的故事
    愛爾蘭電影《教授與瘋子》講述的是迄今為止最有名的詞典《牛津英語詞典》編撰中的一段感人故事。所謂「教授」,指的是曾經擔任《牛津英語詞典》主編的詹姆斯·墨裡,但他卻從不是正經的教授,而只是一個出身微寒、從未上過大學的語言學天才。
  • 碼農歡樂多:屬於程式設計師的爆笑時刻
    碼農歡樂多:屬於程式設計師的爆笑時刻 最近在家辦公,我很懷念在辦公室工作的氛圍——程式設計師們鬧出笑話,大家都被逗得開懷大笑,所以我嘗試重新獲得這樣的快樂。以下這些笑話會讓你笑得打滾,它們都源於真實事件。
  • 程式設計師性格怪癖是才華橫溢的表現還是危險分子徵兆?
    有一些我曾經共事過的程式設計師,他們極其的聰明,但也極端的古怪離奇。「古怪離奇」也許用來形容一個事件或一個觀點更合適。也許稱這類型的人為書呆子更合適。但不管怎樣,我的印象中,大多數時候,他們並不會帶來太大的麻煩。並不是他們的腦瓜不靈。很多時候,這些「優秀」的程式設計師往往是團隊中最有能力的。他們的智商和解決問題的能力都是其他人無法企及的。
  • 愛情,不該如此嗎,他是瘋子嗎?《天才在左 瘋子在右》盜屍者篇
    《天才在左 瘋子在右》這本書裡面有許許多多的小故事,每一個小故事裡都有一些在我們看來奇奇怪怪的人,他們被我們定義為——瘋子。他們的思想行為都是我們無法理解的,所以他們就成為了我們眼中的瘋子。其中有一篇我覺得比較特別,我覺得他只是太過於想念他的妻子而並不是有什麼心理疾病。老實說,他的痴情讓我敬佩,愛情,不該如此嗎?
  • 被竇唯狂誇的刺蝟樂隊,成員居然曾是新浪、唯品會的程式設計師?
    本做著另一份普通上班族工作(程式設計師)的趙子健沒法兒向公司請太多假,只好辭了職。對於子健辭職,刺蝟另兩位成員石璐、一帆早已見怪不怪。按石璐的話:「全中國程式設計師都是趙子健同事。因為他老換工作。」唯一糾結子健辭職的,可能就是他的爸爸。
  • 表情符號新玩法:用emoji編寫程序是怎樣的體驗?
    表情符號新玩法:用emoji編寫程序是怎樣的體驗? 站長之家(Chinaz.com)3月7日消息 平常你都用emoji做啥呢?
  • 程式設計師如何打破 30 歲職業瓶頸?
    溝通表達能力   程式設計師給別人的印象一般都是木訥,沉默寡言的,也難怪,程式設計師都是在和機器打交道,不是銷售那種和人打交道的工作,不需要說太多話,不需要撕太多逼。文檔能力   程式設計師的工作就是碼代碼,代碼是用英文編寫的,只有在給代碼注釋和寫產品說明書的時候才寫中文,而且寫的也是一些瑣碎的內容。   如果讓一個程式設計師就某一個主題寫一篇文章出來,我想大多數程式設計師可能無從下手。
  • 聖誕節快樂:來自程式設計師們的問候
    在這個越來越受到國人重視的節日中,每個人有每個人的浪漫方式,當然程式設計師們也不例外。下面就來看看一些IT企業和程式設計師們是如何為這個節日增添不一樣的氣氛的。一、來自IT巨頭的問候1. Google的彩蛋每到節日,Google就會在其搜尋引擎中加入一些彩蛋,在用戶搜索特定關鍵詞的時候出現特殊的頁面效果。
  • 【SaaS先鋒】專訪李哲,和一個「不安分」的程式設計師談Ruby和開源
    之所以採訪李哲,可能很大的原因是因為他是一個「不安分」的開發者吧。從一家知名的國企離開,在當時看來是需要不少勇氣的。第一次接觸到他,是看到他在RubyChina大會上的演講,用他自己的話來說,「我不是什麼大牛,就喜歡學習一點跟Ruby相關的東西。」