2012-02-24 46 views
0

我期待構建一個操作系統。我知道它需要的工作量,並沒有把它當作某種笑話,因爲大多數致力於該主題的網站的初學者部分都假設了這一點。我只是想知道,我需要知道哪些語言,因爲所有維基和網站的信息都不一樣。有人說只是C或C++,有人說是C,Pascal等等的組合。所有可以肯定的是,組裝是必要的。需要什麼語言?特定CPU的功能打交道時,例如切換權限級別或安裝頁表時,實際上是需要建立操作系統所需的語言

+0

隨着生活中的一切越多,你越瞭解你越好:) 我認爲彙編和C就足夠了,但讓導師在這裏回答它,希望以認真的態度 – 0x90 2012-02-24 23:17:10

回答

2

大會。

其餘的可以用任何合理的低層次的語言,能夠操縱指針。 C本身就足夠了。 Linux是用C編寫的,有一些程序集(沒有C++)。我想帕斯卡爾會做的伎倆太,儘管它可能是比C

1

有點不太方便,我認爲它真的只是一個偏好的問題。你顯然需要彙編,但除此之外,你只需要一個編譯爲本地代碼的低級語言。 C可能是最好的,但是根據你的代碼結構,你可能會發現C++也會有幫助。至於Pascal,我相信這在技術上是可行的,但是你可能會發現你的選擇受到嚴格限制,因爲Pascal在很長一段時間內還沒有被普遍使用(比較SO用Pascal標記420個問題,而C用超過50,000個問題) 。

1

您可以使用編譯爲一個足夠低的水平二進制,想必任何語言。 Java和其他解釋性語言都出來了,但除此之外,它是設計師的選擇...

2
上裝配是必須的實際上是迅速消失

完整。對於大多數系統來說,這將是必須的,但隨着UEFI的發展,可以擺脫直裝配,並且可以做一些小的內聯裝配,而且它可以正常工作。另外,如果你不寫你自己的引導程序,你也可以減少很多程序集。

所有這一切拋開,將需要C或其他一些低層次的語言。特別是操縱指針。 C++是可能的,但由於語言特性可能需要你做一些細緻的工作,即例外。詳情請參閱here。這類問題的一個很好的資源是osdev.org。在我看來,這link給你最好的答案。