操作系統c語言
⑴ 如何用c語言編寫簡單的操作系統
C語言當然是可以寫操作系統的,但是操作系統的編寫一般都不僅僅只是用C語言編寫的。
寫操作系統需要編程語言提供以下幾個特徵:
1、跨平台,不能是只在某個平台下編譯(VB就不行);
2、必須是編譯型語言(PHP就不行),或者有一個非常高效的解釋器;
3、必須有方便的操作硬體的功能,容易嵌入匯編(java就不行);
4、兼容性要好,最好不同編譯器編譯的符號要基本相同,容易鏈接(C++不行,如果放棄Class的話C++基本可以);
5、編譯器本身最好是由該語言自己完成的(大部分語言的編譯器都是用C/C++寫的);
6、開發者可以很方便的擴展、改造、或者使用第三方的運行庫(大部分語言的庫都無法修改);
7、開發者眾多(小眾語言就不行);
8、該語言開發操作系統的資料要足夠完善。
所以總結下來,C語言是首選。
⑵ c語言的操作系統是什麼
c語言是一種編程語言。 跟操作系統沒有任何關系。
沒有所謂的c語言的操作系統說法。
如果你指哪些操作系統是用c語言開發的,那麼 windows,linux,mac等都用了c語言開發他們的操作系統。
c語言知識一個語言,用於編程,指示計算機處理器如何工作,處理數據等。你可以用c語言,也可以用其他很多語言。
操作系統是一個大型軟體,軟體本身管理計算機系統的各種資源:cpu,內存,各種設備,文件,進程線程調度等。 這個軟體本身可以用c語言來寫,也可以用其他語言來寫出來。
⑶ 手機操作系統用什麼語言編的是C語言嗎
不同的手機操作系統是基於不同的編程語言開發的。
⑷ 為什麼現在的操作系統基本上用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++寫的驅動,也算是屬於操作系統的一部分吧。
⑸ c語言怎樣編寫操作系統
用c語言是可以編操作系統的,像unix就是用c語言編寫出來的,不過沒有對c語言深入研究的人是編不出來的
如果想編個軟體的話,建議學面向對象的編程語言,比如c#,java
這種語言比較接近自然語言,寫程序比較容易,學起來也比較簡單
⑹ c語言在各個操作系統語法一樣嗎
linux下的C語言編程與windows下的C語言編程從語法上看沒有區別,
但是C語言是有標準的,叫做C語言的必須符合國際標准。區別在於Windows通過頭文件windows.h提供的Windows API函數,而Linux則提供了它自己的函數。
基本的C庫函數,如stdio.h,string.h等也是標准化的,所有C編譯器都必須提供這些函數,典型的如printf, strcpy等。
問題是在於,如果你要調用系統功能,比如在Windows下,則必須通過Windows API來實現,因此,這部分代碼就不會和Linux下兼容。
⑺ C語言如何自製操作系統
用obj做成二進制,格式是:obj -I elf格式 -S -R ".eh_frame" -R ".comment" -O binary elf文件 最終的二進制文件.例如: obj -I elf32-i386 -S -R ".eh_frame" -R ".comment" -O binary a.obj a.bin
⑻ Linux操作系統中默認安裝的C語言編譯系統是
Linux操作系統中默認安裝的C語言編譯系統是GCC(GNU Compiler Collection),是Linux下最常用的C語言編譯器,是GNU項目中符合ANSI,C標準的編譯系統,能夠編譯用C、Object C等語言編寫的程序。
同時它可以通過不同的前端模塊來支持各種語言,如Java、Fortran、Pascal、Mola,3和Ada等。
C語言的標准
1.1 K,RC
1973年,Dennis M Ritchie設計和實現了C語言,從那以後使用者逐漸增加。
1978年,Kernighan 和 Ritchie 合著了《The C Programming Language》,這本書定義的C語言被稱為 K,RC 。
1.2 標准 C
隨著C語言使用日益廣泛,出現了許多新問題,人們迫切希望對C語言進行標准化。
第一個標准:C89
1983年,ANSI成立了一個委員會X3J11,對C語言進行標准化。
1989年,ANSI 批准了第一個C語言標准 X3,159-1989,並於1990年公布,被稱為 ANSIC、C89 或 C90。
1990年,這個標准又被批准為ISO標准:ISO,IEC 9899:1990 。
ANSIC標准被ISO採納,並且ISO發布的修訂版也被ANSI採納,因此ANSI標准和ISO標准實際上沒有技術區別。這些名稱的含義是相同的:ANSI C、ISO C、標准C。
1994年和1996年,ISO發布了兩個技術更正,更正了1990ISOC標准中的錯誤。
第二個標准:C94
1995年,ISO發布了1990ISOC標準的一個補充,稱為AMD1。擴充後的標准被稱為C94或C95。
第三個標准:C99
1999年,ISO發布了一個新版本的ISOC標准:ISO,IEC9899:1999,稱為C99。
2001年、2004年和2007年,ISO發布了三個技術更正,更正了1999ISOC標准中的錯誤。
第四個標准:C11
2011年,ISO發布了一個新版本的ISOC標准:ISO,IEC9899:2011,稱為C11。C11 是 C語言的最新標准。
1.3 GNUC
1984年,Richard Stallman 發起了GNU計劃,它的目標是開發一個完整且自由的Unix-like操作系統(GNU系統)。
GNU系統是一個完整的操作系統,包括操作系統內核和各種工具軟體。各種GNU系統的變種(例如Redhat、Ubuntu等)已經被廣泛使用,它們使用的操作系統內核都是Linux。雖然這些系統經常被稱為Linux,但准確地說,它們是GNU/Linux系統。
GNU在編寫Linux時擴展了標准C,稱為GNUC。
GNU C的擴展詳見:Extensions to the C Language Family
GNU C也稱為Linux C,一般用於Linux上的開發,而標准C可以跨平台。
GNU C使用的編譯器是GCC。
⑼ 哪些操作系統是用C語言編寫的
Unix某個版本是用C語言編寫的,在C語言使用之前,用的是匯編
Windows傳聞80%是用C語言編寫的,也有部分是C和匯編混編的
據說Windows2000以後大多是用C++編寫的
Linux是用C語言編寫的,它的代碼是公開的,可以去看看,看懂了基本就無敵了
Mac
OS至今還不清楚,應該不會脫離C/C++吧,用匯編不知道要編到猴年馬月去了,其它高級語言又不能進行底層操作,C/C++相對於其它高級語言來說,最合適了,當然肯定不及匯編了
⑽ 用C語言可以寫操作系統嗎
C語言當然是可以寫操作系統的,但是操作系統的編寫一般都不僅僅只是用C語言編寫的。
寫操作系統需要編程語言提供以下幾個特徵:
1、跨平台,不能是只在某個平台下編譯(VB就不行);
2、必須是編譯型語言(PHP就不行),或者有一個非常高效的解釋器;
3、必須有方便的操作硬體的功能,容易嵌入匯編(Java就不行);
4、兼容性要好,最好不同編譯器編譯的符號要基本相同,容易鏈接(C++不行,如果放棄Class的話C++基本可以);
5、編譯器本身最好是由該語言自己完成的(大部分語言的編譯器都是用C/C++寫的);
6、開發者可以很方便的擴展、改造、或者使用第三方的運行庫(大部分語言的庫都無法修改);
7、開發者眾多(小眾語言就不行);
8、該語言開發操作系統的資料要足夠完善。
所以總結下來,C語言是首選。