中國(guó)開(kāi)源軟件推進(jìn)聯(lián)盟主席 陸首群
軟件是IT產(chǎn)業(yè)的重要支柱之一。國(guó)內(nèi)軟件發(fā)展的突出問(wèn)題是軟件的創(chuàng)新路線問(wèn)題。我們以系統(tǒng)軟件的創(chuàng)新來(lái)作分析,系統(tǒng)軟件是最基礎(chǔ)、最核心、創(chuàng)新難度也最大的軟件,系統(tǒng)軟件一般指操作系統(tǒng)、數(shù)據(jù)庫(kù)、中間件和軟件的開(kāi)發(fā)工具、編譯器、編程環(huán)境等,其中操作系統(tǒng)又在系統(tǒng)軟件中處于龍頭地位。
開(kāi)發(fā)一個(gè)大型操作系統(tǒng),難度很大。我們以微軟開(kāi)發(fā)的Windows-Vista及其新版的Office為例,微軟投入了9000多個(gè)開(kāi)發(fā)設(shè)計(jì)人員;投入80-90億美元開(kāi)發(fā)資金(有人估計(jì),圍繞與Vista的配套,微軟及其合作伙伴投入的開(kāi)發(fā)資金約為其2倍,即160-180億美元),如此,Vista及其新版Office的開(kāi)發(fā)資金總計(jì)約為240-270億美元;開(kāi)發(fā)工作歷時(shí)6年。微軟于去年7月份推出Windows Vista Beta 1測(cè)試版,今年5月23日推出了Vista Beta 2測(cè)試版,并計(jì)劃于2007年1月向全世界發(fā)布Vista正式的產(chǎn)品版。應(yīng)該說(shuō)Vista的開(kāi)發(fā),對(duì)微軟歷年來(lái)推出的Windows版本有一定的繼承性,微軟為了開(kāi)發(fā)、提升新的性能,也為了防止別人“兼容”仿制,不惜重寫(xiě)了近60%的源代碼。微軟在開(kāi)發(fā)、測(cè)試Vista過(guò)程中,曾發(fā)現(xiàn)27628個(gè)程序缺陷(Bug),雖然不斷進(jìn)行改正(或是打補(bǔ)丁),但至今(截止7月5日)尚有5700個(gè)程序缺陷未獲解決。比爾•蓋茨本人對(duì)明年1月能否準(zhǔn)時(shí)(不再拖期)正式發(fā)布Vista產(chǎn)品版也沒(méi)有信心。
Windows操作系統(tǒng)是一種私有的商業(yè)軟件,從技術(shù)上看,不可否認(rèn)它是一部偉大的作品(或一種知名品牌的產(chǎn)品),但如果按照Windows-Vista如上的開(kāi)發(fā)條件,無(wú)論從財(cái)力、人力、時(shí)間的投入上看,目前中國(guó)是不具備自主開(kāi)發(fā)大型操作系統(tǒng)條件的。
為了開(kāi)發(fā)自主創(chuàng)新的操作系統(tǒng),只有另辟蹊徑,走開(kāi)源軟件創(chuàng)新之路,以便充分利用開(kāi)源的軟件資源,在巨人的肩膀上繼續(xù)攀登,才有出頭之日。
目前國(guó)內(nèi)企業(yè)雖然推出了幾款Linux操作系統(tǒng)產(chǎn)品的發(fā)行版,作為開(kāi)發(fā)這種產(chǎn)品的起步,其成績(jī)當(dāng)然要加以肯定,個(gè)別版本也較突出,但總的來(lái)說(shuō),自主創(chuàng)新的技術(shù)含量不高,還處于學(xué)習(xí)、模仿階段,缺乏深層次的研發(fā)能力,一些企業(yè)或組織還多少染上浮躁、炒作的毛病。關(guān)于國(guó)內(nèi)研發(fā)的“某某”操作系統(tǒng),有人認(rèn)為它違反了自由/開(kāi)源軟件許可協(xié)議,屬于作假、侵權(quán)行為,它把本來(lái)從伯克利(BSD)移植來(lái)的大量源代碼資源宣稱是“自主開(kāi)發(fā)”的成果,起碼也未按FreeBSD許可協(xié)議對(duì)資源的來(lái)源作出公開(kāi)聲明;對(duì)其真正自主開(kāi)發(fā)的東西所占比重多少,在評(píng)估上也有爭(zhēng)議,至少關(guān)于工程化實(shí)現(xiàn)技術(shù)的自主開(kāi)發(fā)較少觸及。一些企業(yè)主要是做下載國(guó)際開(kāi)源社區(qū)公開(kāi)的源代碼,作簡(jiǎn)單的代碼遷移,比較深入的也不過(guò)利用多次測(cè)試、糾錯(cuò)的成果,打補(bǔ)丁作一些相應(yīng)的改進(jìn);面對(duì)兩個(gè)“BSP”未能進(jìn)行深入開(kāi)發(fā)。一個(gè)BSP,即“主板支持包系統(tǒng)(Board Support Packages)”,意思是指:當(dāng)把一個(gè)操作系統(tǒng)移植到一個(gè)新的硬件平臺(tái)上時(shí)進(jìn)行的(驅(qū)動(dòng))軟件(及源代碼)的開(kāi)發(fā)工作,國(guó)內(nèi)一些企業(yè)尚未觸及,另一個(gè)BSP,即“大量同步平行計(jì)算技術(shù)(Bulx-Synchronous Parallel)”,國(guó)人雖然開(kāi)發(fā)了“服務(wù)器集群的并行虛擬網(wǎng)絡(luò)服務(wù)系統(tǒng)”,并已由國(guó)際開(kāi)源社區(qū)登記,但我們的企業(yè)尚未在自己開(kāi)發(fā)的Linux操作系統(tǒng)中采用;至于目前在國(guó)外開(kāi)源操作系統(tǒng)中當(dāng)作技術(shù)潮流而開(kāi)發(fā)的“IT虛擬機(jī)技術(shù)”(Fedora、OpenSuSE等社區(qū)已開(kāi)始使用),國(guó)內(nèi)企業(yè)更未觸及。在開(kāi)源軟件的內(nèi)核開(kāi)發(fā)方面,國(guó)內(nèi)企業(yè)一般只是簡(jiǎn)單地移植“官方內(nèi)核(Official Linux Kernel)”,并未根據(jù)自已的使用條件和應(yīng)用領(lǐng)域,對(duì)圍繞官方內(nèi)核的“上載模塊”進(jìn)一步作度身定制、重新編譯,以便開(kāi)發(fā)一個(gè)增加許多新特性,并更穩(wěn)定、更高效的內(nèi)核出來(lái)。國(guó)外知名的Linux企業(yè)(如RedHat、Novell等),在其發(fā)布版中公布的內(nèi)核源代碼與官方的內(nèi)核源代碼之間,存在約3-5%的偏差(他們并不是簡(jiǎn)單移植,而涉及到他們?cè)谧疃唐陂g內(nèi)在很多不同來(lái)源的補(bǔ)丁中選擇的最佳補(bǔ)丁),這是為了他們消除產(chǎn)品缺陷,進(jìn)一步優(yōu)化產(chǎn)品性能的目的。官方內(nèi)核監(jiān)護(hù)人Andrew Morton跟我說(shuō),對(duì)這種偏差的“度”的把握,主要是依靠工程經(jīng)驗(yàn)。相對(duì)而言,國(guó)內(nèi)企業(yè)在開(kāi)發(fā)中,往往忽視工程化實(shí)現(xiàn)技術(shù),尚缺乏把握偏差“度”的能力,因而并無(wú)偏差設(shè)計(jì)的舉措。國(guó)內(nèi)一些人尚未弄明白:開(kāi)源軟件開(kāi)放式的開(kāi)發(fā)機(jī)制不同于傳統(tǒng)產(chǎn)品(包括傳統(tǒng)私有軟件)封閉式的開(kāi)發(fā)機(jī)制。開(kāi)源軟件的開(kāi)發(fā)過(guò)程是:首先建立開(kāi)源社區(qū)(目前在國(guó)內(nèi)自建開(kāi)源社區(qū)尚缺一些必要條件,只能先利用好國(guó)際開(kāi)源社區(qū)的機(jī)制),由開(kāi)源社區(qū)組織全球“志愿者”(或企業(yè)、測(cè)試基地等組織的“Linux/OSS技術(shù)小組/中心”)進(jìn)行“集體開(kāi)發(fā),合作創(chuàng)新”,并將與產(chǎn)品全面性能相映射的全部源代碼實(shí)行公開(kāi)、開(kāi)放。這是開(kāi)源軟件開(kāi)發(fā)過(guò)程中的先導(dǎo)的社區(qū)開(kāi)發(fā)過(guò)程。國(guó)人或國(guó)內(nèi)企業(yè)只有持續(xù)參與社區(qū)開(kāi)發(fā)的過(guò)程,才能深入了解整個(gè)開(kāi)源軟件(產(chǎn)品)的全部隱性技術(shù),即設(shè)計(jì)思想、設(shè)計(jì)原理、體系結(jié)構(gòu)、頂層設(shè)計(jì)(全局概念)和工程經(jīng)驗(yàn)等;了解“志愿者”遞交并為社區(qū)錄用的“軟件包”在整個(gè)“開(kāi)源操作系統(tǒng)樹(shù)(Linux Tree)”中的位置、歷史變遷和影響,了解各軟件模塊間的協(xié)同、耦合、調(diào)用的關(guān)系,以及它們的配置效應(yīng);并從中增長(zhǎng)自己的經(jīng)驗(yàn)和才干。這種親身參與和從此積累的工程經(jīng)驗(yàn),是在以后完成后續(xù)的企業(yè)開(kāi)發(fā)過(guò)程中所必不可少的。目前我們?yōu)閲?guó)際社區(qū)所選中的“搶占性(Preemption)”的“代碼行”(或“軟件包”)的人數(shù),或?yàn)閲?guó)際社區(qū)登記加入“開(kāi)源操作系統(tǒng)樹(shù)(Linux Tree)”的“代碼行”(或“軟件包”)的人數(shù)還很少,可喜之點(diǎn),近年呈逐步上升的趨勢(shì),如“Linux虛擬服務(wù)器(LVS)”、“灰狐社區(qū)”的“Jfox應(yīng)用服務(wù)器”、“智能通用輸入法”等已為國(guó)際社區(qū)注冊(cè)登記;特別要指出的是:國(guó)人對(duì)ext3文件系統(tǒng)改寫(xiě)的部分代碼,對(duì)USB串行總線改寫(xiě)的部分代碼,以及“Linux虛擬服務(wù)器(LVS)”等開(kāi)發(fā)項(xiàng)目已進(jìn)入了“開(kāi)源內(nèi)核(Linux Kernel)社區(qū)”。目前關(guān)于在最大的國(guó)際社區(qū)Source Forge開(kāi)發(fā)平臺(tái)上立項(xiàng)并主持有影響力的系統(tǒng)級(jí)項(xiàng)目的人,國(guó)人也已實(shí)現(xiàn)了“零的突破”,而且多起來(lái)了,國(guó)人關(guān)于“Windows驅(qū)動(dòng)軟件模塊”在Sourge Forge上的立項(xiàng),已引起全球廣泛的關(guān)注,這個(gè)項(xiàng)目是能在Windows環(huán)境中讀寫(xiě)Linux ext3文件系統(tǒng)的軟件模塊。我們這里強(qiáng)調(diào)的是“重視社區(qū)開(kāi)發(fā)”、“重在參與”、“需要更多的國(guó)人參與”、“從中積累工程經(jīng)驗(yàn)、增長(zhǎng)才干”。
如果開(kāi)發(fā)過(guò)程停留在社區(qū)開(kāi)發(fā)階段,這時(shí)的社區(qū)發(fā)布版雖然已可展示產(chǎn)品的全面性能,但操作尚不穩(wěn)定,計(jì)算效率也未優(yōu)化,靈活擴(kuò)展性不夠,質(zhì)量有待提高,產(chǎn)品成熟度也待催化。為了開(kāi)發(fā)出穩(wěn)定、優(yōu)化、成熟的產(chǎn)品,必須緊跟著一個(gè)后繼的企業(yè)開(kāi)發(fā)過(guò)程,這樣才能形成完整的開(kāi)發(fā)過(guò)程。在“社區(qū)開(kāi)發(fā)”基礎(chǔ)上的“企業(yè)開(kāi)發(fā)”,主要開(kāi)發(fā)“工程化實(shí)現(xiàn)技術(shù)”,是具有“自主開(kāi)發(fā)、自主創(chuàng)新”性質(zhì)的。當(dāng)然其中也含有“核心技術(shù)”。我們要再次強(qiáng)調(diào),只有廣泛持續(xù)參與社區(qū)開(kāi)發(fā)過(guò)程并從中積累經(jīng)驗(yàn)、增長(zhǎng)才干,才有可能在企業(yè)開(kāi)發(fā)(即工程化實(shí)現(xiàn)技術(shù)開(kāi)發(fā))中取得成功。對(duì)于這一點(diǎn)也是很多人不明白的。Ubuntu社區(qū)的創(chuàng)始人Mark Shuttleworth曾給我寫(xiě)信,Ubuntu的桌面或服務(wù)器Linux發(fā)布版(產(chǎn)品),雖然源代碼是全部開(kāi)放的(與源代碼相應(yīng)的核心技術(shù)自然也是公開(kāi)的),但它還含有不開(kāi)放的核心技術(shù),并可以進(jìn)行技術(shù)轉(zhuǎn)讓。其所謂“可轉(zhuǎn)讓的核心技術(shù)”,主要就是體現(xiàn)在“工程化實(shí)現(xiàn)技術(shù)”中。
我過(guò)去就曾多次指出,自由/開(kāi)源軟件的全部技術(shù)是由全部開(kāi)放的源代碼所表征的公開(kāi)性技術(shù)和不公開(kāi)的工程化實(shí)現(xiàn)技術(shù)(或?qū)S屑夹g(shù)、隱性技術(shù)、工程經(jīng)驗(yàn)、測(cè)試技術(shù)和商業(yè)秘密)所構(gòu)成的共生技術(shù)。共生技術(shù)的兩部分都含有核心技術(shù),一部分是公開(kāi)的,集體開(kāi)發(fā)、合作創(chuàng)新的;另一部分是不公開(kāi)的,可進(jìn)行自主開(kāi)發(fā),自主創(chuàng)新的。
國(guó)外一些Linux企業(yè)對(duì)其某些自動(dòng)編譯工具,自動(dòng)缺陷顯示工具,在CD盤(pán)上軟件模塊自動(dòng)集成環(huán)境,以及某些自動(dòng)測(cè)試工具,一般也是不開(kāi)放的。
孤立地推出Linux操作系統(tǒng)(產(chǎn)品)還是不夠的,它必須要與IHVs、ISVs、SIs配套、集成,形成生態(tài)系統(tǒng),即在相互連接的界面上要實(shí)行兼容、互操作,為最終用戶提供共同的技術(shù)支持,為此必須讓這些配套廠商對(duì)Linux操作系統(tǒng)進(jìn)行嚴(yán)格的“質(zhì)量認(rèn)證”(測(cè)試工作),從認(rèn)證測(cè)試中發(fā)現(xiàn)問(wèn)題,進(jìn)一步修改完善設(shè)計(jì),這是改進(jìn)產(chǎn)品性能,提高產(chǎn)品質(zhì)量必不可少的條件(順便指出,測(cè)試技術(shù)是開(kāi)源產(chǎn)品開(kāi)發(fā)設(shè)計(jì)的重要手段)。目前,一些國(guó)內(nèi)的Linux廠商正在與國(guó)內(nèi)外有關(guān)配套商協(xié)同展開(kāi)這方面工作,但工作展開(kāi)面還遠(yuǎn)遠(yuǎn)不夠。
另外,開(kāi)源軟件的產(chǎn)品性能還存在一個(gè)不斷改進(jìn)、完善,不斷深化、升級(jí)的動(dòng)態(tài)過(guò)程,因此要持續(xù)不斷進(jìn)行“社區(qū)開(kāi)發(fā)”與“企業(yè)開(kāi)發(fā)”兩個(gè)相互銜接、互相補(bǔ)充、不斷循環(huán)的開(kāi)發(fā)過(guò)程,要在開(kāi)發(fā)設(shè)計(jì)的不同階段開(kāi)展各種測(cè)試(專項(xiàng)測(cè)試、開(kāi)發(fā)測(cè)試、編譯測(cè)試、二進(jìn)制回歸測(cè)試、社區(qū)版測(cè)試、產(chǎn)品版測(cè)試、用戶質(zhì)量認(rèn)證和應(yīng)用測(cè)試)和糾錯(cuò)工作,以及不斷按生態(tài)系統(tǒng)進(jìn)行集成測(cè)試和糾錯(cuò)工作。以便改進(jìn)、完善、提升開(kāi)源軟件的開(kāi)發(fā)設(shè)計(jì)。
一些外來(lái)的Linux操作系統(tǒng)(產(chǎn)品發(fā)布版),由于對(duì)中文環(huán)境的二次開(kāi)發(fā)不足,在國(guó)內(nèi)本地市場(chǎng)上的適用性也遇到一些問(wèn)題。
提高國(guó)內(nèi)開(kāi)源軟件開(kāi)發(fā)設(shè)計(jì)水平,要從大學(xué)生的教育培訓(xùn)抓起。近年來(lái),國(guó)內(nèi)已有上百所大學(xué)開(kāi)設(shè)了Linux/OSS課程,這是可喜的現(xiàn)象。我看關(guān)鍵是要培養(yǎng)學(xué)生的“動(dòng)手能力”,初步積累“工程經(jīng)驗(yàn)”。斯坦福大學(xué)的做法值得我們借鑒:他們選擇一個(gè)最小化的Linux操作系統(tǒng)(約100K左右),輔導(dǎo)學(xué)生開(kāi)發(fā)設(shè)計(jì)(一個(gè)學(xué)期能出成果),目標(biāo)是要放在PC機(jī)上能跑,(而不是在仿真/模擬器上跑)。
總之,自由/開(kāi)源軟件是一種低成本(由于全部源代碼開(kāi)放,構(gòu)成整個(gè)軟件的“程序”,以及“文檔”,通常是可以免費(fèi)的)、高透明(可增加用戶信任度)的軟件;是鼓勵(lì)全球志愿者廣泛參與開(kāi)發(fā)的軟件;在自由/開(kāi)源軟件中,存在著公開(kāi)與不公開(kāi)的共生技術(shù),存在著“社區(qū)開(kāi)發(fā)”和“企業(yè)開(kāi)發(fā)”銜接互補(bǔ)的兩種機(jī)制,具有“集體開(kāi)發(fā)、合作創(chuàng)新”和“自主開(kāi)發(fā)、自主創(chuàng)新”共存的特點(diǎn)。我們要澄清一些概念,理清思路,抓住機(jī)遇,明確創(chuàng)新路線,發(fā)展開(kāi)源軟件,并推動(dòng)我國(guó)系統(tǒng)軟件的自主開(kāi)發(fā)創(chuàng)新。 (責(zé)編:echo)
{{item.content}}