-
1 # 奇樂多多多
-
2 # 繁星落石
作業系統沒有一個可以用好寫來形容。
體量首先從程式碼量上來講,作業系統作為一個系統,其程式碼量工作是非常龐大的,如果由單個開發者來完成,會是一項非常艱鉅的任務。比如Windows核心的程式碼在5000萬行以上,Linux目前在2500萬行左右。如果題主從事開發工作的話,可以大概估計一下程式碼量的多少。
相容性作為作業系統來說,相容不同裝置以及不同代的裝置是必須的,向上和向下相容保證了作業系統可以執行在不同的平臺上,而向後相容則保證了開發者的產品不會由於系統升級而出現不能使用的情況。
鴻蒙是分散式系統,顯然需要支援不止一種型別的裝置,這意味著作業系統本身需要考慮大量的底層硬體區別並給予支援。
功能性作業系統最主要的一個功能是排程,即使在微核心架構裡,排程依然被保留為核心的功能之一。
而排程在不同的負載下面,不同的裝置上面以及不同的使用場景下面,都應該表現出不同的效能,那麼開發者需要考慮到這其中最優並且最穩定的方案,最簡單的方法不夠智慧,最智慧的方法又可能引入一些問題。
所以總體來講,不論作業系統本身效能優劣,從頭開發一套系統就是一件工程量極其龐大的工作。
-
3 # i酷科技菌
對於像華為這種公司來說,寫出一個基於Linux的類似於安卓的系統應該是沒有什麼難度。但為什麼鴻蒙系統到現在還沒有正式退出使用?
其次一個系統主要是的就是它的生態系統,就是我們使用的各種app,就像當初微軟的手機系統,就是死在軟體生態不全,而形成生態就需要比較長時間和財力的投入,要吸引開發者去適配新的系統,而華為目前正在做這件事,透過高於其他系統的收益分成或者收益全部讓利開發者的方式慢慢完善自己的生態。目前國內外已經有很多軟體及遊戲廠商已經開始適配HMS服務了,相信不久我們就能看到生態完善的華為新的系統了[贊]
-
4 # 江南一散人
單從技術上講,開發一個單獨的作業系統核心並沒有想象中的那麼困難。網上搜一下 至少能找到幾十個甚至上百個OS核心實現,雖然絕大多數只是玩具級別的,但很多都是麻雀雖小,五臟俱全,基本的功能都有實現。
開發OS核心真的遙不可及嗎先說下自己的一些經歷吧。
我在幾年前曾經從零開始寫過一個簡單的作業系統核心,實現了基本的boot, 記憶體管理,程序管理,中斷管理,IPC,簡單的檔案系統,簡單的磁碟驅動,鍵盤驅動,簡單的終端等基本功能,還實現了一個簡單的偵錯程式,支援斷點等基本功能。當時對作業系統簡直達到了痴迷的程度,只要工作上的事情一做完就去看作業系統方面的書籍資料,晚上下班和週末更是幾乎宅在家裡不出門,真的可謂是廢寢忘食。
終於在參考了Linux, VxWorks還有國外一些大牛寫的OS核心之後,最後搞出來了一個玩具級的OS核心,前後大概持續了半年左右。當時也純粹是為了學習的目的,也是覺得比較好玩,基本功能實現後,就慢慢遺忘在在磁碟的角落裡積灰了。。。
所以,從技術上說,開發一個OS核心並沒有想象中的那麼困難,很多大公司其實技術上都完全有能力開發一個具備基本功能的OS核心。當然,功能完備性、安全性、效能等方面能不能搞好就另說了。
我現在所在的公司,就有完全自主開發的微核心OS,並且在公司上百萬臺的電信級的分散式叢集伺服器產品上已經穩定運行了二十多年。並且,還圍繞這個OS建立了一系列配套生態,比如基礎開發庫,一系列配套的開發除錯工具,甚至還有專門為這個系統開發的程式語言和編譯器等。我曾經有幾年的主要工作,就是在維護這個OS核心。可惜的是,這幾年公司已經在慢慢用Linux替換這個OS了,估計幾年之後就要徹底退役了。
難點在哪裡開發一個作業系統的真正難點在於建立圍繞在這個核心周邊的生態系統。一個單獨的核心遠遠不能構成一個完整的系統,它需要大量的支援環境,如系統支援庫,應用程式,開發除錯工具等等,此外還要能夠推廣出去,要有其他上下游的公司願意使用,能夠被廣大開發者認可並願意為其開發新的應用等等,這才是真正的難點所在,是需要投入大量人力物力財力才有可能完成的。
很多公司也正是從技術積累上,時間上,成本上,風險上來考慮,不願意花大力氣在這上面。所以才有瞭如今Windows,Linux,Apple三分天下的局面。
國內現狀咱們國家雖然急切渴望能有一個自研的OS,但現狀是,有實力的廠商更願意投資一些能看得到摸得著的實實在在的應用產品上,這樣來錢快,才能在最短的時間內看到收益回報,也就是更高的投入回報比。
對於像作業系統,編譯器之類的基礎軟體,除了需要雄厚的技術實力外,還需要耗費大量的人力財力物力,而且失敗的風險較大。即便開發成功,還要花大力氣進行推廣,建立周邊生態,這更是需要更大投資,時間成本也更大,往往需要幾年甚至十幾年時間才能看得到收益。
這對於習慣吃快餐、賺快錢的國內企業來說,根本無法接受。這也需要企業決策層領導具有很大的魄力和戰略眼光,但現實中,這樣的領導簡直是鳳毛麟角。
這也正是國內廠商大都不願觸碰自研OS的主要原因,也造成了我國至今仍沒有自己的作業系統編譯器的局面。
此外,現在市場上對一個新的OS的需求其實也沒有那麼急迫,沒有需求,就沒有利益,自然就沒有動力。尤其在快餐文化盛行的今天,更是很少有公司願意去觸碰這吃力不討好的事情。
未來在哪裡當然也無須太過悲觀,任何東西,只要有需求,就會有利益吸引力,就會給企業研究機構足夠的動力。相信將來某一天,一旦Windows, Linux, Apple三巨頭不再適用市場需求,馬上就會有新的作業系統出現。
或許也用不了等很久吧,畢竟微軟已經宣佈Win10之後將不會再有大的Windows更新版本,而Linux雖然現在社群的開發仍然很活躍,新的功能仍在被源源不斷的新增進去,但也正是由於這個原因,它現在變成了一個大而全的通用作業系統,已經變得越來越臃腫,很多場景其實已經不是很適用了,只是沒有更好的替代品,很多公司又不願意投入自研OS,所以只能選擇相對成熟並且生態資源豐富的Linux。
Google不是幾年前就已經開始開發Fuchsia了嗎? 咱們拭目以待吧。也希望國內有實力的企業和科研機構能夠迎頭趕上,早日實現自研OS夢。
github上放出來的只是一個迷你的嵌入式OS核心LiteOS,翻看過程式碼,本身並沒有很大的難度。至於鴻蒙OS,原始碼還沒開放,目前為止還只是在PPT上出現過,所以不好評價,但願能夠不負眾望吧。
-
5 # 紫水晶9795
難!
但對任何一家世界級體量的公司,都寫得出!連黑莓手機都能寫得出!
但生態很難!收費沒人用,開源也沒人用[捂臉]
-
6 # lihhsd
從技術上講,作業系統是一個沒有多少技術含量的事情。一個明白作業系統原理的人用幾個月就可以寫出一個作業系統。
這個世界上的作業系統成千上萬,到處都是,任何一個自動裝置中都可以認為裡面有一個作業系統,電話、門禁、共享腳踏車中都有。
鴻蒙系統是否好寫要看他的目標是什麼,只是簡單使用當然簡單,但要成為一個流行的系統則難度非常的高。
個人看法是鴻蒙系統有天生的缺陷,他是對抗美國產生的,華為一家獨大,包括國內的其它廠商都不能干涉,同時他並非開源,他想怎麼辦就怎麼辦。這樣就造成開發者特別是國外的開發者面臨的風險非常的大。要是和誰鬧翻了給禁用那怎麼辦?
因此鴻蒙更多的是國內華為的系統,無論是阿里、小米還是誰想用都面臨具體的風險,國外的開發者更是這樣,要是他的國家一不小心辱華了,華為就給他們禁用,他們就死定了。
-
7 # 正經HIJAVVEL
寫核心寫is應該不難,把基本的機制實現挺容易的,但是我們要想一個問題,我們為什麼要再寫一個os,目的是什麼,我想主要原因是智慧財產權問題和安全問題,這裡主要寫安全問題,有什麼核心能夠宣稱寫好以後是bug free的,如何設計實現,如何證明,這些都不是一般人能搞掂的。所以寫一個好的os其實是不太容易的。
回覆列表
Hongmeng OS是基於Linux核心原始碼的開發。 OS實現程式碼主要是C語言,核心提供的本機系統呼叫介面肯定也是C語言介面。上層APP應用程式與現有的Android JAVA程式相容,可能需要重新編譯JAVA應用程式。程式程式碼將執行。至於應用程式程式設計SDK不支援JAVA以外的程式語言,還需要等待系統正式釋出後才能釋出,但是你可以先了解下面的編譯器,據說這是一個業界開源編譯器,用於編譯APP程式。 。但是,我仍然希望鴻蒙作業系統的應用程式程式設計介面支援更多的程式語言(如CC等),這樣程式可以有更多的選擇。
作業系統從執行效率 和 可控性來看是要用C語言。 解釋性語言,比如python、PHP就不大可能的。Java 也不太可能,一方面執行效率不如C語言,另外不可控:在記憶體方面,C語言記憶體申請和釋放都很實時,不像Java 語言記憶體釋放 要等GC。在作業系統層面,記憶體申請和釋放是很頻繁的,不能用GC定時釋放,萬一來不及釋放 就OOM了,另外的萬一發生full GC 那就更糟糕了,作業系統底層指令執行稍微一抖動,應用程式的執行效能就震了三震。