操作系统真象还原 学习笔记19--总结&感悟

selph
selph
发布于 2021-03-05 / 3573 阅读
0
7

操作系统真象还原 学习笔记19--总结&感悟

这是我整理的关于本书的知识结构导图:

操作系统内核

我先介绍下我的情况,这本书《操作系统真象还原》我是从1月开始看的,现在是3月5日,实际上大概花了一个半月的时间吧(我划水的日子有点多),终于学完了,本书对前置知识的要求不是很高,我也不算零基础,算是弱基础吧,也就会写点C语言,会点汇编,就能从头到尾完整跟下来了

本书是我读的第一本操作系统相关的书籍,也是我目前以来阅读的最细的一本书,本书是以实践为主的书籍,理论与实践对半分,这本书从计算机通电开始计算机执行的第一个程序BIOS,到MBR、OBR,再到操作系统内核,再到内核的各个部分,真正的从头开始逐个介绍了操作系统运行的整个流程;

除了原理的讲解之外,还带着读者一步一步实现了一个简易的操作系统,顺着计算机程序运行的顺序,一步一步实现:从实模式到保护模式,到操作系统的各个主要部分:中断、内存管理、文件管理、线程、进程、特权级等

在学习CPU与硬件IO操作的时候,我感觉这玩意有点像单片机与模块之间的通信,计算机和单片机的区别可能就是CPU架构不同,功能不同吧,但用法是一回事;

在学保护模式的时候,让人感慨科学家们为了改进CPU而提出问题和解决问题的过程,这里面的智慧是我一时半会不能理解的,但是这并不妨碍我觉得操作系统是个很伟大的发明;

在开始编写内核的时候,我第一次认识到为什么说C语言要在Linux上学比较好,以前只知道别人说C语言在Linux上学好,但不知道为什么,原来啊,Linux就是用C语言开发的,C语言为什么能直接控制硬件呢,一个不太准确的说法是C语言就是汇编语言的封装,汇编语言实际上就是CPU的指令集,直接控制CPU执行指定指令,C语言在编译成可执行程序的过程中有一步骤就是会先变成汇编语言,所以C语言在控制硬件这里很强大;

在编写驱动程序的时候,我深刻的认识到了硬件是怎么对计算机进行控制的,驱动是对硬件IO的封装,封装好之后,直接调用就能实现对硬件的操作;

在学习进程线程的时候,第一次知道进程和线程是个怎么回事,进程就是个壳,包含独立的虚拟地址空间等资源供线程使用,进程都有个主线程,线程就是程序的执行流;

这样的感想还有很多,这里就不多列举了

当学完最后一章,看着自己跟着书做出来的miniOS,虽然代码都是抄书的,但还是有一种成就感,不是因为我写出了“操作系统”,而是因为我看懂了“操作系统”。

image-20210304023645869

本次学习的目标是以实践的角度,了解和体会操作系统的运行过程和原理,虽然最后还有点小问题没有解决,但首要任务已经完成了。

对于操作系统的学习,我想,我不会止步于此,还有些许疑问等待着我去解答,为此,我还需要看很多的书籍或者网课;但对于本书的学习,已经可以告一段落了,接下来我会把操作系统相关学到的原理单独提取出来存到专门的笔记本里。


2021年,新的一年,新的学习,就以操作系统这本厚达760页的书的学完开始,相信在新的一年里,不会再有什么困难能难倒我了!


回头我会把学习过程中每一章编写的代码,以及运行所需要的文件(硬盘img、配置文件等)都单独打包发到我的github上进行存档:

https://github.com/kn0sky/OS_Study


评论