這個帖子的網絡id叫阿文,他這個帖子並沒有說操作系統的有關事情,而只是說剛開始對編譯器非常感興趣,大學的時候參加了幾個相關的項目,發現自己對cpu的結構學了很久都沒有熟悉,於是便產生了自己動手親自做一個cpu的想法,以此來讓自己完全熟悉cpu的工作原理和結構。通過學習數字邏輯電路和計算機原理方面的相關知識,他知道,一個cpu其實也是有很多ttl集成電路組成的,其基本元件不外乎是晶體管、電阻和電容等,區別就只在於工藝方面而已。也就是說,從理論上來將,完全可以由這些基本電氣元件來製作比較簡單的cpu,實現一些簡單的功能。事實上,cpu的發展就經歷了這麼一個過程。
考慮到水平的問題,這個想法一直留在阿文的腦海中,並沒有動手實施。這樣一直到大二的某一天下午,他在國外一個專業性的硬件論壇讀到了一篇文章,據那個文章的發表者說,這篇文章曾經是一本老雜誌上的,他見裡面涉及的內容非常專業和精彩,於是便收工將整篇文章敲了上來,作者沒有聯繫到。
這篇文章講的就是如何使用ttl集成電路來製作極其簡單的cpu,裡面將總體過程大略地介紹了一遍,例如製作這個cpu主要涉及到哪幾個主要的步驟以及哪些知識等,並且在文章的最後,作者還說,這個試驗事實上是能夠做成功的,他和幾個朋友曾經做過一個這樣的cpu,當然,它是一個龐然大物。
看到這篇文章之後,阿文終於下了決心,決定自己打造一個cpu。帖子到這裡就結束了,在末尾,阿文說看到這裡的人氣很旺,希望到這裡能夠找到志同道合的朋友,一起來交流這方面的知識,到目前爲止,他的計劃已經順利地完成了一部分了。阿文在末尾留下了一個飛飛號碼。
在帖子的後面,只有寥寥幾個回帖,無非是“你強”、“厲害”之類的話。很顯然,大家並不相信阿文說的話是真的,或者說,阿文所做的事情把大家給嚇住了,自己手工製作cpu。難道你以爲僅僅是去打磨一下麼!
許毅仔細閱讀了這個叫阿文的帖子,裡面他的措詞非常嚴謹,並沒有什麼不合理的地方。雖然他所做的事情有點太過匪夷所思了,但也並不是完全不可能,生活中的高手是很多的。許毅接着在站內搜索了一下阿文所發表和參與的帖子,發現他發的帖子很少,回帖也少,不過他回覆的那幾個帖子的內容的質量卻非常高,而且都集中在硬件方面。
從這點來看,他應該不是那種說話不負責的人。想到此,許毅登陸上飛飛,按照阿文提供的號碼將其查找出來,發現他需要驗證才能加爲好有,許毅填了一個“cpu”。
很快,對方通過驗證的消息就傳了過來――他現在在線。
許毅沒有立刻發信息過去,對方好像也不着急,並沒有發信息來詢問。最後還是許毅主動發信息過去:“你好,我是在黑客學院的操作系統版塊看到你的飛飛號碼的,我對你手中的那個有關cpu的項目比較感興趣。”
對方直接發來一句:“首先先回答我三個問題。”
許毅還沒來得及應答,對方的問題就已經發了過來,三個問題,考察的內容有對相關硬件知識的概念,也有cpu某個部位的具體作用。好在許毅對這方面還有點了解,這三個問題都沒能難道他,很順利地就通過了阿文的考覈。
“終於來了以爲稍微懂行的人了!”阿文發來的消息中這樣說道。按照他的說法,前面應該也有人找過他,而且也遇到過這種待遇。
“很多人來找過你嗎?你問的這三個問題並不是很難呀。”許毅奇怪地問道。
“也不多,就四五個人,你是這些人當中水平最高的。題目之所以這麼容易是因爲我把題目難度降低了很多,不過我相信,前面的人都回答不出什麼東西來。”
“呵呵,你過獎了!在黑客學院翻到你的帖子,特意來找你問問情況。”
“這麼說來,你是真的相信我在帖子中所說的話了?”
“那是肯定,不相信還跑來幹嘛?”許毅反問,“再說我也知道用ttl集成電路的確是可以做出簡單功能的cpu的,雖然事情比較煩瑣了一點。”
“看來今天還真碰到能夠聊幾句的人了。”對方的話裡透露者興奮,“在你之前的那幾個,都是半斤八兩,對這方面涉及的並不是很深,所以我跟他們沒有共同語言。”他之所以設立這樣一個考覈規矩,主要是因爲前面兩個人聊了半天,連什麼是cpu的cache是什麼都不知道,浪費了阿文好多時間。
“請問你現在已經做到哪裡了?”許毅開門見山地問到。
“現在我已經完成了alu/寄存器的架構和控制面板的架構!”
“哦?”他這麼說,許毅並不能看得很懂,誰知道他口中的控制面板是什麼東西,alu和寄存器許毅倒知道。
“我這麼說你可能看不懂,這樣吧,我把我的項目日誌給你看看。”阿文想到了許毅的難處。
“那最好不過了!”
接着,阿文發出了一段文字,格式非常簡單,就是前面是日期,然後主要做了哪些事情。
1996年10月6日:開始寫項目日誌,併爲這個項目制定了日程表。
1996年10月18日:完成了錯誤處理和中斷機制的基本設計。
1996年10月29日:完成微代碼的第一輪設計,並將這個cpu命名爲smartech1
1996年11月13日:smartech-1的彙編器基本成型。
1996年12月28日:在模擬器中完成了頁面錯誤機制。
對指令集架構進行了意義重大的改變.
設計用於多進程的上下文環境切換
完成對微代碼的重寫工作
一直到前兩天的“完成控制面板的架構”工作。
許毅看到,他這個項目已經歷時一年多了,而且在整個項目的過程中,他進行了大量的重寫改進工作,有好幾次甚至是完全推翻前面的設計,將自己學到的新知識應用到smartech1的製作當中去,從這份簡單的項目日誌看來,可以清晰地看到阿文在這方面的進步。在項目剛開始,他完全還是個菜鳥,很多設計都非常不合理,很多知識也不知道。可是現在,他已經成爲了這方面的高手,對整個smartech-1瞭如指掌,同時也將cpu的很多工作原理和結構完全掌握。
看到這份日誌,許毅知道 ,阿文確確實實在做這個項目,他實在佩服阿文的毅力和耐性。
“我看了你的日誌,你的確非常厲害。我想問下,你的smartech-1的最終目標是想達到一個什麼樣的程度?”
“剛開始的時候,我只是抱着熟悉cpu的工作原理和結構的目的開始這個項目的,可是現在,我發現我已經喜歡上了smartech1,從某種意義上來說,它是我的孩子,我現在的目標已經有了改變,不再滿足於最初的想法,我想真正將這個cpu做出來,成爲一個功能完全的cpu!”
“我要讓它支持完整的硬件地址轉換、內存映射io和dma,當然,多線程也少不了!這個cpu的地址總線是8位的,做成功之後,它的主頻應該會達到3mhz!每個進程擁有128k地址空間,其中包括32個2k的數據頁和32個2k的代碼頁,這些地址映射到22位的物理地址空間中,如果算上外部設備的地址空間就是23位物理地址空間!”
“將來,我打算用這個cpu來組裝一臺微型計算機,它的名字我都已經想好了,就叫它smartech-1!呵呵,也許,以後還可以用這臺計算機來做一個web服務器!我現在已經在爲這臺cpu設計c語言編譯器了”
阿文滔滔不絕地向許毅描述着他的藍圖,而許毅則一直在一邊靜靜地聽看着,從這些不斷傳輸過來文字,許毅看到了一個技術人員對技術的瘋狂和沉迷。從他身上,許毅看到了計算機歷時上早期計算機黑客的身影。那個時候的黑客,絕大多數都是硬件黑客,他們對電子硬件非常精通,極大地推動了計算機硬件的發展,第一臺微型電腦就是由硬件黑客愛德華絡伯茨發明的。
通過進一步聊天許毅知道,阿文做這個cpu完全是出於自己的愛好和興趣,除此之外別無他想,不過他的出現,卻讓許毅有了一個新的決定。
“阿文,我對你的smartech非常感興趣,我們經常保持聯繫,另外,你如果想找志同道合的人一起實施這個計劃的話,我想我可以幫到你.....”