什么是操作系统

操作系统是资源的管理器,其管理的资源均进行了抽象

  • 磁盘抽象:文件夹
  • 内存抽象:虚拟内存
  • CPU 抽象:时间片

分级保护域-protection ring

CPU 为操作系统提供了特殊的安全支持

操作系统内核运行在特殊模式下 即图中的 ring-0

应用运行在 ring-3,权限被严格限制

什么是系统调用

系统调用是操作系统内核为应用提供的 API ,是内核为应用提供的服务,操作系统为上层的应用程序提供了一个“标准库”.

对于应用来说,系统调用可以实现超出自己能力以外的事情.

系统调用举例:

常见的系统调用

观察系统调用

  • strace on linux
  • dtruss on macOS

查看一个 Go 语言的 hello world 程序生命周期内的系统调用统计

VDSO

VDSO 优化,内核负责,自动映射值到用户地址空间,无需用户/内核态切换