操作系统(Operating System,简称OS)是一个大型的程序系统,他负责计算机的全部软、硬件资源的分配、调度工作,控制并协调多个任务的活动,实现信息的存取和保护。他提供了用户接口,使用户获得良好的工作环境。
操作系统应具备的核心功能
(1)作业管理(系统调用接口)
(2)进程管理
(3)内存管理
(4)文件系统管理
(5)设备管理
操作系统位于计算机的硬件与应用软件之间。操作系统由操作系统的内核、以及系统调用接口两部分组成。
传统的操作系统将:进程、内存、文件系统、设备管理这四大部分看作系统的内核,这四大部分组成的系统是纯粹的操作系统。
随着计算机技术及其应用的日益发展,操作系统也在不断的更新和完善。它的功能也由弱到强,已经成为计算机系统组成的核心部分。
人类管理和控制计算机经历了手工操作、早期批处理阶段、多道批处理系统阶段,以及后来的分时系统、实时系统、个人计算机操作系统、网络操作系统和分布式操作系统。我们可以它们划分为5大类型:批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统。
1946年2月,世界上第一台通用电子数字计算机“埃尼阿克”(ENIAC)在美国研制成功,这个时候还是第一代计算机(电子管计算机),还没有操作系统的概念,电子管计算机体型巨大且都是手工控制作业的输入输出的。
用户使用计算机的过程大致如下:
1)先把程序纸带装上输入机,启动输入机把程序和数据送入计算机;
2)通过控制台开关启动程序运行,计算完毕后,用户拿走打印结果,并卸下纸带。
缺点
1)全程需要人工干预;
2)用户独占计算机,人机速度矛盾导致资源利用率极低;
由于当时的计算机非常昂贵,但是效率却很低。为了解决用户独占计算机及人工干预过程中浪费的时间问题,就想着把多个人的输入集合成一个,然后批量处理,于是就有了单批道处理系统。
单批道处理系统:又分为联机批处理、脱机批处理系统。
联机批处理:由主机上的监控程序控制作业输入输出。
主机与输入机之间增加一个存储设备——磁带,用户将作业交到机房,操作员将一批作业输入到存储设备上,形成一个作业队列,当需要调入作业时,主机的监控程序再依次把磁带上的用户作业读入主机,然后再依次把结果输出,直到这一批作业全部完成。
存在的问题
输入机与主机间不需要人工干预,这大大缩减了作业转换的时间,提高了运行效率;但输入再输入机和输出机再输出的这段时间,CPU的仍处于空闲状态;
为了解决输入机/输出机与主机间的无法同时进行的问题,于是就有了脱机批处理系统。
脱机批处理:输入/输出脱离主机控制,由外围机控制作业输入输出。
主机不直接与输入、输出机打交道,而是与速度更快的磁带机发生关系,缓解了主机与输入/输出设备无法同时进行的问题。把整个输入、输出交给微机来处理,主机不用等待微机何时处理,主机与微机可并行处理。
批处理系统特点
1)自动性:自动逐个执行;
2)顺序性:按输入顺序有序执行;
3)单道性:内存中一次仅执行一个作业;
存在的问题
虽然加快了主机的处理速度,但是主机在与高速磁带间的输入与输出间只能一次处理一次作业,这部分效率还有待提高。
为了进一步提高CPU的利用率,于是就萌生了多批道处理系统。
多批道处理系统,类似于指令流水线处理方式,多道程序间在系统的控制下可以交替进行,即形成在宏观层面上的并行,在微观层面的串行。
多批道系统特点
1)多道性:内存中可同时存在多个作业,在宏观上实现了并行;
存在的问题
内存中可同时容纳多个作业,CPU的效率进一步得到提升。但每次只能有一个用户操作,且用户看不到作业进行到哪一步。
用户的需求推动着技术的发展,速度是上去了,然后开始考虑用户使用的问题,能不能多个人同时操作?能不能看到作业进行的步骤?
借鉴多道批处理的流水线式处理,于是提出了"只要将CPU切换的时间无限细分,每个用户都能独占计算资源的使用权",即在一台主机上连接多个带有显示器和键盘的终端,同时允许多个用户通过自己的键盘,以交互的方式使用计算机,共享主机中的资源,于是分时系统就诞生了。
多用户分时系统也是当今计算机操作系统中最普遍使用的一类操作系统,比如:Windows、Unix、Linux都是多用户分时系统。
分时操作系统的特点
1)交互性:用户能与系统实现交互;
2)独立性:多个用户间可以彼此独立运行;
存在的问题
分时系统让多个用户同时联机共享主机,但也使得系统变得更加复杂,且无法选择具体用户作业的先后顺序;
为了有选择性的优先执行关键任务, 为了让主机能及时响应外部事件的请求,并在规定的严格时间内完成对该事件的处理,控制所有实时任务协调一致地运行,于是就有了实时操作系统。比如RTOS,RT Linux都是实时操作系统。
实时系统可分成两类:
1)实时控制系统:对某个动作必须绝对在规定时间内完成;如:导弹系统、股票系统、自动驾驶系统等;
2)实时信息处理系统:对某个动作可以接受偶尔违反时间规定,且不会引起任何永久性损害;如:预定飞机票、查询有关航班、航线、票价等;
实时操作系统的特点
1)及时性:能对紧急事务及时做出反应;
2)可靠性:要求对紧急事件进行及时处理,具有较强的可靠性;
网络操作系统是基于计算机网络的,是在各种计算机操作系统上按网络体系结构协议标准开发的软件,包括网络管理、通信、安全、资源共享和各种网络应用。其目标是相互通信及资源共享。比如:Netware、Windows NT都是网络操作系统;
网络操作系统可分为三类:集中模式、客户端/服务器模式、对等模式(peer-to-peer)。
网络操作系统的特点
1)有主从关系、网络中资源共享、网络中的计算机通过协议通信;
分布式计算机系统是由多个分散的计算机经连接而成的计算机系统,系统中的计算机无主、次之分,任意两台计算机可以通过通讯交换信息。 分布式操作系统能直接对系统中的各类资源进行动态分配和调度、任务划分、信息传输协调工作,并为用户提供一个统一的界面、标准的接口,用户通过这一界面实现所需要的操作和使用系统资源,使系统中若干台计算机相互协作完成共同的任务,有效地控制和协调诸任务的并行执行。比如:Amoeba就是分布式操作系统。
分布式操作系统特点
1)计算机具有同等低位,无主从之分;
2)系统中的任意计算机可以构成一个子系统,并且还能重构;
3)任何任务都可以分布在几台计算机上、由它们并行、协调完成;
现在我们按应用领域去划分操作系统,主要可以分为以下几种:
1)桌面操作系统
2)服务器操作系统
3)嵌入式操作系统
桌面操作系统主要用于个人计算机上,个人计算机主要有:微软的Windows、苹果的Mac OS以及Linux发行版(如:ubuntu)。
Windows系统是美国微软公司研发的一套操作系统,它问世于1985年,起初仅仅是Microsoft-DOS,即MS-DOS,它是一个单用户单任务的操作系统,是1981年由微软公司为IBM个人电脑开发的磁盘操作系统,在1985年到1995年间DOS占据操作系统的统治地位。
Windows系统版本从Windows1.0-Windows95-Windows98-Windows2000-Windows XP-Windows Vista-Windows7-Windows8-Windows10再到如今的Windows 11,微软不断的更新升级,发展成了当前应用最广泛的操作系统。
Windows 11
Mac OS是一套运行于苹果Macintosh(MAC)系列电脑上的操作系统。Mac OS是首个在商用领域成功的图形用户界面。
Linux发行版比较多,比如:ubuntu、Debian、CentOS、Linux Mint等等;ubuntu,相对于其他发行版,可能是最广为人知的一个。
ubuntu
首先要明白什么是服务器,服务器就是安装了服务器软件的计算机。服务器软件就是接收用户请求、处理请求以及响应请求的软件。
作为服务器,一般在性能方面具有“可扩展性(Scalability)、可用性(Usability)、可管理性(Managbility)和可利用性(Availability),也就是服务器的”SUMA“四大特性。
可扩展性
可扩展性指服务器硬件可以根据需要进行灵活配置的能力。比如可以根据需要灵活的配置内存、适配器、硬盘、处理器等等;
可用性
可用性是指服务器的容错性、可靠性;如通过冗余设计去纠正错误和避免损害;二是尽量避免故障的发生改善服务器的工作环境等。
可管理性
可管理性是指服务器是否易于管理和方便维护;
可利用性
可利用性是一个相对于应用要求的指标,不同的应用所要求的服务器处理能力也不同。
为了实现上诉要求,于是诞生了所谓的服务器操作系统。
服务器操作系统:一般指的是安装在大型计算机上的用于管理服务器硬件和软件资源以及向多个程序提供服务的操作系统。
之所以强调一般,是因为在实际应用中作为服务器的计算机,主板内存容量都比普通PC机大。并不是说PC机不能作为服务器,只是为了充分考虑用户需求,在系统SUMA四大特性方面更胜一筹。
服务器操作系统主要分为:Unix系列、Linux系列和Windows系列。服务器按照服务类型不同,可分为文件服务器、数据库服务器、应用程序服务器、WEB服务器等等。
Unix是一种分时计算机操作系统,1969在AT&T(一家美国电信公司)的贝尔实验室诞生。从此以后其优越性不可阻挡的占领网络,大部分重要网络环节都是Unix构造。
当前主要的Unix服务器厂商有IBM公司的AIX操作系统、Oracle(收购了Sun)的Solaris操作系统、惠普的UX操作系统、FreeBSD等等。
IBM-AIX
AIX(Advanced Interactive eXecutive),是IBM专有UNIX操作系统的商标名。AIX只能运行在IBM Power System 上运行,是中端UNIX服务器中性能最强大的服务器。AIX在遵循了主流UNIX标准的同时,还开发了极具个性的独特技术分支,包括可以随时动态扩充和链接的内核(Kernel)、使用了功能强大的逻辑卷存储管理(LVM)、一种集成数据库日志技术的可靠日志文件系统(JFS/JFS2)和面向对象的对象管理数据库(ODM)。不仅如此,AIX的HACMP(High Availability Cluster Muti-Processing,高可用性集群多处理)也使系统具备了绝佳的可靠性。
AIX目前主要用于应用系统中关键数据计算和处理部分,如运行大型数据库Oracle、Sybase、DB2 UDB等,以及类似于Oracle iAS、WebLogic等中间件应用。
AIX本身是基于UNIX的,其自身的Shell是ksh,默认配置下该shell是不具备tab补全。它只能提供一个set -o vi 来实现shell输入可以调用vi部分key操作的功能。而linux发行版中几乎都是bash,该shell具有tab补全功能。
Oracle-Solaris
Solaris操作系统是Sun(被Oracle收购)的Unix版本,相对于HP-UX或AIX而言,它的命令行更多。Solaris配有最新的文件系统ZFS,并应用多种方法来执行虚拟化,包括容器区、xVM服务器、逻辑域和硬件分区。此外, Solaris系统采用共享库、集群技术来提高稳定性。更是采取同时支持64 位和32位两种计算模式处理器的策略来支持更广泛的硬件平台,无论是DEC、HP,还是IBM硬件平台,Solaris系统可以在它们之间进行相互移植。
HP-UX
HP-UX是Unix操作系统中第一个允许客户购买特定操作系统环境的,例如,如果想要购买高可用型的产品就可以选择对应的操作系统版本(HP-UX 11v3最多支持128个处理器内核)。HP-UX除了提供相应的SAM菜单系统之外,对于命令行的支持也很强大。HP-UX相对于AIX和Solaris而言,性能调试更为简单。
FreeBSD
FreeBSD是由许多人参与开发和维护的一种先进的BSD UNIX操作系统。突出的特点FreeBSD提供先进的联网、负载能力,卓越的安全和兼容性。
Linux是Unix克隆的操作系统,在源代码上兼容绝大部分Unix标准,是一个支持多用户、多进程、多线程、实时性较好的且稳定的操作系统。
在Linux生态中,发行版本很多,Linux发行版本按性质划分可分为两类:商业维护版、社区开源版。主流的Linux服务器有Red Hat、Oracle Linux、CentOS、Debian、Ubuntu。
Red Hat
我们常说的Red Hat(红帽)是指RHEL(Red Hat Enterprise Linux,红帽企业版Linux)。RHEL是为商业目的而制作的,并提供企业级支持,它是一个付费的 Linux 发行版。
Oracle Linux
Oracle Linux,全称Oracle Enterprise Linux,是一个从 RHEL 源代码编译的开源 Linux 发行版,该发行版由 Oracle 打包分发,与Red Hat Enterprise Linux完全兼容,它提供了强大的工具,使其适用于内存管理和文件组织,可用于虚拟环境和数据系统。
CentOS
CentOS是Red Hat Enterprise Linux的再编译的社区版,完全免费。
Debian
最古老的 Linux 发行版之一。
Ubuntu
Ubuntu,我们常说的乌班图,是一个基于Debian的Linux发行版,它是免费的,每个人都可以使用。
Windows系列主要有:Windows NT Server、Windows Server2003、Windows Server2008、Windows Server2008R2等。
服务器的系统都有各自的优势特点:
UNIX有严格的标准化(UNIX商标权由国际开放组织所拥有,只有符合单一UNIX规范的系统才能使用这个名称,否则只能称为类UNIX),且在硬件要求上比Linux要高,UNIX多数是硬件厂商针对自己硬件平台的操作系统,所以Unix在大型机、小型机上用的非常广泛,如:银行、通讯及各种大型平台会使用UNIX系列服务器。
Linux作为开源的操作系统,版本众多,但是给予了足够的自由度,但是 Linux 的硬件兼容稍落后,一般的企业、个人选择比较多。
Windows服务器由于厂商开发的硬件和相关驱动一般针对的是 Windows 系统,所以在硬件支持上可能更好,但是毕竟Windows是封闭式的操作系统,在自由度上弱了许多,但是面对开发语言ASP、.NET,数据库ACCESS、SQLServer上还是比较有优势的。
嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它具有一般操作系统的功能,同时具有嵌入式软件的特点(独特的实用性、灵活的适用性、程序代码精简、可靠性稳定性高)。
狭义的嵌入式系统可以理解为:以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
广义的嵌入式系统:凡是带有微处理器的专用软硬件系统都可以称之为嵌入式系统。
常见的嵌入式操作系统有:VxWorks、QNX、Palm OS、Windows CE等,以及广泛使用在智能手机或普通电脑等消费电子产品的操作系统,如Android、iOS、Symbian、WindowsPhone等;
嵌入式操作系统的出现最初是基于单片机的。20世纪70年代单片机的出现,使得汽车、家电、工业机器、通信装置以及成千上万种产品可以通过内嵌电子装置来获得更佳的性能,这些装置初步具有了嵌入式的应用特点,只是这些应用只使用了8位的芯片,执行一些单线程程序,还谈不上“系统”的概念。
20世纪80年代,随着微电子工艺水平的提高,集成电路制造商开始把嵌入式应用中所需的为处理器、I/O接口、串行接口以及RAM、ROM等部件都集成到一片VLSI中,制造出面向I/O设计的微控制器,并一举成为嵌入式系统领域中异军突起的新秀,随后各种简单的嵌入式操作系统开始出现并得到迅速的发展。
20世纪90年代,随着硬件实时性要求的提高,嵌入式系统的软件规模也不断扩大,逐渐形成了实时多任务操作系统,此时的嵌入式操作系统已具备了文件和目录管理、设备管理、多任务、网络等功能,并提高了大量的应用程序接口,从而使得应用软件的开发变得更加简单。
21世纪的今天,嵌入式系统广泛应用在生活的各个方面,如消费电子(数码相机、手机、平板电脑)、汽车电子(发动机控制系统、尾灯控制系统、车载导航系统、自动驾驶系统)、航空航天、医疗设备、工业自动化等等。