我正在嘗試首先在模擬器中從頭開始(從 Nor gates)構建 CPU,然后在面包板上。
只是試圖了解事情是如何運作的。
現在,由于我的 CPU 將是新的,我將如何指示作業系統,比如 arch linux 來使用它?
BIOS 將扮演什么角色?我是否必須撰寫一個包含匯編程式的 BIOS?
我是否也需要在作業系統上撰寫一些程式?
因此,它開始與我的 CPU 通信。
[PS]:我是一名程式員,所以非常了解事情是如何移動到匯編級別的。
只是想知道硬體級別在組裝之外是如何作業的。
或者換句話說,第一臺計算機的 BIOS 上寫了什么?
它是如何引導的?
uj5u.com熱心網友回復:
只是試圖了解事情是如何運作的。
事情的運作方式是 CPU 只是系統的一部分。沒有 RAM,它是無用的,沒有某種形式的持久存盤它是無用的,并且沒有某種 IO 與外界通信(例如串行埠),它是無用的。
BIOS 將扮演什么角色?
“BIOS”(或者更準確地說,系統啟動時使用的某種 ROM)扮演著“存盤”的角色——CPU 獲取可執行代碼的一種方式,該代碼是初始化其他存盤設備和加載更多可執行代碼所需的。
對于您的“跨越數百個面包板的 NOR 門”,您可能最終會直接在 ROM 中放置一個非常小的“作業系統”,這樣您就不必擔心提供額外的持久存盤;并且經過大約 10 年的奉獻,您最終可能會看到您的最小作業系統作業 3 次(在厭倦“本周哪條電線連接不良?”持續破損之前)。
對于某些觀點;1 位 RAM 將花費您 4 個 NOR 門,因此區區 512 位元組的 RAM 將花費您 16384 個 NOR 門(更多用于行/列選擇邏輯等)。這適用于超過 4000 個“74LS02 四路二輸入或非門”芯片。如果您可以將 40 個這些芯片裝在一個面包板上,那么您正在查看大約 100 個面包板,但最終卻沒有足夠的 RAM 來運行任何作業系統。
uj5u.com熱心網友回復:
我可以向您推薦“計算結構”系列文章:https ://jeelabs.org/202x/tfoc/
每臺計算機中都會有一些初始代碼,但它的作用完全取決于您!在嵌入式中,“bios”是完整的應用程式。
直接從焊門出發是一條漫長而艱巨的路。我正在 FPGA 上進行 CPU 設計,并且我是一門課程的貢獻者,該課程將您從邏輯的第一步帶到帶有已編譯 C 程式的完整 RISC-V CPU:
https://github.com/BrunoLevy/learn-fpga
祝你好運!使用 FPGA,實際上可以通過定制設計來啟動 Linux:
https://github.com/enjoy-digital/litex
uj5u.com熱心網友回復:
作業系統可以非常簡單——如果您只希望系統啟動并執行一些操作,例如設備和執行緒,但不想要完整作業系統的所有保護和功能。
您真正需要的只是能夠回應中斷并向用戶級軟體發出資料已準備好(緩沖輸入)或設備已準備好的信號,并且反過來說,用戶級軟體可以指示(例如通過系統呼叫)資料它想發送到設備(緩沖輸出)或從它們獲取。這可以通過幾百行匯編來實作一個中斷處理程式,一個迷你作業系統。
但是有許多系統甚至沒有那種復雜程度。一些程式微控制器只運行一個程式,沒有中斷,它們有一個主事件回圈,不斷檢查按鈕按下或其他。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/479740.html
上一篇:為什么這個查詢有0次點擊?
