是否可以在gcc中为ring0生成本机x86代码



我想知道,有没有任何方法可以用gcc生成一些本机x86代码(可以在没有任何操作系统的情况下启动)?

是的,Linux内核使用GCC编译,并在x86上的环0中运行。

这个问题的形式不正确。当然,并非所有从头开始初始化现代CPU所需的指令都可以由gcc单独发出,您需要使用一些程序集。但这有点学术性,因为现代CPU实际上并没有记录所有这些东西,而是希望硬件制造商提供固件来完成这项工作。固件初始化后,现代PC会让你处于一个老式的16位8086环境("传统"BIOS)或一个相当干净的32或64位(取决于你的特定硬件平台)环境中,称为"EFI引导服务"。

EFI模式下的操作都是使用C函数指针完成的,您确实可以使用gcc为这个环境构建。有关使用EFI的优秀示例,请参阅gumbibot引导加载程序。

相关内容

最新更新