Operating System Course1-2 half

hello?

屏幕输出“hello”?

计算机通过CPU发出一些指令通过CPU内存总线给CPU内存,CPU内存中把h对应的ASCII码发送,通过总线控制器、PCI总线到图形控制器写入某个显存地址,可以用来显示。依次类推输出hello。

而我们为什么又能用printf("hello")来输出hello?

因为操作系统,操作系统(Linux、Windows等)于应用软件(word、MATLAB等)和计算机硬件(CPU、内存、显存等)之间。操作系统就是相当于对计算机硬件包的一层软件,让应用软件更好、更方便地去操控。简单而言,是计算机硬件和应用之间的一层软件。

应用软件

操作系统

计算机硬件

Partial role:方便使用内存,高效使用硬件(如开多个终端窗口)。

操作系统管理的硬件:CPU、内存、终端、磁盘、文件、网络、电源、多核。

操作系统的学习需要实时在原理与代码之间切换,才能渐渐理解这个“黑匣子”。

At the beginning

Computer Beginning:白纸到图灵机(思路借鉴这个 人=> 笔 => 纸,用带数字的纸带和控制器去实现一个计算模型)

纸带相当于菜谱,控制器相当于厨师。

显然这个控制器就相当于现在的CPU,纸带相当于要载入的应用程序。

Processing:首先,程序放入存储器里,然后用一个指针指向它,然后自动地取址执行,计算机就开始工作了。(“取指执行”)

控制器相当于一个带很多部件的“读写头”,可以读取纸带上任意格子的字符,也可以把字符写入到纸带的格子,含部件比如存储单元(用于存放数据)、控制单元(识别字符是数据还是指令)以及运算单元(执行运算指令)。

比如执行1+1,传入纸带11+的顺序(例子而已,指的是字符串,实际没有这么简单的传送),那么有控制单元识别,在存储单元存放2个1,读取到运算符+后,然后由运算单元计算。

从图灵机到计算机,是基于冯-诺依曼的存储程序思想,将程序和数据存入计算机内部的存储器中,计算机在程序的控制下一步一步处理。

计算机五大组成部件:输入设备、输出设备、存储器、运算器、控制器。

打开电源,执行的第一条指令是?

由硬件设计者决定的,指针IP会寻址到ROM BLOS映射区(刚开始唯一有代码的地方),只有有代码才能取指执行,不然一片空白,无法执行操作系统。

【BLOS Base Input Output System】

以x86 PC为例

  1. 刚开机CPU处于实模式(寻址为CS:IP,CS左移4位+IP)

  1. 开机时,CS=0xFFFF;IP=0x0000

  1. 寻址0xFFFF0(ROM BLOS映射区)

  1. 检查RAM、键盘、显示器、软硬磁盘(若这一步坏了,说明计算机硬件坏了)

  1. 将磁盘0磁道0扇区读入位置0x7c00(0x7c00存放的代码就是从 磁盘引导扇区 读入的512个字节)

  1. 设置cs=0x07c0,ip=0x0000

引导扇区为启动设备的第一个扇区。启动设备信息就被设置在CMOS(一种存储实时钟和硬件配置信息的半导体)中。因此,硬盘的第一个扇区存放者开机后执行的第一段我们可控制程序。

操作系统的故事从这里开始!

学习参考:

https://www.xiaolincoding.com/

【哈工大】操作系统 李治军

猜你喜欢

转载自blog.csdn.net/lxd_max/article/details/128832317