一步步编写操作系统 1 部署工作环境 1
1.1工欲善其事,必先利其器。
如果您覺得操作系統已屬于很底層的東西,我雙手贊成。但是如果您像我之前一樣,覺得底層的東西無法用上層高級的東西來構建,現在可以睜大眼睛好好看看下面要介紹的東西了。
首先,操作系統是軟件。軟件是由編程語言來實現的,即使是編譯器本身,它的開發人員都不愿意用底層語言去構建(GCC是用C語言完成的),只有到萬不得已的時候才會用匯編語言來寫。我們也是一樣,能用省事的方法就不要自找麻煩,如果某位大神能直接寫機器碼,小弟真心懇求與您見上一面,希望您收我為徒,我要當面磕頭拜師。不過話又說回來了,直接寫機器碼也并不是什么明智的做法,畢竟費力不討好,不過毅力還是值得欽佩的。同學們不要被我虔誠的態度誤解為直接寫機器碼是不可能的事,這個能,必須能,寫匯編編譯器的同學做的就是這樣的事,原則上只要按照IA-32指令格式往二進制文件中寫指令,就一定能讓cpu理解自己,能夠直接同cpu對話了…停,趕緊回來,咱們是來寫操作系統的,趕緊進入主題。
1.2我們需要哪些編譯器
C語言雖然不是為設計大型軟件而生,但其卻被用來開發大型軟件。
現代操作系統基本上用c語言再結合匯編語言開發的,所以c語言編譯器,我們選擇的是gcc.而匯編語言編譯器,我們選擇的是nasm。為什么選擇這兩個,首先因為它們都是開源軟件,其次其強大的功能不亞于同類的商業軟件。
1.21世界頂級編譯器GCC
秉著簡單至上的原則,我們在開發過程中,能用簡單的工具就不用復雜的。所以我們的系統,絕大部分是C語言實現的,而且并不需要多么高深的算法及數據結構功底。
另外我們是在linux下開發,所以首先的編譯器就是GCC,基本上沒有人不了解這個大名鼎鼎的開源編譯器了。出于對這個編譯器的膜拜,我還是引用wiki上的介紹:
GCC(GNU Compiler Collection,GNU編譯器套裝),是一套由GNU開發的編程語言編譯器。它是一套以GPL及LGPL許可證所發行的自由軟體,也是GNU計劃的關鍵部分,亦是自由的類Unix及蘋果電腦Mac OS X 操作系統的標準編譯器。 GCC(特別是其中的C語言編譯器)也常被認為是跨平臺編譯器的標準。
GCC是由理查德·馬修·斯托曼在1985年開始的。他首先擴展一個舊有的編譯器,使它能編譯C,這個編譯器一開始是以Pastel語言所寫的。 Pastel是一個不可移植的Pascal語言特殊版,這個編譯器也只能編譯Pastel語言。為了讓自由軟體有一個編譯器,后來此編譯器由斯托曼和Len Tower在1987年[1]以C語言重寫[2]并成為GNU專案的編譯器。 GCC的建立者由自由軟體基金會直接管理[3]。
GCC原名為GNU C語言編譯器(GNU C Compiler),因為它原本只能處理C語言。 GCC很快地擴展,以2011年10月26日釋出的4.6.2版為準,可處理的編程語言有:
好啦,介紹結束,看上去GCC老厲害了,居然可以支持這么多語言。不愧是出自理查德·馬修·斯托曼(Richard Matthew Stallman)之手,只要學過計算機的同學便對此人無人不知,他到底有多厲害呢,看網友對他的評價:“曾獨自一人與一眾lisp黑客高手進行比賽……”好了,多說已無益,簡單的半句話便徹底表達了此人深厚的計算機功力。
回到正題,Linux系統會自帶gcc,如果您的發行版中沒有,可以到官網http://gcc.gnu.org/下載。
?
總結
以上是生活随笔為你收集整理的一步步编写操作系统 1 部署工作环境 1的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网申大额信用卡要多久
- 下一篇: 31个省市的居民谁最能花钱?最新数据公布