《Linux内核完全剖析-基于0.12内核》第四章的简单多任务内核Makefile的注释

赵炯老师的《Linux内核完全剖析-基于0.12内核》第四章的简单多任务内核,也就是不断输出AAAAABBBBB的那个最简单的内核示例,源码部分书中解释的很清楚了,但是如何编译组织文件就要看makefile。现在将其注释如下,如有不当之处,希望大家指教。
# Makefile for the simple example kernel.
#boot.s是用as86和ld86编译链接
#head.s是用gcc,这点与Linux0.12不同

AS86        =as86 -0 -a
LD86        =ld86 -0
AS        =gas
LD        =gld
LDFLAGS        =-s -x -M

all:        Image

Image: boot system
        #dd为Unix标准命令,bs表示一次读写字节数,if=input file,of=outputfile,
        #skip为跳过输入文件的bs开始读取,seek为跳过输出文件的bs处开始写入。
        
        #跳过boot.s的头32个字节,即跳过Minix 二进制首部信息32字节,输入在第一个扇区,即引导扇区512字节

 
      dd bs=32 if=boot of=Image skip=1
        
        #跳过1024(2*512) 字节gcc首部,将剩余复制在第二扇区,即从512字节开始

        dd bs=512 if=system of=Image skip=2 seek=1 
        sync

disk: Image
#Linux下/dev/fd0 是第一个软驱,这条指令将新启动文件Image写入/dev/fd0
        dd bs=8192 if=Image of=/dev/fd0
        sync;sync;sync

head.o: head.s

# > System.map 是为-M选项服务的,表示gld需要将连接映像重定向在System.map文件中
system:        head.o 
        $(LD) $(LDFLAGS) head.o  -o system > System.map

boot:        boot.s
        $(AS86) -o boot.o boot.s
        $(LD86) -s -o boot boot.o

clean:
        rm -f Image System.map core boot *.o system
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值