操作系统系列笔记(一) - 启动,中断,异常,系统调用

操作系统概述

什么是操作系统

操作系统是一个控制程序, 一个系统软件, 控制程序执行过程, 给用户提供各种服务, 方便用户使用计算机系统
操作系统是一个资源管理器, 应用程序与硬件之间的中间层, 管理软硬件资源, 提供访问软硬件手段, 解决资源访问冲突
操作系统软件的组成, Shell, GUI, Kernel

操作系统内核的特征

并发: 系统中同时存在多个运行的程序, 需要管理和调度
共享: 宏观上"同时"访问, 微观上互斥共享
虚拟: 利用多道程序设计技术, 让用户感觉不到其他用户
异步: 程序是走走停停的; 只要运行环境相同, 运行结果也要相同

启动, 中断, 异常和系统调用

启动

CPU通过总线连接I/O设备和内存
内存分为RAM(随机访问存储)和ROM(只读存储), 系统加电后会从ROM读取系统初始化代码
CPU完成初始化后处于实模式下, 地址总线只有20位可用, 所以内存地址640KB到1M之间为BIOS启动固件
BIOS具备的功能有: 基本输入输出, 系统设置信息, 开机自检, 系统自启动程序
BIOS初始化完成以后, 从磁盘读引导扇区, 长度只有512字节, 放到指定地址, 并跳转过去
然后开始执行加载程序, 将操作系统代码和数据从硬盘加载到内存, 并跳转到操作系统的起始地址, 交出控制权给内核程序

系统启动流程

加电后读BIOS, BIOS读主引导记录, 主引导记录读取活动分区, 活动分区读加载程序, 加载程序读内核映像
BIOS初始化过程
硬件自检(Power On Self Test, POST), 执行系统BIOS进行系统检测, 更新CMOS芯片中的扩展系统配置数据ESCD(Extended System Configuration Data), 按指定启动顺序从软/硬盘或光驱启动, 读进第一个扇区
主引导记录MBR(Master Boot Record)格式, 包括: 启动代码(检查分区表正确性, 加载并跳转到磁盘上的引导程序), 硬盘分区表, 结束标志字, 然后跳到活动分区的引导扇区上
分区引导扇区格式包括, 跳转指令, 文件卷头, 启动代码, 结束标志
加载程序(bootloader), 从文件系统读一个启动配置文件, 依据配置去加载内核

中断, 异常和系统调用

计算机运行中, 内核是被信任的, 只有内核可以执行特权指令, 为了方便应用程序
中断(Hardware Interrupt), 来自硬件设备的处理请求, 异步
异常(Exception), 非法指令或者其他原因导致当前指令执行失败后的处理请求, 同步
系统调用(System Call), 应用程序主动向操作系统发出的服务请求, 异步或同步
当连接外设时, 需要中断做响应, 当应用程序遇到意外时, 交给异常做处理, 系统调用为了应用程序方便的使用内核提供的服务, 又不会对内核安全产生影响

打赏
  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!
  • © 2017-2023 王丹鹏
  • Powered by Hexo Theme Ayer
  • 冀ICP备15029707号

请我喝杯咖啡吧~

支付宝
微信