1、用户1用户2用户n计算机硬件操作系统应用程序系统程序1946年,ENIC1944年,MARK I控制台机器全貌1960年代,美国麻省理工大学中 断 处 理设 备 驱 动作 业 定 序命令和JCL语言解释器用户程序区78输入机处理器磁带机130 150228280 300378430 450时 间78输入机处理器磁带机1130 150228280 300378430 450时 间磁带机2打印机P1P1P2 用户 操作系统(进程管理、存储管理、文件管理、设备管理等) 标准库函数(打开、关闭、读、写、创建、撤销等) 标准系统程序(实用程序)(汇编、编译、编辑、Shell等)用户接口库函数接口系统调用
2、接口 硬件 (处理器、存储器、磁盘、打印机、终端等)用户态核心态调用fprintf( )应用程序C函数库内核系统调用处理程序C库中的fprintf( )封装程序C库中的write( ) 封装程序用户态核心态sys_write( )内核函数用户程序服务例程入口地址表用户态内核态System Call用户程序A0SUB0SUB1SUBiSUBnA1AiAn系统调用处理子程序取系统功能号找入口地址表相应入口地址结束处理恢复现场A0A1AiAn保护CPU现场陷入指令系统调用陷入机构入口地址表模块n模块1模块3模块4模块21968年, Dijkstra与其学生一起完成。共分如下几层:全序结构半序结构硬件虚拟机内核1内核2内核n进程进程进程进程管理磁盘任务终端任务时钟任务系统任务以太网任务内存管理器文件系统网络服务器Init进程用户进程用户进程用户进程内核服务进程用户进程微内核客户进程设备驱动程序文件服务器虚拟存储管理安全服务用户态核心态核心态用户态内核函数内核函数内核函数应用进程应用进程进程切换函数应用进程微内核(进程切换函数)应用进程OS函数用户态核心态应用进程OS函数应用进程OS函数