这是一个非常简单的demo性质的操作系统,可以称之为操作系统是因为已经实现了多任务以及任务切换:这可以说是操作系统最核心的功能。

你可以使用bochs模拟器进行测试,这是一个强大的开源x86模拟器,模拟了包括x86处理器、BIOS、存储器和各类硬件外设,还可以进行单步调试。

8086sos运行起来之后,会进行两个任务taskA和taskB的切换,通过键盘中断来进行任务的切换,为什么不实用时钟中断?因为...我没有调通8086模式下的时钟中断(捂脸...),BIOS中断相关的资料实在太少。由于这只是一个简单的demo,而且键盘中断可以达到同样的演示效果,并不影响对系统本质的理解。在实验中按下任意一个按键即可触发键盘中断,中断函数中会执行任务切换的操作。

使用键盘中断触发任务切换

关于汇编的学习教程,推荐王爽的《汇编语言》。8086作为X86处理器系列的 鼻祖,当前全世界运行在所有PC和服务器上的X64,我们依然可以看到8086的影子,其寄存器、寻址方式和8086仍然有着一定的一致性。理解8086对于后续的X86的学习仍然具有相当大的帮助。虽然目前已经几乎没有人会自己写汇编语言了,然而汇编作为计算机体系的最底层,理解汇编,对硬件掌握一定程度的了解,我认为是程序员的基本修养。王爽老师的《汇编语言》思路清晰,内容全面,知识点丰富,推荐大家选择适当的章节进行深入的阅读。

8086一般为DIP40的封装,可以看到有20位的地址总线A0-A19,以及16位的数据总线D0-D15,其中地址总线和数据总线复用在相同的引脚上面。

时至今日,你依然可以在某购物网站买到8086芯片

价格便宜,可以买几片收藏用
8086开发板,已经无人问津,因为实在是太过于古老,且没有太大学习价值

所有资料,包括源码、模拟器、运行脚本

https://github.com/wuxx/8086sos

运行方法

  1. 安装bochs-2.4.5.exe,一路单击下一步即可完成安装
  2. 双击脚本bochsrc.bxrc,即可运行8086sos

如何编译
需要在linux下进行编译

  1. 安装汇编编译器nasm $sudo apt-get install nasm
  2. 在8086sos目录下执行$make 即可编译出镜像kernel.img

视频教程

自己动手写操作系统之8086sos