魯平搖搖頭,努力的將幻覺驅逐出去,“呱”的喝了一口菜湯,“不可能的事情,高級語言寫不了操作系統,我們試過的。以前我們就覺得彙編寫的操作系統可移植性太差,很難從一種機器移植到另一臺機器上,因此嘗試着用高級語言編寫,失敗了。”

誰說高級語言不能寫操作系統,長久暗想,不過他沒有分辨而是換了一個話題:“既然操作系統移植很難,那咱們爲什麼只重點發展一個系列的計算機,就像IBM360那樣,新的硬件系統兼容舊的機器,豈不最好。這樣,無論是操作系統還是應用軟件,都可以重複利用,一代一代的改進,那得節省多少人工啊。”

魯平苦笑道:“談何容易啊!雖然人人都知道這樣是最好的辦法,但是現實的利益分配卻是無法迴避的。你敢說你做的計算機就是最好的?不可能,而且現在大形勢是兼容,國產的幾乎所有機型都是仿造的,現在正主都在美國打的歡呢,你說我們仿誰。沒分出勝負來跟着誰都危險,所以上面舉棋不定,乾脆一塊造。”

長久不解道:“這沒什麼呀,只要上面有計劃還是可以最大化規避風險的。”

魯平搖搖頭:“小兄弟,你還小,不懂這裏面的道道。仿製國外幾個系列的計算機的任務分屬不同部門,誰想放棄。別的不說了,就看小型機全國就分成了兩派,吵得是一塌糊塗。至於其它大型計算機項目更是一個接一個的上馬,到處開花。”

曹長久咋舌道:“這麼複雜,還是避之爲妙,我要求不高,只想有臺計算機用用就行了,呵呵。”

魯平也笑道:“就是,咱們只是做事的,不碰那個有的沒的。對了,你幹嘛死掰着那部破機器不放啊,去機房不是更好?”

曹長久作出一個無奈的表情:“還不是王所要求的,他讓我搞鍵盤輸入、顯示輸出還得多道分時系統。我尋思着這些東西都不是省事的活,沒個專用的機器不好做,我可不想去和一幫人擠機房。所以只好搗鼓那臺古董了。”

魯平道:“你還真當真了啊,我還以爲你說着玩,感情你還真要開練,你一個人能行嗎?”

長久道:“起先有把握,後來看看機器又覺得有點難度。倒不是電氣上面有難度,而是那老爺機動不動發脾氣死機受不了。”

魯平說:“那沒什麼,咱倆今天聊的投緣,我幫你。那機器我熟,我幫你處理。”還有一句話魯平沒說,那就是早點弄完他也可以早點解脫。 魯平道:“你還真當真了啊,我還以爲你說着玩,感情你還真要開練,你一個人能行嗎?”

長久道:“起先有把握,後來看看機器又覺得有點難度。倒不是電氣上面有難度,而是那老爺機動不動發脾氣死機受不了。”

魯平說:“那沒什麼,咱倆今天聊的投緣,我幫你。那機器我熟,我幫你處理。”還有一句話魯平沒說,那就是早點弄完他也可以早點解脫。

於是,曹長久和魯平兩人合作無間。魯平找來了老機器所有的硬件資料,對於這種系統改造,長久很輕鬆。因爲他有例子可循啊,當年的蘋果機、後來的遊戲機幾乎全是這種構造思想——即用處理器的頻率作爲顯示分頻,這樣不用大量增加額外的硬件開銷。

沒有監視器,而且也太貴,長久只好跟魯平找了臺電視機,去掉了調諧電路作爲字符顯示器使用,自然是抄襲蘋果II的創意,僅僅花了半個月的時間,電路、接口就設計的七七八八。

曹長久爲了節約成本使用了通用的接口,基本設計已經完成,只等着製造了。

王教授對他倆的工作倒也支持,所需的一切材料全部所裏出。這樣,倉庫裏的那一臺老爺機陸續添置了軟磁盤、磁帶機、磁鼓等等外圍設備,舊貌換新顏,煥發了第二春。更換了大量的電子配件也使得機器不再四個小時抽一次瘋,開發進度大大的加快。

爲了升級機器的輸入輸出系統,曹長久和魯平也對這部仿nova機的硬件結構進行了深入的分析。好在這些古董機的結構也都大同小異,長久將其與夢中所學一印證,發覺頗多共通之處,因此也就比較容易理解。

隨着硬件工作的結束,老爺機的穩定度也大大的提高,而且還有一個12英寸的黑白電視作爲字符顯示器。有了穩定的機器,曹長久和魯平立即變身程序狂人,輪班上馬編寫程序。

新設備不是安上就能用的,還得編寫驅動、制定顯示工作方式,這一切都得程序完成,兩個人只好分工合作寫程序。

於是又是好幾個不眠之夜過去了,顯示器上終於可以印出字符了。機械打字機接受電信號,將內容轉化爲數字方式存儲在內存裏,由處理器調出再轉化爲模擬信號顯示在電視機上,大概就是這麼一個過程。

這部老爺機現在已經完全變了模樣,原先帶按鈕的控制面板還在,不過已經沒啥大用了。曹長久嫌啓動過程太麻煩,不自動化,所以買了一個可擦寫存儲器固化了一段程序,自己做了一個自動引導部分接入了主板,總算有了現代電腦的感覺了。

魯平對改進後的小型機是愛不釋手,不停的擺弄着,彷彿這是全新的機器新娘。

和魯平不同,曹長久卻是在發掘着這個顯示系統的潛力,努力的用程序控制着每一個象素光點,最終在這部小型機上實現了一個撞球遊戲。

遊戲畫面很簡單,一個球狀光點在屏幕上來回運動,屏幕左右邊框各有一塊豎着的“光板”(姑且這麼說),可以在鍵盤的控制下上下移動。由人操縱光板移動,擋住移動的光球,將其反彈回去,誰要是接不住就算輸了。

曹長久很久沒有做過這麼簡單的程序了,不過這一切看起來並不過時,至少他和魯平就玩了整整半天。

魯平也是第一次知道計算機居然可以做這種事情,以致於完全沒有注意到他們兩個人用的是兩個機械鍵盤。此時的他完全沉浸在了對戰的快樂中去了。

雖然魯平遊興大發,但是曹長久可堅持不了這麼長時間。對他來說如此簡單的遊戲只能當作懷舊,能陪着魯平如此發瘋幾個小時已經疲憊不堪。

在過了吃飯時間半個鐘頭時,曹長久實在忍不住了,把鍵盤一推,站起來說:“不玩了,你不覺得咱們應該做點其他什麼事嗎?”

魯平愣愣的看着長久,半天才迸出一句來:“對,這樣玩是不行。”

“大哥,你終於悟了!”

“這樣玩太簡單了,沒難度。把程序給我,我再加點東西上去,保證更好玩。”魯平作積極狀。

曹長久終於暴走了:“我們該吃飯了,再不吃點東西會死人的。”

魯平這纔看看錶:“這麼快啊,我怎麼沒感覺到啊。真該死,咱們去外面吃吧,我請。”

曹長久這才轉怒爲喜。


吃完了免費餐,長久和魯平滿足的打着飽嗝回到了所裏。

魯平提議繼續瘋狂一把,長久嚴辭拒絕:“我覺得我還是工作比較好,年輕火熱的生命不能花在這麼簡單遊戲上面。”

魯平大慚:“你說的對,咱們是該做點正事了。現在時間還沒到,你先休息吧,我先把上午的時間追點回來。”

“拉倒吧,還有20分鐘上班你追的回來嘛?不用分開上了,咱試試兩個用戶同時上怎麼樣。”

“嗯,什麼意思?難道多用戶系統寫好了?我怎麼不知道?”魯平大奇,連問了好幾個問題。

“廢話,你白天把機器都佔着,我怎麼做?我花了兩個白天在紙上寫程序,又調試了一夜,累死我了。好不容易調試了,做了一個遊戲還被你拉着玩了一上午,系統還沒完成。不行了不行了,我要睡覺。”長久剛吃完飯,忽然覺得睡意無窮。

魯平不好意思,臉都紅了,連忙說:“你快去休息,我替你調試。”

曹長久打着哈欠說:“彙編代碼在我筆記本上,磁盤上也有,就是這片。你小心着點,我可不想輸第二回。”

“保證沒問題!”

就這樣曹長久回去睡覺去了,魯平則在機器上費力的讀彙編,絞盡腦汁的調試系統。 系統不大,但很精幹,這是魯平通讀了一遍下來後的感覺,支持磁盤,支持目錄,有文件系統,還能實現多任務多用戶。

魯平試了一下,雖然限於機能原因只能支持兩個用戶,但是已經可以毫無阻礙的進行多任務操作,兩個用戶幾乎沒有什麼影響。

調試過這個系統,魯平算是對曹長久終於有了那麼一點佩服了,程序不算太多,但是包含的內容絕對不少,還能在這種苛刻的硬件條件下運行無誤,實在難能。更可貴的是,居然實現了多用戶多任務操作,魯平由衷的讚歎。

其實這個系統是曹長久寫一個一個類unix,相當於後世的linux。在夢中linux興起的時候,曹長久就曾經自己寫過,現在只不過舊事重提,再寫一遍而已。

唯一區別就是機器差了一點,和夢中的單片機比起來也就差不多,單片機的操作系統更是精簡,曹長久對這個更是拿手,以致於他還慶幸自己夢中做過。

至於系統的分時多任務特性就說來話長了,分時系統是在計算機發展早期提出的,當時的機器輸入輸出是一排開關加指示燈,後來先進一點了搞了打孔紙帶輸入。找一根硬紙帶,兩排孔,上邊有孔代表一,沒孔代表零,一個程序打老長,等紙帶進去了再一按電門,計算機纔開始算吧。算好了再突突的打孔,又是一段紙帶出來了,人們再挨個數孔再換算成結果。所以那時候的計算機使用都要等待,計算機的運行效率也不高,大部分時間都浪費在輸入輸出上了,就是俗稱的單人單任務。同一時間只有一個人能操作一個任務,當然沒效率了。這就導致了分時多任務操作系統的誕生,那就是及其著名的,不可不知的UNIX。

發明UNIX的兩位大牛可了不得,一位是Ken Thompson爺爺,另一位是Dennis M.Riche老大,尊稱DMR。在1969年,當時還是計算機的史前時代,人們普遍認同操作系統是大型機的特徵,小型機不可能運行操作系統,至於用高級語言來寫操作系統,那更是癡人說夢。於是執着而睿智的K爺爺與D老大怒了,爲了能在機器上玩遊戲(這點任何計算機的前輩都深有體會),兩人於1970年用匯編語言在PDP-7(一種小型機,比曹長久用的DJS-130還垃圾的多)上寫了第一個版本的操作系統UNIX。爾後,71年K爺爺還用C語言(高級語言)將UNIX重新寫了一遍,至今我等後輩真是高山仰止,歎服不已。

Unix的事情咱們以後再說,該說王所了。

王所這幾天覺得好像忘了什麼東西,人年紀大了,記憶裏減退也是正常。六十好幾了也不退休,還在主持着一項國家高性能計算機的研製工作,他實在忙不過來。

可他總覺得上面交代過一件重要的事情,怎麼就記不起來涅?

想了半天終於有點印象了,胡祕書送來了一個學生到這裏實習,自己還派了個人照應。不知道這小傢伙怎麼樣了,王所想道。

王所原本認爲長久幹不了幾天就會走人,哪裏想到這小子居然就在倉庫住下了,連魯平這小子也跟着起鬨。



越想越放心不下,這都一個月過去了,兩人卻音信全無,連面都不見了,自己得去看看,王所心想。

來到了倉庫門口,王所就聽見了裏面噼噼啪啪的敲擊聲。他點點頭想,似乎這兩個傢伙都滿勤奮的嘛。

王所沒想驚動他們,所以就輕輕的走進去,站在了魯平的後面,而魯平一無所覺。

眼前看到的東西,讓王所很有點驚奇,倒不是第一次看見顯示系統,他只是覺得兩個年輕人居然可以在小型機上做出這種成績來是令人驚訝的。

“咳,嗯。”

王所輕咳一聲,魯平回頭一看,站起來說:“王所,您來啦,您坐。”

“嗯,你忙,我就來看看。”王所笑着說,對有才華的年輕人他是非常愛護的,“那個小傢伙呢?”

魯平連忙答道:“長久昨晚調試了一晚上系統,回去睡覺了。”他可沒敢說兩人玩了一上午遊戲的事情。

“哦?”王所略感訝異,“這個顯示系統正在調試啊,有什麼問題沒?”

“不是這個。”魯平連忙擺手,“顯示系統早就做好了,長久同志調試的是一個磁盤操作系統,功能很強大,支持多任務多用戶,我正在給他的代碼補註釋。”

“!?”王所大驚,十四五的孩子給小型機寫操作系統,“給我看看代碼!”

“……”看了半個小時外加操作之後,王所無語了,掉頭對魯平說:“你確定這是曹長久――那小孩寫的?”

“這個,我也不清楚。只是他自己說花了兩天寫代碼,調試了一夜就出來了。”魯平搔搔頭說,“這個有什麼問題嗎?”

王所搖搖頭:“不管是誰寫的,我很佩服寫這個程序的人。愛因斯坦都說數學公式必須包含美才行。你看多麼簡練優美的程序語句啊,魯平你得好好學學。”

“美?”魯平茫然,這彙編語句有什麼美的,不就是一行行的字符嘛。


“簡單就是美!”王所下了定義。

“?”魯平大惑不解。

“年輕人,你沒看出來嗎?咱們以前寫沒寫過操作系統程序?”

“寫過,013大型機的操作系統就是我們做的。長久這次寫的系統雖然快速,但是功能不如我們產品。”魯平的眼光確實獨到,一眼就看出了問題所在。

“非也,在我看來,長久寫的程序不但簡練實用,還有一個更大的好處,就是可移植性。”王所感嘆不已。

“難道您說的是……”魯平似有所悟。

“不錯,我雖然沒有深入瞭解,不過就是看了一遍,曹長久寫的程序至少分了幾個部分。我剛剛找到了他的核心程序,那是直接契合硬件的,充分發揮了硬件系統的潛能,所以軟件的運行效率才這麼高。至於其他的代碼,我猜是與硬件無關的,彷彿是自動編譯的,其效率遠遠沒有核心程序的高,但也相當可觀。”王所不停的翻看着曹長久的原代碼說。

“不錯,您不說我還真沒看出來,我就想着這幾段代碼就好像不是一個人編的,怎麼差別這麼大。”魯平恍然大悟。

“依我看,除了核心這段代碼是彙編語言寫的,其它部分似乎是用高級語言寫成後由機器自動編譯的,問題是我從來沒聽說過高級語言可以用來寫操作系統,看來這小子肚子裏似乎還有不少貨啊。” 王所的眼光狠毒,一眼就看出了其中的關鍵。其實曹長久早在一年前就開始做復原C語言的工作了,只不過是在紙上而已。

以曹長久夢中所知,很難有比C語言更強大、更通用的高級語言了,所以他一開始就將C語言做爲了主攻方向。

還好長久夢中是做編譯器研究的,否則光知道C語言的語法規則還是白給,沒有編譯器依然是一場空。雖然是紙上作業,整個語言框架依然被他成功的複製出來了,並對其中的缺點做了改進。

在了計算所這段時間,長久則根據這部機器的硬件特性和指令系統重寫了C編譯器,終於大功告成。

有了C語言這把利器在手,曹長久如虎添翼,編寫系統是水到渠成。雖然其間由於硬件限制,曹長久不得不壓縮代碼縮減功能,但依然成功使這個操作系統跑起來了,不得不說是一件大事。

雖然不大滿意,但是對於這部機器來說已然是極限,曹長久也只好湊和用了。編寫的過程中還有了一點自己的感悟。

在夢中感覺編寫程序完全和現在不一樣,不是語言的問題,而是整個編程的思想。硬件條件的限制和編譯程序的研究不到位逼着人們去適應機器,每一步程序都要考慮如何最大化的提高效率。

而長久夢中的情況卻是完全相反,充沛的源代碼資源、突破的編譯程序研究、相比現在幾乎沒有限制的硬件資源早已將人們編程的主要方向轉移到了功能完備和兼容上去,效率問題則完全交給了硬件。

所以長久根本就瞧不起現代的大多數程序員,因爲有了這些商業化的編程工具,寫軟件就成了搭積木,根本體現不了效率二字,甚至連創意也沒有,所有程序千篇一律。

所以長久寧願去做嵌入式編程也不願用所謂的JAVA,套用一個遊戲界的定義,大概長久就屬於那一小撮“重度玩家”,追求極限,挑戰機能,效率是第一位,對花裏胡哨的界面和亂七八糟的功能深惡痛絕。他們把生成一個有效程序看作是一項複雜而又富有創造力的藝術活動。他們精力主要都花在克服當時計算機性能不足所引發的各種障礙上,所以他們對硬件都瞭如指掌,是一羣藝術家。

可是世界上還是“休閒玩家”佔了絕大多數,他們是消費的主體,他們喜歡漂亮的窗口可傻瓜化的操作,一鼠走天下,連ctrl-c、ctrl-v都不會用,軟件運行速度不快就升級機器,卻不知道當年操縱計算機的男人都是自己編寫硬件驅動程序的。

曹長久有時間的時候也對自己的情況進行了思考,勉強找了一個詞來形容自己現在的情況——穿越?可是似乎自己也沒有清晰的記憶,完全不是一個人。


不過長久倒也沒把這放在心上,有這些經歷是一回事,過什麼樣的生活卻是他自己的事情,沒道理把這當成負擔。

回首前身浮沉路,今日方知我是我。

所以曹長久想走一條自己的道路。

更難得的是,現在這個時代卻是一張白紙,可以亂寫亂畫,這豈不是很有意思?

————————————————

王所下午也不回辦公室了,和魯平在倉庫裏一起研究代碼,讚歎不已。他越看越清晰,也越疑惑,這系統明顯是分了層次,有核心層、應用層等等,粗略的註釋也表明了這個結構。核心層決定於硬件,代碼量很小,包含着各種最基本的操作。

王所測試了一下,效率很高,典型的手工用匯編寫的,這個沒什麼疑問。其他代碼就差多了,在王所的這個老編譯器程序員看來就是用高級語言寫成再彙編的。

看出門道來了,問題是這個高級語言是什麼,在哪裏?王所本身主持開發過華夏各類計算機Fortran語言大型編譯系統,深知其中利弊。

當時的計算機系統趨勢是硬件越來越便宜,而花在編寫軟件和程序排錯上的費用與時間是越來越高,每出一部新機器都要編寫相應的軟件,軟件開發費用幾乎佔了整個系統的四分之三,最終爆發了軟件危機。前蘇聯的計算機開發就是一個例子,**子的計算機開發硬件只有十幾二十個人,卻動員了幾萬人同時編寫軟件,禍國殃民,就如同聯合收割機和鐮刀的比拼。