Linux

在定制處理器上執行 linux 核心和 Ubuntu

  • May 19, 2017

這幾乎不是一個理論上的問題,因為許多人已經這樣做了,儘管關於底層過程的資訊很少。

我正在開發一個自定義的基於 MIPS 的處理器,我想在其上執行 Ubuntu。在您設計了指令集和電腦體系結構本身之後,我對接下來要做什麼感到很困惑。我需要能夠執行核心和作業系統,但它們是如何联系在一起的?

目前我正在研究為 Linux 核心設計一個編譯器來生成適當的彙編語言。這是一個好方法嗎?之後我需要做什麼?

在架構方面,您需要的不僅僅是指令集和電腦架構。您還需要:

  • 某種形式的 CPU(仿真器、FPGA、晶片……)。
  • 一種啟動處理器的方法:一種將作業系統放入處理器在啟動時執行的記憶體的方法。大多數處理器啟動到儲存在 ROM 中的程式碼,這些程式碼要麼打開某種快閃記憶體並分支到它,要麼將一些程式碼從某些儲存介質載入到 RAM 中並分支到它。下一階段是作業系統引導載入程序。
  • 一些外圍設備——至少是 RAM、某種儲存控制器和一些輸入/輸出設備。

在軟體方面,您將需要:

  • 一個編譯器。由於您使用的是 MIPS 架構,因此任何現有的針對 MIPS 的編譯器都應該足夠了。如果您的指令集擴展了基本的 MIPS 指令集(例如使用額外的寄存器),您可能需要相應地擴展彙程式序。
  • 一個核心。適用於 MIPS 的 Linux 已經存在。您必須添加對您在架構中自定義的內容的支持:引導、MMU、……
  • 司機。您需要為所有沒有現成的電腦體系結構編寫驅動程序。
  • 引導載入程序。引導載入程序中通常有一些非常特定於體系結構的東西,但您可能可以向現有引導載入程序添加必要的支持,例如通過向U-Boot添加機器定義。
  • 這就是全部。一旦你有了核心和引導載入程序,使用者態程序應該就可以工作了。從現有發行版中修補核心和引導載入程序,在您的 PC 上交叉編譯並安裝。Ubuntu 不支持 MIPS,但Debian支持(mips 或 mipsel取決於字節序)。

引用自:https://unix.stackexchange.com/questions/56550