Linux作為一種強大的操作系統(tǒng)內核,因其穩(wěn)定性、安全性和靈活性等優(yōu)點,被廣泛應用在數(shù)十億臺設備和各種各樣的場景中,并擁有強大的開發(fā)者社區(qū)支持。
操作系統(tǒng)是計算機的大腦,它和人的大腦一樣,經歷了從無到有、從弱到強的演化過程。如今,站在萬物智聯(lián)的時代浪潮上,操作系統(tǒng)將如何前進?
9月1日,中國科學技術大學軟件學院教授、夢寧軟件創(chuàng)始人孟寧,做客異步社區(qū)直播間,和大家聊了聊操作系統(tǒng)的前世今生,并帶來了他的新書《庖丁解牛Linux操作系統(tǒng)分析》,本書是他在中國科學技術大學多年來執(zhí)教Linux課程的總結,對于操作系統(tǒng),聽聽他怎么說!
嘉賓簡介
孟 寧
目前任職于中國科學技術大學軟件學院,夢寧軟件創(chuàng)始人,多年來專注于自主可控某礎系統(tǒng)軟件研發(fā)和教學。
著作有《代碼中的軟件工程》和《丁解牛Linux操作系統(tǒng)分析》等。其擔任主講人或講師的“Linux 內核分析”慕課課程入選2015 年網(wǎng)易云課堂“頂尖中文大學計算機專業(yè)課程體系”,課程“Linux 操作系統(tǒng)分析”獲得了教育部“國家精品在線開放課程”和“國家級一流本科課程”認定,被中國高校計算機教育 MOOC 聯(lián)盟評為“優(yōu)秀課程”。
孟寧首先表示,要深入理解操作系統(tǒng),不僅需要學習操作系統(tǒng)原理,還要了解其發(fā)展的歷程。他從封閉式計算站、分時系統(tǒng)、多道程序和系統(tǒng)調用,再到經典操作系統(tǒng)和分布式操作系統(tǒng)等發(fā)展階段,依次為大家梳理了操作系統(tǒng)的發(fā)展脈絡。
01操作系統(tǒng)的發(fā)展歷程
在最初的階段,并沒有真正的操作系統(tǒng)存在。IBM 701 開放式計算站(open shop)是由使用者手動操作的,工作效率?分低下。為了減少計算時間的浪費并使開發(fā)人員從計算機房中解放出來,開發(fā)人員被要求在穿孔卡上準備程序和數(shù)據(jù),然后提交到計算中心去執(zhí)行。開放式計算站由此變成了封閉式計算站(closed shop),所以封閉式計算站里的操作員可以被認為是最初的操作系統(tǒng)。
批處理(Batch Processing)系統(tǒng)
當主計算機 7094 執(zhí)行程序的時候,兩臺衛(wèi)星計算機同時做著輸入和輸出的工作。操作員完成了現(xiàn)代操作系統(tǒng)需要做的主要工作,比如決定程序運行的順序,也就是任務調度。如果想讓你的程序得到優(yōu)先執(zhí)行,就得通過操作員想辦法插隊。
這種計算模式就是批處理(batch processing)系統(tǒng),IBM 7094 所使用的共享操作系統(tǒng)(shared operating system)是早期的批處理系統(tǒng)。
分時(Time Sharing)系統(tǒng)
然而,批處理費時費?,?且給了計算機管理員太?的權?,?客痛恨權威的傳統(tǒng),很??部分原因歸咎于計算機管理員有權決定哪個程序優(yōu)先運?。
1962年MIT的Project MAC ?(??智能實驗室的前身)引?了分時的概念,之前曾被稱為偷時(Timestealing),因為它利??個程序運?中間的空隙執(zhí)?另外?個程序。同時電?打字機、電視機和?標陸續(xù)引?計算機系統(tǒng)作為人機交互設備,再也不?靠打孔和打印來和計算機交互。
多道程序(Multiprogramming)
多道程序技術改變了操作系統(tǒng)。在大型機時代之后,小型機時代到來,計算機成本降低且硬件功能增強。處理器開始支持程序的并發(fā)執(zhí)?和控制。中斷技術使得處理器能夠控制多道程序的并發(fā)執(zhí)?,這時多道程序操作系統(tǒng)開始出現(xiàn)。多道程序操作系統(tǒng)不是一次只運行一個程序,而是將大量程序加載到內存中并在它們之間快速切換,從而提高CPU利用率。這種切換非常重要,因為I/O訪問速度很慢,CPU在等待輸入數(shù)據(jù)或輸出完成時會空閑,快速切換不同的用戶程序可以提高CPU利用率。
系統(tǒng)調?(System Call)
所以系統(tǒng)調用的概念誕生了,系統(tǒng)調用(system call)概念的誕生是操作系統(tǒng)發(fā)展的一個重要里程碑。Atlas Supervisor 是第一個提出現(xiàn)代操作系統(tǒng)諸多概念的系統(tǒng),它率先采用了系統(tǒng)調用的工作機制。
系統(tǒng)調?將?戶程序和操作系統(tǒng)內核之間進?了隔離,通過添加?些特殊的硬件指 ?令和硬件狀態(tài)讓?戶程序進?操作系統(tǒng)的過程更加正式、可控,這樣有效保護操作 ?系統(tǒng)提供的底層代碼,使得整個系統(tǒng)更加穩(wěn)定,不會讓?戶程序的錯誤造成整個系統(tǒng)的崩潰。系統(tǒng)調?機制的采?使得操作系統(tǒng)超越了早期操作系統(tǒng)只是提供?些底層 API 函數(shù) ?庫的狀況,這時的操作系統(tǒng)超越了 API 庫函數(shù),因為通過系統(tǒng)調?提供了有效的保護機制。
隨后,孟寧向大家介紹了一些經典的操作系統(tǒng)和分布式操作系統(tǒng),并分析了未來操作系統(tǒng)發(fā)展所面臨的挑戰(zhàn)。
經典操作系統(tǒng)
分布式操作系統(tǒng)
到今天,操作系統(tǒng)需要面對的
挑戰(zhàn)主要有這樣幾個方面:
萬物互聯(lián)的終端多樣性,邊緣計算、泛在計算、函數(shù)計算 …
異構算?蓬勃發(fā)展, ?CPU 、NPU 、GPU 、DPU…xPU
軟硬件協(xié)同優(yōu)化越來越重要,以CPU為中?的ISA作為軟硬件的標準界 ?受到挑戰(zhàn)
在PC和移動互聯(lián)網(wǎng)時代,整個硬件平臺是相對標準的,但是在萬物智聯(lián)的時代,硬件平臺不是標準的且差異化非常大,隨著計算需求的多樣化,異構計算在不同的場景下,不只是終端多樣,算力的需求也是多樣化的。
這時傳統(tǒng)計算機的結構可能會面臨困境,以CPU為中?的ISA作為軟硬件的標準界?受到挑戰(zhàn)。不管是經典操作系統(tǒng)還是分布式操作系統(tǒng),所管理的資源都是三大類:計算、I/O和存儲。
02未來,操作系統(tǒng)有哪些可能性?
孟寧用幾個例子分享了他對于操作系統(tǒng)未來的展望。
操作系統(tǒng)未來展望
第一個例子是
Hypervisor OS
Hypervisor OS
原來的操作系統(tǒng)是場景禁錮的操作系統(tǒng),現(xiàn)在要創(chuàng)建一個微內核的操作系統(tǒng)平臺,通過組件化適配不同的硬件環(huán)境。在這個平臺上,可以組裝出各種類型的操作系統(tǒng),這是微內核架構的常見做法。然而,智者千慮,必有一失,孟寧指出,當出現(xiàn)新的情況或需求變更時,我們在軟件工程上需要的不是穩(wěn)定性,而是不斷的迭代和重構。
另一種思路是
平衡高效、安全、易用的
全系統(tǒng)可編程技術
我們現(xiàn)在需要的是能夠跨物聯(lián)網(wǎng)終端的技術,大到汽車,小到手機、手環(huán)等等,目前最常用的兩種實現(xiàn)技術分別是當前非?;鸨目梢栽趦群酥凶⑷氲膃BPF和擁有很好的跨平臺特性的WEBASSEBLY。
云原生落地困難重重
云原生主要集中在微服務架構和云端來支撐環(huán)境的部署。Kubernetes解決了應?編排和調度?動化問題,但是使?Kubernetes不僅要改變開發(fā)習慣,還要學習很多新概念新技術。云原?落地的難點在于使?,將云原?底層的復雜技術包裝成應?開發(fā)者熟悉的應?層概念?關重要,基于FaaS的應?層編程框架可能是?個有前景的演化?向。
云原生技術涉及到的復雜環(huán)境決定了想要掌握它就要面臨更高的挑戰(zhàn)。
“The farther back you can look, the farther forward you are likely to see. ”
—— by Winston Churchill
你能看到多遠的過去,就能看到多遠的未來!
——溫斯頓 丘吉爾
可以做哪些嘗試?
選擇Wasm字節(jié)碼
選擇的原因:
執(zhí)?速度可以達到原?C代碼的92.79%;
冷啟動性能僅毫秒級,僅1ms左右;
主流的各種?級語?都可以編譯成Wasm字節(jié)碼,在開發(fā)者?態(tài)上更有包容性;
安全性和模塊化能?。
選擇了Wasm之后,需要面臨的問題是我們需要在不同的泛在環(huán)境下提供應用開發(fā)框架,要給這個應用開發(fā)框架提供工具集成開發(fā)環(huán)境。
基于Wasm的跨平臺應?開發(fā)框架
孟寧提到他們正在開發(fā)一個基于WebAssembly的Faas高效資源管理平臺,使用Kuasar提供Wasm沙盒管理,在Kubernetes之上構建的基于WebAssemblv的Faas無服務計算平臺。使用Wasm替代OCI容器解決函數(shù)冷啟動問題,實現(xiàn)不需預熱環(huán)境,按需加載和部署函數(shù),使用Kuasar降低Containerd的Pod沙盒開銷,提高冷啟動性能,使用WasmEdge SDK定制化運行時,實現(xiàn)Wasm的HTTP函數(shù)式啟動和函數(shù)級的資源限制,以及資源消耗的監(jiān)控統(tǒng)計與管理。
直播最后,孟寧強調了當前硬件環(huán)境的復雜性和重要性。他指出,過去我們所管理的硬件環(huán)境相對比較標準,但是現(xiàn)在的情況已經不再如此?,F(xiàn)代硬件產品具有多樣性和復雜性,一個產品的需求決定了我們需要開發(fā)什么樣的產品。為了滿足這些需求,我們需要從不同的角度進行分解,深入理解產品的需求和功能。
孟寧老師的講解全面而簡潔,相信廣大讀者和用戶聽完這一課都能加深對操作系統(tǒng)的了解,也能更好地理解操作系統(tǒng)的本質和精髓,同時對操作系統(tǒng)的未來發(fā)展有了更加清晰的認知。
審核編輯:湯梓紅
評論