摘要:
你好,我是LMOS。 经过前面那么多课程的准备,现在我们距离把我们自己操作系统跑起来,已经是一步之遥了。现在,你是不是很兴奋,很激动?有这些情绪说明你是喜欢这门课程的。 接下来的三节课,我们会一起完成一个壮举,从GRUB老大哥手中接过权柄,让计算机回归到我们的革命路线上来,为我们之后的开发自己的操作 阅读全文
摘要:
你好,我是LMOS。 上节课,我们学习了解决数据同步问题的思路与方法。Linux作为成熟的操作系统内核,当然也有很多数据同步的机制,它也有原子变量、开启和关闭中断、自旋锁、信号量。 那今天我们就来探讨一下这些机制在Linux中的实现。看看Linux的实现和前面我们自己的实现有什么区别,以及Linux 阅读全文
摘要:
你好,我是LMOS。 我们在前面的课程中探索了,开发操作系统要了解的最核心的硬件——CPU、MMU、Cache、内存,知道了它们的工作原理。在程序运行中,它们起到了至关重要的作用。 在开发我们自己的操作系统以前,还不能一开始就把机器跑起来,而是先要弄清楚数据同步的问题。如果不解决掉数据同步的问题,后 阅读全文
摘要:
你好,我是LMOS。 在前面的课程里,我们已经知道了CPU是如何执行程序的,也研究了程序的地址空间,这里我们终于到了程序的存放地点——内存。 你知道什么是Cache吗?在你心中,真实的内存又是什么样子呢?今天我们就来重新认识一下Cache和内存,这对我们利用Cache写出高性能的程序代码和实现操作系 阅读全文
摘要:
你好,我是LMOS。 从前面的课程我们得知,CPU执行程序、处理数据都要和内存打交道,这个打交道的方式就是内存地址。 读取指令、读写数据都需要首先告诉内存芯片:hi,内存老哥请你把0x10000地址处的数据交给我……hi,内存老哥,我已经计算完成,请让我把结果写回0x200000地址的空间。这些地址 阅读全文
摘要:
你好,我是LMOS。 我们在前面已经设计了我们的OS架构,你也许正在考虑怎么写代码实现它。恕我直言,现在我们还有很多东西没搞清楚。 由于OS内核直接运行在硬件之上,所以我们要对运行我们代码的硬件平台有一定的了解。接下来,我会通过三节课,带你搞懂硬件平台的关键内容。 今天我们先来学习CPU的工作模式, 阅读全文
摘要:
你好,我是LMOS。 什么?你想成为计算机黑客? 梦想坐在计算机前敲敲键盘,银行账号里的数字就会自己往上涨。拜托,估计明天你就该被警察逮捕了。真正的黑客是对计算机技术有近乎极致的追求,而不是干坏事。 下面我就带你认识这样一个计算机黑客,看看他是怎样创造出影响世界的Linux,然后进一步了解一下Lin 阅读全文
摘要:
你好,我是LMOS。 在上节课中,我们写了一个极简的操作系统——Hello OS,并成功运行,直观地感受了一下自己控制计算机的乐趣,或许你正沉浸在这种乐趣之中,但我不得不提醒你赶快从这种快乐中走出来。 因为我们的Hello OS虽然能使计算机运行起来,但其实没有任何实际的功能。 什么?没有实际功能, 阅读全文
摘要:
你好,我是LMOS。 我们知道,在学习许多编程语言一开始的时候,都有一段用其语言编写的经典程序——Hello World。这不过是某一操作系统平台之上的应用程序,却心高气傲地问候世界。 而我们学习操作系统的时候,那么也不妨撇开其它现有的操作系统,基于硬件,写一个最小的操作系统——Hello OS,先 阅读全文
摘要:
你好,我是LMOS。 欢迎来到操作系统第一课。在真正打造操作系统前,有一条必经之路:你知道程序是如何运行的吗? 一个熟练的编程老手只需肉眼看着代码,就能对其运行的过程了如指掌。但对于初学者来说,这常常是很困难的事,这需要好几年的程序开发经验,和在长期的程序开发过程中对编程基本功的积累。 我记得自己最 阅读全文
摘要:
你好,我是宇新,《操作系统实战45讲》的专栏编辑。 除了负责更新课程里的内容,我也一直关注着小伙伴们的留言。这次,终于有机会自己也留一回言了,很开心能用编辑手记的方式,和你聊一聊我的想法。 这门课的独特之处 细心的小伙伴可能发现了,我们的开篇词标题是“为什么要学写一个操作系统?”注意,不只是学操作系 阅读全文