如果你能大概了解下图?这个大概了解操作系统的样子,这是计算机的一些个裸件,了解这些对将来深入学习操作系统,是一个基础。
今天的内容:我们要建立操作系统的一个宏观轮廓
这个有黑色的,一条一条的,这是内存条,这个是什么圆圆的是CPU和风扇,还有硬盘,也就是说哎,这个东西合在一起很显然就是一台计算机是吧。所以这就是一台计算机。
计算机就来解决这样一个实际问题吧:在屏幕上输出hello。在计算机上是怎么做的呢?
在屏幕上怎么输出hello呢?
CPU首先要发一些指令给内存。假设这个内存在300,300这个0x68就是h的acsii码是吧,那么要把h的ascii码(当然还有e的ascii码等等),把这些ascii码放在显示器上,当然就得放到显示器上就是放在显存里,假如当前的显存是777,就是已经显示到这个地方了。所以CPU要发出一条什么指令呢?发出mov这条指令,告诉内存,你把300那个地方的东西取出来,哎,放到777这个显存地址上吧。然后哎,接下来上电执行这条指令总线工作一起合作,哎,就把68输出到显存777了。解释器上呢,就出来一个h。
那么e的工作和刚才是一样的,301内存输出到显存778这个地方,所以输出hello得一个一个一点儿一点儿的。来慢慢的放到显示器上,这就是用计算机来解决这个问题。
但实际工作中可不是这么做的,而是在实际工作中通过调用printf,凭什么让我们能调,而不是直接去操作计算硬件呢?哎,这功劳就来自于这个东西——操作系统,也就是说有了操作系统以后,我们怎么再使用计算机硬件呢?唉,就通过操作系统来使用计算机硬件。
操作系统就是方便我们使用计算机硬件的。给我们使用硬件提供了方便的接口。
什么是操作系统?哎,是计算机硬件和应用之间的一些的软件,来方便我们使用硬件,比如说使用显存,使用显示器。
对操作系统内部非常理解的,这些学生将来具有系统的能力,是吧?具有控制具有控制操作系统能力,具有控制整个计算机系统的能力。具有设计系统的能力。和实现系统能力,这个能力对计算机行业来说是非常重要的。
learn OS by coding them
要知道操作系统背后到底发生了什么?我们要知道大量的代码,我们要阅读大量的代码,要撰写大量的代码。而且不仅要知道代码,还要知道代码背后的原理。要知道原理马上浮现代码,要看到代码懂得背后的原理所在,要在两个方面(代码和原理)来回的切换。所以这课程是对编程能力和抽象能力要求高是吧?就是对问题的理解能力和问题的求解能力都要求非常高。