国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

物聯網操作系統HelloX V1.88版功能描述

Yi_Zhi_Yu / 1884人閱讀

摘要:用戶態功能得到加強。與之對應的是另一種操作系統體系架構微內核,在微內核架構下,即使是操作系統內核功能,比如文件系統網絡協議棧設備驅動程序等,也是以進程形式實現,每個功能是一個獨立的進程,占用獨立的地址空間。

經過HelloX開發團隊近一年的努力,在HelloX V1.86版本基礎上,增加許多功能特性,并對V1.86版本的一些特性進行了進一步優化之后,正式形成HelloX V1.88版本。經相對充分的測試和驗證之后,現正式發布。相關代碼,已全部上載到github上(github.com/hellox-project/HelloX_OS),歡迎對HelloX感興趣的朋友下載測試和試用,并進一步反饋問題。

V1.88版本完成時間較長,主要原因是在過去的一年里,我從事的單位持續遭受各種外部壓力。這些壓力傳遞到員工身上,導致工作量和壓力倍增,業余時間大大壓縮。大多數時候都是晚上10點以后才下班,周末基本都要加班。即使在這樣緊張的工作壓力下,HelloX的開發也沒有中斷,一直持續。而且對代碼的質量要求更高,因為通過過去一年多的遭遇,使我認識到基礎軟件的重要和必要性。HelloX屬于基礎軟件,必須夯實基礎,做到最大程度的容錯和外部適應。

    1. V1.88主要功能簡介

除繼續保持V1.86所有特性之外,V1.88版本主要對下列特性進行了支持或優化:

  1. 高性能存儲訪問支持。HelloX現有版本已經支持相對完善的文件系統,比如FAT,NTFS(read only),裸文件系統等等。但文件I/O的性能還跟不上要求,當前文件I/O的吞吐量大約在20M BPS上下,而且對磁盤的訪問是通過調用BIOS服務完成的,涉及到CPU模式的切換,大大影響整體效率。在V1.88版本中,HelloX實現了一個完整的基于IDE/AHCI接口的硬盤驅動程序,同時完整優化了FAT文件系統,系統的文件I/O吞吐率能夠達到200M以上。這樣HelloX就具備了做網絡NAS、文件服務器等的能力。
  2. 用戶態功能得到加強。每一個應用程序,都可以為進程形式運行,有自己獨立的地址空間(32位),可以在自己的地址空間內創建多個用戶線程實現并發。通過系統調用(system call)陷入內核,訪問內核功能。不同進程之間的數據和程序代碼嚴格隔離,最大限度的保證系統整體安全性。在V1.88版本中增加的TFTP Server功能,就是在用戶態實現的一個應用程序,可以按需加載和運行;
  3. 實現相對完整的用戶態代碼庫。引入基于ptmalloc開源代碼的用戶態堆內存管理算法,引入ANSI標準的C語言標準庫,用戶只需要按照通用的開發方法即可完成HelloX應用程序的開發,與開發Windows、Linux等操作系統應用沒有任何不同。V1.88版本引入了開源的CPUID代碼庫,幾乎在沒有修改的情況下編譯成為一個用戶態應用程序-cpuid.exe,可以在HelloX下查看CPU的各類信息;
  4. 實現完整的BSD風格的socket系統調用。可以在用戶態調用socket API開發網絡類應用程序,在V1.88版本中,通過socket API函數,實現了兩個功能:TFTP服務器和telnet服務器。支持TFTP協議的客戶端,可以與運行HelloX操作系統的服務器,通過TFTP協議傳輸文件。比如HelloX產生的日志文件,通過TFTP client可以下載到個人PC上,進行分析。在個人PC上安裝一個標準的telnet client軟件,即可以telnet到hellox上進行遠程操作,與通過串口線、鍵盤等操作手段完全一致。基于TFTP和Telnet,可實現對hellox的遠程管理維護,大大方便了管理操作;
  5. 增加了更加豐富和完整的調試與診斷手段,實現了完善的日志輸出功能。內核模塊會產生日志信息,這些日志信息會被一個多帶帶的內核線程收集,并統一寫入到日志文件中(syslog/logfile.txt)。如果出現系統崩潰,可以下載日志文件進行故障診斷。因為系統中有一個獨立的內核線程負責收集和寫日志,日志信息首先被發送到日志線程進行緩存,在合適的時機才真正寫入文件系統,因此不論系統的上下文是什么(中斷,系統調用,…),都可以調用__LOG函數來形成日志。

根據github的統計,HelloX V1.88在原來基礎上總共更新了130多個源代碼文件,修改或增加了大約3萬行的源代碼。V1.88版本的總代碼行大約為20萬行(不包括用戶態的應用程序代碼)。HelloX V1.88內核編譯后的二進制文件大小,大約在565K左右。

    1. V1.88用戶態功能介紹

用戶態進程功能是HelloX V1.85版本新引入的功能,主要目的是為了對不同的應用程序之間,以及應用程序、內核之間進行徹底的隔離,創造一個安全穩定的執行環境。是否具備用戶態功能,是區分通用操作系統和嵌入式操作系統的標志之一。在HelloX V1.88版本中,用戶態功能做了較大的增強。但用戶態功能博大精深,需要考慮的因素不比內核本身要少,因此在后續版本中,還會進一步完善和增強用戶態功能。

大部分嵌入式的操作系統都不具備用戶態功能,在嵌入式領域,包括操作系統內核,應用程序,各種驅動程序,大多數情況都是一個解決方案廠商提供,不存在不信任的應用程序或設備驅動。而且引入進程之后,頻繁的進程間切換會降低系統整體性能,因此權衡下來,嵌入式操作系統一般都不實現用戶態功能。

但是HelloX定位于物聯網網關等復雜的應用場景,需要動態加載和執行第三方應用程序。如果不做安全隔離,程序之間就可以直接訪問對方數據,存在巨大安全隱患。同時第三方應用質量無法保證,在沒有地址空間隔離的情況下,一旦一個應用程序出問題,很大概率會導致整個系統崩潰。因此權衡下來,HelloX最終在V1.85版本中引入用戶態進程功能。

只是動態按需加載的第三方應用,才會以進程形式運行。HelloX內核本身的功能,比如TCP/IP協議棧,網卡驅動程序,USB驅動程序,文件系統,等等功能還是在內核中運行。因為我們認為這些功能是可信任的,而且都是系統必須功能(一項功能缺失,即使操作系統內核不受影響,也已經無法提供完整的功能),因此與內核分離意義不大,這就是典型的“宏內核”體系架構。與之對應的是另一種操作系統體系架構:微內核,在微內核架構下,即使是操作系統內核功能,比如文件系統、網絡協議棧、設備驅動程序等,也是以進程形式實現,每個功能是一個獨立的進程,占用獨立的地址空間。這種實現方式可進一步確保內核的安全,但是由于進程間通信(IPC)的低效率問題,會使得系統性能大打折扣。當然,現在有很多技術手段,來提升微內核架構下系統的整體性能,但是站在工程角度,筆者還是建議整體上用宏內核來實現操作系統。但是可以充分吸收微內核的一些優點,來改進宏內核架構。比如在HelloX的實現中,把TCP/IP協議棧、日志管理、以太網管理等等作為獨立線程(運行于內核態)實現,這樣可使得模塊之間更加獨立,由于不涉及用戶態上下文切換,IPC性能得以保證,總體上呈現出一種“宏內核+微內核”結合的優勢。

HelloX V1.88版本的用戶態功能主要包含下列這些:

  1. 地址空間獨立和隔離。每個進程都有自己獨立的線性地址空間,在32位CPU上是4G大小(包括內核空間)。不同進程之間的地址空間完全獨立,相同的內存地址,對不同的進程來說,完全代表不同的物理內存位置。進程的線性地址空間又進一步分為內核空間和用戶空間。其中用戶空間范圍為1G到3G之間(共2G),用戶應用程序可以自由訪問這部分內存空間,前提是明確提出內存分配請求之后。內核空間被分為了兩部分:0到1G之間,以及3G到4G之間。內核空間被映射到每一個進程中,應用程序代碼無法直接訪問,必須通過系統調用陷入內核態,才能訪問內核空間。但是內核卻可以自由訪問用戶地址空間。基于安全考慮,HelloX V1.86版本的內核,也不會直接訪問用戶空間,而是經過一個內核交換區進行訪問;
  2. 內存保護。運行在用戶態的應用程序,只能訪問1G到3G之間的用戶空間,無法直接訪問內核空間。即使是用戶空間,也必須通過一個系統調用(VirtualAlloc),預先分配之后才能訪問,否則仍然會引發異常。不同進程之間的用戶空間則是完全隔離的,無法相互看到。但是HelloX內核也提供一個叫做VirtualMap的系統調用,可以把一塊公共的內存同時映射到兩個進程中,實現高效的進程間數據共享;
  3. 應用程序動態加載。當前HelloX可以從外部存儲介質上動態加載PE格式的可執行文件,并創建一個進程運行它。在加載PE格式的應用程序時,HelloX會做一番詳盡的格式檢查,對于任何有疑問的應用程序,都會拒絕執行。一旦通過HelloX的檢查,一個新的進程就會被創建,并啟動運行。需要說明的是,從外部介質中加載應用程序,并對其進行檢查和運行,是在用戶態完成的。HelloX實現了一個叫做user agent的模塊,專門加載外部應用。內核做盡可能少的工作,把盡可能多的工作放在用戶態完成。Loadapp是HelloX提供的一個加載和運行用戶態應用程序的工具,在shell界面上,輸入loadapp+應用程序路徑名,即可加載并運行;
  4. 系統調用功能。系統調用功能是必須實現的,在實現了用戶態進程的前提下。用戶態的代碼無法直接訪問內核,必須通過系統調用來進入內核態,才能請求內核服務。系統調用利用了CPU的硬件機制,通過一個固定且統一的接口,進入內核態。在執行具體的內核代碼之前,系統調用的內核態部分代碼會對調用參數做詳細的檢查,確保這個請求是合法的。比如,對于用戶指定的內存地址,必須位于用戶空間內,且必須已分配。如果檢查失敗,則系統調用會失敗,同時進程會被認為有惡意行為而強制終止掉;
  5. 內核對象的隱藏。在HelloX的內核代碼中,都是通過內核對象的指針來訪問內核對象的。比如等待一個互斥體(Mutex)對象,傳遞給WaitForThisObject函數的參數,就是Mutex對象的指針。但是讓用戶態也通過指針訪問內核對象,則是非常危險的。雖然用戶態不能直接通過指針訪問內核對象,但是應用程序可以假造內核對象指針,來發起系統調用。這時候系統內核很難檢查這個指針是否是非法的,如果貿然去操作,很可能因為這個內核對象不存在而導致非法操作。這就是大多數操作系統,包括HelloX,都是以handle(句柄)的方式來訪問內核對象的。每創建一個內核對象,HelloX內核會在進程的句柄表里增加一項,并把該項的索引值返回給用戶態。用戶態通過這個索引值(句柄)來發起系統調用。收到用戶態的系統調用請求之后,內核會首先根據這個索引值查詢句柄表,看看是否有對應的內核對象存在。如果沒有,說明是一個非法的系統調用。如果有對應的內核對象,則進一步檢查內核對象的狀態,類型,等等。確認無誤之后才會真正操作內核對象;
  6. 用戶態應用開發庫。除了提供最基本的系統調用外,一個完整的操作系統還必須提供用戶態的應用開發庫,比如C語言標準庫。C標準庫對操作系統提供的API做了封裝,以標準化的函數對外呈現。這樣在開發用戶態應用程序時,程序員只需要調用C標準庫的函數即可,無需調用操作系統的API,使得應用程序可移植性大大增強。HelloX V1.86支持ANSI C89版本的標準庫函數,使用ANSI C89版本開發的應用程序,可以不做修改直接移植到HelloX。在1.86版本中,我們移植了很多C語言程序,其中比較典型的有CPU管理程序cpuid等;
  7. 用戶態內存管理器。實現C標準庫函數并不僅僅是對操作系統API的封裝,更復雜的是實現用戶態的系統功能。比如對用戶態內存管理(即標準C庫函數的malloc/free/calloc等函數),不能直接映射到操作系統提供的API的,因為操作系統提供的內存分配API往往是大顆粒的(4K以上),而用戶應用程序所需要的大多數是一些小粒度的內存請求。這就需要在用戶態提供內存再分配功能,即從操作系統“批發”內存,然后細分成更小的內存塊,再“零售”給用戶應用程序。這個用戶態的內存管理程序并不比操作系統內核的內存管理功能簡單,要充分考慮并發效率、競爭、內存使用效率等等問題。業界有很多的開源算法,HelloX V1.86版本移植了業界廣泛使用的ptmallc內存管理庫,并做了線程安全處理,作為用戶態內存分配器。

支持用戶態功能,是HelloX由嵌入式操作系統向通用操作系統轉變的標志。作為計算機領域的最基本軟件,支持豐富的應用場景是操作系統得以長期存在的基礎。具備高性能、實時性、高可靠的通用操作系統,必然會比嵌入式操作系統更能適應外部需求,也更容易把場景做豐富。通用操作系統與嵌入式操作系統并不是非此即彼、相互排斥的,而是可以有機統一起來。影響通用操作系統性能的傳統機制,比如內存交換、延遲頁面調入等,隨著計算機內存的不斷增大,已經變得不是很重要。把這些功能拿掉,保留用戶態功能,同時對調度機制、加載機制、中斷響應等做出優化,是可以有效統一嵌入式操作系統和通用操作系統的。HelloX后續版本將超這個方向發展。

與以前版本的原則一致,在HelloX V1.88版本的開發過程中,我們始終堅持“穩定可靠,不留問題死角,可直接應用”為原則,所有代碼都經過了詳細深入的內部測試。

    1. V1.88網絡功能簡介

網絡功能一直是HelloX操作系統的最重要功能。相比前一個版本,HelloX V1.88的網絡功能進一步增強,比如增加了對Intel服務器網卡82547的支持,把DHCP Server功能遷移到了用戶態,對不同網絡線程進行了多核重分配,設計并實現了統一的網絡接口管理框架,等等。

在原來專門定制的軟路由器black box基礎上,又升級了一款新的軟路由器“blue-white”,因為這款路由器的前面板有藍、白兩色。最新升級的路由器,可以支持4到8個千兆以太網接口(原來只有兩個接口),可以通過console接口(RS232)進行配置,下圖是它前面板:

所有千兆以太網接口是對等的,可以通過配置,作為WAN接口(連接運營商)或者LAN接口(連接本地交換機,或者WLAN AP)。通過串口(console接口)進行配置管理,個人電腦可以通過類似超級終端的軟件,來控制blue-white,如上圖。

由于大多數的WiFi芯片都不開源,因此blue-white當前并不提供WLAN AP功能。需要外接一個二層AP設備,提供WLAN信號接入。該軟路由的總體成本在600元人民幣左右,如果批量定制,成本還可以進一步降低。但是與基于SoC的家用路由器相比,雖然沒有功耗和成本優勢,但其計算能力,則是傳統家用路由器無法比擬的,這也是它作為物聯網網關的重要優勢。

最近剛好搬了新家,就以blue-white為核心,設計了一個家庭網絡,并實際投入使用。整個網絡的構造如下手繪圖:

運營商提供的光貓工作在二層橋接模式,blue-white作為整個家庭網絡的核心網關,發起到運營商網絡的pppoe連接,并為下游設備(比如IP電視、兩個WLAN AP等)分配IP地址。家里用的家電、電腦、PAD、手機等等,都通過WLAN AP接入。其中IP電視多帶帶通過一條物理網線接入blue-white,這樣可以把持續大流量的電視機,與突發網絡流量的其它終端設備隔離開,不至于相互影響。下列是blue-white的一個運行截圖:

CPUID作為用戶態應用程序,加載并運行后可以顯示完整的CPU信息。

截止目前,blue-white已運行一月有余,表現穩定。在長期外出出差的情況下,可以整體切斷弱電開關,節約電量。在返回家中時,直接打開電源即可,無需做任何重新配置。在連接運營商的PPPOE session中斷的情況下,也可以重新撥號建立連接。經過實際網絡速度測試,下行速率在230M左右(受運營商接入帶寬限制),CPU峰值利用率不超過50%。

在自己生活的環境中真正應用起HelloX,并根據實際需求持續進行開發和優化,與“只開發、不使用”,或者“只使用、不開發”,感覺是完全不一樣的。

在使用過程中,隨著越來越多的物聯網設備接入到HelloX網關,我個人越來越體會到物聯網操作系統的真實和價值,越來越感受到物聯網網關的重要性。設想一下,物聯網網關可以看到所有物聯網設備的通信模式,包括報文的平均長度,發送間隔,帶寬,時間分布,MAC地址,通信協議類型,等等信息。通過這些信息,即使不對IP報文做深度分析(這樣做是不符合法律規定的),也可以通過大數據或者AI技術識別出設備類型和設備能力,從而有目的的與物聯網設備進行協同。單個物聯網網關,是一個本地網絡的控制中心,而所有的物聯網網關組成的大的網絡,則是整個世界的控制中心。HelloX將聚焦物聯網網關方向,做深入的技術耕耘,為人類建立安全,可靠,智能的物聯網數字中心。

    1. 操作系統與其它操作系統的區別

HelloX操作系統是包括內核、設備驅動程序、用戶態應用程序、物聯網套件等一系列功能的一個系統軟件,這與當前流行的主要操作系統都有不同之處:

LinuxLinux主要定位是操作系統內核以及基本的管理維護工具,其定位是通用操作系統的內核,可以應用在物聯網領域,但是并未針對物聯網領域做特殊優化和定制。HelloX既包括操作系統內核,也包括面向物聯網的套件,針對物聯網做了定制,是面向物聯網領域的專業操作系統;

Android這是面向智能手機的操作系統,Android并沒有實現操作系統內核,而是直接使用了Linux作為內核,在此基礎上開發了支持智能手機的配套功能和組件。HelloX的思路與Android有類似之處,都是面向某一個應用場景,針對場景做了深入開發。但與Android不同,HelloX本身實現了內核功能,沒有引用其它內核;

鴻蒙(Harmony):與Android類似,是面向智能移動終端的操作系統,也是基于Linux內核,針對智能移動終端場景做了深入開發,實現了諸如軟件總線等技術,方便不同類型的移動終端隨時隨地的交互和協同。HelloX是面向物聯網領域的操作系統,具備完全自主開發的內核和物聯網執行環境,用于支撐萬物互聯。鴻蒙操作系統設計了內核抽象層,可以對不同的內核進行封裝和抽象,因此,理論上,可以把HelloX作為鴻蒙的內核之一;

歐拉:面向信息基礎設施的操作系統,比如服務器、云計算、網絡設備、工業設備等,從其定位和描述來看,更多的是定位于后端專業應用場景。歐拉也是基于Linux內核進行開發和完善,與行業合作伙伴一起建設信息基礎設施的最核心軟件部件。

總結起來,就是HelloX操作系統包括了內核、支撐模塊、物聯網執行子系統等一系列組件,有完全自主知識產權的內核,遵循BSD開源協議。并不是說使用Linux內核就不是真正的操作系統,但作為最核心部件,具備自主內核有很大好處:可以選擇不開源,做到進一步的安全;可以對內核進行任意修改,而不用考慮開源協議的約束;可以自主規劃內核發展路徑,有最大自主權…。但是開發一個全新的內核,也有巨大挑戰,必須要有廣泛的應用場景、龐大的用戶基數,對內核進行廣泛測試,確保其穩定性和可靠性。

    1. 進一步的開發方向

作為物聯網操作系統,HelloX將始終聚焦物聯網領域的應用,為物聯網量身定制一套最優的系統軟件解決方案。我們認為,只有一個內核的支撐,是遠遠不夠的。物聯網和智能硬件的有效發展和壯大,需要更多技術的支持,比如人工智能,分布式計算,機器學習,等等。但一個穩定可靠和可擴展的物聯網操作系統,是這些技術的最好生存土壤。

同時我們認為,物聯網中的一個關鍵組件將會是物聯網接入網關。不論是哪種應用場景,物聯網網關將是物聯網世界連接用戶或者真實世界的最核心角色。隨著5G等技術向工業領域深入推進,以及工業制造領域越來越快的數字化轉型,對物聯網網關的需求會越來越多。因此,后續HelloX會首先瞄準這一個物聯網應用場景,進行深入耕耘。物聯網網關首先是一個更安全和高效的寬帶接入網關,同時具備支撐物聯網應用的能力。下圖示意了我們對物聯網網關的理解:

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/122276.html

相關文章

  • 2021愛智先行者-EdgerOS開箱及配置(IOS

    摘要:為廣大開發者提供基于互聯網技術棧的操作系統平臺,極大簡化了物聯網開發難度,提高開發效率。邊緣計算借助硬件的計算能力,為家庭和企業提供強大的邊緣計算能力,不僅能夠滿足物聯網時代家庭生活和企業計算的多種需求,還能夠降低用戶設備和網絡的成本。 EdgerOs介紹 EdgerOS 是為萬物互聯時代而...

    王巖威 評論0 收藏0
  • 常見聯網操作系統介紹

    摘要:相比之下,物聯網操作系統領域的碎片化問題則非常嚴重,并沒有哪幾個操作系統占據絕對優勢,正處于百花齊放百家爭鳴的階段。在年被公司正式收購,將自己的服務內嵌到系統中,并于年推出了集成無線連接安全等功能的物聯網操作系統。 物聯網操作系統是運行在物聯網設備上的提供物物相連能力的操作系統,其核心在于...

    AdolphLWQ 評論0 收藏0
  • UCloud重磅發布UIoT-Core聯網平臺,助力海量IoT設備云端智能

    摘要:微軟雅黑宋體在高性能方面,物聯網平臺采用了分布式集群架構設計,可支持海量設備的長連接和百萬并發數據交換,提供設備與云端間健壯的雙向通信鏈路。物聯設備爆發增長,5G網絡即將商用,IPv6逐漸普及,計算成本下降,以及大數據分析和人工智能技術的快速發展,這些不斷涌現的技術浪潮,正在推動我們更快地進入萬物智聯時代。 近日,UCloud優刻得重磅發布了第一款物聯網平臺產品UIoT-Core,該平...

    youkede 評論0 收藏0
  • 一步步搭建聯網系統——無處不在的三劍客

    摘要:無處不在的三劍客這時我們終于了解了我們的三劍客,他們也就這么可以結合到一起了,是這一切的基礎。無處不在的三劍客就這樣到了這里,寫得似乎很多也很少,但是還是沒有做出來一個東西,于是我們朝著這樣一個方向前進。 無處不在的三劍客 這時我們終于了解了我們的三劍客,他們也就這么可以結合到一起了,HTML+Javascript+CSS是這一切的基礎。而我們用到的其他語言如PHP、Python、R...

    dreamans 評論0 收藏0
  • JavaScript在聯網中的應用

    摘要:定律在那篇最流行的編程語言能做什么里,我們列舉了在不同領域的使用情況,今天讓我們來詳解一下在物聯網中的應用。這個硬件層決定了物聯網應用比應用更加復雜。這時,我開始關注實現物聯網應用的可能性。 凡是能用JavaScript寫出來的,最終都會用JavaScript寫出來。 —— Atwood定律 在那篇《最流行的編程語言JavaScript能做什么?》里,我們列舉了JavaScript在不...

    aaron 評論0 收藏0

發表評論

0條評論

Yi_Zhi_Yu

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<