操作系统(Operating System)是一种内置的程序,用来协作计算机的各种硬件,以与用户进行交互。常见的操作系统有Windows,macOS
和开源的
Linux等。
操作系统的类型包括分布式操作系统、嵌入式操作系统、实时操作系统、网络操作系统、集群操作系统等。
这领域就如北大杨芙清院士1986年的《操作系统结构分析》一书序言说操作系统“是最重要的系统软件之一”,这序言也说下面中国计算机软件学科奠基人“徐家福教授提出过不少宝贵的意见”,就再没提其他人提意见。
关于操作系统书籍,国内最早的是张尤腊、仲萃豪等的《计算机操作系统》科学出版社1979年这书没有见再版,其次是孙钟秀院士和谢立等的《操作系统原理》人民邮电出版社1980年其后改名为《操作系统教程》再版多次-且各版的各章标题都几乎没变并还可讲一些重要类型的操作系统如他们下面第三版的第8章(其作者不仅有省科协主席院士更特别是谢立是总裁的当时已年销过亿的苏富特1998年才创办[当然之前1993年谢立已是副校长、1997年再是常务校长]-如此他俩都合编的前几版我都着重读;我也有孙仲秀主编1987年的《分布式计算机系统》-即一组独立的计算机通过互连网络联接并以分布式操作系统管理其资源,并这省科协主席孙钟秀院士的论文几乎全是这2本书领域的),汤子瀛和杨成忠的《操作系统原理》1981年国防工业出版社后改书名为计算机操作系统再版多次;国外最早翻译进来的是麻省理工权威Stuart
E. Madnick斯图尔特·马德尼克和他的导师John
J. Donovan的《操作系统》科学出版社1980年石伍锁贾耀良等译(第一章开头说“本书的主要目的有两个:一是讲授高等软件工程基础,一是使读者能够设计和分析操作系统”-这样的目的很吸引人-如此我80年代已有这本书),其后我也有Andrew
S. Tanenbaum的1992年出版的《Modern
operating systems现代操作系统》(这书前几版目录共2部分并第一部分是传统操作系统、第二部分是分布式操作系统)和他的1996年的《分析操作系统》两书的英文版以及William Stallings的《Operating
systems : internals and design principles操作系统:精髓与设计原理》这书出版也较早如1998年也已出第3版-- 2001年魏迎梅教授等翻译由电子工业出版社出版目录:第1部分背景,第1章计算机系统概述,第2章操作系统概述,第2部分进程,第3章进程的描述与控制,第4章线程,第5章并发:互斥与同步,第6章 并发:死锁与饥饿,第3部分内存,第7章内存管理,第8章虚拟内存,第4部分调度,第9章单处理器调度,第10章多处理器、多核调度与实时调度,第5部分输入/输出与文件,第11章I/O管理和磁盘调度,第12章文件管理,第6部分嵌入式系统,第13章嵌入式系统,第
14章虚拟机,第7部分安全,第15章操作系统安全,第8部分分布式系统,第16章分布式处理、客户/服务器和集群。
孙钟秀院士和谢立等《操作系统教程》的最近第三版目录附至详细大小节以知道更详细的具体内容:
CH 1 操作系统概论
1.1 操作系统概观
1.1.1 操作系统的定义和目标
1.1.2 操作系统的作用与功能
1.1.3 操作系统的主要特性
1.2 操作系统的形成和发展
1.2.1 人工操作阶段
1.2.2 管理程序阶段
1.2.3 多道程序设计与操作系统的形成
1.2.4 操作系统的发展与分类
1.3 操作系统提供的服务和用户接口
1.3.1 操作系统提供的基本服务
1.3.2 操作系统提供的用户接口
1.3.3 程序接口与系统调用
1.3.4 操作接口与系统程序
1.4 操作系统的结构设计
1.4.1 操作系统的构件
1.4.2 整体式结构的操作系统
1.4.3 层次式结构的操作系统
1.4.4 虚拟机结构的操作系统
1.4.5 客户/服务器与微内核结构的操作系统
1.4.6 操作系统功能的实现模型
1.4.7 实例研究:Windows
2000/XP 客户/服务器结构
1.5 流行操作系统简介
1.5.1 DOS 操作系统.
1.5.2 Windows 操作系统
1.5.3 UNIX 操作系统家族
1.5.4 自由软件和
Linux 操作系统
1.5.5 IBM 系列操作系统
1.5.6 其他流行操作系统
1.6 本章小结
CH 2 处理器管理
2.1 中央处理器
2.1.1 单处理器系统和多处理器系统
2.1.2 寄存器
2.1.3 机器指令与特权指令
2.1.4 处理器状态
2.1.5 程序状态字寄存器
2.2 中断技术.
2.2.1 中断的概念.
2.2.2 中断源分类
2.2.3 中断装置
2.2.4 中断处理程序
2.2.5 中断事件的具体处理方法
2.2.6 中断的优先级和多重中断
2.2.7 实例研究:Windows
2000/XP 中断处理
2.2.8 实例研究:Solaris
中断处理
2.2.9 实例研究:Linux
中断处理
2.3 进程及其实现
2.3.1 进程的定义和属性
2.3.2 进程的状态和转换
2.3.3 进程的描述
2.3.4 进程切换与模式切换
2.3.5 进程的控制.
2.3.6 实例研究:UNIX
SVR4 进程管理
2.3.7 实例研究:Linux
进程管理
2.4 线程及其实现
2.4.1 引入多线程技术的动机
2.4.2 多线程环境中的进程与线程
2.4.3 线程的实现
2.4.4 实例研究:Solaris
的进程与线程
2.4.5 实例研究:Windows
2000/XP 的进程与线程
2.5 处理器调度
2.5.1 处理器调度的层次
2.5.2 高级调度
2.5.3 中级调度
2.5.4 低级调度
2.5.5 选择调度算法的原则
2.6 批处理作业的管理与调度
2.6.1 作业和进程的关系
2.6.2 批处理作业的管理
2.6.3 批处理作业的调度
2.6.4 作业调度算法
2.7 低级调度
2.7.1 低级调度的功能
2.7.2 低级调度算法
2.7.3 实时调度
2.7.4 多处理器调度
2.7.5 实例研究:UNIX
SVR4 调度算法
2.7.6 实例研究:Windows
2000/XP 调度算法
2.7.7 实例研究:Linux
调度算法
2.8 本章小结
CH 3 并发进程
3.1 并发进程
3.1.1 顺序程序设计
3.1.2 进程的并发性
3.1.3 与时间有关的错误
3.1.4 进程的交互(Interaction
Among Processes):协作和竞争
3.2 临界区管理
3.2.1 互斥和临界区
3.2.2 临界区管理的尝试
3.2.3 实现临界区管理的软件方法
3.2.4 实现临界区管理的硬件设施.
3.3 信号量与 PV 操作
3.3.1 同步和同步机制
3.3.2 记录型信号量与
PV 操作
3.3.3 用记录型信号量实现互斥
3.3.4 记录型信号量解决生产者-消费者问题
3.3.5 记录型信号量解决读者-写者问题
3.3.6 记录型信号量解决理发师问题
3.4 管程
3.4.1 管程和条件变量
3.4.2 Hoare 方法实现管程
3.4.3 Hanson 方法实现管程
3.5 进程通信
3.5.1 信号通信机制
3.5.2 共享文件通信机制`
3.5.3 共享存储区通信机制
3.5.4 消息传递通信机制
3.5.5 有关消息传递实现的若干问题
3.6 死锁
3.6.1 死锁的产生
3.6.2 死锁的定义.
3.6.3 死锁的防止
3.6.4 死锁的避免
3.6.5 死锁的检测和解除
3.7 实例研究:WINDOWS
2000/XP 的同步和通信机制
3.7.1 Windows 2000/XP 的同步和互斥机制
3.7.2 Windows2000/XP 进程通信机制
3.8 实例研究:LINUX
信号量机制
3.9 本章小结
CH 4 存储管理
4.1 主存储器
4.1.1 存储器的层次.
4.1.2 快速缓存(caching)
4.1.3 地址转换与存储保护
4.2 连续存储空间管理
4.2.1 单用户连续存储管理
4.2.2 固定分区存储管理
4.2.3 可变分区存储管理
4.3 分页式存储管理
4.3.1 分页式存储管理的基本原理
4.3.2 相联存储器和快表.
4.3.3 分页式存储空间的分配和去配.
4.3.4 分页存储空间的页面共享和保护
4.3.5 多级页表
4.3.6 反置页表
4.4 分段式存储管理
4.4.1 程序的分段结构
4.4.2 分段式存储管理的基本原理
4.4.3 段的共享.
4.4.4 分段和分页的比较
4.5 虚拟存储管理
4.5.1 虚拟存储器的概念
4.5.2 请求分页虚拟存储管理
4.5.3 请求分段虚拟存储管理
4.5.4 请求段页式虚拟存储管理.
4.6 实例研究:INTEL
X86/PENTIUM 存储管理硬件设施
4.6.1 Intel x86/Pentium 段机制——段选择符和段描述符
4.6.2 Intel x86/Pentium 运行模式选择
4.6.3 Intel x86/Pentium 地址转换
4.6.4 Intel x86/Pentium 页式或段页式地址转换
4.7 实例研究:WINDOWS
2000/XP 虚拟存储管理
4.7.1 进程地址空间布局
4.7.2 用户空间内存分配
4.7.3 内存管理的实现
4.8 实例研究:LINUX
的存储管理
4.8.1 Linux 存储管理概述
4.8.2 虚拟地址空间的组织和管理
4.8.3 物理内存空间的管理
4.8.4 用户态内存的申请与释放
4.8.5 内存的共享和保护
4.8.6 交换空间、页面的换出和调入
4.8.7 缓冲机制
4.9 本章小结
CH 5 设备管理
5.1 I/O 硬件原理
5.1.1 I/O 系统
5.1.2 I/O 控制方式
5.1.3 设备控制器
5.2 I/O 软件原理
5.2.1 I/O 软件的设计目标和原则
5.2.2 I/O 中断处理程序
5.2.3 设备驱动程序
5.2.4 与硬件无关的操作系统 I/O 软件
5.2.5 用户空间的
I/O 软件
5.3 具有通道的
I/O 系统管理.
5.3.1 通道命令和通道程序.
5.3.2 I/O 指令和主机
I/O 程序
5.3.3 通道启动和
I/O 操作过程
5.4 缓冲技术
5.4.1 单缓冲
5.4.2 双缓冲
5.4.3 多缓冲
5.5 驱动调度技术
5.5.1 存储设备的物理结构.
5.5.2 循环排序
5.5.3 优化分布
5.5.4 交替地址
5.5.5 搜查定位
5.5.6 独立磁盘冗余阵列.
5.5.7 提高磁盘 I/O
速度的一些方法
5.6 设备分配.
5.6.1 设备独立性
5.6.2 设备分配.
5.7 虚拟设备
5.7.1 问题的提出
5.7.2 SPOOLING 的设计和实现
5.7.3 SPOOLING 应用例子
5.8 实例研究:WINDOWS
2000/XP 的 I/O 系统
5.8.1 Windows 2000/XP I/O
系统结构和组件.
5.8.2 Windows 2000/XP I/O
系统的数据结构.
5.8.3 Windows2000/XP 设备驱动程序
5.8.4 Windows 2000/XP I/O
处理.
5.8.5 Windows 2000/XP 高速缓存管理
5.9 实例研究:LINUX
设备管理
5.9.1 Linux 设备管理概述
5.9.2 Linux 硬盘管理
5.9.3 Linux 网络设备
5.9.4 Linux 设备驱动程序
5.10 本章小结.
CH 6 文件管理
6.1 文件
6.1.1 文件的概念.
6.1.2 文件的命名
6.1.3 文件的类型
6.1.4 文件的属性
6.1.5 文件的存取方法
6.1.6 文件的使用
6.2 文件目录
6.2.1 文件目录与文件目录项
6.2.2 一级目录结构
6.2.3 二级目录结构
6.2.4 树形目录结构
6.3 文件组织与数据存储
6.3.1 文件的存储
6.3.2 文件的逻辑结构
6.3.3 文件的物理结构
6.4 文件系统其他功能的实现
6.4.1 文件操作的实现
6.4.2 UNIX/Linux 文件操作系统调用
6.4.3 文件卷的安装和使用
6.4.4 文件共享
6.4.5 层次式文件系统模型
6.4.6 辅存空间管理.
6.4.7 内存映射文件
6.4.8 虚拟文件系统.
6.5 实例研究:LINUX
文件管理
6.5.1 Linux 文件管理概述.
6.5.2 Linux 文件系统的安装和管理.
6.5.3 虚拟文件系统
VFS.
6.5.4 文件系统管理的缓冲机制
6.5.5 系统打开文件表
6.5.6 EXT2 文件系统.
6.6 实例研究:WINDOWS
2000/XP 文件系统
6.6.1 Windows 2000/XP 文件系统概述
6.6.2 Windows2000/XP 文件系统模型和
FSD 体系结构.
6.6.3 NTFS 文件系统驱动程序
6.6.4 NTFS 在磁盘上的结构
6.6.5 NTFS 可恢复性支持
6.6.6 NTFS 安全性支持
6.7 本章小结
CH 7 操作系统的安全与保护
7.1 安全性概述
7.2 安全威胁及其类型
7.3 保护
7.3.1 操作系统保护层次
7.3.2 内存储器的保护
7.3.3 面向用户的访问控制
7.3.4 面向数据的访问控制
7.4 入侵者
7.4.1 入侵技术
7.4.2 口令保护
7.4.3 入侵检测
7.5 病毒(恶意软件).
7.5.1 病毒及其威胁.
7.5.2 病毒的特性
7.5.3 病毒的类型
7.5.4 反病毒的方法
7.5.5 电子邮件病毒
7.6 保护的基本机制、策略与模型
7.6.1 机制、策略与模型
7.6.2 身份认证机制
7.6.3 授权机制
7.6.4 加密机制.
7.6.5 审计
7.7 实例研究:WINDOWS
2000/XP 的安全机制.
7.7.1.Windows 2000/XP 安全性概述.
7.7.2.Windows2000/XP 安全性系统组件
7.7.3.Windows2000/XP 保护对象
7.7.4.访问控制策略
7.7.5.访问令牌
7.7.6.安全描述符
7.8 本章小结.
CH 8 网络和分布式操作系统.
8.1 计算机网络概述
8.1.1 计算机网络的概念
8.1.2 数据通信基本概念.
8.1.3 网络体系结构
8.2 网络操作系统
8.2.1 网络操作系统概述
8.2.2 几个流行的网络操作系统
8.2.3 网络操作系统实例.
8.3 分布式操作系统
8.3.1 分布式系统概述
8.3.2 分布式进程通信
8.3.3 分布式资源管理
8.3.4 分布式进程同步
8.3.5 分布式系统中的死锁
8.3.6 分布式文件系统
8.3.7 分布式进程迁移
8.4 实例研究:WINDOWS2000
网络体系结构和网络服务
8.4.1 Windows 2000 网络体系结构
8.4.2 WindowS 2000 的层次化网络服务
8.5 本章小结.
上面已说操作系统是计算机最基本也是最为重要的基础性系统软件,当然系统软件包括一系列基本的工具(比如编译器,数据库管理,存储器格式化,文件系统管理,用户身份验证,驱动管理,网络连接等方面的工具),即系统软件是指控制和协调计算机及外部设备,支持应用软件开发和运行的系统,是无需用户干预的各种程序的集合,主要功能是调度,监控和维护计算机系统;负责管理计算机系统中各种独立的硬件,使得它们可以协调工作。如此,说到它就顺便说软件工程:
南大还有中国计算机软件学科奠基人、中国计算机科学奠基人之一(也是中国计算机学会第一届副理事长、软件专业委员会主任委员)的徐家福并如其与他的高徒吕建合写“基于NDAUTO系统的软件开发过程”,计算机研究与发展1988年;最近徐家福和最近已吕建合写《软件语言及其实现》科学出版社2000年(最近吕建已当选院士),徐家福和北大唐世渭、方裕、杨芙清合译R. S. Pressman的《软件工程:实践者的研究途径和方法》由小型微型计算机系统编辑部1984年出版-其后再版几次。象我们学科的Shimon Even教授就独立撰写计算机软件工程系列中的《Graph Algorithms图论算法》(Computer Software
Engineering Series计算机软件工程系列)-也可搜索--图论算法是海南琼州大学曾在许多领域世界领先的图论学科的核心领域(Even有很多已成大师的博士如Oded
Goldreich)。当然软件工程国外的除了R. S. Pressman的外,Ian
Sommerville的《软件工程》也自1982年出第一版起都不断紧跟其进展不断修改版本其后最近翻译为中文2003年由机械工业出版社出版的我也有
软件工程书籍:还应看和徐家福教授合作的北京大学杨芙清和何新贵主编的《软件工程进展---技术、方法和实践》清华大学出版社1996年,以及北京大学张海藩教授的《软件工程导论》清华大学出版社1987年等;
关于软件工程,除了上面中国计算机软件学科奠基人徐家福教授等的南京大学,以及杨芙清院士等的北京大学的外,还应参考这里的清华大学专家撰写翻译的“软件工程”书籍、以及这页和海南琼州大学的导师同做生成树算法的王振宇、徐家福教授是先驱的这个软件领域等等。
给出主要内容系统概念简介:在计算机中,操作系统是其最基本也是最为重要的基础性系统软件。从计算机用户的角度来说,计算机操作系统体现为其提供的各项服务;从程序员的角度来说,其主要是指用户登录的界面或者接口;如果从设计人员的角度来说,就是指各式各样模块和单元之间的联系。事实上,全新操作系统的设计和改良的关键工作就是对体系结构的设计,经过几十年以来的发展,计算机操作系统已经由一开始的简单控制循环体发展成为较为复杂的分布式操作系统,再加上计算机用户需求的愈发多样化,计算机操作系统已经成为既复杂而又庞大的计算机软件系统之一。
发展历史:纵观计算机之历史,操作系统与计算机硬件的发展息息相关。操作系统之本意原为提供简单的工作排序能力,后为辅助更新更复杂的硬件设施而渐渐演化。从最早的批量模式开始,分时机制也随之出现,在多处理器时代来临时,操作系统也随之添加多处理器协调功能,甚至是分布式系统的协调功能。其他方面的演变也类似于此。另一方面,个人计算机之操作系统因袭大型机的成长之路,在硬件越来越复杂、强大时,也逐步实现以往只有大型机才有的功能。
从1946年诞生第一台电子计算机以来,它的每一代进化都以减少成本、缩小体积、降低功耗、增大容量和提高性能为目标,随着计算机硬件的发展,同时也加速了操作系统(简称OS)的形成和发展。
最初的电脑没有操作系统,人们通过各种按钮来控制计算机,后来出现了汇编语言,操作人员通过有孔的纸带将程序输入电脑进行编译。这些将语言内置的电脑只能由制作人员自己编写程序来运行,不利于程序、设备的共用。为了解决这种问题,就出现了操作系统,这样就很好实现了程序的共用,以及对计算机硬件资源的管理。
随着计算技术和大规模集成电路的发展,微型计算机迅速发展起来。从20世纪70年代中期开始出现了计算机操作系统。在美国1976年的时候就研制了DIGITAL
RESEARCH软件公司出8位的CP/M操作系统。这个系统允许用户通过控制台的键盘对系统进行控制和管理,其主要功能是对文件信息进行管理,以实现其他设备文件或硬盘文件的自动存取。此后出现的一些8位操作系统多采用CP/M结构。
用户界面:操作系统用户界面的发展经历了多个阶段,从最早的基于文本的命令行界面(CLI),到现代图形用户界面(GUI),再到如今的自然用户界面(NUI),每个阶段都代表了技术进步和人机交互的创新。
1. 命令行界面(CLI)
在计算机的早期,操作系统的用户界面主要是基于文本的命令行界面。用户通过输入命令与计算机交互,所有操作都需要通过键盘输入特定的命令。例如,Unix、MS-DOS
等操作系统依赖 CLI。CLI 的特点是:用户可以通过复杂的命令实现各种功能,需要用户记住大量命令,学习成本较高,CLI 对系统资源要求较低,在当时硬件资源受限的情况下非常合适。
2. 图形用户界面(GUI)
随着计算机硬件性能的提升,图形用户界面(GUI)逐渐成为主流。GUI 提供了更加直观的操作方式,用户可以通过图标、窗口、按钮等图形元素与操作系统交互,典型的 GUI 系统包括
Windows、macOS
和
Linux 的一些桌面环境(如
GNOME 和 KDE)。GUI 的特点是:通过图形和直观的设计,用户不再需要记住复杂的命令,操作更为简单,GUI 通常支持多窗口操作,使用户可以同时处理多个任务,相比 CLI,GUI 需要更多的硬件资源,如图形处理能力。
GUI 的发展历程:早期 GUI:最早的图形用户界面之一是 1984
年的
Apple Macintosh 系统。它引入了窗口、图标、菜单和指针的概念,彻底改变了用户与计算机的交互方式。
Windows 系统的发展:微软的
Windows 1.0 于 1985
年发布,逐渐演变成今天的
Windows 11。Windows
的发展让个人电脑广泛普及,其 GUI 界面成为全球最为广泛使用的桌面操作系统界面。
开源社区的贡献:在 Linux 世界中,GNOME、KDE 等桌面环境推动了 GUI 的发展,提供了丰富的定制选项和不同的用户体验。
3. 触控界面
在 21 世纪初,随着移动设备的普及(如智能手机和平板电脑),触控界面开始兴起。触控界面是基于手指或触控笔的用户交互方式,操作系统如 iOS 和
Android 成为触控界面的主要平台。触控界面的特点是:用户通过滑动、缩放、轻击等手势操作设备,用户体验更加自然,触控界面设计专为小屏幕和便携设备,极大地改变了移动计算领域,由于移动设备形态多样,触控界面设计需要适应不同屏幕尺寸和分辨率。
4. 自然用户界面(NUI)
自然用户界面(Natural User
Interface, NUI)是近年来操作系统用户界面的新方向,强调用户与设备的互动更加自然、直觉。NUI 包括手势识别、语音识别、眼动追踪等技术,常见于智能手机、智能家居设备和虚拟现实系统。例如:如 Siri、Alexa
和
Google Assistant,它们通过语音命令执行任务,带来了全新的交互体验;如 Microsoft
Kinect 和 VR 头戴设备,用户通过肢体动作与设备互动;设备如
HoloLens 和
Oculus Rift 提供沉浸式的 3D 环境,用户界面不再局限于二维屏幕,进入了虚拟空间。
5. 未来趋势
未来操作系统用户界面的发展将继续围绕着如何让用户与设备的交互更加自然和无缝进行。可能的方向包括:
脑机接口(BCI):用户可以通过思维直接与计算机互动,早期的研究已经取得了一些进展。
沉浸式用户界面:增强现实和虚拟现实将会进一步发展,特别是随着元宇宙概念的兴起,用户界面可能会扩展到 3D 空间,带来更具沉浸感的交互体验。
智能化与个性化:通过人工智能和机器学习,用户界面可以根据用户的偏好和习惯进行自动调整,提供个性化的体验。
主要功能:计算的操作系统对于计算机可以说是十分重要的,从使用者角度来说,操作系统可以对计算机系统的各项资源板块开展调度工作,其中包括软硬件设备、数据信息等,运用计算机操作系统可以减少人工资源分配的工作强度,使用者对于计算的操作干预程度减少,计算机的智能化工作效率就可以得到很大的提升。其次在资源管理方面,如果由多个用户共同来管理一个计算机系统,那么可能就会有冲突矛盾存在于两个使用者的信息共享当中。为了更加合理的分配计算机的各个资源板块,协调计算机系统的各个组成部分,就需要充分发挥计算机操作系统的职能,对各个资源板块的使用效率和使用程度进行一个最优的调整,使得各个用户的需求都能够得到满足。最后,操作系统在计算机程序的辅助下,可以抽象处理计算系统资源提供的各项基础职能,以可视化的手段来向使用者展示操作系统功能,减低计算机的使用难度。
操作系统主要包括以下几个方面的功能 :
①进程管理,其工作主要是进程调度,在单用户单任务的情况下,处理器仅为一个用户的一个任务所独占, 进程管理的工作十分简单。但在多道程序或多用户的情况 下,组织多个作业或任务时,就要解决处理器的调度、 分配和回收等问题 。
②存储管理分为几种功能:存储分配、存储共享、存储保护 、存储扩张。
③设备管理分有以下功能:设备分配、设备传输控制 、设备独立性。
④文件管理:文件存储空间的管理、目录管理 、文件操作管理、文件保护。
⑤作业管理是负责处理用户提交的任何要求。
用途分类
计算机的操作系统根据不同的用途分为不同的种类,从功能角度分析,分别有实时系统、批处理系统、分时系统、网络操作系统等。
实时系统主要是指系统可以快速的对外部命令进行响应,在对应的时间里处理问题,协调系统工作。
批处理系统出现于20世纪60年代,批处理系统能够提高资源的利用率和系统的吞吐量。
分时系统可以实现用户的人机交互需要,多个用户共同使用一个主机,很大程度上节约了资源成本。 分时系统具有多路性、独立性、交互性、及时性的优点,能够将用户-系统-终端任务实现。 [4]
网络操作系统是一种能代替操作系统的软件程序,是网络的心脏和灵魂,是向网络计算机提供服务的特殊的操作系统。借由网络达到互相传递数据与各种消息,分为服务器及客户端。而服务器的主要功能是管理服务器和网络上的各种资源和网络设备的共用,加以统合并控管流量,避免有瘫痪的可能性,而客户端就是有着能接收服务器所传递的数据来运用的功能,好让客户端可以清楚的搜索所需的资源。
网络操作系统:向网络计算机提供服务的操作系统
体系结构
简单体系结构
计算机操作系统诞生初期,其体系结构就属于简单体系结构,由于当时各式各样影响因素的作用,如硬件性能、平台、软件水平等方面的限制,使得当时的计算机操作系统结构呈现出一种混乱且结构模糊的状态,其操作系统的用户应用程序和其内核程序鱼龙混杂,甚至其运行的地址和空间都是一致的。这种操作系统实际上就是一系列过程和项目的简单组合,使用的模块方法也相对较为粗糙,因此导致其结构宏观上非常模糊。
单体内核结构
随着科学技术的不断发展和进步,硬件及其平台的水平和性能得到了很大程度的提高,其数量和种类也与日俱增,操作系统的复杂性也逐渐加深,其具备的功能以及性能越来越多,在此背景下,单体内核结构的操作系统诞生并得到了应用,例如UNIX操作系统、windows
NT/XP等。一般情况下,单体内核结构的操作系统主要具备以下几种功能,分别是文件及内存管理、设备驱动、CPU调度以及网络协议处理等。由于内核的复杂性不断加深,相关的开发设计人员为了实现对其良好的控制,逐渐开始使用了一些较为成熟的模块化方法,并根据其不同的功能将其进行结构化,进而将其划分为诸多的模块,例如文件及内存管理模块、驱动模块、CPU调度模块及网络协议处理等。这些模块所使用的地址和空间与内核使用的完全一致,其以函数调用的方式构建了用于通讯的结构来实现各个模块之间的通讯。在使用模块化的方法以后,只要其通讯接口没有发生明显的变化,即使整个结构中的任何一个模块发生变化也不会对结构中的其他模块造成任何的影响,为其系统的维护和改良扩充提供了便利。虽然单体内核结构的计算机操作系统经过了模块化的处理,但是其中的全部模块仍然是在硬件之上、应用软件之下的操作系统核心中运转和工作。模块与模块之间活动的层次没有任何的差别。
层次式结构
层次式结构的计算机操作系统是为了减少以往操作系统中各个模块之间由于联系紧密而带来的各种问题而诞生的,其可以最大程度的减少甚至是避免循环调用现象的发生,确保调用有序,为操作系统设计目标的实现奠定了坚实的基础。在层次式结构的计算机操作系统之中,其是由诸多系统分为若干个层次的,其最底层是硬件技术,其他每一个层级均是建立在其下一层级之上的。在设计其计算机操作系统内核时,主要采用与抽象数据类型十分类似的设计方法进行的,在系统中的每一个层级均包含着多种数据和操作,且每一个的数据和操作是其他层不可见的,在每一层当中都配备了用于其他层使用的一操作接口,同时每一层发生的访问行为只能针对其下层进行,不能访问其上层的数据和服务,严格遵守了调用规则,在很大程度上避免了其他层次对某一层次的干扰和破坏。对于理想的层次式计算机系统体系结构来说,其之间的联系不仅仅是单向依赖性的,同时各个层级之间也要具备相互的独立性,且只能对低层次的模块和功能进行调用,例如THE系统。但是这种理想的全序层次式计算机操作系统在现实中建成是较为困难的,其无法完全避免模块之间循环调用现象的出现,某个层级之间仍旧存在某种循环关系,这种层次式结构又被叫作半序层次式计算机操作系统,例如SUE操作系统。
微内核结构
微内核计算机操作系统体系结构又可以被叫作客户机结构或者服务器结构,其实际上就是一种将系统中的代码转移到更高层次当中,尽可能地减少操作系统中的东西,仅仅保留一个小体积的内核,一般情况下其使用的主要方法就是通过用户进程来实现操作系统所具备的各项功能,具体来说就是用户进程可以将相关的请求和要求发送到服务器当中,然后由服务器完成相关的操作以后在通过某种渠道反馈到用户进程当中。在微内核结构中,操作系统的内核主要工作就是对客户端和服务器之间的通信进行处理,在系统中包括许多部分,每一个部分均具备某一方面的功能,例如文件服务、进程服务、终端服务等,这样的部分相对较小,相关的管理工作也较为便利。这种机构的服务的运行都是以用户进程的形式呈现的,既不在核心中运行,也不直接地对硬件进行访问,这样一来即使服务器发生错误或受到破坏也不会对系统造成影响,仅仅只是会造成相对应服务器的崩溃。
外核结构
外核结构的计算机操作系统本质上就是为了获得更高的性能和灵活性而设计出来的,在系统中,操作系统接口处于硬件层,在内核中提出全部由以往操作系统带来的抽象,并将重点和关键放在了更多硬件资源的复用方面。在操作系统的外核结构中,内核负责的主要工作仅仅为简单的申请操作以及释放和复用硬件资源,其由以往操作系统提供的抽象全部在用户空间当中运行。
一般情况下,外核结构中的内核主要有三大方面的工作,分别是对资源的所有权进行跟踪、为操作系统的安全提供保护以及撤销对资源的访问行为。在核外,基本上所有的操作系统中的抽象都是以库的形式呈现出来的,而用户在访问硬件资源时也是通过库的调用来完成的。
安全加固
随着计算机网络与应用技术的不断发展,信息系统安全问题越来越引起人们的关注,信息系统一旦遭受破坏,用户及单位将受到重大的损失,对信息系统进行有效的保护,是必须面对和解决的迫切课题,而操作系统安全在计算机系统整体安全中至关重要,加强操作系统安全加固和优化服务是实现信息系统安全的关键环节。当前,操作系统安全构成威胁的问题主要有系统漏洞、脆弱的登录认证方式、访问控制形同虚设、计算机病毒、特洛伊木马、隐蔽通道、系统后门恶意程序和代码感染等,加强操作系统安全加固工作是整个信息系统安全的基础。
安全加固原理
安全加固是指按照系统安全配置标准,结合用户信息系统实际情况,对信息系统涉及的终端主机、服务器、网络设备、数据库及应用中间件等软件系统进行安全配置加固、漏洞修复和安全设备调优。通过安全加固,可以合理加强信息系统安全性,提高其健壮性,增加攻击入侵的难度,可以使信息系统安全防范水平得到大幅提升。
安全加固方法
安全加固主要通过人工对系统进行漏洞扫描,针对扫描结果使用打补丁、强化账号安全、修改安全配置、优化访问控制策略、增加安全机制等方法加固系统以及堵塞系统漏洞、“后门”,完成加固工作。
安全加固流程
安全加固主要包含以下几个环节:
(1)安全加固范围确定收集需要进行安全加固的信息系统所涉及的计算机设备、网络、数据库及应用中间件的设备情况。
(2)制订安全加固方案根据信息系统的安全等级划分和具体要求,利用网络安全经验和漏洞扫描技术和工具,对加固范围内的计算机操作系统、网络设备、数据库系统及应用中间件系统进行安全评估,从内、外部对信息系统进行全面的评估,检查这些系统目前安全状况,根据现状制定相应的安全加固措施,形成安全加固方案。
(3)安全加固方案实施根据制定的安全加固实施方案实施加固,完成后对加固后的系统进行全面的测试和检查,确保加固对系统业务无影响,并填写加固实施记录。
(4)安全加固报告输出根据安全加固实施记录,编写最终的安全加固实施报告,对加固工作进行总结,对已加固的项目、加固效果、遗留问题进行汇总统计。
系统虚拟化
操作系统虚拟化作为容器的核心技术支撑,得到了研究者的广泛关注。最近几年,无论是在以SOSP/OSDI为代表的计算机系统领域顶级学术会议上,还是以Google为代表的重要互联网企业中,都陆续出现了一批操作系统虚拟化的最新研究成果,并且成果数量呈现出逐年增加的总体趋势。
操作系统虚拟化技术允许多个应用在共享同一主机操作系统
(Host OS) 内核的环境下隔离运行, 主机操作系统为应用提供一个个隔离的运行环境, 即容器实例:操作系统虚拟化技术架构可以分为容器实例层、容器管理层和内核资源层。 [7]
操作系统虚拟化与传统虚拟化最本质的不同是传统虚拟化需要安装客户机操作系统
(Guest OS) 才能执行应用程序,而操作系统虚拟化通过共享的宿主机操作系统来取代
Guest OS。
操作实例
嵌入式
嵌入式系统使用非常广泛的系统(如VxWorks、eCos、Symbian
OS及Palm
OS)以及某些功能缩减版本的Linux或者其他操作系统。某些情况下,OS指称的是一个内置了固定应用软件的巨大泛用程序。在许多最简单的嵌入式系统中,所谓的OS就是指其上唯一的应用程序。
iOS是由苹果公司开发的手持设备操作系统。苹果公司于2007年1月9日的Macworld
大会上公布这个系统,以Darwin为基础,属于类Unix 的商业操作系统。最初是设计给
iPhone 使用的,后来陆续套用到 iPod
touch 、iPad 以及
Apple TV 等产品上。iOS与苹果的 Mac
OS X 操作系统一样,属于类Unix的商业操作系统。原本这个系统名为
iPhone OS,因为 iPad,iPhone,iPod
touch 都使用 iPhone OS,所以 2010 年 WWDC
大会上宣布改名为 iOS(iOS 为美国
Cisco 公司网络设备操作系统注册商标,苹果改名已获得
Cisco 公司授权)。
iPhone的不卡神话iOS是怎么来的?来聊聊苹果系统的前世今生
Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”。Android操作系统最初由Andy
Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。 2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。
openEuler是开放原子开源基金会(OpenAtom
Foundation)孵化及运营的开源项目。
欧拉操作系统(openEuler,简称“欧拉”,“开源欧拉”)是面向数字基础设施的操作系统,支持服务器、云计算、边缘计算、嵌入式等应用场景,支持多样性计算,致力于提供安全、稳定、易用的操作系统。通过为应用提供确定性保障能力,支持OT领域应用及OT与ICT的融合。
类 UNIX:所谓的类UNIX家族指的是一族种类繁多的OS,此族包含了System
V、BSD与Linux。由于UNIX是The
Open Group的注册商标,特指遵守此公司定义的行为的操作系统。而类UNIX通常指的是比原先的UNIX包含更多特征的OS。
类Unix系统可在非常多的处理器架构下运行,在服务器系统上有很高的使用率,例如大专院校或工程应用的工作站。
1991年,芬兰学生林纳斯·托瓦兹根据类UNIX系统Minix编写并发布了Linux操作系统内核,其后在理查德·斯托曼的建议下以GNU通用公共许可证发布,成为自由软件UNIX变种.
Linux近来越来越受欢迎,它们也在个人桌面计算机市场上大有斩获,例如Ubuntu系统。
某些UNIX变种,例如惠普的HP-UX以及IBM的AIX仅设计用于自家的硬件产品上,而SUN的Solaris可安装于自家的硬件或x86计算机上。苹果计算机的Mac
OS X是一个从NeXTSTEP、Mach以及FreeBSD共同派生出来的微内核BSD系统,此OS取代了苹果计算机早期非UNIX家族的Mac
OS。
经历数年的披荆斩棘,自由开源的Linux系统逐渐蚕食以往专利软件的专业领域,例如以往计算机动画运算巨擘──硅谷图形公司(SGI)的IRIX系统已被Linux家族及贝尔实验室研发小组设计的九号项目与Inferno系统取代,皆用于分散表达式环境。它们并不像其他UNIX系统,而是选择内置图形用户界面。九号项目原先并不普及,因为它刚推出时并非自由软件。后来改在自由及开源软件许可证Lucent
Public License发布后,便开始拥有广大的用户及社群。Inferno已被售予Vita
Nuova并以GPL/MIT许可证发布。
当前,计算机按照计算能力排名世界500强中472台使用Linux,6台使用Windows,其余为各类BSD等UNIX。