Re: [問卦] 第一次自幹作業系統核心就上手

看板Gossiping作者 (松鼠)時間3年前 (2020/11/09 16:08), 3年前編輯推噓408(409145)
留言455則, 428人參與, 3年前最新討論串2/3 (看更多)
※ 引述《johnny9667 (大八)》之銘言: : 最近我youtube首頁一直出現這部影片 : [COSCUP 2012] 第一次自幹作業系統核心就上手 - Jserv : https://youtu.be/m6R1mFpifa4
既然 YouTube 覺得閣下是這部影片的潛在受眾,相逢就是有緣,來交個朋友吧! : 現成的linux kernel開源碼就在那裏 一堆現成的 https://www.kernel.org/ : 幹嘛自幹? 有沒有八卦? 在一個足夠複雜的資訊系統中,往往不只有一個作業系統,例如 Android 手機中,除了 以 AOSP [1] 為基礎的 Linux 核心加上 Android 系統外,至少還有個獨立於 Linux 的 作業系統名為 Trusty [2],後者掌管包含你的指紋和電子支付一類需要高度安全處理的 資訊,這個 Trusty 作業系統具備你所認知的典型機制: a. 提供系統呼叫 b. 允許執行應用程式 c. 具備排程能力 d. 能夠處理中斷和周邊的通訊 Trusty 在 Arm 處理器中,以最高的特權等級 (EL3) 模式執行,可說是凌駕於 Linux 核心之上,至於 Trusty 對於手機設計為何重要呢?倘若沒有這個 Trusty 作業系統, 包含你的指紋在內的隱私資料只是存放在 Linux 系統中,一旦 Linux 遭遇到 rootkit [3],那麼很可能從你的指紋、電子交易資訊、信用卡卡號、線上影音的 DRM 密鑰 [4] 甚至是電信商特有的資訊都會被揭露,你想像手機設計/製造商和服務供應商會蒙受多大 的損失呢? 考慮到這類 TEE [5] 的作業系統責任重大,近期也加入虛擬化技術的支援,如 OP-TEE 就提供對應的虛擬化組態 [6]。這裡快速總結 TEE 作用和開發客製化作業系統的需要: > 為了預防原本架構下的作業系統遭受攻擊,另外用一個安全的作業系統,搭配硬體隔離 > 機制,去保護敏感的資料,限制主 CPU 無法去存取另外一個作業系統的記憶體或相關 > 資源,以達到保護及隔離的功效。 以 Arm Cortex-A 系列微處理器來說,為了完整劃分 Trusted 及 Non Trusted,透過 AMBA、週邊硬體,和處理器內部的硬體來實作。每個實體處理器核 (core) 皆有兩個虛擬 核可使用,其一為 secure,另一為 non-secure。運作機制如下: 1. 硬體提供切換機制 (secure moniter exception) 2. 透過指令 (Secure Moniter Call, SMC) 或觸發一些其他 exception,促使 secure moniter 進行受硬體保護的切換 實際切換的方法是,儲存目前的 process status 至 non-securted OS (即 REE),進入 TEE 做完相關操作 後,接著還原切換回原本的 REE 作業系統的 process status。 為此 Arm 還提供 Trusted Firmware-A 作為上述機制的參考實作。您若詢問投入手機 晶片設計的工程師朋友,相信都對這方面略知一二。 你說,涉及關鍵的數位資產和信任議題,能不自幹安全的作業系統 (如 Trusty) 嗎? 車用電子又變得更複雜,簡單區分 [8] 為以下三類: 1. 電子控制單元(Electronic Control Unit, ECU) 車內各種不同的系統控制都需要仰賴 ECU,因此隨著系統複雜程度的提高,車內 ECU 的數量也逐漸攀升。目前雙 B 的高階車款,一台車上已有上百個 ECU。 2. 微控制器(microcontroller, MCU) MCU 應用最多在消費性電子商品上,第二大就在汽車電子。簡易的功能系統,如車內 空調、車窗,後照鏡等,可使用成本較低的 8-bit MCU;對 MCU 的運算處理能力要求 較高的煞車、安全氣囊、車身穩定控制,使用 16-bit MCU;朝智慧化邁進的同時, 32/64-bit 處理器已躍上主流規格,如多媒體、娛樂、駕駛資訊等較高階的電子化 資訊系統皆多採用此規格。 3. 感測器 以建構駕駛輔助系統來說,使用影像感測器、毫米波雷達、雷射雷達、加速度感測器、 角速度感測器、車輪速度感測器,胎壓感測器等,而在眾多感測器中,影像感測器越 受重視。 針對 MCU 和資訊系統的升級,Automotive Grade Linux [9] 由 Linux Foundation 管理 和協調,AGL 創始成員包括 Jaguar Land Rover, Nissan, TOYOTA, DENSO, Fujitsu, Harman, NVIDIA, Renesas, 三星和德州儀器,後來 Intel 公司也做了若干貢獻,甚至為 車用市場「自幹」另一套作業系統 ACRN [10],考量點就在於車用電子存在大量 ECU 和 MCU,裡頭早就執行著多款作業系統,但彼此間訊息傳遞和可靠性是相當棘手的議題,光 有 Linux 不足以滿足這些需求,於是 Intel 額外發展 ACRN 作為一款輕量級的 hypervisor 來隔離若干執行環境,當然 ACRN 本身就是貨真價實的作業系統。可參閱 ACRN 的文件: Introduction to Project ACRN [11]。 再者,現代戰爭中,無人飛行武器的重要性提高,像 seL4 [13] 這樣經過形式化驗證的 作業系統核心 (另一個自幹的經典!) 已是軟體驅動的嶄新軍事武器的關鍵技術。以下摘 自「無人機主宰未來戰場:亞美尼亞與亞塞拜然衝突給台灣的警示」[12] * 位於高加索地區的亞美尼亞與亞塞拜然,近日因長期的領土紛爭,再度爆發武裝衝突, 戰事越演越烈 * 從衝突一開始,亞美尼亞與亞塞拜然就各自公布了一系列影片,展示他們的無人機成功 摧毀對方的防空系統。無論是由無人機自身所掛載的空對地飛彈進行獵殺,或引導友軍 單位發動攻擊,都可以看到地面防空系統幾乎毫無招架之力。 * 亞美尼亞與亞塞拜然都不是傳統的軍事強國,兩國部隊的裝備也談不上先進,但無人機 卻讓這兩國擁有令人訝異的精確打擊能力,使傳統地面作戰武器居於絕對的弱勢,展現 發展不對稱戰力的成果。 澳大利亞的 Data61 (前身為 NICTA,是開發 seL4 的研究機構) 獲得美國國防部 Defense Advanced Research Projects Agency (DARPA) 的資助,將高可靠、安全的 seL4 應用在 飛行載具中。具體的應用情境已公佈,對於波音公司出品的 MH-6 Little Bird 直昇機和 它的攻擊型本 AH-6,是美國陸軍用於特種作戰的單引擎輕型直昇機,隨著作戰計畫的 複雜化,美國軍方正視網路攻擊的嚴酷挑戰,因此採納 seL4 這個號稱數學上證明過的 "Unhackable Kernel",目前 seL4 用於 High-Assurance Cyber Military Systems (HACMS) 中,已完成測試。 (video) https://www.facebook.com/watch/?v=1167433693271186 seL4 受到 DARPA 贊助並已用於波音公司開發的 Unmanned Little Bird (ULB) 戰鬥 直升機,這份 2015 年的短片展示建構在 eChronos RTOS 和 seL4 的高度安全飛行控制 系統,Mission board 由 ARM Cortex-A15 硬體組成,執行 seL4 + 虛擬化的 Linux, 而 Flight controller 由 ARM Cortex-M4F 硬體組成,運作 eChronos RTOS。 seL4 是微核心領域最前瞻的研究和實作 (用於高度自動化的軍火設備,像是能遠距射擊 的無人機),其主持人 Gernot Heiser 教授在 FOSDEM 2020 發表演說 [14],主題是 seL4 在 RISC-V 架構的支援。 雲端服務公司如 Google, Microsoft, Amazon 都有對應的「自幹」作業系統計畫,也有 實際應用的案例,大多圍繞在虛擬化和高度安全隔離。下次有類似主題我再分享。 不管是物聯網,還是雲端運算,我們都可以看出一個顯然的事實,唯有更高附加價值並 透過作業系統提昇規模、深度、廣度,還有彈性,才有機會創造正向循環。「自幹」作業 系統是個重要的工程訓練,當你著眼於「有飯吃」以外的各項關鍵領域之際。 王佑中博士說過: 「寫一個 OS 是多麼美好的事,在有限的生命中千萬不要遺漏了它。」 這件事我做了二十餘年,有幸寫了幾套拿來賣錢的作業系統,也透過 GitHub 發布幾款 自娛娛人的作業系統專案 (在學校教書的好處,可以引導學生當小白鼠)。至今我仍在 探索,歡迎大家一起學習 Linux 和各式作業系統,請參見線上課程: * Linux 核心設計: http://wiki.csie.ncku.edu.tw/linux/schedule * 進階電腦系統理論與實作: http://wiki.csie.ncku.edu.tw/sysprog/schedule * 你所不知道的 C 語言: https://hackmd.io/@sysprog/c-programming * GNU/Linux 開發工具: https://hackmd.io/@sysprog/gnu-linux-dev * 淺談 Microkernel 設計和真實世界中的應用 https://hackmd.io/@sysprog/microkernel-design [1] AOSP: https://source.android.com/ [2] Trusty TEE: https://source.android.com/security/trusty [3] rootkit: https://en.wikipedia.org/wiki/Rootkit [4] DRM: https://en.wikipedia.org/wiki/Digital_rights_management [5] TEE: https://en.wikipedia.org/wiki/Trusted_execution_environment [6] OP-TEE Virtualization: https://optee.readthedocs.io/en/latest/architecture/virtualization.html [7] Trusted Firmware-A: https://github.com/ARM-software/arm-trusted-firmware [8] 部份摘自「車用半導體關鍵元件:了解ECU、MCU及感測器是什麼」一文,來源 https://www.stockfeel.com.tw/ [9] Automotive Grade Linux: https://www.automotivelinux.org/ [10] ACRN: https://projectacrn.org/ [11] Introduction to Project ACRN: https://projectacrn.github.io/latest/introduction/ [12] 無人機主宰未來戰場:亞美尼亞與亞塞拜然衝突給台灣的警示: https://opinion.udn.com/opinion/story/120873/4950022 [13] seL4: https://sel4.systems/ [14] FOSDEM 2020 + seL4: https://www.phoronix.com/scan.php?page=news_item&px=seL4-Coming-To-RISC-V 連結內容有對應的簡報檔案及錄影 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.116.245.162 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Gossiping/M.1604909290.A.11A.html

11/09 16:08, 3年前 , 1F
11/09 16:08, 1F

11/09 16:08, 3年前 , 2F
11/09 16:08, 2F

11/09 16:09, 3年前 , 3F
先推
11/09 16:09, 3F

11/09 16:09, 3年前 , 4F
11/09 16:09, 4F

11/09 16:10, 3年前 , 5F
11/09 16:10, 5F

11/09 16:10, 3年前 , 6F
11/09 16:10, 6F

11/09 16:12, 3年前 , 7F
11/09 16:12, 7F

11/09 16:13, 3年前 , 8F
優質
11/09 16:13, 8F

11/09 16:14, 3年前 , 9F
先跪了
11/09 16:14, 9F

11/09 16:14, 3年前 , 10F
看不懂,先推
11/09 16:14, 10F

11/09 16:15, 3年前 , 11F
11/09 16:15, 11F

11/09 16:15, 3年前 , 12F
可以自幹無人種菜OS嗎,這樣就能在家確保糧食,不用領
11/09 16:15, 12F

11/09 16:15, 3年前 , 13F
薪水了= =
11/09 16:15, 13F

11/09 16:16, 3年前 , 14F
11/09 16:16, 14F

11/09 16:16, 3年前 , 15F
只要看不懂的,我就推
11/09 16:16, 15F

11/09 16:16, 3年前 , 16F
11/09 16:16, 16F

11/09 16:17, 3年前 , 17F
強啊
11/09 16:17, 17F

11/09 16:17, 3年前 , 18F
推一下免得以為不懂
11/09 16:17, 18F

11/09 16:18, 3年前 , 19F
@r5e97nk63, 七年前有人委託我開發水耕蔬菜的控制系統
11/09 16:18, 19F

11/09 16:18, 3年前 , 20F
可惜規模做不大,無法讓我吃飽 (嘆)
11/09 16:18, 20F

11/09 16:19, 3年前 , 21F
恩恩 跟我想的一樣
11/09 16:19, 21F

11/09 16:19, 3年前 , 22F
跪了
11/09 16:19, 22F

11/09 16:19, 3年前 , 23F
推 好文
11/09 16:19, 23F

11/09 16:19, 3年前 , 24F
看了一下,我寧可被資本主義所奴役。
11/09 16:19, 24F

11/09 16:19, 3年前 , 25F
推,可是我看不懂
11/09 16:19, 25F

11/09 16:19, 3年前 , 26F
推推推
11/09 16:19, 26F

11/09 16:20, 3年前 , 27F
看到ID先推
11/09 16:20, 27F

11/09 16:20, 3年前 , 28F
真有道理
11/09 16:20, 28F

11/09 16:20, 3年前 , 29F
11/09 16:20, 29F

11/09 16:20, 3年前 , 30F
好文 清流 滿滿的知識量
11/09 16:20, 30F

11/09 16:21, 3年前 , 31F
推老師
11/09 16:21, 31F

11/09 16:21, 3年前 , 32F
唉,澳洲那幾個職缺都要公民身份才能申請...
11/09 16:21, 32F

11/09 16:21, 3年前 , 33F
快推 不然人家以為我們看不懂!
11/09 16:21, 33F

11/09 16:22, 3年前 , 34F
推 不然別人以為我看不懂
11/09 16:22, 34F

11/09 16:22, 3年前 , 35F
可以講猴子也聽的懂的版本嗎
11/09 16:22, 35F

11/09 16:23, 3年前 , 36F
@hahahank, 我傾向讓猴子變聰明,歡迎參考線上課程
11/09 16:23, 36F

11/09 16:24, 3年前 , 37F
11/09 16:24, 37F

11/09 16:24, 3年前 , 38F
有神快拜
11/09 16:24, 38F

11/09 16:24, 3年前 , 39F
朝聖啦 推
11/09 16:24, 39F
還有 376 則推文
還有 1 段內文
11/09 23:59, 3年前 , 416F
看ID就先推了 感謝分享教學
11/09 23:59, 416F

11/10 00:05, 3年前 , 417F
專業推
11/10 00:05, 417F

11/10 00:08, 3年前 , 418F
11/10 00:08, 418F

11/10 00:13, 3年前 , 419F
11/10 00:13, 419F

11/10 00:23, 3年前 , 420F
完全!看不懂
11/10 00:23, 420F

11/10 00:23, 3年前 , 421F
11/10 00:23, 421F

11/10 00:27, 3年前 , 422F
跪推
11/10 00:27, 422F

11/10 00:58, 3年前 , 423F
j真滴強 推
11/10 00:58, 423F

11/10 01:08, 3年前 , 424F
媽,我在這裡
11/10 01:08, 424F

11/10 01:09, 3年前 , 425F
推 我真的看的懂...真的辣
11/10 01:09, 425F

11/10 01:30, 3年前 , 426F
有神快拜
11/10 01:30, 426F

11/10 02:34, 3年前 , 427F
看不懂QQ
11/10 02:34, 427F

11/10 03:10, 3年前 , 428F
朝聖jserv
11/10 03:10, 428F

11/10 03:19, 3年前 , 429F
推!
11/10 03:19, 429F

11/10 03:23, 3年前 , 430F
請收下我的膝蓋
11/10 03:23, 430F

11/10 04:06, 3年前 , 431F
收下我的膝蓋.....不對啊早就給你了
11/10 04:06, 431F

11/10 04:41, 3年前 , 432F
11/10 04:41, 432F

11/10 05:33, 3年前 , 433F
先推
11/10 05:33, 433F

11/10 05:53, 3年前 , 434F
跟鬼一樣 推
11/10 05:53, 434F

11/10 05:56, 3年前 , 435F
11/10 05:56, 435F

11/10 07:04, 3年前 , 436F
11/10 07:04, 436F

11/10 07:04, 3年前 , 437F
有神快拜
11/10 07:04, 437F

11/10 07:29, 3年前 , 438F
11/10 07:29, 438F

11/10 08:06, 3年前 , 439F
11/10 08:06, 439F

11/10 08:35, 3年前 , 440F
原來是這樣啊
11/10 08:35, 440F

11/10 08:45, 3年前 , 441F
膝蓋
11/10 08:45, 441F

11/10 08:57, 3年前 , 442F
11/10 08:57, 442F

11/10 09:07, 3年前 , 443F
jserv作業好多啊哈哈哈哈嗚嗚嗚嗚嗚嗚嗚
11/10 09:07, 443F

11/10 09:21, 3年前 , 444F
11/10 09:21, 444F

11/10 09:54, 3年前 , 445F
推 免得讓人以為我看不懂
11/10 09:54, 445F

11/10 10:47, 3年前 , 446F
寫C程式可以摸到?罩杯 wow~
11/10 10:47, 446F

11/10 11:39, 3年前 , 447F
有神快拜
11/10 11:39, 447F

11/10 11:40, 3年前 , 448F
推看得懂才怪
11/10 11:40, 448F

11/10 11:51, 3年前 , 449F
就算看不懂也要推
11/10 11:51, 449F

11/10 12:13, 3年前 , 450F
11/10 12:13, 450F

11/10 12:21, 3年前 , 451F
推,太猛
11/10 12:21, 451F

11/10 12:50, 3年前 , 452F
11/10 12:50, 452F

11/10 13:57, 3年前 , 453F
11/10 13:57, 453F

11/10 14:06, 3年前 , 454F
嗯 跟我想的一樣
11/10 14:06, 454F

11/11 02:28, 3年前 , 455F
11/11 02:28, 455F
文章代碼(AID): #1VgFZg4Q (Gossiping)
文章代碼(AID): #1VgFZg4Q (Gossiping)