看内核已经很久时间了,不过以前都是在看点零碎的东西,这次决定开始好好看看内核是如何实现的了。
今天是bootsect
2.6中bootsect.S 被分成了好几个部分,让人很是弄不明白,所以决定从以前版本-2.4的内核入手看看内核是如何引导的。
完成bios加载后,bios程序会自动读取引导扇区中的内荣,引导扇区的容量为512byte,根据Makefile中的描述,bootsect是这样被编译的
gcc -E -cpp $@ -o $< #先对bootsect.S进行预编译
as $@ -O $< #进行常规的编译
ld -Ttext 0x0 --oformat binary -s $@ -o $< #进行链接,连接中的几个具体的参数有待明了,但具体就是如此了。
然后是对head.S 和video.S 进行编译
对他们的编译和对bootsect的编译有所不同,首先将head和video合并为一个大的汇编文件
然后再利用和上面的一样的makefile代码进行编译就可得到一个可以使用的所谓的loader了。