目录
操作系统服务和接口
操作系统服务
操作系统以服务的形式向程序和用户提供环境用于执行程序。
基本服务
- 用户界面
- 程序执行
- I/O操作
- 文件系统操作
- 通信
- 错误检测
增值服务
- 资源分配
- 统计
- 保护和安全
服务形式
- 系统调用(System call)
- 用户接口(User interface)
- 系统程序(System program)
操作系统程序接口 - 系统调用
操作系统服务的编程接口,通常由高级语言编写 -- 面向程序。
程序通过API访问。
三种常用的APIs
- Windows的Win32 API
- POSIX系统(所有版本的UNIX, Linux, Mac OS X)的POSIX API
- Java虚拟机(JVM)的Java API
API和系统调用
- 可以看到会进行用户模式向内核模式之间的转换。
操作系统用户界面
CLI(Command-Line Interface)
- 字符模式,用户直接输入命令。
- 内核或系统程序实现,多种实现方式 - 外壳(shells)
主要作用:获取并执行用户指定的命令(内置和外置命令)
系统程序
用于管理、维护操作系统。
为用户使用操作系统服务。
功能:
- 文件管理(例如win中的相关文件的管理)
- 状态信息(电脑的相关信息,配置信息等)
- 文件处理(文件的修改,命令等)
- 程序语言支持
- 程序装入和执行
- 通信(比如远程桌面)
操作系统结构
简单结构
简单结构也可以成为无结构,主要用于早期操作系统(功能有限,规模小、简单)。
问题:
- 混乱,不亦伟乎和更新,不适合大规模系统开发。
例子:早期的unix系统
层次结构
操作系统划分为若干层
- 在底层上构建高层。
- 底层(0层)为硬件。
- 最高层(N层)为用户层。
- 每层智能使用低层次的功能和服务。
优缺点
- 优点:简化了系统设计和实现,便于调试和升级维护。
- 缺点:每层内容的定义困难,效率较差。
微内核结构
针对内核越来越大,越来越难以管理的问题,出现了内核微型化,也就是微内核结构。核内移除尽可能多的功能到用户空间。(简言之就是讲内核的一部分功能移动到用户空间中,使得内核更加的安全和稳定,便于管理)
优点:
- 便于扩充微内核。
- 便于移植操作系统到新的架构系统上。
- 更加安全,更加稳定(更少的代码运行在核心态)。
缺点:
- 用户空间和内核空空间通信的系统开销增加。
- 解决方法:提出消息传递机制。
模块化结构
目前,大部分的现代化操作系统采用的是模块化结构。
- 使用面向对象的方法。
- 每个核心部件分开。
- 每个与其他模块的会话被称为接口。
- 每个模块在需要时被加载到内核。
模块化结构类似于分层方法,但是更加灵活
混合结构
许多现代操作系统不是采用单一的结构,通过采用多种结构获得性能、安全、使用等方面的应用需求。
虚拟机
虚拟机定义
虚拟机是一种通过软件模拟的实现,具有完整硬件系统的功能,并可以运行在一个完全隔离环境中的完整的计算机系统。
通过将物理计算机资源共享以创建虚拟机。
每个虚拟机同其他虚拟机之间进行隔离。
需要对物理及进行精确的复制,因而虚拟机实现较为困难。
JAVA虚拟机
是高级语言虚拟机的一种,主要用于模拟代码执行,目的是为了跨平台使用。
工作站虚拟机
目的是为了让多个操作系统可以同时在一个计算机上使用。
工作站虚拟机:操作系统上的虚拟机
- 宿主操作系统(Host OS):安装在硬件上的OS。
- 客户操作系统(Guest OS):安装在操作系统上的操作系统。
- 工作站虚拟机安装在宿主操作系统上,在工作站虚拟机中可以安装客户操作系统。
优点:
- 同时在一个计算机上使用多个操作系统。
- 一个宿主操作系统,若干个客户操作系统。
虚拟工作站软件:
VMWare Station, Virtual Box, Virtual PC
服务器虚拟机
是一个多用户、多操作系统并存的虚拟机。目的是把一个物理计算机虚拟化为多个虚拟机。
服务器虚拟化:将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的虚拟服务器。
常用模式:
- 一虚多:一台服务器虚拟成多台服务器虚拟机。(常用的虚拟形式)
- 多虚一:多个独立的物理服务器虚拟成为一个虚拟服务机。
优点;
- 安全性好
- 资源共享
- 可扩张性好
- 便于隔离
- 性价比高
服务器虚拟机架构: