• 启动
      • 体系机构
      • 内存和硬盘布局
      • 开机顺序
        • DISK
        • BIOS(基本I/O处理系统)
          • CS:IP = 0xf000:fff0(CS:段寄存器;IP:指令寄存器)
            • POST加电自检
            • 寻找显卡和执行BIOS
            • 加载Bootloader-》OS 加载到内存
        • Bootloader
          • image.png
    • 中断、异常和系统调用

      • 背景image.png

        System Call Interface 负责用户态到内核态的转换

      • 中断、异常和系统调用相比较

        • 系统调用-
          • 应用程序向操作系统发出的服务请求
          • 异步或同步
          • 等待和持续执行指令
        • 异常-来源于不良程序
          • 非法指令或其他坏的处理状态
          • 同步事件
          • 杀死或者重新执行指令
        • 中断-来源于外设
          • 来自不同的硬件设备的计时器和网络的中断
          • 异步事件
          • 持续,对用户应用程序透明,后台执行

            程序不可访问外设,内核是被信任的第三方且有特权指令,方便应用程序通用可移植

    • 中断和异常处理机制
      • 中断
        • 硬件
          • 设置中断标记【CPU初始化】
            • 中断标记
            • 中断事件ID
        • 软件
          • 保存程序处理状态
          • 根据中断ID中断程序处理
          • 清除中断标记
          • 恢复之前保存的处理状态
      • 异常:异常编号
        • 保存现场
        • 异常处理
          • 杀死异常程序
          • 重新执行异常指令
        • 恢复现场
    • 系统调用的概念
      • 例子:程序print,触发系统write(app print->Libry Code->System Interface->Kernel->Devices)
      • 接口
        • Win32 API
        • POSIX API
        • java API 用于JAVA虚拟机(JVM)[Win32,POSIX]
    • 系统调用的实现
      1. 应用程序调用系统调用接口
      2. 触发用户态到内核态的转变
      3. 控制权由应用程序交到操作系统
      4. 操作系统对程序发出系统调用参数(ID标识)
      5. 操作系统对系统调用进行识别完成具体操作
    • 程序调用与系统调用的不同之处
    • 开销
      • image.png