操作系统实验--30天自制操作系统第6天实验日志

一、实验主要内容

1、内容1:分割源文件
经过前几次的程序编写现在我们的bookpack.c程序已经很长了,所以我们需要就将其进行切割成几个部分以便于后续代码管理,分别是graphic.c、dsctbl.c和bootpack.c三个部分。这三个部分依次是关于画图的处理、以及关于GDT、IDT的处理以及其他部分的处理。
分割源文件的优点和缺点如下:
在这里插入图片描述

分割之后如果graphic.c也想使用naskfunc.nas函数的话,就必须加上void io_out8(int port,int data)函数声明。因为分割之后,编译时程序是不知道有bootpack.c的存在的,虽然这些都已经写在了bootpack.c函数中了。在修改了bootpack.c文件后,也要对Makefile文件进行相应的修改,相应的流程为:
在这里插入图片描述

其中makefile文件的内容与前几天的编译方法一致,增加了如下部分:
在这里插入图片描述

2、内容2:整理Makefile
虽然之前bootpack.c文件已经分割好了,变得简洁了许多,但是相比较而言,Makefile文件却变得十分繁琐亢长。因为有些指令都做的是相同的事情,但如果每次添加源文件都需要增加很多类似的编译规则就会变得很麻烦,因此需要利用一般规则,将雷同的独立的文件生成规则,归纳为一般规则。
在这里插入图片描述
在这里插入图片描述

将以上6个独立的文件生成规则,归纳为两个一般的规则。
在这里插入图片描述

因为Make.exe首先会寻找普通的生成规则,如果没找到,那么就尝试使用一般规则。即使一般规则和普通的生成规则发生冲突,也不会有什么问题。因为这时候,普通生成规则的优先级是要大于一般规则的优先级的。
3、内容3:整理头文件
由于各个源文件都需要重复声明类似于void io_out8这种函数,导致我们的总代码行数增加,如果想要更加精简的话,那么首先就是要将重复的部分删去。然后可以将之前大部分的重复部分全部归纳到bootpack.h文件。
在这里插入图片描述

.h文件大概如图所示。在这个文件中,不仅罗列了函数的定义,还在注释中写明了函数的定义是在哪一个源文件中,这样的话,如果想要修改函数定义的话,只需要看一下该文件就知道函数文件在哪个源文件中。
想要在编译的时候,每个源文件都能够使用相应的函数和变量,只需要在开头加上# include “bootpack.h"即可。当编译器读到这一行时,,就会将这一行替换成所指定文件的内容,然后再进行编译。这样bootpack.h的所有内容就会间接的写到graphic.c中。同理可以在其他文件中增加上这一行。
4、内容4:意犹未尽

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值