系统结构

什么是内核与操作系统?

  • 内核属于操作系统,是操作系统最核心的部分,是用户和系统硬件的桥梁
  • 操作系统是管理计算机系统资源的软件

内核具备什么功能?

  • 管理进程、线程,具备进程调度能力
  • 管理内存,决定内存分配与回收
  • 管理硬件设备
  • 提供系统调用。应用程序运行内核指令时,都是需要中断并陷入内核态,内核去指向

内核是怎么工作的?

计算机系统内存被划分为用户空间和内核空间,分别代表用户态和内核态。

  • 用户态:应用程序可以执行一些非特权指令和访问局部内存空间
  • 内核态:如果需要执行特权指令,需要由内核来完成。并且可以访问所有内存空间。

所以,一般来说,程序在用户态执行,就是指程序在用户空间执行;而程序在内核空间时,就是指内核态执行

img

当用户需要执行内核指令的时候,通过执行系统调用trap,然后cpu中断当前应用程序,由内核执行系统调用,完成后再次触发中断,把执行权交给用户态。

对于内核的架构一般有这三种类型:

  • 宏内核,包含多个模块,整个内核像一个完整的程序;
  • 微内核,有一个最小版本的内核,一些模块和服务则由用户态管理;
  • 混合内核,是宏内核和微内核的结合体,内核中抽象出了微内核的概念,也就是内核中会有一个小型的内核,其他模块就在这个基础上搭建,整个内核是个完整的程序;

Linux 的内核设计是采用了宏内核,Window 的内核设计则是采用了混合内核。

这两个操作系统的可执行文件格式也不一样, Linux 可执行文件格式叫作 ELF,Windows 可执行文件格式叫作 PE。