4、linux0.00中的makefile文件说明

# Makefile for the simple example kernel.
#汇编语言的编译器其中参数-0表示以16位代码段运行,-a表示使汇编程序部分兼容于Minix asld.交换了[]与()的用法
AS86	=as86 -0 -a	
#汇编语言的链接器,-0表示以16位代码段运行
LD86	=ld86 -0
#linux平台上的汇编语言的编译器
AS	=gas
#linux平台上的汇编语言的链接器
LD	=gld
#-M表示打印一个连接位图到标准输出.比如生成的.map文件,一个连接位图提供的关于连接的信息有如下一些: 
#目标文件和符号被映射到内存的哪些地方
#普通符号如何被分配空间. 
#所有被连接进来的档案文件,还有导致档案文件被包含进来的那个符号. 
#-s表示忽略输出文件中所有的符号信息
#-x表示删除本地的所有符号
LDFLAGS	=-s -x -M

#当执行make时就会首先执行all后边的内容Image,那么make就会自动跳到Image标签处继续执行
all:	Image

#当执行到Image就会先执行boot,然后执行system,将boot文件开头的1个块后拷贝32个字节到Image,然后将system文件开头的第2个块后拷贝512个字节到Image第1个块后开始复制
#skip表示从输入文件(boot)开头跳过1个块后(32个字节)再开始复制,也就是将boot的第2个块开始复制32个字节到Image开头处
#seek表示从输出文件跳过1个块之后再开始复制
Image: boot system
	dd bs=32 if=boot of=Image skip=1
	dd bs=512 if=system of=Image skip=2 seek=1
	sync
#dd表示指定大小块的拷贝一个文件,bs表示同时设置输入/输出大小为8192个字节也就是1个块位8192个字节,if=表示指定要拷贝的文件,缺省为标准输入,of=表示指定拷贝到的目标位置,默认为标准输出
#在此处/dev/fd0表示的是第一个软驱,也就是启动盘
disk: Image
	dd bs=8192 if=Image of=/dev/fd0
	sync;sync;sync

#编译head.s文件,此文件主要是显示屏幕上的字母信息
head.o: head.s

#当执行到system时就会去执行head.o标签处,然后使用gas编译head.s生成head.o文件,然后使用链接器生成system文件
system:	head.o 
	$(LD) $(LDFLAGS) head.o  -o system > System.map

#当执行到boot时,就会开始编译boot.s,然后使用汇编编译器生成boot.o文件,然后使用汇编链接生成boot文件,此文件主要是引导文件
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值