2010-06-04 46 views
0

他們用Windows寫Windows嗎?我不知道,但如果他們這樣做了,突然間又沒有Windows了,他們會用什麼來重新編寫Windows?從頭開始編寫OS內核所需的一系列推薦工具是什麼?

+0

大概相同的窗口,就像明智的你使用gcc和GHC編寫c和Haskell程序一樣。 – 2010-06-04 17:26:28

+1

他們會將它切換到前面板。 – 2010-06-04 17:26:30

回答

2

您的頭銜很有道理。但是你的問題中的第二行很熱鬧......即使我明白你的意思:D我很久以前就有同樣的問題了。

與機器一樣的東西。人們今天使用機器來建立其他機器。如果突然之間沒有機器會怎麼樣呢?......你像從前的工業革命一樣從頭開始。向後退一步,用手工工具製造機器,並從頭開始。我想人們在DOS和DOS下使用編譯器/工具編寫Windows,使用匯編和彙編程序,使用直接機器代碼,等等......

每當你有這個疑問時,想想它是這樣的。你可以用手建立一個工具,使用該工具來製作更好的工具,使用它來製作更好的工具等等。如果在任何時候現有工具發生了某些變化,你就可以從最好的工具開始,甚至是雖然它有點過時了。它是一個非常簡單的概念,它被今天的軟件開發方法論看起來變得複雜。每個(版本)的操作系統只是一個工具。你只需使用最新的一個來構建下一個最好的。

關於所需要的工具 - 本維基是一個奇妙的地方開始,如果你想處理OS開發 - http://wiki.osdev.org/Main_Page

的Visual Studio 2008 Team System中使用的球隊在微軟開發的Visual Studio 2010 Team System中。如果我在視頻中看到的是正確的,他們甚至使用VS的先前版本編寫下一個版本!你的困惑是完全可以理解的......他們稱之爲dogfooding。

+0

是的,標題是真正的問題。 – BigOmega 2010-06-04 18:26:35

0

pico玉米片和gcc - 任何UW CS354愛在那裏?

1

我建議查看OSDev上的資源。這裏有很多信息,無論是在編寫內核時期望的內容,還有如何去做。

然而,通常情況下,大多數複雜的事情是通過引導過程編寫的 - 編寫一個基本工具,使您可以使用基本工具創建更復雜的工具,然後使用複雜的工具創建更多複雜的工具等等。

0

從頭開始 - 我要做的就是建立一個「從機械源讀取到RAM中」的設置,其中源二進制讀入將是可以讀取ROM的引導加載程序。 (即切換開關)然後,引導加載程序將包含驅動程序以讀取來自例如UART(串行端口標準芯片)的電子信號。在串口的另一端,你可能會有一臺電腦,它會發送額外的軟件來做你想做的事情。

這是嵌入式系統的標準問題。最終,通常會發生的一種情況是引導加載程序安裝在ROM芯片中 - CPU定義爲在給定地址處開始讀取ROM - ROM地址包含跳轉到引導加載程序代碼的指令。安裝通信驅動程序(即jtag或串行端口),然後允許外部計算機爲顯示器和/或鍵盤安裝新的設備驅動程序。

0

Windows是一種操作系統而不是語言。他們用C編寫窗口,編譯它的操作系統無關緊要。例如,Windows 1.0是用C語言編寫的,並在DOS平臺上編譯。它並不重要,你編譯它。

就內核而言,大多數現代內核都是使用C創建的。一些關鍵的子程序是以彙編語言編寫的。

相關問題