2010-11-09 114 views
0

我現在對我的項目有點困惑。我做了一些Google搜索,但無法找到能夠正確解釋我需要知道的答案。我之前發佈了一個不同的問題,對此抱歉,但現在我更加困惑了。引導加載程序函數調用

對不起的重複問題,但通過各種來源閱讀,我越來越困惑,我需要一個具體的路徑,現在。 (太接近截止日期)

我有一個簡單的引導程序(只需打印歡迎到操作系統現在)。遵循一個非常簡單的教程。

我有一個shell代碼,我可以做一個可執行文件/二進制文件(無論是需要的)。

我想從我的bootloader的ASM代碼中調用該shell。我不想在兩者之間加入一個內核。一個小小的研究告訴我,如果我的代碼足夠基本或者某種東西,就可以不使用內核作爲媒介。 (我的shell非常非常基本,現在我們說它列出目錄。)現在我有兩個問題。

1)我是否需要編寫一些鍵盤設備驅動程序才能使其工作? (我希望不是,)如果答案是肯定的,並且存在解決方法,請隨時詳細說明。

2)只是從我的ASM調用exe/binary會工作嗎?就像我的引導程序啓動一個打印的消息,說歡迎使用操作系統。如果我從該ASM代碼調用我的shell,它會直接啓動到shell中,還是我需要更多東西?我錯過了什麼?

回答

0

你的引導程序可以運行任何它想要的東西。通常,它用於啓動操作系統,但沒有理由不能啓動你的shell。

但是,我不知道你的shell是否能勝任這個任務。它對輸入有什麼作用?它會對輸出做什麼?你提到了列表目錄。你的shell是否知道如何讀取硬盤上的文件系統?它知道如何訪問硬盤嗎?

使用操作系統有很多很好的理由。舉一個例子:它提供了所有應用程序所需的通用服務,所以他們不必自己編寫它。像磁盤,USB,鍵盤,視頻和文件系統驅動程序。

當然,BIOS可能會爲您提供對這些組件中的某些組件的最低限度訪問權限。鍵盤I/O可能需要輪詢I/O端口。同樣適用於在文本顯示器上打印字符。我不記得你如何訪問磁盤,但它可能沒有太大的差別。推測這些是在引導加載程序中已經解決的問題。您可能通過檢查您的引導加載程序代碼來將基本操作系統庫一起入侵。