歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux綜合 >> Linux資訊 >> Linux業界 >> 探索開源軟件的創新之路

探索開源軟件的創新之路

日期:2017/2/27 10:58:45   编辑:Linux業界

  我國IT產業的創新工作

  我國是全球IT產業發展的後起者,我們肩負為我國IT產業生存、發展和提升而博弈的歷史重任。走自主創新之路,將是這場博弈勝出的關鍵。

  集成電路和軟件是IT產業的兩個支柱。近年來國內圍繞這兩個支柱產業的創新歷程

為: 在集成電路方面,國內自主開發了中低端通用微處理器(CPU)、芯片集成系統(SOC)和數字訊號處理器(DSP)等芯片,當然這些芯片的集成度較低,大 約比國際高水平還差一個數量級。如龍芯II號相當於奔騰IV中檔,其集成度約為107個晶體管,而國際水平為108個晶體管。但畢竟我們從無到有,完成了 上述一系列芯片開發創新的全過程,即完成了科研創新、設計創新,以及工具創新、工藝創新和工程創新全過程。必須指出,工程創新的難度比科研創新的難度要大 得多,有人預測工藝創新難度約為設計創新難度的10倍。

  國內軟件創新工作現狀

  系統軟件是最基礎、最核心、創新難度也最大的軟件,可將它作為軟件創新的代表。系統軟件一般為操作系統、數據庫、編譯器和工具、編程環境、中間件等,其中操作系統又在系統軟件中處於龍頭地位。

  中國要自主開發操作系統或系統軟件,難度很大,必須走開源軟件創新之路,從開源軟件創新中找機遇突破;而要進行開源軟件的創新必須實行體制創新。

  目前國內雖然推出了幾款Linux操作系統發行版,但自主創新的技術含量不高,總體上還處於學習模仿階段,缺乏深層次的研發能力。在先導的社區 開發創新(即“集體開發”、“合作創新”)階段,國內個別人雖然曾向國際開源社區遞交了諸如“Linux虛擬服務器(LVS)”、“入侵檢測系統 (IDS)”等修改的軟件包,但作為社會或企業的志願者向國際開源社區的貢獻還屬鳳毛麟角;而在後續的企業開發創新階段,國內企業一般尚未能把握好工程化 實現技術,工程經驗很少。中國開源系統軟件應該從模仿走向創新,在“合作創新”基礎上擴大“自主創新”。

  兩種共生技術

  人們常常陷於一個思維誤區:“開源軟件是由全球志願者集體開發的,遵循開源許可協議,其全部源代碼是開放的,任何人均可自由獲得”,而“全部源 代碼的開放也表示其全部技術是公開的。”他們不明白,開源軟件不能再停留在其早期“自由的理想王國”裡,僅供“黑客”、“玩家”們當“玩藝”;開源軟件要 取得持續發展,必須探索並形成自己的商業模式,惟有具備商業模式的開源軟件才是成熟的,才能處理好如下矛盾,即:既不違反開源許可協議,公開全部源代碼; 又能不公開自己的專有技術,保守自己的商業秘密。事實上,具有商業模式的開源軟件,其技術創新並不完全表現於具有自由開放特點的科研創新和設計創新之中, 即並不完全表現於開放的源代碼之中,它還表現在具有技術不公開特點的工藝創新和工程創新之中,即表現在與源代碼無關的工程化實現技術之中。這就是說,開源 軟件的全部技術是由以開放源代碼所表征的公開化技術,與不公開的工程化技術兩部分組成;並由這兩部分技術組成開源軟件的共生技術。所謂工程化技術是一種實 現技術、優化技術、隱性技術,主要表現為技術訣竅(Know-How)或熟練技巧(Skill)、工程經驗、系統底層技術的把握等隱性知識方面,它主要關 注於:改善操作穩定性,優化計算效率,增強靈活擴展性,提高產品質量,催化產品成熟度。

  雙重創新模式

  與一般企業的私權軟件創新模式不同,開源軟件首先采用由志願者進行“集體開發”、“合作創新”的新模式,這種創新模式實行“源代碼開放”、“技 術公開”;但是僅靠這種模式還不足以開發出開源軟件的全部共生技術,也不足以向市場推出優質高效、操作穩定、技術更趨成熟、競爭力更強的開源軟件產品。實 際上,開源軟件針對開發工程化技術,還需要另一種“自主開發”、“自主創新”、“具有自主知識產權”的創新模式來跟進和補充。開源軟件的雙重創新模式,即 “集體開發”、“合作創新”與“自主開發”、“自主創新”兩種模式是互補的、互相銜接的、不可分割的;也可看作開源軟件開發創新過程的兩個階段。

  近年來國內企業開發並向市場推出一批開源軟件產品,取得了長足進步;但某些企業還沿襲舊的封閉的開發模式和機制,他們在“社區版”上進行剪裁、 移植或者進行簡單修改,屬於自主開發創新的成果還不多,基本上還處於學習、模仿階段。國人在開源軟件“集體開發”、“合作創新”活動中,向社區提交自己修 改、創新的源程序代碼行尚屬鳳毛麟角,對開源社區搶占算法方面的貢獻還很微小,有人認為,國人尚未進入這個開發創新模式的核心圈。

  兩種開發機制

  為了加快中國開源軟件的發展,需要建立開源社區,形成社區開發和企業開發兩種互相支持、互為補充的開發機制。

  在開源社區,具有“集體開發”、“合作創新”、“技術公開”特征的創新體系,偏重於科研創新和設計創新,它是建立在自由開放的互聯網平台上的, 很多創意通常自下而上來自底層的全球志願者;社區負責對志願者提交的軟件包,進一步作“選包、打包、集成、測試”循環的創新活動並實施資源管理。在社區創 新體系之外,還需一個後續的企業創新體系與之互為補充,企業創新體系偏重於工藝創新和工程創新,具有“自主開發”、“自主創新”、“技術不公開”的特征, 它是建立在企業內部開發部門或企業局域網平台上的,其創新的任務是向市場推出滿足用戶需求的產品,計劃通常自上而下,開發者是企業專業技術隊伍。他們在利 用開源社區創新成果的基礎上,重點做工程化、產品化、系統化、完善化、穩定性和性能優化的創新工作。在開源系統軟件領域內,工程創新的難度比科研創新的難 度大很多。

  產品平台和生態系統

  對於開源軟件,孤立地開發或推出一個產品(發行版)是不夠的,必須形成圍繞該產品平台的生態系統,即要把大量軟件(特別是應用軟件)移植到這個 產品平台上來;該產品要能預裝到一些必要的硬件體系結構中去;要能與眾多外圍設備匹配銜接。而移植、預裝、匹配是需要做大量測試、修改以及再開發工作的, 涉及成百上千個企業協同工作,需耗費大量人力、物力、財力和時間。為做到這一點,首先必須開發出在全球能進入“主流”的產品,


否則要吸引全球廣大企業、社區的支持,共同來營造一個生態系統是不可能的。當然在營造生態系統過程中,不能用純技術觀點來看待這個問題,在爭取廣大企業、社區支持時,特別要爭取擁有豐富資源和影響力的跨國公司的支持,為此我們要做好協調工作。(作者系中國開源軟件推進聯盟主席




Copyright © Linux教程網 All Rights Reserved