Boot-Loader
是否可以在引導載入程序階段本身使用 libc?
我想在引導載入程序階段使用 libc 提供的一些功能。是否有可能在載入的那個階段獲得它們?
您很可能必須編寫自己想要的函式版本,但在某些情況下,您可以使用 libc 原始碼作為起點。libc 本身的函式是在 UNIX 使用者空間程序的所有假設下編寫的,包括:
- 核心的存在(或者更具體地說,核心的系統呼叫介面)
- 平面記憶體模型
- 動態連結基礎設施(除非靜態連結)
在引導載入程序階段,您沒有這些。相反,(預設情況下,在 Intel 下)您擁有 BIOS、分段記憶體模型、沒有記憶體保護以及機器的完全統治。
printk()
這與您在核心程式碼中看到自定義函式而不是相同的原因printf()
- libc 所做的假設printf()
不適用於核心空間。