课题 1:如何学习操作系统
1. 在没有操作系统的年代,人们如何编程?
程序员每做一个程序也许需要自己分配管理内存,不但需要考虑如何高效管理
内存,还要知道如何进行过程跳转等细活,而在不同的 CPU 上,这些细活的实
现方式是不同的。
2. 操作系统是怎样来的?
由于 CPU 系统级要解决的几个问题都是相同的(实现细节上有不同),每
个程序员在编程时都要考虑这几个问题,因此通过将这些程序要解决的相同
的任务给提取出来就形成了操作系统。
3. 操作系统的内核的任务
专门解决早期程序员每次编程都必须要解决的几项系统级任务。
操作系统为应用级编程提供服务,如提供如何内存寻址,如何管理虚拟存储器、
如何进行中断、如何管理磁盘等。
4. 推荐书籍
(1) 国际 CPU 制造商提供的 CPU 文档的系统级编程卷(PS:做单片机程序能
对一个操作系统比较了解)
(2) INTEL 的官方材料
5. 学习方法
操作系统原理有哪几条,要解决哪些任务,通过查看不同 CPU 的系统卷编程手
册,找出其中相同的任务和逻辑自己去总结操作系统是如何做
6. 笔者的学习计划
学 MFC——学 INTEL CPU 的应用级编程——决定从系统级学起——会上
MSDN 英文网站看看有关 MFC 的东西(目的:微软是用系统为所有的应用级
编程提供服务,看看这一套结构是如何构造出来的)——ORACLE 数据库(看
看一个数据结构是什么样的,可不可以嵌到操作系统中去)