我是学习OS开发的新手.从我读过的书中,它说启动加载器会将第一个MBR复制到0x7c00,然后从实模式开始.
并且,示例从16位汇编代码开始.但是,当我查看今天的linux内核时,arch/x86/boot有'header.S'和'boot.h',但实际代码是在main.c中实现的.
这似乎对"不编写汇编"很有用.但是,这是如何在Linux中专门完成的?我可以粗略地想象可能有特殊gcc选项和链接策略,但我看不到细节.
gcc
c assembly linux-kernel bootloader x86-16
assembly ×1
bootloader ×1
c ×1
linux-kernel ×1
x86-16 ×1