第二章 预备知识
操作系统是一种程序,它的开发也就是程序的开发。
2.1 开发工具
2.1.1 Borland C3.1及其精简版、
1. Borland C/C++3.1简介
Borland C++3.1(BC3.1)可应用于x86系列平台,配备的软件工具支持C/C++及汇编编程的集成开发和调试。
2. BC3.1精简版
3. BC3.1精简版使用示例
1) 程序代码
2) 编译程序
3) 把程序编译成目标程序(.obj文件)
编译选项:
Ø 指定将源文件编译成目标文件:-c
Ø 指定内存模式:-ms、-mh、-ml
Ø 指定包含文件路径:-Ixxxx
Ø 指定库文件路径:-Lxxxx
4) 把目标文件连接成可执行文件
命令格式:
tlink [选项···] 目标文件夹 [目标文件名···],最终可执行文件名,map文件名,lib文件名,def文件名
2.1.2 多文件程序的编译和连接
1. 多文件程序代码
2. 编译文件(将.c文件编译成.obj文件)
3. 连接成可执行文件
4. 运行
2.2 工程管理工具make及makefile
1. make工具
工程管理器,项目管理器,按照一个用户所编写的脚本文件来对工程项目进行管理。
功能:运行makefile文本文件
2. makefile的结构
程序标号:程序标号1 程序标号2 ···
[Tab]命令集
3. 标号的作用
标号可看作是一个程序段的名称,可在make后用标号指定要执行的程序段。
使用文件名作标号可提高可读性。
4 target的目标作用
使用文件名作标号,该文件名表示的又是该程序段命令集所要生成的文件,叫做“目标”。
目标:生成目标所需要的文件名(依赖文件)
[Tab]命令集
5. make工具对依赖文件时间戳的检查
makefile的目的在于减少重复的编译、连接工作,以便提高程序的开发效率。
执行make时,首先检查目标文件是否存在,若存在,进一步检查该目标所依赖文件的时间戳,只有当依赖文件比现有文件新时,才会执行命令集。
6. 伪目标
7. makefile文件的命名
make –f 文件名
8. makefile中的变量
定义变量:变量名 = 值
引用变量:$(变量名)
2.3 复杂工程项目的管理
2.3.1 批处理文件及makefile的综合使用
批处理文件:可以一次启动一批命令,也可以用鼠标单击的方式来启动。
结合使用批处理文件、makefile和连接文件,可提高程序的开发效率。
2.3.2 复杂工程管理示例
2.4 常用数据结构
2.4.1 程序控制块
操作系统中使用的各种表格是学习操作系统的要点,是因为操作系统的任务之一是对系统中的软件进行管理,实质上也是对程序代码的管理。
从代码上来看,程序控制块(代码控制块)就是一个结构体。
可被管理的代码段的结构:
程序代码块总是要与相应的代码相关联,关联代码的手段是函数指针。
2.4.2 控制块的组织——链表
当被管理代码数量不大且其控制块比较小时,可采用数组的作为程序控制快注册表;当被管理代码数目较大且其控制块较大时,用数组会占用较大的连续内存空间,可采用链表作为程序控制快注册表。
做法:在程序控制块中再添加两个指针成员,一个用来指向前一个控制块,一个用来执行后一个控制块,从而把所有的被管理代码的控制块用链表组织起来。
为提高查询效率,系统常常会为链表再配一个数组,各个元素存储了各个链表成员的指针。
2.4.3 位图
把计算机的二进制数拆开来按位使用;每个二进制位代表一个信息,用“1”和“0”来表示一个二值信息。