2. 操作系统结构(operating-system structures)
操作系统的服务
- 最顶层是user interfaces
- 主要是gui,batch,command line
- 给用户使用操作系统
- 第二层是system calls(系统调用)
- 给程序员来使用,调用一些接口
- 第三层是service
- program execution:应用程序
- I/O operations:一些io设备
- file systems:以文件方式去存储,存储到存储设备中
- communication:程序之间的通信
- resource allocation:资源分配,经过操作系统
- accounting:记账
- error detection:
- protection and security:防止恶意代码
为用户
- Almost all operating system have a user interface(UI),It offers a way for users to interface(交互) with OS.
- CLI(Command Line Interface)
- command interpreter(shell)
- interpreter(解释器)
- GUI(Graphic User Interface)
- A user friendly graphical user interface.
- Batch
- It is file which contains commands(命令) and directives(指示).
- 一些常用命令:cd ls mkdir touch
- 使用ls -l,可以看到属性,是否为文件,drwxr-xr-x(d表示这个是一个文件)
- batch文件
- It is file which contains commands(命令) and directives(指示).
- CLI(Command Line Interface)
为程序员
- 系统调用(system calls)提供了访问和使用操作系统所提供的服务接口
- 系统调用的实现代码是操作系统级的
- 这个接口通常是面向程序员的
- API(Application Programming Interface):指名了参数和返回值的一组函数。
- 应用程序App的开发人员通过透过API间接访问了系统调用
- api不是系统调用。
- 双重模式 :
- 计算机系统上有一个专门的硬件
- 用户模式(user mode):执行用户代码
- 内核模式(kernel mode):执行操作系统代码
- 在不同模式上,可以执行的代码权限不同,特权指令,确保操作系统可以正常运行。
- 系统调用运行在kernel mode
- 应用程序运行在user mode下
- 系统调用实现机制
- 每一个系统调用都有一个唯一的数学编号,被称为系统调用号
- 用户代码调用API时,API中会向系统调用接口指明其所要用的系统调用号,操作系统内核中会维护一张索引表,依据这个调用号可以检索到系统调用代码在内核中的位置。
操作系统的构建方式
- 操作系统的设计思路
- 设计目标
- 用户目标(user goal)
- 系统目标(system goal)
- 机制与策略的分离
- 机制(mechanism):如何做
- 策略(policy):做什么
- 通过分离机制和策略,系统设计者可以独立地修改策略而不需要重新设计机制,这样可以在不同的环境和需求下复用相同的机制。这种分离使得系统更加模块化,易于理解和维护。同时,这也允许在不同的实现中应用相同的策略,或者在相同的框架下实验不同的策略。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【.NET】调用本地 Deepseek 模型
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库