為什麼現在的作業系統基本上用c語言來實現

2021-03-03 20:42:55 字數 2583 閱讀 1128

1樓:物理公司的

因為如果要在開發時間和軟體效率之間取一個平衡點的話,開發作業系統的平衡點就是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++寫的驅動,也算是屬於作業系統的一部分吧。

為什麼現在有這麼多程式語言了,系統還是用c語言編

2樓:楊塵一

因為如果要在開發時間和軟體效率之間取一個平衡點的話,開發作業系統的平衡點就是c語言。除了c語言以外,其它語言都不具備某些特性、不夠方便、軟體效率不高。

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

1、跨平臺,不能是隻在某個平臺下編譯(vb就不行);

2、必須是編譯型語言(php就不行),或者有一個非常高效的直譯器;

3、必須有方便的操作硬體的功能,容易嵌入彙編(java就不行);

4、相容性要好,最好不同編譯器編譯的符號要基本相同,容易連結(c++不行,如果放棄class的話c++基本可以);

5、編譯器本身最好是由該語言自己完成的(大部分語言的編譯器都是用c/c++寫的);

6、開發者可以很方便的擴充套件、改造、或者使用第三方的執行庫(大部分語言的庫都無法修改);

7、開發者眾多(小眾語言就不行);

8、該語言開發作業系統的資料要足夠完善。

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

3樓:匿名使用者

c語言之所以強大是因為其靈活性高,對硬體可以進行直接訪問,直接訪問就是高效,這就是為什麼c語言一直被用來進行低層開發的原因。比c更底層的那只有組合語言了。但是這種高效性的代價就是開發異常複雜,程式設計師需要實現大多數細節,另一個代價是危險性高,因為直接對硬體控制,一個位元組的錯誤都是不可忽視的。

其他語言,如c#,java等,把低層控制都封裝了,程式設計師無法直接控制低層硬體,喪失了一定的靈活性,但是更安全,開發速度更快,因為很多細節問題都已經被語言開發者解決,使用者所作的只是使用而已。

各個語言之間的比較,這還真不好比較,主要看你為什麼平臺開發。語言發展至今,已經不分伯仲,各有各的優勢,選擇一個你覺得最習慣的吧。

4樓:匿名使用者

根據用途的不同,語言的選擇也不同

嵌入式開發一般都用c語言

遊戲程式設計和大型pc軟體一般都用c++

可移動裝置上的軟體比如手機一般都用java小程式推薦使用vb

5樓:匿名使用者

c是很強大

但是程式設計不方便啊

而且只是面向結構的

而現在很多語言都是面向對向的

有助於天發大的系統

vc寫windows系統的應用程式好

java安全性好,可移植性強,開發程式速度快建議把c學好,資料結構學好,再想學什麼都快

6樓:匿名使用者

只有c和彙編可以操作硬體,而彙編沒有c簡單好用;作業系統是硬體與軟體的介面和平臺,需要操作硬體,所以用c。

彙編執行效率最高,c次之,這兩種語言可以操作硬體。彙編和c也用於底層的開發如硬體驅動,數控機床的程式設計;

c++一半用於基於系統的大型軟體開發。

fortran一般用於科學計算,如數學,物理的計算。

java,c#用於基於網路的開發。如**,控制元件等;

visual basic 用於開發 windows 環境下的各類應用程式。如程式介面(api)函式,動態連結庫,物件的連結與嵌入、開放式資料連線等;

重點說一下java,他是唯一程式可以跨平臺執行的程式語言,大到大型系統,小到嵌入式系統(如手機遊戲)都可以看到他的身影。

7樓:匿名使用者

因為 現在來說 還是c的效率最高效 ! 也就是說除了彙編 最高效的程式設計就是c 你可能會問 為什麼不用匯編呢 因為彙編的可移植性是非常那個的!

作業系統是什麼語言程式設計的,作業系統是用什麼語言編寫的

作業系統多是用程序導向的語言編寫的 微軟是 vb 另外c 是現行的工業標準可以使用,c 是下一代的工業標準而且目前是最強的語言了,可以使用 windows是vb 作業系統是用什麼語言編寫的 微核心系bai 統從概念du上是指 只包括作業系統的 zhi基本功能 dao,例如記憶體管內理和程序管理等容等...

現在都有什麼主流的作業系統

最主流的都被你說了 基本上就這三個 蘋果這個系統基本上只能在蘋果機上裝 windows相容性最好 現在一般都搞windows 7linux相容性優於蘋果 但比windows差linux版本眾多 在中國主要用的有小紅帽 紅旗 suse ubuntu 我個人認為這裡面以ubuntu最易用 單論原始安裝的...

現在筆記本用的比較好的作業系統是什麼系統

理論上說用xp好,但是有一些筆記本沒有xp的驅動,只能從網上找合適的驅動。不妨先裝xp,實在是照不到xp驅動,就只能裝win7旗艦版了。注意 有的筆記本可以把所有的驅動都裝上,但是可能顯示卡 特別整合和獨立是可以切換的 只能在win7下才能使用獨立的。樓主 看你的配置要是近期買的用win7比較好,因...