當前位置:首頁 » 編程語言 » 寫操作系統只能用c語言
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

寫操作系統只能用c語言

發布時間: 2023-05-17 03:34:32

1. 為什麼現在的操作系統基本上用C語言來實現

因為如果要在開發時間和軟體效率之間取一個平衡點的話,開發操作系統的平衡點就是C語言。

除了C語言以外,其它語言都不具備某些特性、不夠方便、軟體效率不高。

寫操作系統需要編程語言提供以下幾個特徵:

1、跨平台,不能是只在某個平台下編譯(VB就不行);
2、必須是編譯型語言(PHP就不行),或者有一個非常高效的解釋器;
3、必須有方便的操作硬體的功能,容易嵌入匯編(Java就不行);
4、兼容性要好,最好不同編譯器編譯的符號要基本相同,容易鏈接(C++不行,如果放棄Class的話C++基本可以);
5、編譯器本身最好是由該語言自己完成的(大部分語言的編譯器都是用C/C++寫的);
6、開發者可以很方便的擴展、改造、或者使用第三方的運行庫(大部分語言的庫都無法修改);
7、開發者眾多(小眾語言就不行);
8、該語言開發操作系統的資料要足夠完善。

所以總結下來,C語言是首選。

當然了,不是說其它語言一定不行,只是其它語言開發操作系統時會有各種各樣的不方便的地方,因為有人就用Java+匯編來實現一個操作系統,也不是不可以,只是很麻煩。(參見寫操作系統只能用匯編和C語言? - 北極的回答)

而由於最早開發操作系統的時候選用了C語言,而且一直延續了下來。不管是習慣還是語言特性,C語言一直都很符合條件,因此沒有必要冒著各種風險換一種語言來開發。

補充,如果使用C++寫操作系統,並不是特別困難。C++的問題在於混合編譯時符號表比較麻煩(VC和GCC生成的全局符號名字不一樣),C++的運行效率略低於C,所以一般沒有人用C++去寫內核。

但是Windows里確實存在著使用C++寫的驅動,也算是屬於操作系統的一部分吧。

2. 用純C語言能不能寫一個操作系統

C語言當然是可以寫操作系統的,但是操作系統的編寫一般都不僅僅只是用C語言編寫的。 寫操作系統需要編程語言提供以下幾個特徵: 1、跨平台,不能是只在某個平台下編譯(VB就不行); 2、必須是編譯型語言(PHP就不行),或者有一個非常高效的解