L01_什么是操作系统
是计算机硬件和应用之间的一层软件
- 方便我们使用硬件,如使用显存…
- 高效的使用硬件,如开多个终端(窗口)
- 管理哪些硬件
- CPU管理 内存管理 终端管理 磁盘管理 文件管理 ——五基本功能(本课程重点)
- 网络管理 电源管理 多核管理
- 管理哪些硬件
L02_掀开钢琴的盖子
计算机是如何工作的
:::info 计算机是计算模型的实践 ::: 最经典的计算机结构:图灵机
冯·诺伊曼存储程序思想:
:::info
程序和数据放到计算机内部存储器中,计算机在程序的控制下一步步处理
- 程序放在内存中
- 用指针指向他
- 取出指令并执行
-
打开电源,PC执行的第一条指令?
:::info
CS=0xFFFF;IP=0000;
- 0xFFFF0开始的区域为BIOS区,取出该部分的指令进行的是检查硬件完整性
- 将从磁盘0磁道0扇区取出512字节的指令放在0x7c00处(引导扇区)
- CS=0x7C00,IP=0000;
:::
引导扇区是启动设备的第一个扇区
引导扇区代码:bootsect.s
:::info
在上电时,操作系统在硬盘上,因此bootsect的第一个工作便是将操作系统从硬盘上载入到内存里;
:::
:::tips
BOOTSEG = 0x07c0
INITSEG = 0x9000
SETUPSEG = 0x9020
:::
initseg
summary
计算机的基本结构:图灵机&冯·诺依曼结构
- 存储程序
取指执行 :::info bootsect.s的作用
检测读入setup
-
L03_操作系统启动
setup.s
:::info 完成OS启动前的设置 :::
int 0x15:获得扩展内存的大小(内存的管理是操作系统中的重要环节)
- 操作系统移动到0地址开始的空间(之前为何将setup移动的原因,空出足够的空间)
-
保护模式
:::tips
jmpi 0,8
? 应该实际上跳到0地址处
- 但是这里操作放在0X00080
- 传统的寻址空间只有1M(16位机)
- 实际上是从16位模式切换到32位模式;因此开启保护模式然后进入32位模式
-
保护模式下地址翻译
保护模式下的地址翻译:用硬件实现地址翻译(快速)
CS:selector选择子,选择表格中的内容
- 表:gdt global description table;
- gdt表通过setup初始化;
System模块执行
Makefile:控制编译的顺序
system模块中第一部分的代码是head.s
通过控制makefile,可以控制编译顺序,让head.s先进行编译
head.s
head.s执行初始化GDT,IDT表
转到main函数(C函数)
三种汇编
- 16位:as86汇编
- 32位:GNUas汇编
- 内嵌汇编:gcc编译过程中产生的;