摘要:用戶態(tài)功能得到加強。與之對應的是另一種操作系統(tǒng)體系架構微內核,在微內核架構下,即使是操作系統(tǒng)內核功能,比如文件系統(tǒng)網(wǎng)絡協(xié)議棧設備驅動程序等,也是以進程形式實現(xiàn),每個功能是一個獨立的進程,占用獨立的地址空間。
經(jīng)過HelloX開發(fā)團隊近一年的努力,在HelloX V1.86版本基礎上,增加許多功能特性,并對V1.86版本的一些特性進行了進一步優(yōu)化之后,正式形成HelloX V1.88版本。經(jīng)相對充分的測試和驗證之后,現(xiàn)正式發(fā)布。相關代碼,已全部上載到github上(github.com/hellox-project/HelloX_OS),歡迎對HelloX感興趣的朋友下載測試和試用,并進一步反饋問題。
V1.88版本完成時間較長,主要原因是在過去的一年里,我從事的單位持續(xù)遭受各種外部壓力。這些壓力傳遞到員工身上,導致工作量和壓力倍增,業(yè)余時間大大壓縮。大多數(shù)時候都是晚上10點以后才下班,周末基本都要加班。即使在這樣緊張的工作壓力下,HelloX的開發(fā)也沒有中斷,一直持續(xù)。而且對代碼的質量要求更高,因為通過過去一年多的遭遇,使我認識到基礎軟件的重要和必要性。HelloX屬于基礎軟件,必須夯實基礎,做到最大程度的容錯和外部適應。
除繼續(xù)保持V1.86所有特性之外,V1.88版本主要對下列特性進行了支持或優(yōu)化:
根據(jù)github的統(tǒng)計,HelloX V1.88在原來基礎上總共更新了130多個源代碼文件,修改或增加了大約3萬行的源代碼。V1.88版本的總代碼行大約為20萬行(不包括用戶態(tài)的應用程序代碼)。HelloX V1.88內核編譯后的二進制文件大小,大約在565K左右。
用戶態(tài)進程功能是HelloX V1.85版本新引入的功能,主要目的是為了對不同的應用程序之間,以及應用程序、內核之間進行徹底的隔離,創(chuàng)造一個安全穩(wěn)定的執(zhí)行環(huán)境。是否具備用戶態(tài)功能,是區(qū)分通用操作系統(tǒng)和嵌入式操作系統(tǒng)的標志之一。在HelloX V1.88版本中,用戶態(tài)功能做了較大的增強。但用戶態(tài)功能博大精深,需要考慮的因素不比內核本身要少,因此在后續(xù)版本中,還會進一步完善和增強用戶態(tài)功能。
大部分嵌入式的操作系統(tǒng)都不具備用戶態(tài)功能,在嵌入式領域,包括操作系統(tǒng)內核,應用程序,各種驅動程序,大多數(shù)情況都是一個解決方案廠商提供,不存在不信任的應用程序或設備驅動。而且引入進程之后,頻繁的進程間切換會降低系統(tǒng)整體性能,因此權衡下來,嵌入式操作系統(tǒng)一般都不實現(xiàn)用戶態(tài)功能。
但是HelloX定位于物聯(lián)網(wǎng)網(wǎng)關等復雜的應用場景,需要動態(tài)加載和執(zhí)行第三方應用程序。如果不做安全隔離,程序之間就可以直接訪問對方數(shù)據(jù),存在巨大安全隱患。同時第三方應用質量無法保證,在沒有地址空間隔離的情況下,一旦一個應用程序出問題,很大概率會導致整個系統(tǒng)崩潰。因此權衡下來,HelloX最終在V1.85版本中引入用戶態(tài)進程功能。
只是動態(tài)按需加載的第三方應用,才會以進程形式運行。HelloX內核本身的功能,比如TCP/IP協(xié)議棧,網(wǎng)卡驅動程序,USB驅動程序,文件系統(tǒng),等等功能還是在內核中運行。因為我們認為這些功能是可信任的,而且都是系統(tǒng)必須功能(一項功能缺失,即使操作系統(tǒng)內核不受影響,也已經(jīng)無法提供完整的功能),因此與內核分離意義不大,這就是典型的“宏內核”體系架構。與之對應的是另一種操作系統(tǒng)體系架構:微內核,在微內核架構下,即使是操作系統(tǒng)內核功能,比如文件系統(tǒng)、網(wǎng)絡協(xié)議棧、設備驅動程序等,也是以進程形式實現(xiàn),每個功能是一個獨立的進程,占用獨立的地址空間。這種實現(xiàn)方式可進一步確保內核的安全,但是由于進程間通信(IPC)的低效率問題,會使得系統(tǒng)性能大打折扣。當然,現(xiàn)在有很多技術手段,來提升微內核架構下系統(tǒng)的整體性能,但是站在工程角度,筆者還是建議整體上用宏內核來實現(xiàn)操作系統(tǒng)。但是可以充分吸收微內核的一些優(yōu)點,來改進宏內核架構。比如在HelloX的實現(xiàn)中,把TCP/IP協(xié)議棧、日志管理、以太網(wǎng)管理等等作為獨立線程(運行于內核態(tài))實現(xiàn),這樣可使得模塊之間更加獨立,由于不涉及用戶態(tài)上下文切換,IPC性能得以保證,總體上呈現(xiàn)出一種“宏內核+微內核”結合的優(yōu)勢。
HelloX V1.88版本的用戶態(tài)功能主要包含下列這些:
支持用戶態(tài)功能,是HelloX由嵌入式操作系統(tǒng)向通用操作系統(tǒng)轉變的標志。作為計算機領域的最基本軟件,支持豐富的應用場景是操作系統(tǒng)得以長期存在的基礎。具備高性能、實時性、高可靠的通用操作系統(tǒng),必然會比嵌入式操作系統(tǒng)更能適應外部需求,也更容易把場景做豐富。通用操作系統(tǒng)與嵌入式操作系統(tǒng)并不是非此即彼、相互排斥的,而是可以有機統(tǒng)一起來。影響通用操作系統(tǒng)性能的傳統(tǒng)機制,比如內存交換、延遲頁面調入等,隨著計算機內存的不斷增大,已經(jīng)變得不是很重要。把這些功能拿掉,保留用戶態(tài)功能,同時對調度機制、加載機制、中斷響應等做出優(yōu)化,是可以有效統(tǒng)一嵌入式操作系統(tǒng)和通用操作系統(tǒng)的。HelloX后續(xù)版本將超這個方向發(fā)展。
與以前版本的原則一致,在HelloX V1.88版本的開發(fā)過程中,我們始終堅持“穩(wěn)定可靠,不留問題死角,可直接應用”為原則,所有代碼都經(jīng)過了詳細深入的內部測試。
網(wǎng)絡功能一直是HelloX操作系統(tǒng)的最重要功能。相比前一個版本,HelloX V1.88的網(wǎng)絡功能進一步增強,比如增加了對Intel服務器網(wǎng)卡82547的支持,把DHCP Server功能遷移到了用戶態(tài),對不同網(wǎng)絡線程進行了多核重分配,設計并實現(xiàn)了統(tǒng)一的網(wǎng)絡接口管理框架,等等。
在原來專門定制的軟路由器black box基礎上,又升級了一款新的軟路由器“blue-white”,因為這款路由器的前面板有藍、白兩色。最新升級的路由器,可以支持4到8個千兆以太網(wǎng)接口(原來只有兩個接口),可以通過console接口(RS232)進行配置,下圖是它前面板:
所有千兆以太網(wǎng)接口是對等的,可以通過配置,作為WAN接口(連接運營商)或者LAN接口(連接本地交換機,或者WLAN AP)。通過串口(console接口)進行配置管理,個人電腦可以通過類似超級終端的軟件,來控制blue-white,如上圖。
由于大多數(shù)的WiFi芯片都不開源,因此blue-white當前并不提供WLAN AP功能。需要外接一個二層AP設備,提供WLAN信號接入。該軟路由的總體成本在600元人民幣左右,如果批量定制,成本還可以進一步降低。但是與基于SoC的家用路由器相比,雖然沒有功耗和成本優(yōu)勢,但其計算能力,則是傳統(tǒng)家用路由器無法比擬的,這也是它作為物聯(lián)網(wǎng)網(wǎng)關的重要優(yōu)勢。
最近剛好搬了新家,就以blue-white為核心,設計了一個家庭網(wǎng)絡,并實際投入使用。整個網(wǎng)絡的構造如下手繪圖:
運營商提供的光貓工作在二層橋接模式,blue-white作為整個家庭網(wǎng)絡的核心網(wǎng)關,發(fā)起到運營商網(wǎng)絡的pppoe連接,并為下游設備(比如IP電視、兩個WLAN AP等)分配IP地址。家里用的家電、電腦、PAD、手機等等,都通過WLAN AP接入。其中IP電視多帶帶通過一條物理網(wǎng)線接入blue-white,這樣可以把持續(xù)大流量的電視機,與突發(fā)網(wǎng)絡流量的其它終端設備隔離開,不至于相互影響。下列是blue-white的一個運行截圖:
CPUID作為用戶態(tài)應用程序,加載并運行后可以顯示完整的CPU信息。
截止目前,blue-white已運行一月有余,表現(xiàn)穩(wěn)定。在長期外出出差的情況下,可以整體切斷弱電開關,節(jié)約電量。在返回家中時,直接打開電源即可,無需做任何重新配置。在連接運營商的PPPOE session中斷的情況下,也可以重新?lián)芴柦⑦B接。經(jīng)過實際網(wǎng)絡速度測試,下行速率在230M左右(受運營商接入帶寬限制),CPU峰值利用率不超過50%。
在自己生活的環(huán)境中真正應用起HelloX,并根據(jù)實際需求持續(xù)進行開發(fā)和優(yōu)化,與“只開發(fā)、不使用”,或者“只使用、不開發(fā)”,感覺是完全不一樣的。
在使用過程中,隨著越來越多的物聯(lián)網(wǎng)設備接入到HelloX網(wǎng)關,我個人越來越體會到物聯(lián)網(wǎng)操作系統(tǒng)的真實和價值,越來越感受到物聯(lián)網(wǎng)網(wǎng)關的重要性。設想一下,物聯(lián)網(wǎng)網(wǎng)關可以看到所有物聯(lián)網(wǎng)設備的通信模式,包括報文的平均長度,發(fā)送間隔,帶寬,時間分布,MAC地址,通信協(xié)議類型,等等信息。通過這些信息,即使不對IP報文做深度分析(這樣做是不符合法律規(guī)定的),也可以通過大數(shù)據(jù)或者AI技術識別出設備類型和設備能力,從而有目的的與物聯(lián)網(wǎng)設備進行協(xié)同。單個物聯(lián)網(wǎng)網(wǎng)關,是一個本地網(wǎng)絡的控制中心,而所有的物聯(lián)網(wǎng)網(wǎng)關組成的大的網(wǎng)絡,則是整個世界的控制中心。HelloX將聚焦物聯(lián)網(wǎng)網(wǎng)關方向,做深入的技術耕耘,為人類建立安全,可靠,智能的物聯(lián)網(wǎng)數(shù)字中心。
HelloX操作系統(tǒng)是包括內核、設備驅動程序、用戶態(tài)應用程序、物聯(lián)網(wǎng)套件等一系列功能的一個系統(tǒng)軟件,這與當前流行的主要操作系統(tǒng)都有不同之處:
Linux:Linux主要定位是操作系統(tǒng)內核以及基本的管理維護工具,其定位是通用操作系統(tǒng)的內核,可以應用在物聯(lián)網(wǎng)領域,但是并未針對物聯(lián)網(wǎng)領域做特殊優(yōu)化和定制。HelloX既包括操作系統(tǒng)內核,也包括面向物聯(lián)網(wǎng)的套件,針對物聯(lián)網(wǎng)做了定制,是面向物聯(lián)網(wǎng)領域的專業(yè)操作系統(tǒng);
Android:這是面向智能手機的操作系統(tǒng),Android并沒有實現(xiàn)操作系統(tǒng)內核,而是直接使用了Linux作為內核,在此基礎上開發(fā)了支持智能手機的配套功能和組件。HelloX的思路與Android有類似之處,都是面向某一個應用場景,針對場景做了深入開發(fā)。但與Android不同,HelloX本身實現(xiàn)了內核功能,沒有引用其它內核;
鴻蒙(Harmony):與Android類似,是面向智能移動終端的操作系統(tǒng),也是基于Linux內核,針對智能移動終端場景做了深入開發(fā),實現(xiàn)了諸如軟件總線等技術,方便不同類型的移動終端隨時隨地的交互和協(xié)同。HelloX是面向物聯(lián)網(wǎng)領域的操作系統(tǒng),具備完全自主開發(fā)的內核和物聯(lián)網(wǎng)執(zhí)行環(huán)境,用于支撐萬物互聯(lián)。鴻蒙操作系統(tǒng)設計了內核抽象層,可以對不同的內核進行封裝和抽象,因此,理論上,可以把HelloX作為鴻蒙的內核之一;
歐拉:面向信息基礎設施的操作系統(tǒng),比如服務器、云計算、網(wǎng)絡設備、工業(yè)設備等,從其定位和描述來看,更多的是定位于后端專業(yè)應用場景。歐拉也是基于Linux內核進行開發(fā)和完善,與行業(yè)合作伙伴一起建設信息基礎設施的最核心軟件部件。
總結起來,就是HelloX操作系統(tǒng)包括了內核、支撐模塊、物聯(lián)網(wǎng)執(zhí)行子系統(tǒng)等一系列組件,有完全自主知識產權的內核,遵循BSD開源協(xié)議。并不是說使用Linux內核就不是真正的操作系統(tǒng),但作為最核心部件,具備自主內核有很大好處:可以選擇不開源,做到進一步的安全;可以對內核進行任意修改,而不用考慮開源協(xié)議的約束;可以自主規(guī)劃內核發(fā)展路徑,有最大自主權…。但是開發(fā)一個全新的內核,也有巨大挑戰(zhàn),必須要有廣泛的應用場景、龐大的用戶基數(shù),對內核進行廣泛測試,確保其穩(wěn)定性和可靠性。
作為物聯(lián)網(wǎng)操作系統(tǒng),HelloX將始終聚焦物聯(lián)網(wǎng)領域的應用,為物聯(lián)網(wǎng)量身定制一套最優(yōu)的系統(tǒng)軟件解決方案。我們認為,只有一個內核的支撐,是遠遠不夠的。物聯(lián)網(wǎng)和智能硬件的有效發(fā)展和壯大,需要更多技術的支持,比如人工智能,分布式計算,機器學習,等等。但一個穩(wěn)定可靠和可擴展的物聯(lián)網(wǎng)操作系統(tǒng),是這些技術的最好生存土壤。
同時我們認為,物聯(lián)網(wǎng)中的一個關鍵組件將會是物聯(lián)網(wǎng)接入網(wǎng)關。不論是哪種應用場景,物聯(lián)網(wǎng)網(wǎng)關將是物聯(lián)網(wǎng)世界連接用戶或者真實世界的最核心角色。隨著5G等技術向工業(yè)領域深入推進,以及工業(yè)制造領域越來越快的數(shù)字化轉型,對物聯(lián)網(wǎng)網(wǎng)關的需求會越來越多。因此,后續(xù)HelloX會首先瞄準這一個物聯(lián)網(wǎng)應用場景,進行深入耕耘。物聯(lián)網(wǎng)網(wǎng)關首先是一個更安全和高效的寬帶接入網(wǎng)關,同時具備支撐物聯(lián)網(wǎng)應用的能力。下圖示意了我們對物聯(lián)網(wǎng)網(wǎng)關的理解:
文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/122276.html
摘要:為廣大開發(fā)者提供基于互聯(lián)網(wǎng)技術棧的操作系統(tǒng)平臺,極大簡化了物聯(lián)網(wǎng)開發(fā)難度,提高開發(fā)效率。邊緣計算借助硬件的計算能力,為家庭和企業(yè)提供強大的邊緣計算能力,不僅能夠滿足物聯(lián)網(wǎng)時代家庭生活和企業(yè)計算的多種需求,還能夠降低用戶設備和網(wǎng)絡的成本。 EdgerOs介紹 EdgerOS 是為萬物互聯(lián)時代而...
摘要:相比之下,物聯(lián)網(wǎng)操作系統(tǒng)領域的碎片化問題則非常嚴重,并沒有哪幾個操作系統(tǒng)占據(jù)絕對優(yōu)勢,正處于百花齊放百家爭鳴的階段。在年被公司正式收購,將自己的服務內嵌到系統(tǒng)中,并于年推出了集成無線連接安全等功能的物聯(lián)網(wǎng)操作系統(tǒng)。 物聯(lián)網(wǎng)操作系統(tǒng)是運行在物聯(lián)網(wǎng)設備上的提供物物相連能力的操作系統(tǒng),其核心在于...
摘要:微軟雅黑宋體在高性能方面,物聯(lián)網(wǎng)平臺采用了分布式集群架構設計,可支持海量設備的長連接和百萬并發(fā)數(shù)據(jù)交換,提供設備與云端間健壯的雙向通信鏈路。物聯(lián)設備爆發(fā)增長,5G網(wǎng)絡即將商用,IPv6逐漸普及,計算成本下降,以及大數(shù)據(jù)分析和人工智能技術的快速發(fā)展,這些不斷涌現(xiàn)的技術浪潮,正在推動我們更快地進入萬物智聯(lián)時代。 近日,UCloud優(yōu)刻得重磅發(fā)布了第一款物聯(lián)網(wǎng)平臺產品UIoT-Core,該平...
摘要:無處不在的三劍客這時我們終于了解了我們的三劍客,他們也就這么可以結合到一起了,是這一切的基礎。無處不在的三劍客就這樣到了這里,寫得似乎很多也很少,但是還是沒有做出來一個東西,于是我們朝著這樣一個方向前進。 無處不在的三劍客 這時我們終于了解了我們的三劍客,他們也就這么可以結合到一起了,HTML+Javascript+CSS是這一切的基礎。而我們用到的其他語言如PHP、Python、R...
摘要:定律在那篇最流行的編程語言能做什么里,我們列舉了在不同領域的使用情況,今天讓我們來詳解一下在物聯(lián)網(wǎng)中的應用。這個硬件層決定了物聯(lián)網(wǎng)應用比應用更加復雜。這時,我開始關注實現(xiàn)物聯(lián)網(wǎng)應用的可能性。 凡是能用JavaScript寫出來的,最終都會用JavaScript寫出來。 —— Atwood定律 在那篇《最流行的編程語言JavaScript能做什么?》里,我們列舉了JavaScript在不...
閱讀 3233·2021-11-22 12:07
閱讀 1876·2021-10-12 10:11
閱讀 1041·2019-08-30 15:44
閱讀 2934·2019-08-30 12:45
閱讀 2183·2019-08-29 16:41
閱讀 1636·2019-08-29 16:35
閱讀 2620·2019-08-29 12:57
閱讀 1147·2019-08-26 13:51