潍坊市论坛

首页 » 分类 » 问答 » 计算机科班学习OS的正确姿势
TUhjnbcbe - 2021/4/1 3:00:00
北京有治疗白癜风专业医院         http://baidianfeng.39.net/bdfby/yqyy/

大家好,我是小北。

今天单独讨论下,如何学习操作系统这个话题。

操作系统发展到今天,已经非常复杂了,像Windows、Linux任意一个都是几千万行代码级别,想靠个人完全搞懂,几乎是不可能的了。

所以需要先明确一下我们学习的目的,不同的学习目的,适用不同的方法,这里我仅仅列一下作为一名开发人员,我们掌握OS的几种目标:

第一种:

知晓OS基本概念:看在线课程原理部分的视频或者看《现代操作系统》之类的书,可大致知道OS的概念;

第二种:

理解OS基本原理:在1的基础上,完成与OS相关的课程练习题,可进一步理解OS基本原理,练习题可以参考学堂在线清华OS课程的练习题:

第三种:

掌握OS部分核心功能实现(细节):在2的基础上,能够通过编程完成类似xv6的几个lab,

比如xv6就会涉及以下模块:

BootingaPCMemoryManagementMultitaskingFilesystem,SpawnandShellNetworkDriver

每个模块代码量都不会很多,但是麻雀虽小,五脏俱全,通过自己动手实现thread、spinlock、semaphore这些东西,会让你理解更加深刻。

当然,在往上走就是去研究最新LinuxKernel,研究一些子模块了,有些还需要阅读最新的System领域论文。

最新的LinuxKernel里有很多新的算法、研究结果不断的加入。

当然,这就超出了我所能掌握的范畴了哈哈。

不过说实话,如果你还在校大二大三,我真的墙裂建议你去做一些国外的计算机lab,比如OS、Network。

等到毕业了,几乎就不太可能从头开始系统学习那些基础知识了,除非你能自己闭关两三年,啥也不做,待在一个地方专心修炼。

好好珍惜在学校大把的空闲时间,做一些让在专业上让自己受益一生的事情。

这里我可以列举几个,国内不少喜欢System的同学都会去跟MIT、CMU、UCB这些计算机名校的课程。

比如MIT的6.DistributedSystem、6.DatabaseSystems、MIT6.OperatingSystemEngineering.....

xv6

6.就是今天要介绍的主角:

MIT6.:OperatingSystemEngineering

1
查看完整版本: 计算机科班学习OS的正确姿势