操作系统学习笔记1 | 初识操作系统

本文是操作系统学习笔记的第一部分,介绍了操作系统的概念、计算机工作原理以及开机过程。通过对bootsect.s和setup.s代码的理解,揭示了开机过程中操作系统如何加载到内存并初始化。此外,还探讨了内存管理、保护模式的进入以及硬件初始化的重要性。
摘要由CSDN通过智能技术生成

🚀 优质资源分享 🚀

学习路线指引(点击解锁) 知识定位 人群定位
🧡 Python实战微信订餐小程序 🧡 进阶级 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。
💛Python量化交易实战💛 入门级 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统

本部分主要记录了计算机开机过程中操作系统的工作流程,并以此理解操作系统的代码结构。

参考资料:


1. 什么是操作系统

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

管理的硬件:

  • CPU管理、内存管理
  • 终端管理、磁盘管理
  • 文件管理、网络管理
  • 电源管理、多核管理

而组成一个操作系统最基本的是前五个。

学习操作系统可以有很多层次:

大部分人停留在第一层,即使用操作系统的接口。而计算机专业学生应当能够掌控计算机系统,真正理解操作系统的工作原理。

2. 计算机工作原理

探讨一个问题。打开计算机电源后,计算机的开机过程中发生了什么?

这也是实验一的内容。

要了解这个问题,首先要了解计算机的工作原理。

计算机是如何工作的?

首先是 图灵机。之前做过记录:计算机系统3-> 现代计算机基石 | 图灵机理论 - climerecho - 博客园 (cnblogs.com)

但是这样的图灵机还是太菜啦,一个图灵机只能做特定的一件事(因为控制逻辑是写死了的)

通用图灵机 可以看碟下菜,成为大厨。纸带上对控制器的控制逻辑进行编码,而控制器识别这样的编码,就能够完成我们需要执行的操作。

通用图灵机的功能就已经很像一个应用程序(程序)了。

接下来的冯诺依曼 存储程序 思想,将程序存入内存,按照需求将程序载入CPU(上图中的控制器)进行解释执行。

经典的 “取值执行”。

这样一个计算机就算搭建完成了,就像是大厨能够按照客人需求选择菜谱进行烹饪。

3. 开机过程理解

再回到开机过程的理解,计算机的工作归结于 “取指执行”,而所有的程序(包括操作系统),在开机前都放在磁盘上,如何取指执行呢?

  • 打开电源,计算机执行的第一句指令是什么?即第一条指令对应的PC寄存器里的地址是多少?

以×86 PC 为例,

  • 刚开机,会执行 BIOS 中的代码

BIOS,ROM BIOS映射区,是Basic Input Output System 的缩写。意思是计算机的内存里总要有一个基本的输入输出程序,否则内存空白一片,就无法开启冯诺依曼的"取值执行"。

  • 而这段代码固化在 0xFFFF0 处
  • 开机时,CS = 0xFFFF, IP= 0x0000

和保护模式对应,实模式的寻址CS:IP(CS左移4位+IP),这样 CS << 4 + IP 就正好是 0xFFFF0,正是内存刚上电时唯一有代码的地方,接着进行取值执行。

  • 这段代码主要用于 检查 RAM,键盘,显示器,软硬磁盘

如果这段代码过不去,表示硬件出问题了。

  • 将磁盘0磁道0扇区读入内存0x7c00

1扇区 512字节

0磁道0扇区就正是操作系统的引导扇区,这个扇区中存放操作系统的第一段代码

开机时按住相关热键(不同设备不同)即可进入启动设备设置界面(俗称BIOS界面),可以设置为光盘启动,也可以从U盘等设备进入某个操作系统。

启动时设备信息被设置在 CMOS 中,CMOS是互补金属氧化物半导体64~128B,用来存储实时钟和硬件配置信息。

  • 设置 CS=0x07c0, ip=0x0000,进行实模式寻址后跳到引导扇区的代
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值