華為為了打破美國操作系統壟斷,並且希望能夠用一套系統,解決所有硬件設備裝載系統問題,告別“不同硬件裝不同系統”而開發了鴻蒙操作系統。基於微內核,分布式及跨終端的特性,鴻蒙操作系統能更好的適應物聯網時代的需求。鴻蒙操作系統於2012年開始規划,2019年申請商標,同年,實行開源。2020年,鴻蒙系統升級為2.0版本。2021年,鴻蒙正式上線。鴻蒙操作系統的應用不光是手機,它更主要是為物聯網開發的操作系統,主要用於自動駕駛,遠程醫療等低時延的場景。華為之后的發展趨勢會將華為的生態從手機,擴展到平板,電視,音響,眼鏡,手表,車機,耳機,PC八大業務,並延伸到移動辦公、智能家居、運動健康、影音娛樂及智能出行等眾多業務板塊,構建一個完善的5G服務生態體系。這背后,是基於鴻蒙系統的全域的物聯網體系。
欲戴王冠,必承其重。隨着鴻蒙系統的出世,有一部分人認為鴻蒙系統是假創新,只是一個基於安卓系統的套殼。首先,我們要承認的是鴻蒙的部分代碼的卻是基於ASOP,但是鴻蒙並沒有抄襲,它仍然是中國的一個創新系統。ASOP這個項目里,任何機構和企業都有義務為開源社區貢獻代碼,也能夠使用和下載開源代碼,並基於開源項目做二次開發。所以ASOP的代碼並不全是谷歌寫的,華為也是ASOP的重要貢獻者。所以這本身就不存在所謂的抄襲問題。其次創新並不是推倒前人的一切,取其精華去其糟粕,安卓能夠發展到現在,毫無疑問,有它的獨特優秀之處,而鴻蒙系統的創新不應該完全摒棄安卓系統,這本身是不現實也不明智的,即使是IOS與安卓他們也有一定的相同之處。在我看來創新並不是完全創造出一個嶄新的東西,而是以前人的優秀為基礎,加之自己的創意,令它進步。至於很多人詬病的代碼復用的問題,首先大家本身都是系統,本身就不可能完全摒棄,其次在大體上鴻蒙與安卓是不同的,對於鴻蒙來說,手機只是很小一部分,它是作為一個物聯網來發展的,所以從本質來說,就不可能抄襲。
“···
int up_fbinitialize(int display)
{ } void up_fbuninitialize(int display) { } struct fb_vtable_s *up_fbgetvplane(int display, int vplane) { } int FrameBufferFunc(void) { int ret; int fd = -1; struct hifb_info info; char *pShowScreen = NULL; ret = fb_register(0, 0); if (ret != 0) { return -1; } fd = open(file, O_RDWR, 0); if (fd < 0) { return -1; } if (ioctl(fd, FBIOGET_SCREENINFO_HIFB, &info) < 0) { return -1; } info.vinfo.xres = 1920; info.vinfo.yres = 1080; info.oinfo.sarea.w = 1920; info.oinfo.sarea.h = 1080; info.oinfo.bpp = 16; info.activate = 0; info.vinfo.fmt = HIFB_FMT_ARGB1555; if (ioctl(fd, FBIOPUT_SCREENINFO_HIFB, &info) < 0) { return -1; } if (ioctl(fd, FBIOGET_SCREENINFO_HIFB, &info) < 0) { return -1; } pShowScreen = mmap(HI_NULL, info.oinfo.fblen, PROT_READ | PROT_WRITE, MAP_SHARED, pstInfo->fd, 0); if (pShowScreen == -1) { return -1; } munmap(pShowScreen, info.oinfo.fblen); close(fd); ret = fb_unregister(0); if (ret != 0) { return -1; } }
···”
好的代碼風格:穩定統一的接口(可以獨立維護私有驅動以及服務,不需要跟內核源碼綁定。
內核精簡,可以進行形式化驗證,利用數學證明內核的安全性。
內核安全性提高。
壞的代碼風格:對互相之間存在復雜調用關系的系統服務,難以設計通信接口。
使用一些頻繁使用的系統服務時,比如網絡收發數據,造成的進程上下文切換對操作系統來說也是一個負擔;
由於系統服務高度模塊化,系統服務之間存在大量的內存復制;
