OS学习

66 阅读4分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

OS学习

一.计算机的基本认识

计算机

  • 应用软件 Word Matlab...
  • 操作系统 Windows Linux...
  • 计算机硬件 CPU 内存 显存...

称只有计算机硬件的是裸机

操作系统是计算机硬件与应用之间的一层软件;方便我们使用硬件,如使用显存;高效的使用硬件,如开多个终端(窗口)

操作系统管理的硬件

CPU管理 内存管理 终端管理 磁盘管理 文件管理 网络管理 电源管理 多核管理(多CPU服务系统)

操作系统的学习

  • 从应用软件出发“探到操作系统”

    集中在使用计算机的接口上

    使用显示器:printf;使用CPU;fork,使用文件;open、read...

  • 从应用软件出发“进入操作系统”

    一段文字是如何写到磁盘上的...

  • 从硬件出发“设计并实现操作系统”

    给你一个板子,配一个操作系统

要会改CPU管理、改屏幕输出、改系统输出、改内存管理

斯坦福学习操作系统、CMU的方法

实验一:扩展线程实现线程调度
实验二:实现系统调用将整个接口剥掉,添加
实验三:实现虚存管理扩展实现内存管理
实验四:扩展文件系统扩展实现一个文件系统

我们应该穿过APP与OS之间的接口,了解OS与硬件之间的关系才能够深入了解计算机如何将printf实现出来

二.进入计算机的内部

计算机是如何工作的

1.图灵机

相当于一个只会做一道菜的厨师

说到底计算机是一个计算模型,由图灵提出的一种模型。类似于控制器读取纸带上的内容,像数据结构中的“栈”,二控制器中有一个进行运算的逻辑,读取纸带中的内容就会进行相应的操作。

2.通用图灵机

相当于一个能看懂菜谱从而根据菜谱进行菜的开发

在控制器中形成了一套控制逻辑,将动作载入到控制器。如何设置控制器的逻辑,控制器就会如何工作。读进来什么图灵机就能够执行什么图灵机。相当于一个应用程序

3.冯诺依曼存储程序思想

将程序和数据存放到计算机内部的存储器中,通过IP(指令指针/指令寄存器)(PC)指针来执行当前处理的那条指令,然后把这条指令载入进来,即形成了控制指令,他是用来描述控制器如何工作的,计算机在程序的控制下一步一步进行处理。

计算机的核心结构:

计算机的工作原理 :自动进行取址执行,取址执行,取址执行......

计算机模型

要关注指针IP及其指向的内容

对于计算机而言,他的有些内容是固化的

例如x86结构 PC的开机指令内容:
(1)x86 PC刚开机时CPU处于实模型
(2)开机时,CS=0xFFFF;IP=0x0000
(3)寻址0xFFFF0(ROM BIOS映射区)
(4)检查RAM,键盘,显示器,软硬磁盘
(5)将磁盘0磁道0扇区读入0x7c00处(0磁道0扇区是操作系统的引导扇区,也是操作系统上的第一段代码)
(6)设置cs=0x07c0,ip=0x0000

BIOS:基本输入输出系统

和保护模式对应,实模式的寻址CS:IP(CS左移4位+IP),和保护模式不一样。CS和IP和在一起形成一个地址。

一个扇区是512字节

0x7c00处存放的代码

就是从磁盘引导扇区读入的那512个字节

引导扇区就是启动设备的第一个扇区(开机时按住del键即可进入启动设备设置界面,可以设置为光盘启动)

启动设备信息被设置在CMOS中(CMOS:互补金属氧化物半导体。用来存储实时种和硬件配置信息)

引导扇区代码:bootsect.s <s指的是汇编语言>

引导扇区要对代码进行完整、严格的控制

汇编语言对应的是C语言代表的高级语言代码,但是C程序需要编译,利用汇编语言可以直接将指令变成机器指令。

bootsect.s这一段汇编文件将来会变成机器指令,然后机器指令会放到引导扇区上

BOOTSEG = 0x07c0
INITSEG = 0x9000
SETUPSEG = 0x9020

汇编的标号其实就是一个地址