一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

面向?qū)ο蟮腞ust微內(nèi)核介紹

yzcdx ? 來源:OS與AUTOSAR研究 ? 2022-12-30 11:53 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前面介紹的rCore操作系統(tǒng):rCore入門-來自清華的OS前沿教程,是清華的教學(xué)OS,相當(dāng)于使用Rust語言山寨了下Linux,是一個(gè)宏內(nèi)核

之前我有一篇文章介紹了微內(nèi)核:seL4微內(nèi)核入門-微內(nèi)核介紹,相對(duì)來說微內(nèi)核在學(xué)術(shù)上更嚴(yán)謹(jǐn)先進(jìn)一些,盡管性能不如宏內(nèi)核,其他方面有點(diǎn)多,特別是安全性

所以清華又搞了一個(gè)zCore思路還是山寨,這次瞄上了谷歌Fuchsia的Zicron微內(nèi)核,見之前的文章Fuchsia入門-簡(jiǎn)介和代碼介紹,總結(jié)下:

rCore:使用Rust語言山寨宏內(nèi)核Linux

zCore:使用Rust語言山寨微內(nèi)核Zicron

注意:這里說的山寨不是完全參考,不同語言也全參考不了,實(shí)現(xiàn)方式有很多不同之處。

上圖是王潤(rùn)基同學(xué)惡搞了下谷歌Fuchsia的發(fā)布,改成自己的了真是新iPhone還沒出來山寨就有了。

總結(jié)下,這些OS其實(shí)都有一個(gè)技術(shù)指向:Rust+微內(nèi)核。

谷歌的Fuchsia比較難產(chǎn),所以逼急了又推出來一個(gè)KataOS,見之前文章:KataOS入門-簡(jiǎn)介和代碼編譯,直接用現(xiàn)成的seL4微內(nèi)核+Rust應(yīng)用框架Sparrow搞了。

回歸正題,

1. zCore簡(jiǎn)介

161c3c48-7625-11ed-8abf-dac502259ad0.png

zCore 是用 Rust 語言重新實(shí)現(xiàn)的 Zircon 微內(nèi)核。

它運(yùn)行在內(nèi)核態(tài),對(duì)外提供與 Zircon 完全相同的系統(tǒng)調(diào)用,因此能夠運(yùn)行原生的 Fuchsia 用戶程序。

之前的文章介紹過Fuchsia的強(qiáng)大,其應(yīng)用程序更是兼容了安卓,另外對(duì)于微內(nèi)核驅(qū)動(dòng)也是應(yīng)用,也可以應(yīng)用Fuchsia強(qiáng)大的驅(qū)動(dòng)程序。可見這個(gè)zCore的巨大應(yīng)用價(jià)值。

2. 面向?qū)ο蟮膬?nèi)核

1661b214-7625-11ed-8abf-dac502259ad0.png

Zicron是用c++寫的,更適合用Rust重寫。有一個(gè)問題:什么時(shí)候需要面向?qū)ο螅?br />
假如世界上只有一個(gè)上帝,那就不需要面向?qū)ο蟆5鞘澜缟线€有幾億的人,人都有非常多的共性,那答案就是有很多個(gè)實(shí)例的時(shí)候就需要面向?qū)ο蟆?br />
回到內(nèi)核,第一直覺是進(jìn)程,這東西是多個(gè)的,特別是用戶進(jìn)程,這必須可以面向?qū)ο蟀。缓驣PC通信,有很多進(jìn)程直接又很多個(gè)通道通信,很多個(gè)就又可以面向?qū)ο蟆?br />
凡是可以有多個(gè)的東西,都可以面向?qū)ο?/strong>。

c語言編寫的內(nèi)核或者宏內(nèi)核中,經(jīng)常用到抽象出來的結(jié)構(gòu)體,多個(gè)的表達(dá)就是結(jié)構(gòu)體數(shù)組或者結(jié)構(gòu)體鏈表,其輔助處理函數(shù)都要自己寫,例如查找插入改變值等,很繁瑣。

然后所有的東西都往進(jìn)程結(jié)構(gòu)體PCB里面塞,很多機(jī)制理解起來很費(fèi)力,要去看那個(gè)很大的PCB結(jié)構(gòu)體去理解,一下就懵了

人還是容易理解抽象出來的事物然后加上簡(jiǎn)單的思維邏輯,不抽象的混亂思維一會(huì)就暈了。

Zircon 是一個(gè)基于對(duì)象的內(nèi)核。

下面帶你領(lǐng)略下面向?qū)ο蟮镊攘?,真?strong>輕松學(xué)內(nèi)核
的法寶。先來看一個(gè)zCore內(nèi)核運(yùn)行時(shí)組件層次框架圖:

1691c288-7625-11ed-8abf-dac502259ad0.png ????

大家知道一般程序處理的流程:用戶程序-》系統(tǒng)調(diào)用-》內(nèi)核-》硬件里面去處理。

上圖中紅框里面就是把內(nèi)核里面跟硬件無關(guān)的元素抽象出來,用面向?qū)ο?/strong>的方法表示出來。

例如系統(tǒng)里面有多個(gè)Process,一個(gè)Process實(shí)例里面有很多個(gè)Handle和Rights指向其他的對(duì)象。

16c3852a-7625-11ed-8abf-dac502259ad0.png

內(nèi)核對(duì)象相關(guān)的三個(gè)重要概念:對(duì)象(Object),句柄(Handle),權(quán)限(Rights)。

對(duì)象(Object)具備屬性和行為的客體??腕w之間可有各種聯(lián)系。從簡(jiǎn)單的整數(shù)到復(fù)雜的操作系統(tǒng)進(jìn)程等都可看做對(duì)象,它不僅僅表示具體的事物,還能表示抽象的規(guī)則、計(jì)劃或事件。

句柄(Handle)標(biāo)識(shí)對(duì)象的符號(hào),也可看成是一種指向?qū)ο蟮淖兞浚ㄒ部煞Q為標(biāo)識(shí)符、引用、ID等)。

權(quán)限(Rights):是指對(duì)象的訪問者被允許在對(duì)象上執(zhí)行的操作,即對(duì)象的訪問權(quán)限。當(dāng)對(duì)象訪問者打開對(duì)象的句柄,該句柄具有對(duì)其對(duì)象的訪問權(quán)限的某種組合。

說下我的理解,內(nèi)核的資源都被抽象成對(duì)象,對(duì)象之間用句柄產(chǎn)生聯(lián)系,這種聯(lián)系為了安全性有權(quán)限限制,當(dāng)沒有句柄指向的對(duì)象也就是沒用了會(huì)被收回。

用戶程序操作內(nèi)核對(duì)象的一些細(xì)節(jié):

創(chuàng)建:每一種內(nèi)核對(duì)象都存在一個(gè)系統(tǒng)調(diào)用來創(chuàng)建它,例如zx_channel_create。創(chuàng)建對(duì)象時(shí)一般需要傳入一個(gè)參數(shù)選項(xiàng) options,若創(chuàng)建成功則內(nèi)核會(huì)將一個(gè)新句柄寫入用戶指定的內(nèi)存中。

使用:獲得對(duì)象句柄后可以通過若干系統(tǒng)調(diào)用對(duì)它進(jìn)行操作,例如zx_channel_write。這類系統(tǒng)調(diào)用一般需要傳入句柄 handle 作為第一個(gè)參數(shù),內(nèi)核首先對(duì)其進(jìn)行檢查,如果句柄非法或者對(duì)象類型與系統(tǒng)調(diào)用不匹配就會(huì)報(bào)錯(cuò)。接下來內(nèi)核會(huì)檢查句柄的權(quán)限是否滿足操作的要求,例如 write 操作一般要求句柄具有 WRITE 權(quán)限,如果權(quán)限不滿足就會(huì)繼續(xù)報(bào)錯(cuò)。

關(guān)閉:當(dāng)用戶程序不再使用對(duì)象時(shí),會(huì)調(diào)用zx_handle_close關(guān)閉句柄。當(dāng)用戶進(jìn)程退出時(shí),仍處于打開狀態(tài)的句柄也都會(huì)自動(dòng)關(guān)閉。

總之,面向?qū)ο蟮拇a很清晰,很容易理解,不繞彎子,利用面向?qū)ο蟮恼Z法,代碼行數(shù)能大大縮減,預(yù)計(jì)5倍以上。上面的介紹大部分都是zCore教程里面的,這個(gè)教程更加的干貨,直接介紹核心概念,對(duì)OS基礎(chǔ)知識(shí)進(jìn)行了省略。同rCore教程一樣也是從零開始自己寫一個(gè)OS的教程,這個(gè)感覺做的更好。

16fb9cd0-7625-11ed-8abf-dac502259ad0.png

3. rCore整體架構(gòu)

zCore的設(shè)計(jì)主要有兩個(gè)出發(fā)點(diǎn):

內(nèi)核對(duì)象的封裝:將內(nèi)核對(duì)象代碼封裝為一個(gè)庫(kù),保證可重用

硬件接口的設(shè)計(jì):使硬件與內(nèi)核對(duì)象的設(shè)計(jì)相對(duì)獨(dú)立,只向上提供統(tǒng)一、抽象的API接口

項(xiàng)目設(shè)計(jì)從上到下,上層更遠(yuǎn)離硬件,下層更接近硬件,架構(gòu)如下圖所示:

1723492e-7625-11ed-8abf-dac502259ad0.png

為了讓 zCore 能夠同時(shí)運(yùn)行在內(nèi)核態(tài)和用戶態(tài),我們?cè)谧钕旅嬖O(shè)計(jì)了一個(gè)硬件抽象層(HAL),將內(nèi)核所依賴的底層操作封裝起來,在裸機(jī)環(huán)境和 Linux/macOS 環(huán)境上分別提供不同的實(shí)現(xiàn)。 在 HAL 之上的核心是zircon-object,也就是 Zircon 內(nèi)核對(duì)象,這里面包含了所有內(nèi)核機(jī)制的實(shí)現(xiàn)。

在對(duì)象層之上是系統(tǒng)調(diào)用層,它負(fù)責(zé)將內(nèi)核對(duì)象的功能封裝成 Zircon syscall ABI 暴露給用戶進(jìn)程。 再往上就是整個(gè) OS 的頂層模塊,它負(fù)責(zé)完成系統(tǒng)初始化和加載第一個(gè)用戶進(jìn)程的工作,并將所有模塊組裝到一起,生成一個(gè)可執(zhí)行文件。 zCore 設(shè)計(jì)的頂層是上層操作系統(tǒng),比如 zCore、rCore、ZirconLibOS 和 Linux LibOS。

在項(xiàng)目架構(gòu)中,各版本的操作系統(tǒng)有部分公用代碼。與 zCore 微內(nèi)核設(shè)計(jì)實(shí)現(xiàn)相關(guān)的部分則主要是圖中左側(cè)藍(lán)色線部分。

乍一看,真是四不像,有點(diǎn)像嫁接,共用一個(gè)根,嫁接上不同的枝條,枝條上可以結(jié)出不同的水果。感覺這就是程序的高級(jí)玩法,殊途同歸,萬法歸一,還能相互轉(zhuǎn)化,實(shí)在是高,萬能工具啊。好處是,這幾種OS上的應(yīng)用都可以在zCore上運(yùn)行,跟吃了幾種水果一樣甜啊。

4. OS界的變形金剛

不僅如此,它還可以作為一個(gè)普通的用戶進(jìn)程運(yùn)行在 Linux 或 macOS 的用戶態(tài),我們一般把這種模式稱為 LibOS 或 User-Mode OS。你甚至無需安裝 QEMU 模擬器,只需裝上 Rust 官方工具鏈,就可以編譯運(yùn)行體驗(yàn) zCore!

git clone https://github.com/rcore-os/zCore --recursive
cd zCore
git lfs pull
cargo run --release -p zircon-loader prebuilt/zircon
既然可以用戶態(tài)運(yùn)行,那么它其實(shí)就是一個(gè)普通的用戶程序。這帶來了巨大的好處:我們可以在用戶態(tài)開發(fā),用 gdb 配合 IDE 調(diào)試,用cargo test 跑單元測(cè)試,統(tǒng)計(jì)測(cè)試覆蓋率……這在之前的內(nèi)核開發(fā)中是難以想象的。

17c3a37e-7625-11ed-8abf-dac502259ad0.png ???

zCore 作為 rCore 的繼承者,它并沒有把前輩丟掉。事實(shí)上,zCore 并不是一個(gè)獨(dú)立的 OS,在它的倉(cāng)庫(kù)里還藏著一個(gè)小 rCore!只需使用以下命令,即可快速把它召喚出來,我們來運(yùn)行一個(gè)原生 Linux 程序——Busybox:
make rootfs
cargo run--release-plinux-loader/bin/busybox
17f189c4-7625-11ed-8abf-dac502259ad0.png ????

這里面的奧秘在于,Zircon 作為微內(nèi)核,其實(shí)已經(jīng)提供了內(nèi)核中最關(guān)鍵的內(nèi)存管理和進(jìn)程管理的功能。

我們只需在它基礎(chǔ)上補(bǔ)充 Linux 作為宏內(nèi)核的其它功能(例如文件系統(tǒng)),并對(duì)外提供 Linux 系統(tǒng)調(diào)用接口,即可重新構(gòu)造出一個(gè)新的 rCore。

這就是微內(nèi)核運(yùn)行宏內(nèi)核程序的關(guān)鍵,缺的東西再加一層殼子,再封裝一層系統(tǒng)調(diào)用。

5.編程語言分析

1836c32c-7625-11ed-8abf-dac502259ad0.png

官方 Zircon 是用 C++ 語言編寫的,代碼量約有 10w 行。而 zCore 只用了1w 行 Rust 就實(shí)現(xiàn)了其中大部分核心功能。雖然我們還差一些沒有實(shí)現(xiàn),但相差一個(gè)數(shù)量級(jí)的規(guī)模還是讓我感到有些詫異。

不過至少據(jù)我觀察,C++ 的 Zircon 代碼從設(shè)計(jì)上就比較復(fù)雜,用了各種自己造的輪子,并且充斥著魔法操作。相比之下,Rust 的 zCore 代碼看起來更加自然,核心庫(kù)自帶的基礎(chǔ)設(shè)施再加上一些社區(qū)庫(kù)的輔助,用起來還是非常舒服的。

關(guān)于 Rust 大家更關(guān)心的另一個(gè)話題是 unsafe。在 zCore 中我們盡量避免了 unsafe 的使用,但沒有絕對(duì)禁止(畢竟禁止就寫不出來了)。

據(jù)統(tǒng)計(jì),在 HAL 之上大約有 20 個(gè) unsafe,其中大部分用在了兩個(gè)對(duì)象之間互相取 Weak 引用的操作,剩下的也比較容易檢驗(yàn)正確性。

而 HAL 之下 unsafe 就比較多了,由于貼近底層硬件,幾乎處處 unsafe,也就跟 C 沒什么區(qū)別了。不過好在 HAL 代碼還是比較少的,不過幾百行而已。

Rust 唯一的問題就是門檻太高了。然而對(duì)于編寫內(nèi)核這種對(duì)性能、穩(wěn)定性、安全性都要求極高的程序而言,門檻高一點(diǎn)未必是壞處。

在被 Rust 編譯器反復(fù)教做人之后,才知道自己當(dāng)初太天真,寫出來的程序處處是隱患。

async 機(jī)制除了上面提到的用戶態(tài)運(yùn)行之外,zCore 還有一大創(chuàng)新之處:首次在內(nèi)核中引入了 async 無棧協(xié)程機(jī)制。

熟悉主流編程語言的朋友會(huì)知道,async 是近幾年開始流行的一種語言特性,能夠讓開發(fā)者用同步的風(fēng)格編寫異步代碼。它本質(zhì)上是將代碼變換成狀態(tài)機(jī),在 OS 線程的基礎(chǔ)上又提供了一層輕量級(jí)的“協(xié)程”,使得程序能夠高效處理異步 IO,同時(shí)保持開發(fā)的高效率。

Rust 語言于 2019 年底正式穩(wěn)定了 async-await 語法,并于今年 3 月份的PR#69033中為 no_std 環(huán)境下使用 async 掃清了障礙。

這使得在內(nèi)核中全面應(yīng)用 async 機(jī)制成為了可能,而 zCore 可能是第一個(gè)吃螃蟹的人。(C++20 中也引入了同樣的特性,不過考慮到歷史包袱和生態(tài)問題,我比較懷疑能否真正用起來)

在傳統(tǒng) OS 中,每個(gè)內(nèi)核線程需要有自己獨(dú)立的內(nèi)核棧。當(dāng)線程掛起時(shí),它的狀態(tài)就保存在棧上。

由于內(nèi)核線程可能很多,因此每個(gè)線程的棧都不能太大,在 Linux 中一般是兩個(gè)頁也就是 8KB。而在 zCore 中,所有內(nèi)核線程都變成了協(xié)程,在一個(gè) CPU 核上共享同一個(gè)內(nèi)核棧。

當(dāng)進(jìn)入用戶態(tài)時(shí),內(nèi)核棧不再清空,因?yàn)橐A舯匾男畔?,于是?nèi)核-用戶切換的風(fēng)格從傳統(tǒng)的「用戶態(tài)中斷調(diào)用內(nèi)核處理函數(shù)」變成了「內(nèi)核主動(dòng)調(diào)用函數(shù)切換到用戶態(tài)執(zhí)行」。

當(dāng)任務(wù)掛起時(shí),協(xié)程的狀態(tài)被包裝成 Future 存儲(chǔ)在堆上。根據(jù)計(jì)算,目前每個(gè) Future 狀態(tài)機(jī)的大小約為 600B 左右,大幅節(jié)省了內(nèi)存空間。

無棧協(xié)程相比線程的好處除了空間占用少以外,還有更小的上下文切換開銷,進(jìn)而實(shí)現(xiàn)更高的并發(fā)和吞吐率。

不過它的缺點(diǎn)在于協(xié)作式、不可搶占,這可能會(huì)為系統(tǒng)的實(shí)時(shí)性帶來挑戰(zhàn)。關(guān)于二者之間的對(duì)比,還有待進(jìn)一步的測(cè)試和分析。

zCore 的主要特性和創(chuàng)新點(diǎn):

第一個(gè)完全山寨的 Zircon 內(nèi)核

使用 Rust 編寫,實(shí)現(xiàn)精簡(jiǎn),層級(jí)清晰

支持用戶態(tài)開發(fā)、測(cè)試和運(yùn)行

第一個(gè)在內(nèi)核中使用 async 機(jī)制

總的來說,zCore 應(yīng)該是目前為止我們能想到、做到的,Rust 語言操作系統(tǒng)的集大成之作了。

6. 代碼下載體驗(yàn)

已經(jīng)運(yùn)行過rCore環(huán)境的機(jī)器,可以直接下載zCore的代碼體驗(yàn)下。

下載命令:

Git clone https://github.com/rcore-os/zCore.git
編譯運(yùn)行命令:
cargo qemu --arch riscv64
還是基于RISC-V硬件的qemu虛擬機(jī)運(yùn)行:

189a7a70-7625-11ed-8abf-dac502259ad0.png






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 模擬器
    +關(guān)注

    關(guān)注

    2

    文章

    894

    瀏覽量

    44455
  • GDB調(diào)試
    +關(guān)注

    關(guān)注

    0

    文章

    24

    瀏覽量

    1661
  • HAL庫(kù)
    +關(guān)注

    關(guān)注

    1

    文章

    121

    瀏覽量

    6953
  • Rust
    +關(guān)注

    關(guān)注

    1

    文章

    234

    瀏覽量

    7113

原文標(biāo)題:zCore入門-面向?qū)ο蟮腞ust微內(nèi)核

文章出處:【微信號(hào):OS與AUTOSAR研究,微信公眾號(hào):OS與AUTOSAR研究】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux內(nèi)核面向對(duì)象編程的實(shí)現(xiàn)

    面向對(duì)象編程(OOP),是一種設(shè)計(jì)思想或者架構(gòu)風(fēng)格。OO語言之父Alan Kay,Smalltalk的發(fā)明人,在談到OOP時(shí)是這樣說的。
    發(fā)表于 07-21 14:51 ?795次閱讀

    Python的面向對(duì)象編程詳解

    一般編程可分為面向過程編程,和面向對(duì)象編程。Python的面向對(duì)象編程,與Java的面向
    發(fā)表于 09-04 16:35 ?816次閱讀
    Python的<b class='flag-5'>面向</b><b class='flag-5'>對(duì)象</b>編程詳解

    labview面向對(duì)象編程

    點(diǎn)擊學(xué)習(xí)>>《龍哥手把手教你學(xué)LabVIEW視覺設(shè)計(jì)》視頻教程使用LabVIEW面向對(duì)象編程方法,對(duì)于大型測(cè)試應(yīng)用程序來講,面向對(duì)象相對(duì)于面向
    發(fā)表于 11-24 11:01

    關(guān)于面向對(duì)象

    本帖最后由 sthhhh 于 2016-8-5 15:32 編輯 請(qǐng)問現(xiàn)在已有一個(gè)程序,如果要把這個(gè)程序改為面向對(duì)象編程可以嗎?我需要怎么做?書上介紹面向
    發(fā)表于 08-05 14:22

    LabVIEW面向對(duì)象編程入門介紹

    LabVIEW面向對(duì)象編程入門介紹類庫(kù)描述介紹
    發(fā)表于 11-20 10:51

    LabVIEW面向對(duì)象的ActorFramework(1)

    ` 本帖最后由 bollworm 于 2020-2-10 14:54 編輯 本系列文章主要闡述以下幾個(gè)問題:(1)什么是面向對(duì)象編程?(2)為什么要學(xué)習(xí)面向編程?(3)LabVIEW面向
    發(fā)表于 02-10 14:09

    談?wù)?b class='flag-5'>面向對(duì)象編程

    在工業(yè)自動(dòng)化領(lǐng)域,梯形圖邏輯仍然是最常用的編程語言之一,但對(duì)于更加復(fù)雜的控制對(duì)象,面向對(duì)象編程不失為一種高效率的方式。下面先來談?wù)?b class='flag-5'>面向對(duì)象
    發(fā)表于 09-08 07:47

    面向對(duì)象編程語言的特點(diǎn)

    在工業(yè)自動(dòng)化領(lǐng)域,梯形圖邏輯仍然是最常用的編程語言之一,但對(duì)于更加復(fù)雜的控制對(duì)象,面向對(duì)象編程不失為一種高效率的方式。下面先來談?wù)?b class='flag-5'>面向對(duì)象
    發(fā)表于 09-08 07:44

    面向對(duì)象編程總結(jié)

    如何從面向過程到面向對(duì)象OOP?面向對(duì)象是什么?有何特點(diǎn)?
    發(fā)表于 09-29 08:19

    面向對(duì)象編程介紹

    目錄一、面向對(duì)象編程介紹1.面向過程編程2.函數(shù)式編程3.面向對(duì)象編程二.
    發(fā)表于 12-13 07:22

    C語言是如何實(shí)現(xiàn)面向對(duì)象

    ,C++是 面向對(duì)象 的編程語言,但面向對(duì)象的概念是在C語言階段就有了,而且應(yīng)用到了很多地方,比如某些操作系統(tǒng)內(nèi)核、通信協(xié)議等。
    的頭像 發(fā)表于 12-24 17:08 ?2w次閱讀
    C語言是如何實(shí)現(xiàn)<b class='flag-5'>面向</b><b class='flag-5'>對(duì)象</b>的

    Rust添加到Linux6.1內(nèi)核的方法

    在歐洲開源峰會(huì)上,Linus Torvalds 宣布,他將在當(dāng)天(在內(nèi)核維護(hù)者峰會(huì)上)推動(dòng) Rust 進(jìn)入即將推出的 6.1 Linux 內(nèi)核。
    的頭像 發(fā)表于 09-19 10:24 ?1594次閱讀

    Linux內(nèi)核中整合對(duì) Rust 的支持

    Linux Plumbers Conference 2022 大會(huì)上舉行了一個(gè) Rust 相關(guān)的小型會(huì)議,該會(huì)議討論的大方向大致為:正在進(jìn)行的使 Rust 成為一種合適的系統(tǒng)編程語言的工作,以及在主線 Linux 內(nèi)核中整合對(duì)
    的頭像 發(fā)表于 09-19 11:06 ?1384次閱讀

    面向過程與面向對(duì)象的區(qū)別

    說起面向對(duì)象,大家可能會(huì)想到其他的,但是此對(duì)象非彼對(duì)象哈哈,不必驚慌,也特別好搞定。 在聽到面向對(duì)
    的頭像 發(fā)表于 02-15 11:10 ?4887次閱讀
    <b class='flag-5'>面向</b>過程與<b class='flag-5'>面向</b><b class='flag-5'>對(duì)象</b>的區(qū)別

    zircon內(nèi)核啟動(dòng)代碼分析

    Zircon內(nèi)核的代碼是用C++寫的,C++和C的基礎(chǔ)語法差不多,C++新加入了一些面向對(duì)象的東西
    的頭像 發(fā)表于 06-11 09:14 ?3420次閱讀
    zircon<b class='flag-5'>微</b><b class='flag-5'>內(nèi)核</b>啟動(dòng)代碼分析