Re: [問題] 為什麼作業系統都用C寫? 而不用C++呢?
※ 引述《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
推
02/08 15:01, , 1F
02/08 15:01, 1F
推
02/08 18:05, , 2F
02/08 18:05, 2F
推
02/08 19:12, , 3F
02/08 19:12, 3F
推
02/08 19:22, , 4F
02/08 19:22, 4F
推
02/08 20:09, , 5F
02/08 20:09, 5F
推
02/08 21:04, , 6F
02/08 21:04, 6F
推
02/08 21:25, , 7F
02/08 21:25, 7F
推
02/08 22:06, , 8F
02/08 22:06, 8F
推
02/08 22:08, , 9F
02/08 22:08, 9F
推
02/08 22:13, , 10F
02/08 22:13, 10F
推
02/08 22:21, , 11F
02/08 22:21, 11F
推
02/08 23:14, , 12F
02/08 23:14, 12F
→
02/08 23:19, , 13F
02/08 23:19, 13F
→
02/08 23:26, , 14F
02/08 23:26, 14F
→
02/08 23:46, , 15F
02/08 23:46, 15F
推
02/09 00:09, , 16F
02/09 00:09, 16F
→
02/09 00:36, , 17F
02/09 00:36, 17F
→
02/09 00:42, , 18F
02/09 00:42, 18F
→
02/09 01:39, , 19F
02/09 01:39, 19F
推
02/09 15:37, , 20F
02/09 15:37, 20F
推
02/10 07:43, , 21F
02/10 07:43, 21F
→
02/10 17:22, , 22F
02/10 17:22, 22F
推
02/10 17:33, , 23F
02/10 17:33, 23F
推
02/11 22:24, , 24F
02/11 22:24, 24F
推
02/11 22:29, , 25F
02/11 22:29, 25F
推
02/11 23:00, , 26F
02/11 23:00, 26F
推
02/18 22:12, , 27F
02/18 22:12, 27F
推
02/24 20:23, , 28F
02/24 20:23, 28F
推
03/21 15:01, , 29F
03/21 15:01, 29F
推
06/14 11:40, , 30F
06/14 11:40, 30F
推
04/04 10:23,
5年前
, 31F
04/04 10:23, 31F
討論串 (同標題文章)