OK Labs公司的故事(1) 從頭開始

2021-06-25 07:05:03 字數 2485 閱讀 5184

譯至:

譯者注:sel4背景的補充材料

上週,我答應講一下開放式核心實驗室的歷史。 這是第一部分。

這一切都始於十幾年前,當有一天早上我接到凱文的**,他說他是高通公司的乙個智財權律師。 當你知道他們的訟棍的本性的話,這通常會讓你的脊椎發涼。 但是,談話是非常友好的,他想知道我們的l4微核心的ip狀態的詳細資訊,我們的l4微核心是嵌入式pistachio,有基於開源bsd的許可證(june'08的發布仍然存在)。 這是我們從卡爾斯魯厄的pistachio核心fork出來的,我們早先移植到多種架構上,包括arm。 這個分支的特別之處是在於,它對資源受限的嵌入式系統應用進行了優化。

當我在接到**後走進實驗室並告訴我的學生,哈維立刻聯想到乙個使用雅虎位址的叫埃里克的傢伙,已經在郵件列表上問了非常詳細的技術問題。

這個**是在2023年5月,高通明顯對我們的核心很感興趣。總之幾個星期後我去了美國,在六月初,我在聖地牙哥拜訪了他們,帶有乙個保密協議(很久之前就過期了)。 我花了幾個小時與副總裁和乙個高階工程師(eric)做了相當激烈的技術性討論,其結果是,在8月上旬我又去了一次,加上我的學生本諾,提供乙個為期三天的l4設計課程,原理和用法(按諮詢**支付,包括商務艙的航班)。 聽眾是來自高通的一打左右的工程師,再加上一些客戶。

課程很順利,9月我們得到了乙個合同來提供諮詢服務幫助高通的工程師做樣機的研製。 最初,這項工作是由本諾和卡爾完成,但隨著時間的推進擴大到約為6名全職員工。 僅僅半年後,也就是大約2023年2月,我們在相當長一段時間對此一無所知,高通決定把l4投入生產,作為它們的modem韌體和brew作業系統之下的核心。 第一台執行l4的手機(東芝w47t)在2023年的下半年開始在日本出貨。

這一切背後的技術原因,我們只是隨著時間的推移才知曉。 事實證明,高通在當時有兩個問題。 之一是他們的modem堆疊的平面位址空間的設計和高度整合的brew作業系統。 這已增長到數百萬行的**,除錯這樣乙個沒有記憶體保護的野獸是一場噩夢。隨著在那個(前智慧型手機)時代應用程式的擴散顯然​​變得更加嚴重。 它顯然不可能支援乙個開放的環境(使用任意第三方應用程式)的這種方式。 還有乙個要模組化modem堆疊的需求。

高通的a計畫是改造保護成rex,他們自己的rtos。 有些人預見到這一努力要失敗,並正在尋找乙個b計畫(顯然我們是計畫b.2,我從來沒有發現b.1是什麼。)失敗一定是非常引人注目的,這致使從評估到部署l4驚人的快速轉變(雖然埃里克在他們找到我們之前顯然做了一些原型的工作)。

還有第二個原因驅使他們做出這個選擇:摩托羅拉已作出以linux作為自己的手機作業系統的戰略舉措,基於linux的摩托羅拉手機已經在中國出貨。 他們想在在linux的手機使用高通的晶元。高通又不想linux(或者任何gpl軟體)在它們的核心ip附近的任何地方。 為了**晶元給摩托羅拉,他們需要一種方法來以ip方式來看能夠使它們的ip與linux相隔離。 總之,他們正在尋找乙個虛擬化的解決方案,而我們能在我們的l4核心中執行較早的linux版本。 他們在找滿足他們的要求的各種各樣的候選,需要滿足:

支援虛擬化的linux,

具有高效率地執行他們的modem堆疊的能力,並

執行於arm處理器。 

他們發現,我們已經最接近這個目標,儘管沒有乙個人(包括我們!)聲稱我們具備產品級的質量。 所以,他們基本上和我們簽合同來達到這個目標,我的學生們確實做到了。

諷刺的是,虛擬化的linux並沒有太大的影響。 在摩托羅拉的一側無休止的延期,部分原因是內部鬥爭,以及它能否提供所需的效能的質疑(來自l4以外的工作組)。這種懷疑,雖然不合理,在某種程度上是可以理解的。 那時(基於armv5的架構)使用的arm9核具有虛擬索引,虛擬標記的快取記憶體。 這意味著該硬體不能區別屬於不同的位址空間的資料,因此linux(以及其他的作業系統,如windows ce)在每個上下文切換時都要清除快取記憶體。 由於在虛擬化設定中,linux執行在它自己的位址空間,呼叫linux的系統呼叫需要上下文切換(從系統呼叫返回時還需要另乙個)。即使在本地linux,很多時候快取也經常被清除,linux的表現並不好,人們會合理地認為虛擬化將使這更糟糕。

事實上,它是倒過來:在arm9處理器上,在l4上執行虛擬化的linux速度比原生的更快! 這是由於乙個相當漂亮對硬體的功能的利用,這使我們在l4下能夠使上下文切換非常快(高達50倍!),我們實際上已經發表這個「快速位址空間切換」(fass)的技巧 ,卻沒有乙個人我們的競爭對手把它撿起來,它似乎已經超出了他們的能力(這並不奇怪,因為我們經過一段時間的競爭發現這個事實,但我會在下次說這個話題)。 我們已經在linux中實現了原來的fass,我們已經提供給主線,但維護人員拒絕了因為它過於複雜。 50倍算得了什麼?

在l4上開發的專業的摩托羅拉工程師最終得到了乙個基於arm9,虛擬化的linux手機投入市場(motorola evoke)。 我用過它,它很好用,無縫整合了基於linux的和基於brew的應用程式。 遠遠超過了痛苦的緩慢htc tytn-ii,雖然它有乙個更強大的arm11處理器執行windows mobile。 但為時已晚。 到那時,智慧型手機需要比這樣的低端處理器可能提供的效能更高的效能(即使沒有虛擬化和與處理器共享modem),所以趨勢就分開了,功能強大的應用處理器。 「統一」的手機的時代,同時執行應用程式與實時作業系統(支援modem堆疊)在同一處理器上時代,已經胎死腹中了。

開公司的流程

一 選擇公司的形式 普通的有限責任公司,最低註冊資金3萬元,需要2個 或以上 股東,從06年1月起新的公司法規定,允許1 東註冊有限責任公司,這種特殊的有限責任公司又稱 一人 但公司名稱中不會有 一人 字樣,執照上會註明 自然人獨資 最低註冊資金10萬元。如果你和朋友 家人合夥投資創業,可選擇普通的...

開公司的手續過程

一 選擇公司的形式 普通的有限責任公司,最低註冊資金3萬元,需要2個 或以上 股東,從06年1月起新的公司法規定,允許1 東註冊有限責任公司,這種特殊的有限責任公司又稱 一人 但公司名稱中不會有 一人 字樣,執照上會註明 自然人獨資 最低註冊資金10萬元。如果朋友 家人合夥投資創業,可選擇普通的 最...

自己開公司的步驟

牛人總結開公司步驟,留著以後用的著。一 選擇公司的形式 1 普通的有限責任公司 最低註冊資金 3萬元,需要 2個 或以上 股東,從 2006年01 月起,新的公司法規定,允許 1 東,註冊有限責任公司。這種特殊的有限責任公司,又稱 一人 但公司名稱中,不會有 一人 的字樣 執照上會註明 自然人獨資 ...