作業系統核心編寫是否可以用STL

時間 2021-06-01 04:17:01

1樓:

開發核心還是用自底向上的方法開發。STL可以作為實現的參考,直接呼叫很多細節的東西不在控制內,有可能對核心效能、依賴性和可移植性產生影響。/* 本著底層的東西能自己寫就自己寫的原則,僅供參考。

*/重新看了下你的問題,是可以的。還有,STL的可讀性不差的。

2樓:韋易笑

能不能用先不說,想想stl版本的linux核心二進位制編譯出來有300mb,你看著都哭了,喵咪的debian精簡版安裝盤也就200多mb

3樓:haohaolee

cloudius-systems/osv · GitHub

這個作業系統是用 C++ 寫的,它的 libc 移植自 musl

4樓:馮東

STL 是乙個具體的工程實現(雖然有眾多實現,不過 STL 的介面定義也決定了很多約束)。Kernel 也是乙個具體的工程實現。這就決定了你這個問題不是一般的定性問題,而是無數工程細節堆積的問題。

細節都可以解決,所以也可以說「可行」,但是細節堆積到一定程度,工程上就不可行了。

比如說鍊錶。Kernel 裡的鍊錶一般是 intrusive linked-list。就是 prev/next 直接寫在 data struct 裡。

data 就是 node,node 就是 data。這樣你找到 data 的時候,永遠有 prev/next。而 STL 的鍊錶就沒法解決這個問題。

Kernel 也沒法用 STL 的 default allocator。所以你得自己寫 allocator。這些細節堆積起來,就背離了一開始圖簡單的初衷了。

5樓:王飛

可行是可行,這麼幹的不太多,起碼 OS X 這樣的 Unix 不這麼幹,Linux 也不,核心多部分都是 C 的,OS X 在 IOKit/libkern 用 Embedded C++ ,這東西沒有 STL ,

多核心排程的難度在哪?將來作業系統是否能夠實現頻率不夠,核心來湊?能否做到無腦堆核心就能達到高效能?

很簡單。假設有一家飯店,原本只有一名廚師。來了100個客人點了1000盆菜,顯然很多人要等很久才能吃上菜。聘請一位水平高超手腳麻利的廚師,要價很高,而且再麻利也不能5分鐘燒1000盆菜 但是,如果聘請1000名廚師,那麼就有可能可以在5分鐘內燒出1000盆菜。然而,現在有乙個客人,一日三餐都在這個飯...

編寫乙個簡單自製作業系統可以在哪些硬體上使用?

午夜熊 簡單些的,可以有qemu來模擬乙個x86跑跑。不過那個以前是需要軟盤 映像檔案 grub類似的啟動,所以還是稍微折騰些。實際的硬體,可以上ARM Cortex M,便宜且易於除錯。在上面可以體驗到完整的多工的任務上下文切換,中斷處理等,啟動 執行模式也相對簡單。再往後的,希望體驗到程序,虛擬...

編寫乙個新的作業系統,相容windows 仿寫 合法嗎

神出鬼沒的七叔 你就在你自己的電腦上寫,會有什麼問題?還不是隨便你怎麼搞。問題只會出現在完成之後,傳播或商用的過程。然而上面的問題都不是問題,問題是前提,能寫出來麼? 叛逆者 情況在於,即便光寫個核心都是工作量巨大的事情。即便高水平的團隊,要復現都很難,更不用說跟上其發展了。幾年前MSR的幾個大牛做...