0、开篇词:为什么要学写一个操作系统你好,我是彭东,网名LMOS,欢迎加入我的专栏,跟我一起开启操作系统的修炼之路。 先来介绍一下我自己。我是Intel 傲腾项目开发者之一,也是《深度探索嵌入式操作系统》这本书的作者。 我曾经为Intel做过内核层面的开发工作,也对Linux、BSD、...2025-12-07操作系统实战45讲
1、程序的运行过程:从代码到机器运行你好,我是LMOS。 欢迎来到操作系统第一课。在真正打造操作系统前,有一条必经之路:你知道程序是如何运行的吗? 一个熟练的编程老手只需肉眼看着代码,就能对其运行的过程了如指掌。但对于初学者来说,这常常是很困难的事,这需要好几年的程序开发经验,和在长期...2025-12-07操作系统实战45讲
2、几行汇编几行C:实现一个最简单的内核你好,我是LMOS。 我们知道,在学习许多编程语言一开始的时候,都有一段用其语言编写的经典程序——Hello World。这不过是某一操作系统平台之上的应用程序,却心高气傲地问候世界。 而我们学习操作系统的时候,那么也不妨撇开其它现有的操作系统,基于...2025-12-07操作系统实战45讲
3、黑盒之中有什么:内核结构与设计你好,我是LMOS。 在上节课中,我们写了一个极简的操作系统——Hello OS,并成功运行,直观地感受了一下自己控制计算机的乐趣,或许你正沉浸在这种乐趣之中,但我不得不提醒你赶快从这种快乐中走出来。 因为我们的Hello OS虽然能使计算机运行起来...2025-12-07操作系统实战45讲
4、震撼的Linux全景图:业界成熟的内核架构长什么样你好,我是LMOS。 什么?你想成为计算机黑客? 梦想坐在计算机前敲敲键盘,银行账号里的数字就会自己往上涨。拜托,估计明天你就该被警察逮捕了。真正的黑客是对计算机技术有近乎极致的追求,而不是干坏事。 下面我就带你认识这样一个计算机黑客,看看他是怎样创...2025-12-07操作系统实战45讲
5、CPU工作模式:执行程序的三种模式你好,我是LMOS。 我们在前面已经设计了我们的OS架构,你也许正在考虑怎么写代码实现它。恕我直言,现在我们还有很多东西没搞清楚。 由于OS内核直接运行在硬件之上,所以我们要对运行我们代码的硬件平台有一定的了解。接下来,我会通过三节课,带你搞懂硬件平...2025-12-07操作系统实战45讲
6、虚幻与真实:程序中的地址如何转换你好,我是LMOS。 从前面的课程我们得知,CPU执行程序、处理数据都要和内存打交道,这个打交道的方式就是内存地址。 读取指令、读写数据都需要首先告诉内存芯片:hi,内存老哥请你把0x10000地址处的数据交给我……hi,内存老哥,我已经计算完成,请...2025-12-07操作系统实战45讲
7、Cache与内存:程序放在哪儿你好,我是LMOS。 在前面的课程里,我们已经知道了CPU是如何执行程序的,也研究了程序的地址空间,这里我们终于到了程序的存放地点——内存。 你知道什么是Cache吗?在你心中,真实的内存又是什么样子呢?今天我们就来重新认识一下Cache和内存,这对...2025-12-07操作系统实战45讲
8、锁:并发操作中,解决数据同步的四种方法你好,我是LMOS。 我们在前面的课程中探索了,开发操作系统要了解的最核心的硬件——CPU、MMU、Cache、内存,知道了它们的工作原理。在程序运行中,它们起到了至关重要的作用。 在开发我们自己的操作系统以前,还不能一开始就把机器跑起来,而是先要弄...2025-12-07操作系统实战45讲
9、瞧一瞧Linux:Linux的自旋锁和信号量如何实现你好,我是LMOS。 上节课,我们学习了解决数据同步问题的思路与方法。Linux作为成熟的操作系统内核,当然也有很多数据同步的机制,它也有原子变量、开启和关闭中断、自旋锁、信号量。 那今天我们就来探讨一下这些机制在Linux中的实现。看看Linux的...2025-12-07操作系统实战45讲