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