戰(zhàn)斗機的源代碼,到底有多重要?

飛機剛剛發(fā)明不久就趕上了一次大戰(zhàn)。戰(zhàn)爭極大地推進了飛機進化的速度。很快就出現(xiàn)了偵查機、轟炸機、殲擊機和運輸機等類型的區(qū)別。不過早期的所有飛機,都是純機械化的飛行機器。駕駛員通過駕駛桿、腳蹬等機械傳力部件,向飛機傳輸運動指令。這些指令再通過連桿齒輪等機械裝置,特別是鋼絲線等控制發(fā)動機的油門,以及機翼活動面的動作。來完成對飛機航向航速以及俯仰轉(zhuǎn)彎的變化,實現(xiàn)有人操縱的飛行。而隨著飛機越來越大,飛行速度越來越快。單純靠機械和鋼絲傳遞飛行員操縱力的反作用力也越來越大,導(dǎo)致飛行員操縱飛機越來越吃力。于是又發(fā)明了液壓助力裝置。部分減輕飛行員的操作負擔(dān)。此后又在飛機上安裝了各種儀表、無線電電臺等裝置。此時的飛機就已經(jīng)不是純正的飛行機械。而是有了一部分電子設(shè)備在飛機上。不過當(dāng)時的電子設(shè)備,大部分與飛行操作本身關(guān)系不大。

到了第二代戰(zhàn)機的后期和第三代戰(zhàn)斗機出現(xiàn)后,首次出現(xiàn)了電傳操縱系統(tǒng)。也就是飛行員對飛機操作的各種動作力矩,并不是再通過鋼絲線或者包括液壓助力系統(tǒng)傳遞給飛機的發(fā)動機和各個氣動面,而是先把飛行員操縱的動作變成電信號,然后通過計算機判斷飛行員的操縱是否合理。如果合理就執(zhí)行,如果不合理就不執(zhí)行。一般采用4臺電腦同時表決的方式,4臺電腦中3臺同意或者4臺都同意就執(zhí)行;出現(xiàn)2比2或1比3,甚至0比4就不執(zhí)行。比如對客機和運輸機來說。飛機上的電腦系統(tǒng)是嚴(yán)格禁止飛行員突然拉桿到40度以上。因為這樣容易出現(xiàn)機頭抬頭過高,會引發(fā)失速墜毀??梢哉f此時和以后的飛機操作。已經(jīng)是機載電腦和飛行員共同執(zhí)行。而超級大國空軍最早采用1553B總線。把戰(zhàn)斗機的飛控,武器控制和發(fā)動機控制等全部集成起來,實現(xiàn)了飛火推一體控制。因此三代以后的戰(zhàn)斗機,看似是一架飛機,實際上已經(jīng)變成了會飛的智能機器人。

因此電子系統(tǒng)和軟件在現(xiàn)代飛機特別是先進戰(zhàn)斗機中所占的成本比例越來越高。三代半的電子和軟件成本已經(jīng)高達60%以上,而到了五代機以后可能要占據(jù)65%到70%的成本。那么對現(xiàn)代化的飛機都是“智能機”來說,軟件和硬件同樣重要。而且現(xiàn)代飛機的操作軟件,是把飛行控制,武器火力控制,發(fā)動機控制為完全智能一體的。因此越現(xiàn)代化的戰(zhàn)斗機,其軟件規(guī)模就越來越龐大。比如F22A的軟件編寫就需要8年的時間。到了F35包括某20的時代,甚至需要10年以上的時間。而對不參與軟件編寫的海外用戶來說,想破解這些飛機的源代碼,恐怕用50年的時間都未必會成功。因此掌握某種戰(zhàn)機的全部源代碼,比掌握某種飛機的部分硬件更重要。比如F35有非常多的先進子系統(tǒng),配件有七八個國家可以提供。包括羅羅提供的升力風(fēng)扇這種不可替代的關(guān)鍵部件。但是F35整機的源代碼,仍然是洛馬完全掌握。其他海外用戶如果沒有洛馬的源代碼授權(quán)。想掛個導(dǎo)彈和炸彈都做不到。

因此包括戰(zhàn)機和導(dǎo)彈系統(tǒng)的源代碼,就成了武器出口國,控制海外用戶的最新“遙控鑰匙”。那么什么是源代碼呢?源代碼本身并不稀奇。任何軟件,比如個人電腦的視窗操作系統(tǒng),都有其源代碼。源代碼,也稱源程序,是指未編譯的,按照一定的程序設(shè)計語言規(guī)范書寫的文本文件,是一系列人類可讀的計算機語言指令。說白了,源代碼就是最基礎(chǔ)的計算機程序。對戰(zhàn)機和導(dǎo)彈等先進的武器系統(tǒng)來說,其源代碼也是不斷進化的。早期的戰(zhàn)機飛控軟件的源代碼,一般用C+語言編寫。后來則多用ADA語言。ADA語言是一種適合武器系統(tǒng)管理控制的高級計算機語言。對寫源代碼的程序員綜合要求相當(dāng)高。非一般水平的碼農(nóng)可以操作。F35的源代碼就是用ADA語言編寫,某20的也被認(rèn)為基本如此。