1、OS服务和接口
即 OS服务、OS程序接口-系统调用、OS用户界面、系统程序
OS服务
基本服务:OS以服务的形式向程序和用户提供执行程序的基本服务,包括用户界面、程序执行、IO操作、文件系统操作、通信、错误检测等。
增值服务:如资源分配、统计、保护和安全等。
OS服务包含了三种形式
系统调用、用户接口和系统程序系统调用(是提供给程序的服务形式,大大简化程序员的编程工作,一般用c/c++等高级语言编写,可以供程序通过应用程序接口(API)访问,系统调用类似类中函数的实现部分,API只是函数声明,程序通过调用API执行系统调用的代码。系统调用在程序中无处不在,各种文件操作、屏幕输出、设备访问都需要调用系统调用),三种常用APIs(Windows Win32 API、POSIX API(Mac os和Unix使用)以及JVM的Java Api),调用API的本质就是进行一次系统调用。(所以需要从user态转换到kernel态)
-
用户接口和系统程序(提供给用户的服务形式)
- 用户接口有 命令行接口 和 图形接口
- 命令行接口-CLI,由内核或系统程序实现;一般有多种实现方式,也称为shells。其优点是简单、健壮、效率高。缺点是使用不方便、界面不美观。常见的比如Linux下的xshell.
- 图形接口-GUI,以鼠标操作为主(或者触屏)。
- 目前许多OS同时包含这两种用户接口。
- 系统程序,用于管理、维护OS的程序。比如文件管理、设备管理、文本编辑等等。
- 用户接口有 命令行接口 和 图形接口
2、OS结构
介绍OS的4种主要设计结构
简单结构、层次结构、微内核结构、模块化结构
微内核:让更少的代码运行在核心态,保证系统稳定性。缺点是会增加用户空间和内核空间通信的系统开销。解决办法是 提出消息传递机制。
模块化结构使用面向对象的方法,每个核心部件分开,任意两个模块都能通过接口调用,特定模块在需要时被加载到内核。
3、虚拟机
-
什么是虚拟机?
- 是一种通过软件模拟实现,具有完整硬件系统功能,并运行在一个完全隔离环境中的完整计算机系统。一般把物理计算机资源进行共享,用于创建若干个虚拟机。属于逻辑计算机。
-
三种虚拟机:java虚拟机、工作站虚拟机(比如Windows下的Guest)、服务器虚拟机。
高级语言虚拟机,如jvm,主要功能是提供一个代码运行的容器,并模拟代码的执行,使得代码能够跨平台运行。jvm运行在os和jre之间,使得java程序本身和os无关。因此能够跨平台。但是不同OS需要不同的JVM,才能执行编译完成的字节码文件。
工作站虚拟机,安装在硬件上的OS称为Host OS,安装在OS上的OS称作Guest OS。好处是在同一计算机上使用多个OS。比如建立多个Guest。比如VMWare Station。
服务器虚拟机,将服务器物理资源抽象成逻辑资源,让一台服务器变成几台甚至上百台相互隔离的服务器虚拟机。 常见为一虚多和多虚一。
-
用户如何使用虚拟机?
- 软件模式,比如登录服务器
- 硬件模式,需要一个终端(通过网络和服务器虚拟机相连,比如之前华为的终端设备。)