OS Kernel生成方式

这里有两个文件:head.s 和 main.c

* head.s 是有NASM语言写得32位代码

*main.c 是基于C写得简单程序,没有包含任何库,main函数中只有“return 0”一句。

1、编译:

    nasm -felf32 -o head.o head.s

    gcc -m32 -c -o main.o main.c

2、链接:

    ld -Ttext 0x0 head.o main.o -o system

3、system是elf格式,删除其多余信息:

    objcopy -O binary -R .note -R .comment -S system rawsystem

最后的rawsystem即是最终需要的。


本实验在Debian 7 64位下,gcc的-m32选项强制编译为32位,ld的-Ttext 0x0强制程序入口为0x0.

你可能感兴趣的:(OS Kernel生成方式)