再舉一個例子,比如家庭網(wǎng)絡(luò)應(yīng)用中的家庭網(wǎng)關(guān)(HG,Home Gateway)。家庭網(wǎng)關(guān)需要支持多種多樣的無線和有線接入技術(shù),需要與各種各樣的家用電器連接,比如電冰箱、空調(diào)、家庭電腦、電視機(jī)、微波爐等,有時候甚至需要與門鈴、門鎖、窗簾等完成連接。這需要非常復(fù)雜的數(shù)據(jù)處理能力和通信能力,同時要高度安全、高可靠、高效率。還有一些其它的需求,比如人臉識別、生物認(rèn)證技術(shù)等。在已有操作系統(tǒng)上增加這些特性,其復(fù)雜度可能會比重新開發(fā)一個操作系統(tǒng)還要大。因此針對這種場景,開發(fā)一個專門針對家庭網(wǎng)關(guān)的操作系統(tǒng),是非常有必要的。
還有很多其它的場景,在此不一一列舉??傊?,隨著應(yīng)用場景的細(xì)分,硬件的個性化,操作系統(tǒng)開發(fā)需求不但不會消失,而且會以越來越強(qiáng)勁的勢頭凸現(xiàn)出來。
什么樣的公司適合開發(fā)自己的操作系統(tǒng)
我認(rèn)為,直接面向終端用戶的IT公司,都可以通過開發(fā)自己的操作系統(tǒng)來增強(qiáng)其競爭力。比如提供互聯(lián)網(wǎng)服務(wù)的ISP,提供通信服務(wù)的運(yùn)營商(Operator),銷售終端產(chǎn)品的終端供應(yīng)商,甚至一些非IT公司,比如汽車制造商,也可以通過開發(fā)自己的操作系統(tǒng)來增強(qiáng)核心競爭力。一個原則就是,只要直接面向終端用戶,為終端用戶提供服務(wù)或產(chǎn)品,都有潛在的操作系統(tǒng)開發(fā)需求。主要是因?yàn)?,操作系統(tǒng)是業(yè)務(wù)終端的最核心軟件(也是最核心部件),只要控制了操作系統(tǒng),就控制了業(yè)務(wù)終端,進(jìn)而達(dá)到保持用戶、增強(qiáng)用戶忠誠度的目的。同時,以一個自有產(chǎn)權(quán)的操作系統(tǒng)為基礎(chǔ),可以派生出非常多的終端類型,來滿足各種各樣的業(yè)務(wù)需求。這樣在競爭中,企業(yè)就有了主動性,通過不斷的業(yè)務(wù)創(chuàng)新,使得企業(yè)永遠(yuǎn)位于產(chǎn)業(yè)鏈的前端,做行業(yè)的領(lǐng)導(dǎo)者而不是跟隨者。
以蘋果公司為例,正是由于其擁有完全自主知識產(chǎn)權(quán)的iOS操作系統(tǒng),才使得其在產(chǎn)品推陳出新、更新?lián)Q代的過程中始終保持在同行的前列,通過重復(fù)使用這個操作系統(tǒng),開發(fā)出各種各樣的新穎產(chǎn)品。假設(shè)其沒有自主知識產(chǎn)權(quán)的操作系統(tǒng),而利用第三方的操作系統(tǒng),那就受限于操作系統(tǒng)本身更新?lián)Q代的影響,很難及時推出有差異化的產(chǎn)品。
總之,在用戶直接接觸的終端領(lǐng)域,操作系統(tǒng)是最高的戰(zhàn)略高地。只要占領(lǐng)了這個高地,就意味著建立了在整個領(lǐng)域內(nèi)的王者地位。但是,操作系統(tǒng)的開發(fā)也不能盲目進(jìn)行,必須找到一個符合自身整體戰(zhàn)略規(guī)劃的應(yīng)用領(lǐng)域,針對這個領(lǐng)域進(jìn)行開發(fā)。比如Alibaba公司,就針對云計(jì)算自主定制了自己的操作系統(tǒng)。我認(rèn)為這是一個非常明智的舉措。
最后再著重說明一下,開發(fā)自己的操作系統(tǒng),并不意味著一定要自主開發(fā),也可以選擇在已有開源操作系統(tǒng)基礎(chǔ)上進(jìn)行定制。比如,現(xiàn)在很多互聯(lián)網(wǎng)服務(wù)提供商,就是在Android基礎(chǔ)上開發(fā)定制自己的操作系統(tǒng)的。這種操作方式,不能算是完全的自主開發(fā),可稱為自主定制。相對自主開發(fā),自主定制方便快捷,投入少,而且短期內(nèi)的目標(biāo)都可達(dá)到,不失為一種便捷的措施。但是從長遠(yuǎn)來看,這種方式的競爭力遠(yuǎn)遠(yuǎn)不如自主開發(fā)操作系統(tǒng)的競爭力強(qiáng)。因?yàn)樽灾鞫ㄖ频牟僮飨到y(tǒng),在大部分功能上,很難趕上或超過其基礎(chǔ)操作系統(tǒng)的開發(fā)進(jìn)度和更新速度。即使定制廠商不跟隨基礎(chǔ)操作系統(tǒng)的主版本計(jì)劃,自己完全建立一套從內(nèi)核到應(yīng)用的開發(fā)流水線,也會因?yàn)楦簧嫌布脚_的變動,而最終落伍。除非廠商有足夠的實(shí)力,既能夠跟上硬件平臺的更新?lián)Q代,又能夠完全掌握基礎(chǔ)操作系統(tǒng)代碼。而這種情況下,大部分廠商一開始就會選擇自主開發(fā),而不是自主定制。因?yàn)榍罢叩母偁巸?yōu)勢遠(yuǎn)遠(yuǎn)大于后者。
操作系統(tǒng)開發(fā)難度是否真的很大?
純粹從技術(shù)上說,相對二十世紀(jì),當(dāng)前操作系統(tǒng)開發(fā)的難度已大大降低,甚至低于很多應(yīng)用軟件開發(fā)的難度。主要有以下一些原因。
首先,目前存在很多開遠(yuǎn)的操作系統(tǒng),可供開發(fā)過程中的參考。雖然開發(fā)的目標(biāo)操作系統(tǒng)的架構(gòu)和核心功能與現(xiàn)有操作系統(tǒng)不一致,但是一些關(guān)鍵的機(jī)制,比如線程同步、內(nèi)存管理算法等,很大程度上都是相通的,可以參考借鑒已有操作系統(tǒng)的實(shí)現(xiàn)思路。
其次,不存在人才壁壘。計(jì)算機(jī)行業(yè)中有非常多的系統(tǒng)軟件開發(fā)人才,這些人才的水平和經(jīng)驗(yàn),足以支撐操作系統(tǒng)的有效開發(fā)。
再次,當(dāng)前已有非常多的功能模塊代碼,可直接在操作系統(tǒng)開發(fā)過程中引用。比如圖形庫,當(dāng)前有很多的開源圖形庫可供直接應(yīng)用。如果說以前開發(fā)操作系統(tǒng)是從零開始的話,現(xiàn)在開發(fā)操作系統(tǒng),就是站在巨人的肩膀上進(jìn)行開發(fā)。除非是你希望體驗(yàn)一下從無到有的整個過程,否則沒有必要所有模塊都完全重寫。