前言
操作系统就是人和计算机交互的界面,它本质就是一个软件程序,更好地帮助人和计算交互而不用管计算机底层复杂的实现。相比于裸机编程只能运行单一的应用程序,操作系统可以以进程管理的形式运行多个程序,应用程序和操作系统都是软件程序,cpu并不会对他们进行区分,应用程序以操作系统的一个进程来运行,应用程序通过系统调用和操作系统完成完整的功能。我认为操作系统在设计时就是就是要作为多程序的管理系统,一方面包含从所有的程序中抽取公共功能,比如内存管理、文件系统、驱动管理等,另一方面管理各个程序的运行和协作,即进程管理。
操作系统内核和硬件的交互
操作系统通过驱动管理与硬件进行交互
https://blog.csdn.net/weixin_41544435/article/details/125577714
应用程序与操作系统内核的交互-系统调用
应用程序调用操作系统提供的系统调用接口,将参数和系统调用指令保存在cpu寄存器内,当执行syscall时引发CPU异常,cpu切换到操作系统内核,然后执行对应的调用功能。
程序的上下文切换
cpu在接收到系统中断指令时,cpu会将寄存器里的数据、代码、程序计数保存到内存里,然后将内存中另一个程序的数据、代码、程序计数保存到cpu的寄存器中,执行该程序。
https://www.bilibili.com/video/BV1Su411k7Nv/?vd_source=4db228457b8cdf374e06f536226113e2