Learn Linux-0.12
很多基础知识自己都不懂,因此想要从Linux-0.12开始从基础学起,这篇博客作为自己的阅读笔记,不定时更新,为方便记录和不曲解原意,本篇博客用中文叙述。
本博客的参考资料为赵炯先生的《Linux内核完全注释 V5.0》
组成部分
Linux 0.12 版本发布于 199 2 年 1 月15 日。在发布时包括以下文件:
1 | bootimage-0.12.Z - 具有美国键盘代码的压缩启动映像文件; |
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
是一个文本文件。该文件内容必须是由换行字符结尾的一系列文本行组成。
语句分类:
- 只包含空格、制表符、和换行符的空行
- 赋值(定义)语句:标识符后跟等号+表达式 例如“BOOTSEG = 0x07C0"
- 伪操作符语句:不产生代码,由伪操作码和0个或多个操作数组成
- 机器指令语句
Author: clickmouse
Link: https://clickmouse.github.io/Learn-Linux0_12/
License: 知识共享署名-非商业性使用 4.0 国际许可协议