第三十九章 又結(jié)識(shí)一高人
梁實(shí)誠(chéng)回復(fù)了這個(gè)人,并把自己的MSN號(hào)發(fā)了過(guò)去,同時(shí)注意到這個(gè)人的頭像是一張外國(guó)紙幣,名字叫弗蘭克,經(jīng)過(guò)搜索這張紙幣是蘇聯(lián)時(shí)代的。
翻開(kāi)他的歷史記錄,全是在幫人答疑解惑。
很快對(duì)方就加了梁實(shí)誠(chéng)為好友,沒(méi)有過(guò)多寒暄,開(kāi)門(mén)見(jiàn)山直逼主題。
【那段程序在哪搞到的?是你寫(xiě)的嗎?或者說(shuō)是你的朋友?】
見(jiàn)此人如此著急的提問(wèn),梁實(shí)誠(chéng)隨便編了一個(gè)理由。
【我從舊貨市場(chǎng)撿到的,感覺(jué)很有意思,就都收集了下來(lái),你對(duì)他們有了解嗎?】
那人停頓了一下,像是在打字,
【事情是這樣的,那段程序的風(fēng)格很俄系,或者應(yīng)該說(shuō)是很蘇系。
我以前見(jiàn)識(shí)過(guò)這種風(fēng)格,不過(guò)在這個(gè)時(shí)代已經(jīng)沒(méi)有人會(huì)用了,還會(huì)寫(xiě)這種程序的人,應(yīng)該都上了一些年紀(jì)了。而且他們要么是實(shí)驗(yàn)室的科研人員,要么是為軍方服務(wù)的人?!?p> 梁實(shí)誠(chéng)明白可能找到一些線索了,于是立刻回復(fù)道:
【此話怎講?】
過(guò)了一會(huì)兒,對(duì)方終于打完了字,并發(fā)送了過(guò)來(lái),
【簡(jiǎn)單的說(shuō),蘇聯(lián)以前在電腦硬件層面始終和美國(guó)保持著巨大的差距,但是軍用設(shè)備卻要維持在和美國(guó)一樣的水平上。
為了達(dá)到這一點(diǎn),就只能在編程上下功夫了,于是他們另辟蹊徑了一套編程邏輯,對(duì)于硬件的要求很低,但是對(duì)于編程者的智力要求極高。
你可以發(fā)現(xiàn)蘇聯(lián)的戰(zhàn)斗機(jī)的火控系統(tǒng)的代碼總是短小而精悍,這就是為了彌補(bǔ)硬件上的不足。
可是盡管硬件不如別人,最終的性能卻沒(méi)有完全落后。
這套體系唯一的缺點(diǎn)就是編程難度高,一般人很難學(xué)得會(huì),最終因此被淘汰在歷史的長(zhǎng)河中?!?p> 梁實(shí)誠(chéng)剛看完這句,那人又繼續(xù)補(bǔ)充道:
【在編程領(lǐng)域有這個(gè)一個(gè)規(guī)律,程度的功能,程序運(yùn)行效率,編程難度。
這三個(gè)點(diǎn)只能保留兩個(gè)。
若想程序功能強(qiáng)大,要么這個(gè)程序運(yùn)行起來(lái)很慢,對(duì)電腦配置的要求很高,要么就編程就得用更難的方法。
現(xiàn)在的主流做法是,盡可能降低編程難度,又要保證程序的功能,于是只能靠電腦性能的飛升,來(lái)解決程序效率的問(wèn)題。
而當(dāng)年蘇聯(lián)的方法相反,在同樣功能的情況下,靠更困難的編程方式降低對(duì)硬件性能的需求?!?p> 對(duì)話進(jìn)行到這里,兩人之間似乎有了一絲信任感,F(xiàn)lanke請(qǐng)求視頻通話,梁實(shí)誠(chéng)點(diǎn)下了同意,然后他看到畫(huà)面中是一個(gè)穿著白大褂的白發(fā)老頭,儼然一副學(xué)者模樣。
隨后他們繼續(xù)交談起一些專業(yè)問(wèn)題。
這些道理梁實(shí)誠(chéng)都懂,卻很禮貌地裝作一個(gè)新人的樣子討論起來(lái),
他記得這個(gè)一個(gè)現(xiàn)象,同樣的游戲畫(huà)面,同樣的電腦配置,可以因?yàn)槌绦騿T付出的優(yōu)化,讓幀數(shù)提升不少。
這就是現(xiàn)狀,如今編程軟件越來(lái)越容易學(xué),無(wú)數(shù)人可以只學(xué)習(xí)一些模板后就上崗工作,所用的編程軟件也越來(lái)越簡(jiǎn)單,庫(kù)文件也越來(lái)越復(fù)雜,但對(duì)于電腦資源的性能要求也越來(lái)越高。
因?yàn)殡娔X的性能提升比人編程水平快多了,而高水平人才相對(duì)稀缺的資源,如何讓普通人也能學(xué)會(huì)編程才是重點(diǎn)。
于是人們選擇了用降低運(yùn)行效率,換編程難度的降低。
盡管電腦的性能在以摩爾定律飛速提升,可是我們卻沒(méi)有感到電腦運(yùn)行更快了,因?yàn)楝F(xiàn)在的軟件更加消耗硬件。
結(jié)束了對(duì)這個(gè)話題的討論后,梁實(shí)誠(chéng)問(wèn)出了他真正想要問(wèn)的問(wèn)題。
【我不知道我應(yīng)該怎么稱呼你,就叫你弗蘭克教授吧。
教授,我現(xiàn)在找到了一堆歷史文件全是關(guān)于這種特殊的編程代碼的,但是我并沒(méi)有他們的庫(kù)文件,
我能否用什么辦法,還原出他們的庫(kù)文件,然后讓這些代碼可以重新被使用起來(lái)?!?p> 畫(huà)面中對(duì)方低下頭打起了字,
【哦,很好,我支持你的想法,我當(dāng)年就是學(xué)的這套體系,我會(huì)盡我所能幫助到你,如果能讓世人再次看到蘇聯(lián)的一些研究成果,對(duì)我而言也是莫大的榮幸。
不過(guò)這需要一定的思維能力,以及一些勞動(dòng)。
因?yàn)樘K軍的硬件水平也在緩慢提升,庫(kù)文件在這個(gè)過(guò)程中不斷發(fā)生了變化,我很了解這套模式,卻也不知道是哪個(gè)時(shí)代的版本?!?p> 打字的過(guò)程中,弗蘭克教授竟時(shí)不時(shí)擦起了眼淚,并添加了一句,
【我當(dāng)年有很多同伴選擇了去鄰國(guó),也就是你的國(guó)家,這些或許就是他們帶過(guò)去的吧,
我真后悔我當(dāng)初的決定?!?p> 梁實(shí)誠(chéng)見(jiàn)狀禮貌地安慰道:
【弗蘭克教授,我姑姑情況也和你差不多,她從小學(xué)的外語(yǔ)是俄語(yǔ),可是后來(lái)全民改學(xué)英語(yǔ),她現(xiàn)在連操作計(jì)算機(jī)都是一個(gè)麻煩?!?p> 接著老頭努力保持快樂(lè)起來(lái),
【呼呼,你竟然一直叫我教授,我已經(jīng)有好幾十年沒(méi)有聽(tīng)到這樣的稱呼了。
我現(xiàn)在身在美國(guó),并在某個(gè)著名的大學(xué)里掃廁所。
我的祖國(guó)解體前,我是一名科學(xué)家,后來(lái)生活所迫被特工帶到了我現(xiàn)在居住的地方,一開(kāi)始他們承諾給我在大學(xué)里提供工作,沒(méi)想到和我的專業(yè)完全不相關(guān)?!?p> 之后經(jīng)過(guò)了一系列的打聽(tīng),弗蘭克教會(huì)了梁實(shí)誠(chéng)很多知識(shí),以及學(xué)習(xí)這些知識(shí)的途徑,并最終還表示有問(wèn)題隨時(shí)可以找他。
從弗蘭克那梁實(shí)誠(chéng)還了解到了其他一些事情,其中有一個(gè)好消息,這種的編程手法,因?yàn)榭紤]到硬件性能的限制,所使用的庫(kù)文件也比較簡(jiǎn)單,這也就意味著逆向工程反推庫(kù)文件的工程量也會(huì)低一些。
實(shí)際難度低于梁實(shí)誠(chéng)的預(yù)期,為了保密這個(gè)過(guò)程他打算一個(gè)人完成,而且這是一個(gè)非常需要費(fèi)腦筋的過(guò)程,也不便于拆分出去,從一大堆信息中總結(jié)規(guī)律,十個(gè)人的效率未必會(huì)達(dá)到2倍。
接下來(lái)弗蘭克給與了重要的幫助,同時(shí)梁實(shí)誠(chéng)也在實(shí)踐的過(guò)程中,發(fā)現(xiàn)了之前的200mb文件對(duì)于這個(gè)逆向工程而言并不夠用,于是又拍攝提取了多得多的文件,一度達(dá)到了上百G。
弗蘭克預(yù)測(cè)整個(gè)工程需要幾年的時(shí)間,但他不知道一件事,梁實(shí)誠(chéng)并非在地?cái)偵蠐斓降倪@些程序文件。
因?yàn)槿f(wàn)能編輯器是在拍攝某些固定動(dòng)作后生成對(duì)于的程序文件,也就是說(shuō)他之前就是知道這個(gè)程序會(huì)產(chǎn)生什么動(dòng)作的。
這工作相當(dāng)于破解一門(mén)古代語(yǔ)言,不僅要編一本字典還要搞清楚它的語(yǔ)法,首先獲得大量用這種語(yǔ)言寫(xiě)成的資料是必要的,而梁實(shí)誠(chéng)還能同時(shí)知道這些文字本身要表達(dá)的含義,這大大地加快了進(jìn)程。
幾個(gè)月的時(shí)間過(guò)去后,他初步完成了這份工作,并得到了一個(gè)在他自己看來(lái)能夠滿意運(yùn)行這些程序的庫(kù)文件,有了庫(kù)文件,就可以在它的基礎(chǔ)上得到想要的各種工具,就可以隨便使用這些程序。
先找來(lái)一個(gè)玩具遙控汽車(chē),然后用單片機(jī)重新改造了它的控制系統(tǒng),并刷上固件,裝上一個(gè)簡(jiǎn)易的攝像頭。
設(shè)定好目的地,除了是否發(fā)動(dòng)汽車(chē)以外,其他的控制全靠玩具汽車(chē)本身,在家里實(shí)驗(yàn)了一下效果不錯(cuò),可以輕松繞開(kāi)障礙物,驗(yàn)證工作完成,接下來(lái)這輛汽車(chē)就一直處于開(kāi)動(dòng)的狀態(tài),并成為了貓的好玩具。