花 3 天,手写了个操作系统~|极客时间

都说操作系统(简称OS) , 是程序员的三大浪漫之一 , 我们经常会用“灵魂、大脑、内核、基石”等词来形容它 , 足以见得它对计算机而言有多么重要 。 最近 , 我用3天的时间 , 自己写了个操作系统 。
在手写OS的过程中 , 之前遇到的很多和操作系统密切相关的疑难杂症 , 都找到了答案 。 比如:
内存为什么会泄漏、服务进程为什么会dang掉、文件为什么打不开?
MySQL的IO性能还能不能再提升?
网络服务为什么会掉线?模式靠什么技术支撑?
Node.js的I/O模型长什么模样?
花 3 天,手写了个操作系统~|极客时间】除此之外 , 在做高性能服务端编程的时候 , 经常会用到内存、进程、线程、IO相关的知识 。
“学好操作系统 , 能直接解决你在工作中遇到的这些问题” 。 就这一个原因 , 它就已经是每个程序员必须好好修炼的“基本功”了 。
而且我一直认为 , 花大量时间研究OS这些底层知识 , 是很有必要的 , 它就相当于“指数函数” , 虽然短期看不到效果 , 但却是从0到1必然的过程 。
学懂了这些基本功 , 再去琢磨那些被“追捧”的流行技术啊、demo啊 , 都能轻松地理解背后高级的设计 , 理解系统中的性能瓶颈 。
不夸张地说 , 学懂了操作系统 , 同时具备不错的编程能力 , 找工作就很有优势 。 要知道 , 很多在职的工程师其实很多这里面的概念都不懂 , 工作多年 , 还得回来补课 。
操作系统很难 , 有什么学习的“捷径”?
捷径没有 , 心得有一点 。 操作系统需要大量的知识储备 , 除了要理论要体系化 , 更重要的是一定要实践 , 当你真的动手写了一个OS的时候 , 你对操作系统的理解会是质的飞跃 。
但有配套实验完成一个OS的学习资料很少 , 极客时间的《操作系统实战45讲》专栏算一个 , 作者是计算机“鬼才”——彭东 , 这课上线2个月 , 订阅量已经破万了 , 这个结果其实并不意外 , 毕竟 , 国内这类实战课程真的太稀缺了 。
下面是彭东整理的「操作系统核心知识图谱」 , 就出自这个专栏 , 建议先马后看 。
花 3 天,手写了个操作系统~|极客时间
文章图片
操作系统简化知识体系图
关于计算机“鬼才”彭东
彭东非科班出身 , 却凭借惊人的意志和热爱 , 自学微机原理 , 编程语言 , 数据结构与算法 , 翻遍操作系统和硬件层相关书籍 , 独立开发了LMOS操作系统 。
LMOS现在已经发布了8个测试版本 , 是多进程、多线程、多CPU、支持虚拟内存的x86_64体系下的全64位操作系统内核 , 代码量已经有10万多行了 。
不止于此 , 强烈的兴趣促使他又开发了基于Linux的嵌入式操作系统——LMOSEM 。
他还是《深度探索嵌入式操作系统:从零开始设计、架构和开发》的作者 , Intel傲腾项目的关键开发者 。
数十年深入研究操作系统 , 他精通Linux、BSD、SunOS等开源操作系统内核、熟悉Windows的NT内核 , 了解计算机底层技术 , 在编译器 , 数据库等基础架构方面也颇有研究 。
可以说彭东非常了解 , 在操作系统的学习过程中 , 有哪些难点和阻碍 , 会踩哪些坑 。 其实 , 当我知道他要出专栏时 , 非常惊讶 , 早在专栏在上线前 , 我就迫不及待地从运营同学那里要样章来看了 , 确实让我很惊喜 。
总结来说 , 他会带着你 , 一步步实现一个基于x86平台的64位多进程的操作系统——Cosmos , 这真是从0到1 , 手把手教你自制一个操作系统了 , 不仅如此 , 专栏中对于Linux内核也讲解得很透彻 。 听极客时间的运营说这门课马上就要涨价了 , 所以赶紧推荐给大家!