作者jserv (松鼠)
看板C_and_CPP
標題Re: [問題] 為什麼作業系統都用C寫? 而不用C++呢?
時間Wed Feb 8 13:15:45 2012
※ 引述《MasterChang (我愛ASM)》之銘言:
: 其實原po的標題就有問題。
: 「為什麼作業系統都用C寫? 而不用C++呢?」這問題就好像問一
: 個賣雞排的人 「妳為何創業要賣雞排?而不是賣大腸包小腸?」
: 其實看windows和linux這些主流的OS,當初這些OS問世時,C++還
: 不知道在哪(1991左右)。 再來開發人員決定用C時,那OS就是用C
: 開發。沒有什麼為甚麼。
個人覺得 C++ 的「包袱」大了一些,不是說 runtime 成本,而是說集低階描述、
OOPL、metaprogramming,甚至現在還有 functional programming 的元素於一身,
光提 "C++" 很難讓人清楚掌握語言的特色,更別談 "writing OS Kernel in C++"
的訴求是強調哪項特質。
只要能夠作 language runtime bootstrap 的支持,基本上 Smalltalk 與 Java
這樣的動態語言也是能作為撰寫 OS Kernel 的主要程式語言,IBM 的 Jalapeno [1]
與 Smalltalk 的實做 Squeak [2] 都證明這點。
: 除了需要組語部份之外,其外需要用C可不可以用C++作? (C++可
: 以用VB、C# 等取代) 我想是可以的。問題是「誰要作?」、「做
: 了誰要用?」,另外要考慮toolchain的支援問題。
: http://www.unixlite.org <--- C++寫的OS
可惜這網站不見了,UNIXLite 拿來當作業系統教材挺好的。
: http://www.pudn.com/downloads25/sourcecode/windows/console/detail82288.html
: 另外L4也是C++寫的OS。
: 總結:是有C++寫的OS,只是原po不知道。
一般我們指 L4 microkernel 時,會先提到設計與 L4 kernel interface (ABI),再來
才是若干的實做。L4Ka::Pistachio [3] 以及其衍生的實做的確以 C++ 搭配少量的
Assembly 撰寫,不過也有其他 L4 實做採用 C 語言 (與 Assembly) 撰寫,如
Codezero [4]
[1]
http://en.wikipedia.org/wiki/Jikes_RVM
[2]
http://en.wikipedia.org/wiki/Squeak
http://sourceforge.net/projects/squeaknos/
[3]
http://www.l4ka.org/
[4]
http://l4dev.org/
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.57.131.211
推 avhacker:有神快拜 02/08 15:01
推 xatier: 有神快拜 02/08 18:05
推 lctwolf: 有神快拜 02/08 19:12
推 hilorrk: 有神快拜 02/08 19:22
推 ggBird: 有神快拜 02/08 20:09
推 Bencrie: 有神快拜 02/08 21:04
推 Yshuan: 有神快拜 02/08 21:25
推 drm343:有神快拜 02/08 22:06
推 meconin: 有神快拜 02/08 22:08
推 ducksteven:神快拜 02/08 22:13
推 h9602b: :有神快拜 02/08 22:21
推 saxontai:有神快拜 02/08 23:14
→ LifePattern:有神快拜 02/08 23:26
→ x000032001:!!! jserv 02/08 23:46
推 VictorTom: 有神快拜 02/09 00:09
→ a558815: 有神快拜 02/09 00:36
→ MasterChang:嗚....被鞭屍了....XD 02/09 00:42
→ jserv:只是剛好找資料時,讀到這篇post,幫Master兄補充一下而已 02/09 01:39
推 cobrasgo:有神快拜 02/09 15:37
推 kingweirong:有神快拜 02/10 07:43
→ zzzzjjlee:真的是本人嗎?有神快拜 02/10 17:22
推 jakevin:快快快 有神快拜 拿香跟拜阿 後面的!! 02/10 17:33
推 nfsong:有神快拜 02/11 22:24
推 wildpizza: 有神快拜 02/11 22:29
推 tomap41017: 有神快拜 02/11 23:00
推 gangray:有神快拜<(_ _)> 02/18 22:12
推 lctwolf: 有神快拜 02/24 20:23
推 maerdimer:有神快拜 <(_ _)> 03/21 15:01
推 silentduke: 有神快拜 06/14 11:40
推 joey11121: 有神快拜 04/04 10:23