國產操作系統還能怎麼做?
一家之言,開個腦洞。
操作系統在市場上的關鍵點,並不在於進程管理、文件系統這些看起來很核心的東西,這些東西真地可以抄(借鑒一下沒關係的)。操作系統要普及成功,關鍵在於上面開發技術的方便性,也就是開發工具的易用性以及API的豐富性。開發工具就是操作系統的用戶界面,決定了用戶體驗;下層核心是為上層API服務的,也可以說是被API決定的,而不是倒過來。
從這個意義上講,Windows的成功,是因為Visual Basic(以及後來的Delphi,PowerBuilder,…),這些開發工具使得更多人可以低成本地開發自己的軟體。能跑的應用越多,操作系統就會更穩固,而操作系統越穩固,開發工具廠商完善產品的興趣就會越大,這樣就進入了正反饋,逐步構建出完善的生態環境。
類似地,Linux的成功則要感謝Java,當然Java的成功也離不開Linux。
要做操作系統,第一步就要想好能提供什麼樣的開發技術!能解決現在開發應用過程中的哪些痛點?頭一個開發工具一般需要操作系統廠商自己提供的,這個開發工具比其它開發工具有什麼優勢?新操作系統哪些特性才能發揮開發技術的優勢(也就是要讓API去決定內核)?這樣我們才知道為什麼要做這個操作系統。
如果把關注點先放到內核技術上,那就難搞了,這就是許多國產操作系統廠商的主要問題,基本上是為了做個操作系統而做的。
那麼,現在還有機會嗎?
有的。
舉個例子,現在國內企業應用的前端操作系統大都也是在用Windows,但這合適嗎?
企業應用和個人桌面應用不同,後者的裝機量常常很大,而定製程度較低(售價低甚至為0,也不可能個性化定製),這時候對於應對需求變化而導致的開發成本相對不那麼在意(可以被巨大的裝機量攤薄,而且也不需要非常及時的修改);但企業應用則不同,裝機量沒那麼大,而定製程度相當高,需求變化頻繁,這需要有高效的應對變化的開發技術。而當前的開發技術並沒有那麼好用的,在瀏覽器上做業務系統的界面並不是那麼方便 ,HTML本來不是為了做業務系統設計的,指揮個印表機都費死勁了,為什麼我們就不能搞個BML(Business Markup Language)?這需要新的瀏覽器、以及操作系統更多的底層支持。
另一方面,企業應用有時也不需要那麼多功能,比如銀行和稅局的櫃員沒有必要玩遊戲看電影吧,這些東西不僅影響工作,還可能帶來病毒。如果我們做一種較」弱「的操作系統,能運行企業應用卻不能運行遊戲和病毒,那對企業也是有吸引力的,在技術上實現這些限制相比於通常採用的嚴格管理,成本會低得多。
這樣做下去,可能會和現有的應用開發技術不兼容,導致現有應用程序要重寫,很多人又會想到缺乏生態的問題。
其實不用怕這種事,重寫的應用多了去了。從單機到網路版時,應用重寫過;從C/S到B/S的切換,應用又重寫了。這個業界並不在乎應用重寫的成本,只要你的新體系有足夠多的好處就行。反而那些試圖把舊體系應用移植到新體系的嘗試都無一例外的失敗了。生態本來也不是一天就能建成的,這樣一步步積累出來的用戶群才是更踏實的。
說白了,和資料庫一樣,操作系統想要做出頭,仍然還是創新再超越,也不需要全面的超越,在某個領域有過人之處,就可以存活並發展下去。而且,上面這些討論和國產不國產並沒有什麼關係,通用軟體本來就沒有什麼地域性,能在中國做成功的,也就能在全世界成功,所謂的「國產」基礎軟體其實是個沒什麼意義的詞。
最後提一下OFFICE,大家都覺得微軟已經做得很好了,是吧!
是嗎?
請嘗試一下用Excel在一批股票收盤價中找出連續三天漲停的股票出來,看看有多難。可不要說用戶沒這個需求喲,業務用戶也不會寫代碼編程序,VBA和Python以及我們的集算器都要靠邊站的。
點到為止。
推薦閱讀:
※操作系統九成被國外壟斷,中國造何時覺醒?
※喜歡用 OS X 的人覺得它比 Windows 好在哪裡?
※命令行中四個常見命令的使用
※《深入理解計算機系統》配套實驗:Shell Lab