2024年6月14日发(作者:殳冰双)
什么是操作系统
操作系统的概念
操作系统(英语:Operating System,简称OS)是管理和控制计算机硬件与软件资源的计
算机程序,是直接运行在“裸机”上的最基本的系统软件,控制其他程序运行并为用户提供
交互操作界面的系统软件的集合,任何其他软件都必须在操作系统的支持下才能运行。操
作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能
包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应
用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,提供了各种形式的用户
界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口。
操作系统的种类相当多,各种设备安装的操作系统可从简单到复杂,可从手机的嵌入式操
作系统到超级计算机的大型操作系统。目前流行的现代操作系统主要有Android、BSD、
iOS、Linux、Mac OS X、Windows、Windows Phone和z/OS等,除了Windows和z/OS等
少数操作系统,大部分操作系统都为类Unix操作系统。
操作系统的划分
按应用领域划分主要有三种:桌面操作系统、服务器操作系统和嵌入式操作系统。
桌面操作系统
桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵
营,PC机与Mac机,从软件上可主要分为两大类,分别为类Unix操作系统和Windows
操作系统:
1、Unix和类Unix操作系统:Mac OS X,Linux发行版(如Debian,Ubuntu,Linux Mint,
openSUSE,Fedora等);
2、微软公司Windows操作系统[2]:Windows XP,Windows Vista,Windows 7,Windows
8等。
服务器操作系统
服务器操作系统一般指的是安装在大型计算机上的操作系统,比如Web服务器、应用服
务器和数据库服务器等。服务器操作系统主要集中在三大类:
1、Unix系列:SUN Solaris,IBM-AIX,HP-UX,FreeBSD等;
2、Linux系列:Red Hat Linux,CentOS,Debian,Ubuntu等;
3、Windows系列:Windows Server 2003,Windows Server 2008,Windows Server 2008 R2
等。
嵌入式操作系统
嵌入式操作系统是应用在嵌入式系统的操作系统。嵌入式系统广泛应用在生活的各个方面,
涵盖范围从便携设备到大型固定设施,如数码相机、手机、平板电脑、家用电器、医疗设
备、交通灯、航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时操作系统。
在嵌入式领域常用的操作系统有嵌入式Linux、Windows Embedded、VxWorks等,以及广
泛使用在智能手机或平板电脑等消费电子产品的操作系统,如Android、iOS、Symbian、
Windows Phone和BlackBerry OS等。
操作系统的主要功能
操作系统的主要功能是:资源管理,程序控制和人机交互等。
计算机系统的资源可分为设备资源和信息资源两大类。
1. 设备资源指的是组成计算机的硬件设备,如中央处理器,主存储器,磁盘存储器,打
印机,磁带存储器,显示器,键盘输入设备和鼠标等。
2. 信息资源指的是存放于计算机内的各种数据,如文件,程序库,知识库,系统软件和
应用软件等。
操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界
面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。
以现代观点而言,一个标准个人电脑的OS应该提供以下的功能:
进程管理(Processing management)
内存管理(Memory management)
文件系统(File system)
网络通讯(Networking)
安全机制(Security)
用户界面(User interface)
驱动程序(Device drivers)
资源管理
系统的设备资源和信息资源都是操作系统根据用户需求按一定的策略来进行分配和调度
的。操作系统的存储管理就负责把内存单元分配给需要内存的程序以便让它执行,在程序
执行结束后将它占用的内存单元收回以便再使用。对于提供虚拟存储的计算机系统,操作
系统还要与硬件配合做好页面调度工作,根据执行程序的要求分配页面,在执行中将页面
调入和调出内存以及回收页面等。
处理器管理或称处理器调度,是操作系统资源管理功能的另一个重要内容。在一个允许多
道程序同时执行的系统里,操作系统会根据一定的策略将处理器交替地分配给系统内等待
运行的程序。一道等待运行的程序只有在获得了处理器后才能运行。一道程序在运行中若
遇到某个事件,例如启动外部设备而暂时不能继续运行下去,或一个外部事件的发生等等,
操作系统就要来处理相应的事件,然后将处理器重新分配。
操作系统的设备管理功能主要是分配和回收外部设备以及控制外部设备按用户程序的要
求进行操作等。对于非存储型外部设备,如打印机、显示器等,它们可以直接作为一个设
备分配给一个用户程序,在使用完毕后回收以便给另一个需求的用户使用。对于存储型的
外部设备,如磁盘、磁带等,则是提供存储空间给用户,用来存放文件和数据。存储性外
部设备的管理与信息管理是密切结合的。
信息管理是操作系统的一个重要的功能,主要是向用户提供一个文件系统。一般说,一个
文件系统向用户提供创建文件,撤销文件,读写文件,打开和关闭文件等功能。有了文件
系统后,用户可按文件名存取数据而无需知道这些数据存放在哪里。这种做法不仅便于用
户使用而且还有利于用户共享公共数据。此外,由于文件建立时允许创建者规定使用权限,
这就可以保证数据的安全性。
程序控制
一个用户程序的执行自始至终是在操作系统控制下进行的。一个用户将他要解决的问题用某
一种程序设计语言编写了一个程序后就将该程序连同对它执行的要求输入到计算机内,操作
系统就根据要求控制这个用户程序的执行直到结束。操作系统控制用户的执行主要有以下一
些内容:调入相应的编译程序,将用某种程序设计语言编写的源程序编译成计算机可执行的
目标程序,分配内存储等资源将程序调入内存并启动,按用户指定的要求处理执行中出现的
各种事件以及与操作员联系请示有关意外事件的处理等。
人机交互
操作系统的人机交互功能是决定计算机系统“友善性”的一个重要因素。人机交互功能主要靠
可输入输出的外部设备和相应的软件来完成。可供人机交互使用的设备主要有键盘显示、鼠
标、各种模式识别设备等。与这些设备相应的软件就是操作系统提供人机交互功能的部分。
人机交互部分的主要作用是控制有关设备的运行和理解并执行通过人机交互设备传来的有
关的各种命令和要求。
进程管理
不管是常驻程序或者应用程序,他们都以进程为标准执行单位。当年运用冯纽曼架构建造电
脑时,每个中央处理器最多只能同时执行一个进程。早期的OS(例如DOS)也不允许任何
程序打破这个限制,且DOS同时只有执行一个进程(虽然DOS自己宣称他们拥有终止并等
待驻留(TSR)能力,可以部分且艰难地解决这问题)。现代的操作系统,即使只拥有一个
CPU,也可以利用多进程(multitask)功能同时执行复数进程。进程管理指的是操作系统调
整复数进程的功能。
由于大部分的电脑只包含一颗中央处理器,在单内核(Core)的情况下多进程只是简单迅速
地切换各进程,让每个进程都能够执行,在多内核或多处理器的情况下,所有进程通过许多
协同技术在各处理器或内核上转换。越多进程同时执行,每个进程能分配到的时间比率就越
小。很多OS在遇到此问题时会出现诸如音效断续或鼠标跳格的情况(称做崩溃(Thrashing),
一种OS只能不停执行自己的管理程序并耗尽系统资源的状态,其他使用者或硬件的程序皆
无法执行)。进程管理通常实现了分时的概念,大部分的OS可以利用指定不同的特权等级
(priority),为每个进程改变所占的分时比例。特权越高的进程,执行优先级越高,单位时
间内占的比例也越高。交互式OS也提供某种程度的回馈机制,让直接与使用者交互的进程
拥有较高的特权值。
内存管理
根据帕金森定律:“你给程序再多内存,程序也会想尽办法耗光”,因此程序员通常希望系统
给他无限量且无限快的存储器。大部分的现代计算机存储器架构都是层次结构式的,最快且
数量最少的暂存器为首,然后是高速缓存、存储器以及最慢的磁盘存储设备。而操作系统的
存储器管理提供查找可用的记忆空间、配置与释放记忆空间以及交换存储器和低速存储设备
的内含物……等功能。此类又被称做虚拟内存管理的功能大幅增加每个进程可获得的记忆空
间(通常是4GB,既使实际上RAM的数量远少于这数目)。然而这也带来了微幅降低运行效
率的缺点,严重时甚至也会导致进程崩溃。
存储器管理的另一个重点活动就是借由CPU的帮助来管理虚拟位置。如果同时有许多进程
存储于记忆设备上,操作系统必须防止它们互相干扰对方的存储器内容(除非通过某些协定
在可控制的范围下操作,并限制可访问的存储器范围)。分区存储器空间可以达成目标。每
个进程只会看到整个存储器空间(从0到存储器空间的最大上限)被配置给它自己(当然,
有些位置被操作系统保留而禁止访问)。CPU事先存了几个表以比对虚拟位置与实际存储器
位置,这种方法称为标签页(paging)配置。
借由对每个进程产生分开独立的位置空间,操作系统也可以轻易地一次释放某进程所占据的
所有存储器。如果这个进程不释放存储器,操作系统可以退出进程并将存储器自动释放。
虚拟内存
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存
(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分
暂时存储在外部磁盘存储器上,在需要时进行数据交换。
在早期的单用户单任务操作系统(如DOS)中,每台计算机只有一个用户,每次运行一个程
序,且次序不是很大,单个程序完全可以存放在实际内存中。这时虚拟内存并没有太大的用
处。但随着程序占用存储器容量的增长和多用户多任务操作系统的出现,在程序设计时,在
程序所需要的存储量与计算机系统实际配备的主存储器的容量之间往往存在着矛盾。例如,
在某些低档的计算机中,物理内存的容量较小,而某些程序却需要很大的内存才能运行;而
在多用户多任务系统中,多个用户或多个任务更新全部主存,要求同时执行独断程序。这些
同时运行的程序到底占用实际内存中的哪一部分,在编写程序时是无法确定的,必须等到程
序运行时才动态分配。[4]
为此,希望在编写程序时独立编址,既不考虑程序是否能在物理存储中存放得下,也不考虑
程序应该存放在什么物理位置。而在程序运行时,则分配给每个程序一定的运行空间,由地
址转换部件将编程时的地址转换成实际内存的物理地址。如果分配的内存不够,则只调入当
前正在运行的或将要运行的程序块(或数据块),其余部分暂时驻留在辅存中。
2024年6月14日发(作者:殳冰双)
什么是操作系统
操作系统的概念
操作系统(英语:Operating System,简称OS)是管理和控制计算机硬件与软件资源的计
算机程序,是直接运行在“裸机”上的最基本的系统软件,控制其他程序运行并为用户提供
交互操作界面的系统软件的集合,任何其他软件都必须在操作系统的支持下才能运行。操
作系统是用户和计算机的接口,同时也是计算机硬件和其他软件的接口。操作系统的功能
包括管理计算机系统的硬件、软件及数据资源,控制程序运行,改善人机界面,为其它应
用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,提供了各种形式的用户
界面,使用户有一个好的工作环境,为其它软件的开发提供必要的服务和相应的接口。
操作系统的种类相当多,各种设备安装的操作系统可从简单到复杂,可从手机的嵌入式操
作系统到超级计算机的大型操作系统。目前流行的现代操作系统主要有Android、BSD、
iOS、Linux、Mac OS X、Windows、Windows Phone和z/OS等,除了Windows和z/OS等
少数操作系统,大部分操作系统都为类Unix操作系统。
操作系统的划分
按应用领域划分主要有三种:桌面操作系统、服务器操作系统和嵌入式操作系统。
桌面操作系统
桌面操作系统主要用于个人计算机上。个人计算机市场从硬件架构上来说主要分为两大阵
营,PC机与Mac机,从软件上可主要分为两大类,分别为类Unix操作系统和Windows
操作系统:
1、Unix和类Unix操作系统:Mac OS X,Linux发行版(如Debian,Ubuntu,Linux Mint,
openSUSE,Fedora等);
2、微软公司Windows操作系统[2]:Windows XP,Windows Vista,Windows 7,Windows
8等。
服务器操作系统
服务器操作系统一般指的是安装在大型计算机上的操作系统,比如Web服务器、应用服
务器和数据库服务器等。服务器操作系统主要集中在三大类:
1、Unix系列:SUN Solaris,IBM-AIX,HP-UX,FreeBSD等;
2、Linux系列:Red Hat Linux,CentOS,Debian,Ubuntu等;
3、Windows系列:Windows Server 2003,Windows Server 2008,Windows Server 2008 R2
等。
嵌入式操作系统
嵌入式操作系统是应用在嵌入式系统的操作系统。嵌入式系统广泛应用在生活的各个方面,
涵盖范围从便携设备到大型固定设施,如数码相机、手机、平板电脑、家用电器、医疗设
备、交通灯、航空电子设备和工厂控制设备等,越来越多嵌入式系统安装有实时操作系统。
在嵌入式领域常用的操作系统有嵌入式Linux、Windows Embedded、VxWorks等,以及广
泛使用在智能手机或平板电脑等消费电子产品的操作系统,如Android、iOS、Symbian、
Windows Phone和BlackBerry OS等。
操作系统的主要功能
操作系统的主要功能是:资源管理,程序控制和人机交互等。
计算机系统的资源可分为设备资源和信息资源两大类。
1. 设备资源指的是组成计算机的硬件设备,如中央处理器,主存储器,磁盘存储器,打
印机,磁带存储器,显示器,键盘输入设备和鼠标等。
2. 信息资源指的是存放于计算机内的各种数据,如文件,程序库,知识库,系统软件和
应用软件等。
操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界
面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。
以现代观点而言,一个标准个人电脑的OS应该提供以下的功能:
进程管理(Processing management)
内存管理(Memory management)
文件系统(File system)
网络通讯(Networking)
安全机制(Security)
用户界面(User interface)
驱动程序(Device drivers)
资源管理
系统的设备资源和信息资源都是操作系统根据用户需求按一定的策略来进行分配和调度
的。操作系统的存储管理就负责把内存单元分配给需要内存的程序以便让它执行,在程序
执行结束后将它占用的内存单元收回以便再使用。对于提供虚拟存储的计算机系统,操作
系统还要与硬件配合做好页面调度工作,根据执行程序的要求分配页面,在执行中将页面
调入和调出内存以及回收页面等。
处理器管理或称处理器调度,是操作系统资源管理功能的另一个重要内容。在一个允许多
道程序同时执行的系统里,操作系统会根据一定的策略将处理器交替地分配给系统内等待
运行的程序。一道等待运行的程序只有在获得了处理器后才能运行。一道程序在运行中若
遇到某个事件,例如启动外部设备而暂时不能继续运行下去,或一个外部事件的发生等等,
操作系统就要来处理相应的事件,然后将处理器重新分配。
操作系统的设备管理功能主要是分配和回收外部设备以及控制外部设备按用户程序的要
求进行操作等。对于非存储型外部设备,如打印机、显示器等,它们可以直接作为一个设
备分配给一个用户程序,在使用完毕后回收以便给另一个需求的用户使用。对于存储型的
外部设备,如磁盘、磁带等,则是提供存储空间给用户,用来存放文件和数据。存储性外
部设备的管理与信息管理是密切结合的。
信息管理是操作系统的一个重要的功能,主要是向用户提供一个文件系统。一般说,一个
文件系统向用户提供创建文件,撤销文件,读写文件,打开和关闭文件等功能。有了文件
系统后,用户可按文件名存取数据而无需知道这些数据存放在哪里。这种做法不仅便于用
户使用而且还有利于用户共享公共数据。此外,由于文件建立时允许创建者规定使用权限,
这就可以保证数据的安全性。
程序控制
一个用户程序的执行自始至终是在操作系统控制下进行的。一个用户将他要解决的问题用某
一种程序设计语言编写了一个程序后就将该程序连同对它执行的要求输入到计算机内,操作
系统就根据要求控制这个用户程序的执行直到结束。操作系统控制用户的执行主要有以下一
些内容:调入相应的编译程序,将用某种程序设计语言编写的源程序编译成计算机可执行的
目标程序,分配内存储等资源将程序调入内存并启动,按用户指定的要求处理执行中出现的
各种事件以及与操作员联系请示有关意外事件的处理等。
人机交互
操作系统的人机交互功能是决定计算机系统“友善性”的一个重要因素。人机交互功能主要靠
可输入输出的外部设备和相应的软件来完成。可供人机交互使用的设备主要有键盘显示、鼠
标、各种模式识别设备等。与这些设备相应的软件就是操作系统提供人机交互功能的部分。
人机交互部分的主要作用是控制有关设备的运行和理解并执行通过人机交互设备传来的有
关的各种命令和要求。
进程管理
不管是常驻程序或者应用程序,他们都以进程为标准执行单位。当年运用冯纽曼架构建造电
脑时,每个中央处理器最多只能同时执行一个进程。早期的OS(例如DOS)也不允许任何
程序打破这个限制,且DOS同时只有执行一个进程(虽然DOS自己宣称他们拥有终止并等
待驻留(TSR)能力,可以部分且艰难地解决这问题)。现代的操作系统,即使只拥有一个
CPU,也可以利用多进程(multitask)功能同时执行复数进程。进程管理指的是操作系统调
整复数进程的功能。
由于大部分的电脑只包含一颗中央处理器,在单内核(Core)的情况下多进程只是简单迅速
地切换各进程,让每个进程都能够执行,在多内核或多处理器的情况下,所有进程通过许多
协同技术在各处理器或内核上转换。越多进程同时执行,每个进程能分配到的时间比率就越
小。很多OS在遇到此问题时会出现诸如音效断续或鼠标跳格的情况(称做崩溃(Thrashing),
一种OS只能不停执行自己的管理程序并耗尽系统资源的状态,其他使用者或硬件的程序皆
无法执行)。进程管理通常实现了分时的概念,大部分的OS可以利用指定不同的特权等级
(priority),为每个进程改变所占的分时比例。特权越高的进程,执行优先级越高,单位时
间内占的比例也越高。交互式OS也提供某种程度的回馈机制,让直接与使用者交互的进程
拥有较高的特权值。
内存管理
根据帕金森定律:“你给程序再多内存,程序也会想尽办法耗光”,因此程序员通常希望系统
给他无限量且无限快的存储器。大部分的现代计算机存储器架构都是层次结构式的,最快且
数量最少的暂存器为首,然后是高速缓存、存储器以及最慢的磁盘存储设备。而操作系统的
存储器管理提供查找可用的记忆空间、配置与释放记忆空间以及交换存储器和低速存储设备
的内含物……等功能。此类又被称做虚拟内存管理的功能大幅增加每个进程可获得的记忆空
间(通常是4GB,既使实际上RAM的数量远少于这数目)。然而这也带来了微幅降低运行效
率的缺点,严重时甚至也会导致进程崩溃。
存储器管理的另一个重点活动就是借由CPU的帮助来管理虚拟位置。如果同时有许多进程
存储于记忆设备上,操作系统必须防止它们互相干扰对方的存储器内容(除非通过某些协定
在可控制的范围下操作,并限制可访问的存储器范围)。分区存储器空间可以达成目标。每
个进程只会看到整个存储器空间(从0到存储器空间的最大上限)被配置给它自己(当然,
有些位置被操作系统保留而禁止访问)。CPU事先存了几个表以比对虚拟位置与实际存储器
位置,这种方法称为标签页(paging)配置。
借由对每个进程产生分开独立的位置空间,操作系统也可以轻易地一次释放某进程所占据的
所有存储器。如果这个进程不释放存储器,操作系统可以退出进程并将存储器自动释放。
虚拟内存
虚拟内存是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续的可用的内存
(一个连续完整的地址空间),而实际上,它通常是被分隔成多个物理内存碎片,还有部分
暂时存储在外部磁盘存储器上,在需要时进行数据交换。
在早期的单用户单任务操作系统(如DOS)中,每台计算机只有一个用户,每次运行一个程
序,且次序不是很大,单个程序完全可以存放在实际内存中。这时虚拟内存并没有太大的用
处。但随着程序占用存储器容量的增长和多用户多任务操作系统的出现,在程序设计时,在
程序所需要的存储量与计算机系统实际配备的主存储器的容量之间往往存在着矛盾。例如,
在某些低档的计算机中,物理内存的容量较小,而某些程序却需要很大的内存才能运行;而
在多用户多任务系统中,多个用户或多个任务更新全部主存,要求同时执行独断程序。这些
同时运行的程序到底占用实际内存中的哪一部分,在编写程序时是无法确定的,必须等到程
序运行时才动态分配。[4]
为此,希望在编写程序时独立编址,既不考虑程序是否能在物理存储中存放得下,也不考虑
程序应该存放在什么物理位置。而在程序运行时,则分配给每个程序一定的运行空间,由地
址转换部件将编程时的地址转换成实际内存的物理地址。如果分配的内存不够,则只调入当
前正在运行的或将要运行的程序块(或数据块),其余部分暂时驻留在辅存中。