《30天自制操作系统》笔记(13)——总结
进度回顾
上一篇介绍了操作系统实现多任务的方法。操作系统利用CPU的far模式的JMP指令、寄存器TR、GDT、TSS和PIT中断这些功能实现了多任务,可见CPU在设计时就考虑到了计算机要具有多任务处理的能力。也就是说,CPU、PIC等硬件支持什么功能,操作系统才能实现什么功能。
至此全书已经读了一半。我发现后半部分读不下去,也没必要再读了。本篇就对所有的笔记做一总结,至此《30天自制操作系统》这本书就暂且不读了。
所学所感
我们可以把CLR虚拟机(或者JVM)看做计算机。当用户双击一个保存了MSIL的exe文件,这个计算机能够加载exe文件,并执行其中的代码。
类似的,当用户按下开机按钮,物理机能够加载BIOS指定的程序代码,并执行之。硬件电路就是这么设计好的。
计算机自动加载的程序只有512字节,不够用来放OS程序。所以这512字节的程序就用来装载真正的OS程序到内存某处,然后JMP到该处执行OS程序。
硬件电路提供了寄存器若干、加减乘除、中断机制、定时器、内存段属性、任务切换等功能。OS程序利用CALL、RET等实现了函数的概念;利用中断机制实现了基于事件的编程;利用定时器、内存段、任务切换实现了多任务OS;利用内存段属性实现了保护OS的功能;利用一般保护性异常中断实现了抛出异常的功能。
充分了解CPU,充分了解汇编语言,就具有了制作OS的基础。
下一步
最初看《30天自制操作系统》,就是为了弄清楚多任务是如何实现的。现在心里已经清楚了。
下一步,要看《Object-oriented Programming with ANSI-C》,结合我之前的研究,做一个面向对象的C语言规范检查器。
《30天自制操作系统》笔记(13)——总结
时间: 2024-10-09 09:49:34