资讯动态

操作系统到底在做什么?从三大角色到五大核心抽象:CS162 Note1

发布时间:2026/10/20 11:28:42 来源:尧图企业网站定制
为应用程序提供统一的硬件接口隐藏底层差异# Operating System首先我们要清楚的是操作系统并没有一个统一接受的权威定义:有一种的广义定义:“操作系统是厂商随计算机一并提供的所有软件的集合”但不同系统之间差异又非常大还有一种狭义定义:操作系统是计算机上始终运行的一个程序是一个内核( kernel )其余为系统程序或应用程序总的来说核心理解是:OS is the special software layer between hardware and applications.它位于硬件和应用程序之间负责向上提供抽象向下管理硬件OS的三个角色1.Referee( 管理者 )OS 要负责管理资源并防止不同程序互相干扰其中核心任务包括了:protection保护isolation隔离sharing共享resource allocation资源分配communication通信管理OS在这里起到了协调各个程序之间冲突的功能防止应用程序之间的互相干扰2.Illusionist( 幻象制造者 )这里的含义是OS会让程序感觉自己面对的是一个更简单更干净的机器世界。OS在这个过程中把底层复杂难用的硬件包装成了简单易使用的抽象明明物理内存有限但程序像在使用“很大的连续内存”明明 CPU 要同时跑很多程序但每个程序都像“独占 CPU”明明底层是磁盘块、控制器、中断但程序看到的是“文件”明明底层是网卡、协议栈、缓冲区但程序看到的是“socket”这个过程叫做Virtualization(虚拟化),本质就是在用抽象掩盖底层复杂性和限制3.Glue( 粘合剂 )OS会给很多应用提供很多公共服务把整个系统粘合起来主要包括了:StorageWindow systemNetworkingSharingAuthorization从用户和应用角度看操作系统往往承担一整套公共基础设施的角色。Hardware Interface And Software Interface首先考虑一个问题: 什么是抽象 :抽象为应用程序提供统一的硬件接口隐藏底层差异OS 夹在硬件和程序之间所以有两个接口层次Physical Machine Interface硬件本来的接口Abstract Machine InterfaceOS 提供给程序的抽象接口对于任何OS子领域都要问两个问题:底层真实硬件接口是什么OS希望给软件提供更好的抽象例如:物理处理器( Processor ) → OS 抽象成Thread物理内存( Memory ) → OS 抽象成Address space磁盘 / SSD( Disks/SSDs ) → OS 抽象成Files网络硬件( Networks ) → OS 抽象成Sockets整台机器资源( Machines ) → OS 抽象成Processes操作系统核心抽象1.进程( Process )我们把进程定义为:Process: Execution environment with restricted rights provided by OS进程是 OS 提供的一种“受限权限的执行环境”。一个进程包含了:Address Space( 地址空间 )One or more threads of control以及附加系统状态例如Open filesOpen sockets我们一定要注意一下Program还有Process的区别: 一个程序可以启动多个进程同时每个进程都是一个独立运行实体。简单来说Process是动态的是程序运行起来后的实例。而Program是静态的它是一个可执行文件/代码。2.线程( Thread )这一讲没有进行过多的展开讲解线程是进程内部的执行流同时一个进程可以有一个或多个线程去掌控3.地址空间( Address Space )地址空间是OS提供给进程的内存视图程序看到的是自己所占有的地址空间而不是整个物理内存的真实分布状态.。通过这样可以实现如下的作用:让程序觉得自己有一块连续、私有的内存实现进程之间的隔离支持保护和虚拟内存机制4.文件系统( File System )文件是对持久化存储的抽象。 底层其实是磁盘块、SSD 页面、控制器、缓存等复杂机制但程序使用的是“打开文件、读写文件、关闭文件”这种简单接口.5. 套接字( Socket )socket 是对网络通信的抽象。 底层涉及网卡、协议栈、缓冲区、IP、端口等复杂内容但 OS 抽象成统一通信接口。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑