Go中的系统调用
文章目录
什么是操作系统
操作系统是资源的管理器,其管理的资源均进行了抽象
- 磁盘抽象:文件夹
- 内存抽象:虚拟内存
- CPU 抽象:时间片
分级保护域-protection ring
CPU 为操作系统提供了特殊的安全支持
操作系统内核运行在特殊模式下 即图中的 ring-0
应用运行在 ring-3,权限被严格限制
什么是系统调用
系统调用是操作系统内核为应用提供的 API ,是内核为应用提供的服务,操作系统为上层的应用程序提供了一个“标准库”.
对于应用来说,系统调用可以实现超出自己能力以外的事情.
系统调用举例:
常见的系统调用
观察系统调用
- strace on linux
- dtruss on macOS
查看一个 Go 语言的 hello world 程序生命周期内的系统调用统计
VDSO
VDSO 优化,内核负责,自动映射值到用户地址空间,无需用户/内核态切换
文章作者 Forz
上次更新 2021-08-11