《操作系统真相还原》读书笔记九:用c编写内核

用c语言先编写一个死循环 main.c

int main(void) {
   while(1);
   return 0;
}

编译该文件

gcc -c -o main.o main.c

-- Ttext参数表示起始虚拟地址为0xc0001500    -e参数表示程序入口地址
ld main.o -Ttext 0xc0001500 -e main -o kernel.bin

-- 将kernel.bin写入第9个扇区
dd if=/home/truthos/oscode/c5/c/kernel/kernel.bin of=/home/truthos/bochs/hd60M.img bs=512 count=200 seek=9 conv=notrunc



nasm -f elf -o lib/kernel/print.o lib/kernel/print.S
gcc -I lib/kernel/ -c -o kernel/main.o kernel/main.c
ld main.o -Ttext 0xc0001500 -e main -o kernel.bin kernel/main.o lib/kernel/print.o
objdump -S ../kernel/kernel.bin 

查看程序的汇编代码。
在这里插入图片描述

运行bochs虚拟机,程序也执行到了c代码。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值