很多基础知识自己都不懂,因此想要从Linux-0.12开始从基础学起,这篇博客作为自己的阅读笔记,不定时更新,为方便记录和不曲解原意,本篇博客用中文叙述。

本博客的参考资料为赵炯先生的《Linux内核完全注释 V5.0》

组成部分

Linux 0.12 版本发布于 199 2 年 1 月15 日。在发布时包括以下文件:

1
2
3
4
5
bootimage-0.12.Z - 具有美国键盘代码的压缩启动映像文件;
rootimage-0.12.Z - 以1200kB压缩的根文件系统映像文件;
linux-0.12.tar.Z - 内核源代码文件。大小为130KB,展开后也仅有463KB;
as86.tar.Z - Bruce Evans'二进制执行文件。是16位的汇编程序和装入程序;
INSTALL-0.11 - 更新过的安装信息文件。

bootimage引导启动Image文件,包括磁盘引导扇区代码操作系统加载程序内核执行代码

PC机启动时 ROM BIOS中的程序会把默认启动驱动器上的引导扇区代码和数据读入内存,引导扇区代码负责把操作系统加载程序内核执行代码读入内存,然后把控制权交给操作系统加载程序进一步准备内核初始化操作,最终加载程序把控制权交给内核代码


内核代码若要正常运行需要文件系统支持,rootimage是用于向内核提供最基本支持的根文件系统,包括操作系统最起码的配置文件命令执行程序

UNIX类文件系统主要包括一些规定的目录、配置文件、设备驱动程序、开发程序以及所有其他用户数据或文本文件等。

bootimage+rootimage相当于一张可启动的DOS操作系统盘

as86.tar.Z 是 16 位汇编器 链接程序软件包 。 linux 0.12.tar.Z 是 压缩的 Linux 0.12 内核源代码。
INSTALL 0.11是Linux 0.11 系统的简单安装说明文档,它同样适用于使用0.12内核的Linux系统 。

内核编程语言和环境

as86

汇编命令行的基本格式为:

1
as [选项] -o objfile srcfile

选项用来控制编译过程以产生指定格式和设置的目标文件。

srcfile 是一个文本文件。该文件内容必须是由换行字符结尾的一系列文本行组成。

语句分类:

  1. 只包含空格、制表符、和换行符的空行
  2. 赋值(定义)语句:标识符后跟等号+表达式 例如“BOOTSEG = 0x07C0"
  3. 伪操作符语句:不产生代码,由伪操作码和0个或多个操作数组成
  4. 机器指令语句