此系列主要是本人看于渊的《Orange’S: 一个操作系统的实现》中的一些所学和所写的代码
其中部分代码就直接使用了原书中光盘提供的源代码,但也有许多是自己手写的
本系列顺序并不完全按照原书顺序来讲解,会更加贴合现在的实际情况(比如现在基本没人会用DOS了吧)
最后再次感谢于渊所著的《Orange’S: 一个操作系统的实现》的帮助!
前言
本系列目标
自然是学习Intel 32位系列下操作系统的相关知识
你需要
- 一台32位的电脑
- 装有基于Linux内核的图形界面操作系统
- CPU是Intel的
- 16位和32位的汇编知识
- 32位C语言知识
- 一颗热爱学习的心
一个发达的肝脏
关于汇编编译器
本系列的汇编编译器都将使用nasm,原因很多:
- nasm有时写一些东西会方便一些
- 《Orange’S: 一个操作系统的实现》中用的也是nasm
nasm与masm, as以及其它编译器不同之处:
- nasm默认是将程序编译成机器层二进制文件,可以直接由计算机执行(意思是不能由操作系统执行)
- nasm中,没有中括号的标识符全部解释为地址(包括变量!)
x dw 1 mov word[x],5 ; right in nasm mov x,6 ; wrong in nasm
- 其它许多