「原创声明:保留所有权利,禁止转载」
今天 2.1 号,开始扫操作系统。
就看 UCB 的 cs162 了,mit 的 6.828 应该更难。162 有现成的视频和作业。偷个懒吧。。。
课程路径:
https://inst.eecs.berkeley.edu/~cs162/sp20/
视频可以在 B 站看,有中文字幕(中文翻译比 cs61c 好)。
2 月开始了,说点自己的体会吧,为什么要学习底层?底层学习的成本很高,挫折感会很强烈,为什么要做吃力不讨好的事情?
学习底层的时间周期比学习一门语言,学习一个开源工具的成本高很多。
学习底层,在实际设计代码的时候,可以从更加底层、抽象的角度思考问题。当然这也需要一定的经验积累和刻意的练习。
综述
操作系统是软硬件之间的桥梁。
操作系统 4 个基础元素:
程序执行过程:
os 中的线程概念:
需要切换的寄存器放在内核寄存器中或者内存中,放在内存中(不放内存说是需要硬件特殊设计)的叫做 TCB(Thread Control Block)
地址空间
因为线程间的信息需要保护(跨进程、跨线程就可以 hack 其他程序了)
这里先用了一个简单的 Base and Bound 方案作为实现:
简单提了一下虚存:
虚存还是看 CS61C 的内容吧。
进程
多线程间通讯比进程间通讯要简单很多。
进程有自己的共享空间,可以被多线程复用。
工作模式:
也就是用户态和内核态。
调用关系:
Unix 架构:
总结:
TesterHome 为用户提供「保留所有权利,禁止转载」的选项。
除非获得原作者的单独授权,任何第三方不得转载标注了「原创声明:保留所有权利,禁止转载」的内容,否则均视为侵权。
具体请参见TesterHome 知识产权保护协议。
暂无回复。