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