色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

Fuchsia入門-簡介和代碼介紹

yzcdx ? 來源:OS與AUTOSAR研究 ? 作者:OS與AUTOSAR研究 ? 2022-11-28 10:27 ? 次閱讀

Fuchsia操作系統號稱谷歌的“三兒子”,前兩個是Android和Chrome OS。Android和Chrome OS的內核都是Linux,不同的是Chrome OS是針對PC的,核心功能基于Chrome瀏覽器,一切都在瀏覽器中使用,數據都在云上,更適合上網筆記本的使用,一個大的弊端是沒有桌面程序,這還怎么用?Android大家都知道針對的是移動設備,最常見的手機就是。但是安卓有很多技術弊端,例如內存碎片化、安全性、HAL層雞肋、對硬件渲染支持等缺點,后續會進行說明。所以需要一個新的OS。

7424aa74-6eb3-11ed-8abf-dac502259ad0.png

隨著各種設備例如手機、平板、PC、物聯網設備等各種智能設備的普及,谷歌就想做一個統一的OS,而且要脫離Linux的魔爪,在2016年 8 Fuchsia正式推出,Fuchsia的說明是“Pink(粉紅)+Purple(紫色)=Fuchsia。它不再基于 Linux 內核,而是基于名為Zircon的微內核,并且是一個開源的實時操作系統,并使用Dart和Flutter打造全新的 UI。這下可炸鍋了,大家一看谷歌還能這么玩,各個頭部公司就紛紛入局。

更多了解參考Fuchsia中文社區:https://fuchsia-china.com/

鴻蒙 Harmony OS與Fuchsia OS

Fuchsia在2016年就開始起步了,但是幾年沒有一個對外的版本,華為的HarmoneyOS雖然在2019 年8 月華為開發者大會正式發布,但是進展神速。在手機還有各種家用電器物聯網領域HarmoneyOS的裝機量據說明年就要突破10億臺了。谷歌可以說“起了個大早,趕了個晚集”,一方面有自家的安卓,改革的動力不足。另一方面是不是因為“互聯網基因”,但是安卓系統都也維護的好好的,技術應該也沒問題,底層技術應該也很有功底,也可能是“目標太宏大,什么都想支持”所以有點難產,換句話說就是先進的思想太多了,啥都想要,最后非常多的代碼搞的沉重難行。

不得不說Fuchsia真是個好東西,里面有很多先進的技術值得去分析和學習,但是谷歌就這么開源了,可能就是現在的新玩法:不怕別人抄,重要的獲得市場,讓更多的設備用起來,相對于競爭者,更多的是愿意不付錢合作的客戶。只要領先,別人會一直在追趕但是超越不了,真是這么霸氣。回想下當年安卓和塞班的斗爭就是一個活生生的例子,攪局者也許真能獲得勝利。

2020 年谷歌再次推動宣傳,Fuchsia開始二次發育,希望通過平臺開放為其吸引更多軟件開發支持者。2021 年初,先是項目的 F1 分支,之后又有 F3 分支,隨著一個個重要代碼開發步驟的落地,Fuchsia 的面貌及發展方向也開始愈發清晰。具體其官網文檔介紹網址:

雖然華為目前鴻蒙的裝機量和技術發展的很好,但是谷歌老大的地位還是不可撼動,搖旗一呼,小弟們就乖乖的歸位了,目前三星、索尼、聯發科、小米、華為、OPPO、ViVo、高通等公司已經在參與Fuchsia 項目。眾所周知,華為的風格一向比較霸道,動不動就世界第一,遙遙領先,愿意合作的商家比較少,怕被搶了飯碗。但是國家還是力挺華為,鹿死誰手,還是將來見分曉,至少:

華為現在有跟谷歌剛的資格了。

2. 揮淚拋棄Linux

Linux一直是開源軟件的領頭羊,但是我們的世界還是由商業組成的,沒有利益就沒有動力啊。Linux內核是基于GPL協議的,GPL協議意味著對源碼的任何修改與引用都必須開源,Android底層采用的Linux 內核,所以Android是開源的,而硬件廠商給Android開發的驅動是不可能開源的.

當初Google為了解決這個問題,找到了一個解決辦法,底層Linux內核做了修改,但是把驅動程序放在了Linux內核上層跑,而且特意搞了一個隔離層叫HAL,即Hardware Abstraction Layer,硬件抽象層,所以,Android 系統架構中的HAL層本質是為了規避 GPL 協議而生的,這事在當時還蠻有爭議的,但是不得不說,Google 的這種思路徹底解決了問題,既保護了「不想開源」的硬件廠商的利益,又解決了「軟硬件兼容」,既利用出色而現成的 Linux Kernel 又防止了被 Linux Kernel 傳染上GPL 后遺癥。

單一的開源協議還是生命力不那么旺盛,Fuchsia就采用了綜合的開源協議(包括BSD、 MIT 和 Apache許可證) ,任何人都可以在 Google 的公共 Git 倉庫中查看和下載。所有的代碼模塊化,其他廠商想開源就開源,隨意集成,不用擔心很多法律問題,特別是進行代碼修改后的OTA相關操作。

3.Zircon微內核歷史

74de4fce-6eb3-11ed-8abf-dac502259ad0.png

Fuchsia早期是一個研究型的項目,感覺這點跟國內的不太一樣,應該是外國有錢的公司會搞一個研究所,招一些高學歷、行業內厲害的人物,隨意發揮的搞研究,偶爾會有能商用的東西就可以了,想想真是下血本搞創新啊。國內的大公司目前也開始這么搞了,可以說是暫時養了一堆高薪水的閑人,給他們自由,來搞研究,甚至能發論文就是成果。牛人就喜歡這類工作,不是做產品,出版本,上線設備維護,處理客戶需求等低級勞動。

下面介紹一個牛人TravisGeiselbrecht,其個人主頁:http://tkgeisel.com/

網頁翻譯后,如下:

74fd3fe2-6eb3-11ed-8abf-dac502259ad0.png

感覺這也是一個老外的傳統,我見過一些教授會把自己的研究成果,學習工作經歷,甚至旅游或者生活的照片都放到個人主頁上,然后就是個人愛好,真是彰顯的個性十足,估計以后死了別人看這些資料也能了解他的一生。

Little Kernel是Travis Geiselbrecht 寫的一個針對 ARM嵌入式開源操作系統,https://github.com/littlekernel/lk 。另外他還搞過IOS等其他OS。

然后介紹另外一個牛人Brian Swetland,他是安卓初創團體的成員,谷歌另外一個項目Magenta是從 LK 出發,提供多進程、安全空間等支持的,針對大型機(有很多 RAM接口豐富)的內核。然后, LK for embedded + Magenta 就算是 Fuchisa OS 系統了。

4.Fuchsia與VR/AR技術領域

對于Android和Chrome OS的技術短板,Fuchsia當然是重點發力的地方,有兩個新的點就是硬實時和基于物理硬件的渲染,結合起來有一個很適合的領域就是VR/AR,Facebook都開始發力元宇宙了,大家可以看一個電影《頭號玩家》里面對虛擬現實的描述還是有那么會事。可見谷歌下的是一盤大棋。

5.多語言應用支持和模塊化

7548c25a-6eb3-11ed-8abf-dac502259ad0.png

在編碼領域,為一種新的語言,某個應用要“重復造輪子”幾乎是不可能的,例如用java寫了一個應用,再用C++寫一遍,基本很難。目前市場上的安卓程序員用java做的安卓應用還需要在IPone上用object-c再寫一遍,還要在網頁上再實現一遍,還要在小程序上再實現一遍,真是要了老命了。這個角度新的OS都是在搶應用,就是要支撐各種語言平臺的應用都可以在自己的OS上運行,來增強自己的生命力。Fuchsia已經超越平臺的角度,站在了語言的角度來支撐應用了。

原生前端應用程序是在Dart/Flutter中開發的,這將極大地促進從Android平臺到Fuchsia的遷移。同時支撐C,C++,Rust,Go和Dart等語言程序的應用。

Fuchsia,被設計成一個完全模塊化的系統,允許其庫和應用程序完全刪除,更新和添加,而不會影響系統。除了確保系統完整性之外,這還使其更加安全,例如可以使用簡單的軟件包輕松獲得安全補丁更新,而不會影響用戶數據或其他應用程序。

個語言優缺點詳細參考:

https://blog.csdn.net/weixin_39658118/article/details/104530466?spm=1001.2101.3001.6650.8&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EESLANDING%7Edefault-8-104530466-blog-84035260.pc_relevant_landingrelevant&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EESLANDING%7Edefault-8-104530466-blog-84035260.pc_relevant_landingrelevant&utm_relevant_index=9

6.架構介紹

756ac864-6eb3-11ed-8abf-dac502259ad0.png

本部分參考官網文檔:

https://fuchsia.dev/fuchsia-src/get-started/sdk/learn/intro?hl=en

最小特權原則:

該系統的核心是Zircon,用于處理系統啟動和引導的內核和庫集合。所有其他系統組件都在用戶空間中實現并相互隔離,強化了最小特權原則。這包括:設備驅動程序、文件系統、網絡堆棧。

簡而言之,這要求在操作系統環境的抽象層中,每個模塊(例如進程,用戶或應用程序)只能訪問其執行所需的信息和資源。

模塊化/包容性和可升級:

模塊化意味著系統與語言無關。由于它被設計為可擴展的,并允許集成用多種語言和運行時編寫的軟件,因此您可以使用C,C++,Rust,Go,Python或Dart /Flutter進行開發。

可升級意味著Fuchsia軟件包被設計為獨立更新,甚至是即時交付,或Enphemery,這意味著軟件包被設計為解耦,因此根據需要從設備隨意添加刪除更新,并且系統始終保持最新狀態。

內核:

系統核心是Zircon,它是具有一組庫的內核,用于管理系統的啟動和引導。內核之外的所有系統組件都是在所謂的用戶空間中實現的,并且與系統的關鍵層完全隔離 - 正如我們已經在這里討論的那樣,加強了最小特權的原則 - 所以即使是設備驅動程序也在用戶空間中隔離。

Zircon帶來了我們通過微內核了解的架構和許多概念。這種架構使Fuchsia能夠盡可能地減少信任代碼的數量,從而限制內存管理,調度和IPC(進程間通信)。

75932b88-6eb3-11ed-8abf-dac502259ad0.png

因此,我們遇到了一個可能的問題:如果系統的整個核心與用戶空間隔離,我們如何開發需要信息甚至與系統“對話”的應用程序?

我們的代碼執行交互,例如:手動內存管理,系統任務或進程,IPC,設備I / O等;我們可以使用系統調用。這些執行系統調用的進程由VDSO(虛擬動態共享對象 — libzircon.so)庫執行,該庫讀取生成的內核映像,而不是直接讀取內核中的文件。

用戶空間進程通過訪問系統調用libzircon.so- 一個虛擬動態共享對象(vDSO)。Zircon vDSO 是一個ELF格式的共享庫,內核將其映射到每個新進程的地址空間。這個庫被認為是“虛擬的”,因為它直接由內核映像公開,而不是從文件加載。

Zircon 公開了三個用于運行代碼的主要內核對象:

線程:給定地址空間內的執行線程。

進程:在私有、隔離的地址空間中運行的一組可執行指令。

作業:一組相關的流程和作業。所有作業形成一個單根樹。

流程構成了系統功能的基礎。每個進程都通過它持有的各種句柄被授予一組能力。

Fuchsia 軟件可能會也可能不會在單個進程的范圍內運行。作業允許將由多個進程組成的“應用程序”作為單個實體進行控制。

75ab634c-6eb3-11ed-8abf-dac502259ad0.png

進程間通信:

Zircon通道是Fuchsia接口定義語言(FIDL)描述的服務級IPC 協議的基礎 . FIDL協議是Fuchsia 程序使用的主要IPC方法。

Zircon 包含以下用于進程間通信 (IPC) 的內核對象類型:Event、Socket、Stream、Channel、FIFO,在這些對象中,通道特別適合協助啟動新進程,因為它們能夠將句柄(以及功能)轉移到另一個進程。

通道恰好有兩個端點句柄,每個句柄都由一個單獨的進程擁有。只有所有者可以讀取或寫入消息,但端點的所有權可以從一個進程轉移到另一個進程。當句柄寫入通道時,它們將從發送進程中刪除。當從通道中讀取帶有句柄的消息時,會將句柄添加到接收進程。

75c78194-6eb3-11ed-8abf-dac502259ad0.png

這里跟seL4很像,基于能力權限的通信,也是最小化權限原則的體現,就是把需要的權限都定義出來,不大片的賦予權限。

組件管理器:

組件框架的核心是組件管理器。它負責協調所有組件實例的執行,為它們提供功能,并在組件之間建立中介連接。

組件可以顯式啟動(例如,從 URL)或從對特定功能的請求中隱式啟動。組件管理器執行必要的決議以確定是啟動新組件還是將請求路由到現有實例。為了進行這種路由,每個組件都必須聲明它提供給系統的任何功能以及它使用的任何功能。組件通過capabilities獲得訪問更廣泛系統的各個部分的權限。

組件的組織:

75e8103a-6eb3-11ed-8abf-dac502259ad0.png

7. 代碼下載編譯運行

參考官網說明:

https://fuchsia.dev/fuchsia-src/development?hl=en

官網說的很詳細,這里不展開說明了,需要了自己查看。

直接查看源代碼的網址:

https://cs.opensource.google/fuchsia/fuchsia

下載的代碼目錄:

75fca5cc-6eb3-11ed-8abf-dac502259ad0.png

zircon: 操作系統內核主體代碼,bootloader, 內核的進程,內存管理,內核對象,arch相關代碼; 以及運行在用戶態的系統核心進程,系統調用和library都在這里

garnet: 基礎軟件層的主體代碼,主要是屬于garnet層的bin文件代碼,

topaz:應用層,最關鍵的是dart,flutter的runtime

src:操作系統的基礎代碼模塊,應該來說很多屬于garnet層,這里有camera,網絡connectivity,graphics,media,security, storage

build基本上是gni文件,構建需要的

sdk構建sdk/ddk所需要的配置和腳本

boards全部是gni文件,和板子相關的編譯配置

tools本地pc機上運行的工具,比如fidl的工具

third_party從外部引入的庫,比如flatbuffers,go,dart,ssl,iperf,libpng,protobuf等等

examples一些c/c++/rust/go的是示例代碼,可以學習在fuchsia上怎么開發

bootloader:Gigaboot引導加載程序。Gigaboot引導加載程序是一個針對Zircon的UEFI引導加載程序,可以通過鏈接從iPXE、UEFI可訪問的文件系統或本地磁盤分區加載圖像。

kernel內核主體部分,進程調度,內存管理 內核對象object等

system運行在用戶態的核心系統進程,bootsvc,devmgr,svchost等,這個后面細細的品;一些基礎的library ulib和基礎的工具uapp

vdso偏底層的系統調用相關的fidl文件

在vituralbox的ubuntu上運行:fx qemu -N

審核編輯 :李倩

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 操作系統
    +關注

    關注

    37

    文章

    6838

    瀏覽量

    123380
  • 代碼
    +關注

    關注

    30

    文章

    4791

    瀏覽量

    68686
  • 智能設備
    +關注

    關注

    5

    文章

    1060

    瀏覽量

    50605

原文標題:Fuchsia入門-簡介和代碼介紹

文章出處:【微信號:OS與AUTOSAR研究,微信公眾號:OS與AUTOSAR研究】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    屏蔽柵MOSFET技術簡介

    繼上一篇超級結MOSFET技術簡介后,我們這次介紹下屏蔽柵MOSFET。
    的頭像 發表于 12-27 14:52 ?739次閱讀
    屏蔽柵MOSFET技術<b class='flag-5'>簡介</b>

    【「嵌入式系統設計與實現」閱讀體驗】全書概覽與內容簡介

    《嵌入式系統設計與實現》,瞬間就被吸引了。非常感謝電子發燒友平臺提供這次寶貴機會,讓我有機會接觸到這么多優秀的設計案例。 今天剛收到書籍,接下來讓我們一起先大概瀏覽一下這本書的內容吧! 內容簡介 本書
    發表于 12-01 17:05

    如何自動生成verilog代碼

    介紹幾種自動生成verilog代碼的方法。
    的頭像 發表于 11-05 11:45 ?332次閱讀
    如何自動生成verilog<b class='flag-5'>代碼</b>

    UART串口通信示例:開啟通信寶藏之門的定位模組LuatOS入門

    今天我們要講解的是UART串口通信示例,關于Air201資產定位模組LuatOS入門,我會從搭建環境、代碼燒錄、示例效果等來細說:
    的頭像 發表于 11-03 19:55 ?946次閱讀
    UART串口通信示例:開啟通信寶藏之門的定位模組LuatOS<b class='flag-5'>入門</b>

    WinCC 7.5入門指南

    WinCC 7.5入門指南
    發表于 10-21 10:37 ?4次下載

    TMS320LF240x DSP的C語言和匯編代碼快速入門

    電子發燒友網站提供《TMS320LF240x DSP的C語言和匯編代碼快速入門.pdf》資料免費下載
    發表于 10-18 10:14 ?1次下載
    TMS320LF240x DSP的C語言和匯編<b class='flag-5'>代碼</b>快速<b class='flag-5'>入門</b>

    【「數字IC設計入門」閱讀體驗】+ 概觀

    神秘很神奇,正巧看到論壇提供了《數字IC設計入門》評測機會,果斷申請,有幸選中! 拿起此書,有厚度;翻閱此書,有深度。我充滿好奇的翻開! 部分目錄內容如下圖: 第1章介紹了IC設計的行業情況,首先是數字
    發表于 09-24 10:58

    新書推薦 | TSMaster開發從入門到精通

    掌握TSMaster的基礎應用、仿真開發、診斷及自動化測試實現等實戰技能,提高工作效率,縮短研發周期。提供源代碼和QQ答疑群。內容介紹本書遵循由淺入深的原則,將內
    的頭像 發表于 08-30 12:37 ?556次閱讀
    新書推薦 | TSMaster開發從<b class='flag-5'>入門</b>到精通

    松下伺服驅動器故障代碼介紹

    ? ? ? Panasonic伺服驅動器是一種廣泛應用于工業自動化領域的高性能電機驅動設備。在使用過程中,可能會遇到各種故障,這些故障通常通過故障代碼來表示。本文將詳細介紹Panasonic伺服
    的頭像 發表于 06-23 17:31 ?3188次閱讀
    松下伺服驅動器故障<b class='flag-5'>代碼</b><b class='flag-5'>介紹</b>

    panasonic伺服驅動器故障代碼介紹

    Panasonic伺服驅動器是一種廣泛應用于工業自動化領域的高性能電機驅動設備。在使用過程中,可能會遇到各種故障,這些故障通常通過故障代碼來表示。本文將詳細介紹Panasonic伺服驅動器的故障代碼
    的頭像 發表于 06-06 12:08 ?2556次閱讀

    第二講:單片機STC89C52+RA8889驅動控制彩屏 代碼移植介紹

    介紹51單片機如何移植RA8889的代碼進行彩屏驅動與控制
    的頭像 發表于 06-04 10:36 ?1009次閱讀
    第二講:單片機STC89C52+RA8889驅動控制彩屏 <b class='flag-5'>代碼</b>移植<b class='flag-5'>介紹</b>

    [RK3588從入門到精通]系列內容專欄目錄及介紹

    [RK3588從入門到精通] 專欄目錄及介紹
    的頭像 發表于 04-10 10:40 ?736次閱讀
    [RK3588從<b class='flag-5'>入門</b>到精通]系列內容專欄目錄及<b class='flag-5'>介紹</b>

    Python智能家居系統代碼介紹

    Python智能家居系統是一種基于Python編程語言開發的智能家居控制系統,在現代家庭中得到了越來越廣泛的應用。本文將詳細介紹Python智能家居系統的代碼實現,包括系統的結構與功能模塊、傳感器
    的頭像 發表于 01-25 09:46 ?1384次閱讀

    谷歌宣布放棄Fuchsia OS引入完整Chrome/Chromium瀏覽器

    此前的Chromium例行代碼更新顯示,谷歌決定終止將完整Chrome/Chromium瀏覽器引入至Fuchsia OS的計劃。
    的頭像 發表于 01-16 14:02 ?782次閱讀

    Nuttx RTOS入門知識簡介及開源代碼運行

    NuttX是一個成熟的實時操作系統,于07年由Gregory Nutt先生正式開源,2016年被三星選為TizenRT操作系統的內核
    的頭像 發表于 01-10 18:14 ?5792次閱讀
    Nuttx RTOS<b class='flag-5'>入門</b>知識<b class='flag-5'>簡介</b>及開源<b class='flag-5'>代碼</b>運行
    主站蜘蛛池模板: 午夜剧场1000| 国产成人99久久亚洲综合精品| 在线免费观看毛片| 99久女女精品视频在线观看 | 日韩一区二区在线免费观看| 兔费看少妇性L交大片免费| 亚洲三级大片| 9国产露脸精品国产麻豆| 国产精品免费观看视频| 老板揉搓秘书丰满大乳| 色欲久久99精品久久久久久AV | 爽死你个放荡粗暴小淫货漫画| 亚洲一区免费观看| 扒开小处30p| 精品少妇爆AV无码专区| 漂亮的保姆3中文版完整版| 亚洲精品视频在线播放| a视频在线看| 激情床戏视频片段有叫声| 青草影院内射中出高潮-百度| 亚洲精品视频久久| 草久久久久| 久久午夜一区二区| 武汉美女洗澡| freevideoshd| 九九热最新视频| 视频三区 国产盗摄| 51国产午夜精品免费视频| 国产亚洲精品A久久777777| 欧洲美女人 一级毛片| 伊人不卡久久大香线蕉综合影院 | 99久久伊人一区二区yy5099| 韩国女主播内部vip自带氏巾| 日本激情网址| 在线视频av大全色久久| 国产麻豆福利AV在线观看| 暖暖视频免费观看社区| 亚洲日本一区二区三区在线不卡| 嘟嘟嘟WWW在线观看视频高清| 美女漏bb| 一本大道无码AV天堂欧美|