Boot-Loader

是否可以在引導載入程序階段本身使用 libc?

  • February 1, 2011

我想在引導載入程序階段使用 libc 提供的一些功能。是否有可能在載入的那個階段獲得它們?

您很可能必須編寫自己想要的函式版本,但在某些情況下,您可以使用 libc 原始碼作為起點。libc 本身的函式是在 UNIX 使用者空間程序的所有假設下編寫的,包括:

  • 核心的存在(或者更具體地說,核心的系統呼叫介面)
  • 平面記憶體模型
  • 動態連結基礎設施(除非靜態連結)

在引導載入程序階段,您沒有這些。相反,(預設情況下,在 Intel 下)您擁有 BIOS、分段記憶體模型、沒有記憶體保護以及機器的完全統治。

printk()這與您在核心程式碼中看到自定義函式而不是相同的原因printf()- libc 所做的假設printf()不適用於核心空間。

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