您现在的位置是:首页 > 电脑技术查询 > 电脑知识

操作系统

编辑:chaxungu时间:2022-12-07 04:48:23分类:电脑知识

目录·类型
·功能
·操作系统大全
·历史
·历史列表
·功能


操作系统(英语;operatingsystem,简称os)是一管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石。操作系统身负诸如管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络与管理文件系统等基本事务。操作系统是管理计算机系统的全部硬件资源包括软件资源及数据资源;控制程序运行;改善人机界面;为其它应用软件提供支持等,使计算机系统所有资源最大限度地发挥作用,为用户提供方便的、有效的、友善的服务界面。操作系统是一个庞大的管理控制程序,大致包括5个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。目前微机上常见的操作系统有dos、os/2、unix、xenix、linux、windows、netware等。但所有的操作系统具有并发性、共享性、虚拟性和不确定性四个基本特征。

操作系统的型态非常多样,不同机器安装的os可从简单到复杂,可从手机的嵌入式系统到超级电脑的大型操作系统。许多操作系统制造者对os的定义也不大一致,例如有些os集成了图形化使用者界面,而有些os仅使用文本接口,而将图形界面视为一种非必要的应用程序。

操作系统理论在计算机科学中为历史悠久而又活跃的分支,而操作系统的设计与实现则是软件工业的基础与内核。


类型

操作系统大致可分为6种类型。

①简单操作系统。它是计算机初期所配置的操作系统,如ibm公司的磁盘操作系统dos/360和微型计算机的操作系统cp/m等。这类操作系统的功能主要是操作命令的执行,文件服务,支持高级程序设计语言编译程序和控制外部设备等。

②分时系统。它支持位于不同终端的多个用户同时使用一台计算机,彼此独立互不干扰,用户感到好像一台计算机全为他所用。

③实时操作系统。它是为实时计算机系统配置的操作系统。其主要特点是资源的分配和调度首先要考虑实时性然后才是效率。此外,实时操作系统应有较强的容错能力。

④网络操作系统。它是为计算机网络配置的操作系统。在其支持下,网络中的各台计算机能互相通信和共享资源。其主要特点是与网络的硬件相结合来完成网络的通信任务。

⑤分布操作系统。它是为分布计算系统配置的操作系统。它在资源管理,通信控制和操作系统的结构等方面都与其他操作系统有较大的区别。由于分布计算机系统的资源分布于系统的不同计算机上,操作系统对用户的资源需求不能像一般的操作系统那样等待有资源时直接分配的简单做法而是要在系统的各台计算机上搜索,找到所需资源后才可进行分配。对于有些资源,如具有多个副本的文件,还必须考虑一致性。所谓一致性是指若干个用户对同一个文件所同时读出的数据是一致的。为了保证一致性,操作系统须控制文件的读、写、操作,使得多个用户可同时读一个文件,而任一时刻最多只能有一个用户在修改文件。分布操作系统的通信功能类似于网络操作系统。由于分布计算机系统不像网络分布得很广,同时分布操作系统还要支持并行处理,因此它提供的通信机制和网络操作系统提供的有所不同,它要求通信速度高。分布操作系统的结构也不同于其他操作系统,它分布于系统的各台计算机上,能并行地处理用户的各种需求,有较强的容错能力。⑥智能操作系统(见智能软件)。


功能

操作系统的主要功能是资源管理,程序控制和人机交互等。计算机系统的资源可分为设备资源和信息资源两大类。设备资源指的是组成计算机的硬件设备,如中央处理器,主存储器,磁盘存储器,打印机,磁带存储器,显示器,键盘输入设备和鼠标等。信息资源指的是存放于计算机内的各种数据,如文件,程序库,知识库,系统软件和应用软件等。

资源管理

系统的设备资源和信息资源都是操作系统根据用户需求按一定的策略来进行分配和调度的。操作系统的存储管理就负责把内存单元分配给需要内存的程序以便让它执行,在程序执行结束后将它占用的内存单元收回以便再使用。对于提供虚拟存储的计算机系统,操作系统还要与硬件配合做好页面调度工作,根据执行程序的要求分配页面,在执行中将页面调入和调出内存以及回收页面等。

处理器管理或称处理器调度,是操作系统资源管理功能的另一个重要内容。在一个允许多道程序同时执行的系统里,操作系统会根据一定的策略将处理器交替地分配给系统内等待运行的程序。一道等待运行的程序只有在获得了处理器后才能运行。一道程序在运行中若遇到某个事件,例如启动外部设备而暂时不能继续运行下去,或一个外部事件的发生等等,操作系统就要来处理相应的事件,然后将处理器重新分配。

操作系统的设备管理功能主要是分配和回收外部设备以及控制外部设备按用户程序的要求进行操作等。对于非存储型外部设备,如打印机、显示器等,它们可以直接作为一个设备分配给一个用户程序,在使用完毕后回收以便给另一个需求的用户使用。对于存储型的外部设备,如磁盘、磁带等,则是提供存储空间给用户,用来存放文件和数据。存储性外部设备的管理与信息管理是密切结合的。

信息管理是操作系统的一个重要的功能,主要是向用户提供一个文件系统。一般说,一个文件系统向用户提供创建文件,撤销文件,读写文件,打开和关闭文件等功能。有了文件系统后,用户可按文件名存取数据而无需知道这些数据存放在哪里。这种做法不仅便于用户使用而且还有利于用户共享公共数据。此外,由于文件建立时允许创建者规定使用权限,这就可以保证数据的安全性。

程序控制

一个用户程序的执行自始至终是在操作系统控制下进行的。一个用户将他要解决的问题用某一种程序设计语言编写了一个程序后就将该程序连同对它执行的要求输入到计算机内,操作系统就根据要求控制这个用户程序的执行直到结束。操作系统控制用户的执行主要有以下一些内容:调入相应的编译程序,将用某种程序设计语言编写的源程序编译成计算机可执行的目标程序,分配内存储等资源将程序调入内存并启动,按用户指定的要求处理执行中出现的各种事件以及与操作员联系请示有关意外事件的处理等。

人机交互

操作系统的人机交互功能是决定计算机系统“友善性”的一个重要因素。人机交互功能主要靠可输入输出的外部设备和相应的软件来完成。可供人机交互使用的设备主要有键盘显示、鼠标、各种模式识别设备等。与这些设备相应的软件就是操作系统提供人机交互功能的部分。人机交互部分的主要作用是控制有关设备的运行和理解并执行通过人机交互设备传来的有关的各种命令和要求。早期的人机交互设施是键盘显示器。操作员通过键盘打入命令,操作系统接到命令后立即执行并将结果通过显示器显示。打入的命令可以有不同方式,但每一条命令的解释是清楚的,唯一的。随着计算机技术的发展,操作命令也越来越多,功能也越来越强。随着模式识别,如语音识别、汉字识别等输入设备的发展,操作员和计算机在类似于自然语言或受限制的自然语言这一级上进行交互成为可能。此外,通过图形进行人机交互也吸引着人们去进行研究。这些人机交互可称为智能化的人机交互。这方面的研究工作正在积极开展。


操作系统大全

早期操作系统(专利保护)

trs-dos,romos's
ti99-4
commodorepet,64,和vic-20,
第一套ibm-pc
苹果电脑
sinclairmicro和qnx等

非unix商业操作系统

cpm操作系统
mp/m-80
ucsdp-system
mini-flex
ssb-dos
cp/m-86
dr-dos
freedos
ms-dos
pc-dos
mach由卡纳尼基梅隆大学研究
l4微内核第二代微内核
chorus
choices
multics
os-9
nsj
netware:一种网络服务器操作系统

unix及类似系统

a/ux(appleunix)
unix
微软xenix
chorusos
cromix
uniflex
os-9
ibm的aix
bsd
freebsd
netbsd
openbsd
dragonflybsd
pc-bsd
digitalunix,即之后康柏tru64
dnix
hp的hp-ux
gnu/hurd
sgi的irix
inferno
linux(或称gnu/linux)
macosx
menuetos
minix
osf/1
plan9
sco的scounix
sun的sunos,即之后的solaris
systemv
ultrix
unicos
麒麟操作系统(kylin),由国防科技大学、中软公司、联想公司、浪潮公司和民族恒星公司五家单位合作研制的服务器操作系统
os/390
z/os
syllable

其他

acorn
arthur
arx
riscos
riscix
amiga
amigaos
atarist
tos
multitos
mint

苹果电脑(apple/macintosh)

appledos
prodos
macos
macosx
pinkos
beos
a/ux
be
beos
beia


digital/康柏(compaq)

ais
os-8
rsts/e
rsx-11
rt-11
tops-10
tops-20
vms(后更名为openvms)

ibm

os/2
aix
os/400
os/390
vm/cms
dos/vse
vse/sp
vse/esa
os/360
mft
mvt
svs
mvs
tpf
alcs
z/os
pc-dos
pinkos

微软(microsoft)

ms-dos
xenix
microsoftbob
基于ms-dos操作系统的windows
windows1.0
windows2.0
windows3.1
windows95
windows98
windowsme
windowsnt
windowsnt3.5
windowsnt4
windows2000
windowsxp

windowsxpsp1

windowsxpsp2
windowsxpsp3
windowsxpmediacenteredition
windowsxphomeedition
windowsxptabletpcedition
windowsxpprofessional
windowsxpprofessionalx64edition
windowsserver2003
windowsserver200364-bitedition
windowsvista

windowsvistasp1
windowsvistahomebasic
windowsvistahomepremium
windowsvistabusiness
windowsvistaultimate
windowsvistaenterprise
windowsvistastarter

novell

netware
unixware
suselinux

next

nextstep(即之后的macosx)
plan9
inferno

primecomputer
primos

西门子

bs2000-用于西门子公司的大型主机。
sinix(也称reliantunix)-用于西门子公司的unix电脑系统。

个人电子助理(pda)操作系统

palmos
pocketpc
epoc
microsoftwindowsce
linux

智能手机操作系统

windowsmobile系列
embeddedlinux由montavista创造,在motorola'sa760,e680等机型上使用
mobilinux由montavista创造
symbianos系列

其他操作系统

动态可扩展操作系统
mit的exokernel
华盛顿大学的spin
哈佛大学的vino
illinois大学的choices
reactos






历史
各类平台上操作系统的功能演化综观电脑之历史,操作系统与电脑硬件的发展息息相关。操作系统之本意原为提供简单的工作排序能力,后为辅助更新更复杂的硬件设施而渐渐演化。从最早的批次模式开始,分时机制也随之出现,在多处理器时代来临时,操作系统也随之添加多处理器协调功能,甚至是分布式系统的协调功能。其他方面的演变也类似于此。另一方面,在个人电脑上,个人电脑之操作系统因袭大型电脑的成长之路,在硬件越来越复杂、强大时,也逐步实践以往只有大型电脑才有的功能。

总而言之,操作系统的历史就是一部解决电脑系统需求与问题的历史。

1980年代前

mauricevincentwilkes,微程序的创建者
ibmsystem/360,大型主机的经典之作第一部电脑并没有操作系统。这是由于早期电脑的建立方式(如同建造机械算盘)与效能不足以执行如此程序。但在1947年发明了晶体管,以及莫里斯·威尔克斯(mauricev.wilkes)发明的微程序方法,使得电脑不再是机械设备,而是电子产品。系统管理工具以及简化硬件操作流程的程序很快就出现了,且成为操作系统的滥觞。到了1960年代早期,商用电脑制造商制造了批次处理系统,此系统可将工作的建置、调度以及执行序列化。此时,厂商为每一台不同型号的电脑创造不同的操作系统,因此为某电脑而写的程序无法移植到其他电脑上执行,即使是同型号的电脑也不行。
到了1964年,ibmsystem/360推出了一系列用途与价位都不同的大型电脑,而它们都共享代号为os/360的操作系统(而非每种产品都用量身订做的操作系统)。让单一操作系统适用于整个系列的产品是system/360成功的关键,且实际上ibm目前的大型系统便是此系统的后裔;为system/360所写的应用程序依然可以在现代的ibm机器上执行!
os/360也包含另一个优点:永久贮存设备—硬盘驱动器的面世(ibm称为dasd(directaccessstoragedevice))。另一个关键是分时概念的建立:将大型电脑珍贵的时间资源适当分配到所有使用者身上。分时也让使用者有独占整部机器的感觉;而multics的分时系统是此时众多新操作系统中实践此观念最成功的。
1963年,奇异公司与贝尔实验室合作以pl/i语言建立的multics[1],是激发1970年代众多操作系统建立的灵感来源,尤其是由at&t贝尔实验室的丹尼斯·里奇与肯·汤普逊所建立的unix系统,为了实践平台移植能力,此操作系统在1969年由c语言重写;另一个广为市场采用的小型电脑操作系统是vms。

80年代

第一代微型计算机并不像大型电脑或小型电脑,没有装设操作系统的需求或能力;它们只需要最基本的操作系统,通常这种操作系统都是从rom读取的,此种程序被称为监视程序(monitor)。1980年代,家用电脑开始普及。通常此时的电脑拥有8-bit处理器加上64kb内存、屏幕、键盘以及低音质喇叭。而80年代早期最著名的套装电脑为使用微处理器6510(6502芯片特别版)的commodorec64。此电脑没有操作系统,而是以一8kb只读内存bios初始化彩色屏幕、键盘以及软驱和打印机。它可用8kb只读内存basic语言来直接操作bios,并依此撰写程序,大部分是游戏。此basic语言的解释器勉强可算是此电脑的操作系统,当然就没有内核或软硬件保护机制了。此电脑上的游戏大多跳过bios层次,直接控制硬件。
家用电脑c64的抽象架构
简单应用程序机器语言
(游戏直接操作)
8kbasicrom
8krom-bios
硬件(中央处理器、储存设备等)
早期最著名的磁盘启动型操作系统是cp/m,它支持许多早期的微电脑,且被ms-dos大量抄袭其功能。最早期的ibmpc其架构类似c64。当然它们也使用了bios以初始化与抽象化硬件的操作,甚至也附了一个basic解释器!但是它的basic优于其他公司产品的原因在于他有可携性,并且兼容于任何符合ibmpc架构的机器上。这样的pc可利用intel-8088处理器(16-bit寄存器)寻址,并最多可有1mb的内存,然而最初只有640kb。软式磁盘机取代了过去的磁带机,成为新一代的储存设备,并可在他512kb的空间上读写。为了支持更进一步的文件读写概念,磁盘操作系统(diskoperatingsystem,dos)因而诞生。此操作系统可以合并任意数量的磁区,因此可以在一张磁盘片上放置任意数量与大小的文件。文件之间以档名区别。ibm并没有很在意其上的dos,因此以向外部公司购买的方式取得操作系统。1980年微软公司利用骗术[2]取得了与ibm的合约,并且收购了一家公司出产的操作系统,在将之修改后以ms-dos的名义出品,此操作系统可以直接让程序操作bios与文件系统。到了intel-80286处理器的时代,才开始实作基本的储存设备保护措施。ms-dos的架构并不足以满足所有需求,因为它同时只能执行最多一个程序(如果想要同时执进程式,只能使用tsr的方式来跳过os而由程序自行处理多任务的部份),且没有任何内存保护措施。对驱动程序的支持也不够完整,因此导致诸如音效设备必须由程序自行设置的状况,造成不兼容的情况所在多有。某些操作的效能也是可怕地糟糕。许多应用程序因此跳过ms-dos的服务程序,而直接存取硬件设备以取得较好的效能。虽然如此,但ms-dos还是变成了ibmpc上面最常用的操作系统(ibm自己也有推出dos,称为ibm-dos或pc-dos)。ms-dos的成功使得微软成为地球上最赚钱的公司之一。
ms-dos在个人电脑上的抽象架构
普通应用程序(shellscript、文本编辑器)
ms-dos(文件系统)
bios(驱动程序)
硬件(中央处理器、储存设备等)
而1980年代另一个崛起的操作系统异数是macos,此操作系统紧紧与麦金塔电脑捆绑在一起。此时一位全录伯拉图实验室的员工dominikhagen访问了苹果电脑的史蒂夫·乔布斯,并且向他展示了此时全录发展的图形化使用者界面。苹果电脑惊为天人,并打算向全录购买此技术,但因伯拉图实验室并非商业单位而是研究单位,因此全录回绝了这项买卖。在此之后苹果一致认为个人电脑的未来必定属于图形使用者界面,因此也开始发展自己的图形化操作系统。现今许多我们认为是基本要件的图形化接口技术与规则,都是由苹果电脑打下的基础(例如下拉式菜单、桌面图标、拖曳式操作与双点击等)。但正确来说,图形化使用者界面的确是全录创始的。

90年代

applei电脑,苹果电脑的第一代产品。延续1980年代的竞争,1990年代出现了许多影响未来个人电脑市场深厚的操作系统。由于图形化使用者界面日趋繁复,操作系统的能力也越来越复杂与巨大,因此强韧且具有弹性的操作系统就成了迫切的需求。此年代是许多套装类的个人电脑操作系统互相竞争的时代。
上一年代于市场崛起的苹果电脑,由于旧系统的设计不良,使得其后继发展不力,苹果电脑决定重新设计操作系统。经过许多失败的项目后,苹果于1997年释出新操作系统——macos的测试版,而后推出的正式版取得了巨大的成功。让原先失意离开苹果的stevejobs风光再现。
除了商业主流的操作系统外,从1980年代起在开放原码的世界中,bsd系统也发展了非常久的一段时间,但在1990年代由于与at&t的法律争端,使得远在芬兰赫尔辛基大学的另一股开源操作系统——linux兴起。linux内核是一个标准posix内核,其血缘可算是unix家族的一支。linux与bsd家族都搭配gnu计划所发展的应用程序,但是由于使用的许可证以及历史因素的作弄下,linux取得了相当可观的开源操作系统市占率,而bsd则小得多。相较于ms-dos的架构,linux除了拥有傲人的可移植性(相较于linux,ms-dos只能运行在intelcpu上),它也是一个分时多进程内核,以及良好的内存空间管理(普通的进程不能存取内核区域的内存)。想要存取任何非自己的内存空间的进程只能通过系统调用来达成。一般进程是处于使用者模式(usermode)底下,而执行系统调用时会被切换成内核模式(kernelmode),所有的特殊指令只能在内核模式执行,此措施让内核可以完美管理系统内部与外部设备,并且拒绝无权限的进程提出的请求。因此理论上任何应用程序执行时的错误,都不可能让系统崩溃(crash)。
几乎完整的linux架构图
使用者
模式应用程序(sh、vi、openoffice.org等)
复杂函数库(kde、glib等)
简单函数库(opendbm、sin等)
c函数库(open、fopen、socket、exec、calloc等)
内核
模式系统中断、调用、错误等软硬件消息
内核(驱动程序、进程、网络、内存管理等)
硬件(处理器、内存、各种设备)
另一方面,微软对于更强力的操作系统呼声的回应便是windowsnt于1999年的面世。
1983年开始微软就想要为ms-dos建构一个图形化的操作系统应用程序,称为windows(有人说这是比尔盖兹被苹果的lisa电脑上市所刺激)。一开始windows并不是一个操作系统,只是一个应用程序,其背景还是纯ms-dos系统,这是因为当时的bios设计以及ms-dos的架构不甚良好之故。在1990年代初,微软与ibm的合作破裂,微软从os/2(早期为命令行模式,后来成为一个很成功但是曲高和寡的图形化操作系统)项目中抽身,并且在1993年7月27日推出windows3.1,一个以os/2为基础的图形化操作系统。并在1995年8月15日推出windows95。直到这时,windows系统依然是建立在ms-dos的基础上,因此消费者莫不期待微软在2000年所推出的windows2000上,因为它才算是第一个脱离ms-dos基础的图形化操作系统。
下面的表格为windowsnt系统的架构:在硬件阶层之上,有一个由微内核直接接触的硬件抽象层(hal),而不同的驱动程序以模块的形式挂载在内核上执行。因此微内核可以使用诸如输入输出、文件系统、网络、信息安全机制与虚拟内存等功能。而系统服务层提供所有统一规格的函数调用库,可以统一所有副系统的实作方法。例如尽管posix与os/2对于同一件服务的名称与调用方法差异甚大,它们一样可以无碍地实作于系统服务层上。在系统服务层之上的副系统,全都是使用者模式,因此可以避免使用者程序执行非法行动。
简化版本的windowsnt抽象架构
使用者
模式os/2
应用程序win32
应用程序dos
程序win16
应用程序posix
应用程序
其他dll函数库dos系统windows模拟系统
os/2副系统win32副系统posix.1副系统
内核
模式系统服务层
输入输出管理
文件系统、网络系统对象管理系统/安全管理系统/进程管理/对象间通讯管理/进程间通讯管理/虚拟内存管理
微内核窗口管理程序
驱动程序硬件抽象层(hal)图形驱动
硬件(处理器、内存、外部设备等)
副系统架构第一个实作的副系统群当然是以前的微软系统。dos副系统将每个dos程序当成一进程执行,并以个别独立的ms-dos虚拟机器承载其运行环境。另外一个是windows3.1模拟系统,实际上是在win32副系统下执行win16程序。因此达到了安全掌控为ms-dos与早期windows系统所撰写之旧版程序的能力。然而此架构只在intel80386处理器及后继机型上实作。且某些会直接读取硬件的程序,例如大部分的win16游戏,就无法套用这套系统,因此很多早期游戏便无法在windowsnt上执行。windowsnt有3.1、3.5、3.51与4.0版。windows2000是windowsnt的改进系列(事实上是windowsnt5.0)、windowsxp(windowsnt5.1)以及windowsserver2003(windowsnt5.2)与windowsvista(windowsnt6.0)也都是立基于windowsnt的架构上。
而本年代渐渐增长并越趋复杂的嵌入式设备市场也促使嵌入式操作系统的成长。

今日

现代操作系统通常都有一个使用的绘图设备的图形化使用者界面,并附加如鼠标或触控面版等有别于键盘的输入设备。旧的os或效能导向的服务器通常不会有如此亲切的接口,而是以命令行接口(cli)加上键盘为输入设备。以上两种接口其实都是所谓的壳,其功能为接受并处理使用者的指令(例如按下一按钮,或在命令提示列上键入指令)。
选择要安装的操作系统通常与其硬件架构有很大关系,只有linux与bsd几乎可在所有硬件架构上执行,而windowsnt仅移植到了decalpha与mipsmagnum。在1990年代早期,个人电脑的选择就已被局限在windows家族、类unix家族以及linux上,而以linux及macosx为最主要的另类选择,直至今日。
大型机与嵌入式系统使用很多样化的操作系统。大型主机近期有许多开始支持java及linux以便共享其他平台的资源。嵌入式系统近期百家争鸣,从给sensornetworks用的berkeleytinyos到可以操作microsoftoffice的windowsce都有。

个人电脑

个人电脑市场目前分为两大阵营,此两种架构分别有支持的操作系统:
ibm兼容pc-微软windows,macosx,unix家族的os以及linux家族。
applemacintosh-macos(一个unix分支os,属bsd族系,darwin),windows(x86版本),linux与bsd

大型电脑

最早的操作系统是针对20世纪60年代的大型主结构开发的,由于对这些系统在软件方面做了巨大投资,因此原来的计算机厂商继续开发与原来操作系统相兼容的硬件与操作系统。这些早期的操作系统是现代操作系统的先驱。现在仍被支持的大型主机操作系统包括:
burroughsmcp--b5000,1961tounisysclearpath/mcp,present.
ibmos/360--ibmsystem/360,1964toibmzseries,present
univacexec8--univac1108,1964,tounisysclearpathix,present.
现代的大型主机一般也可运行linux或unix变种。

嵌入式系统

嵌入式系统使用非常广泛的操作系统(如vxworks、ecos、symbianos及palmos)以及某些功能缩减版本的linux或者其他操作系统。某些情况下,os指称的是一个内置了固定应用软件的巨大泛用程序。在许多最简单的嵌入式系统中,所谓的os就是指其上唯一的应用程序。

类unix系统

一个在linux底下执行的客制化kde桌面系统所谓的类unix家族指的是一族种类繁多的os,此族包含了systemv、bsd与linux。由于unix是theopengroup的注册商标,特指遵守此公司定义的行为的操作系统。而类unix通常指的是比原先的unix包含更多特征的os。
unix系统可在非常多的处理器架构下执行,在服务器系统上有很高的使用率,例如大专院校或工程应用的工作站。自由软件unix变种,例如linux与bsd近来越来越受欢迎,它们也在个人桌面电脑市场上大有斩获,例如ubuntu系统,但大部分都是电脑高手在使用。
某些unix变种,例如hp的hp-ux以及ibm的aix仅设计用于自家的硬件产品上,而sun的solaris可安装于自家的硬件或x86电脑上。苹果电脑的macosx是一个从nextstep、mach以及freebsd共同派生出来的微内核bsd系统,此os取代了苹果电脑早期非unix家族的macos。经历数年的披荆斩棘,自由开源的unix系统逐渐蚕食鲸吞以往专利软件的专业领域,例如以往电脑动画运算巨擘──sgi的irix系统已被linux家族及plan9[3]丛集所取代。

微软windows

microsoftwindows系列操作系统是在微软给ibm机器设计的ms-dos的基础上设计的图形操作系统。现在的windows系统,如windows2000、windowsxp皆是建立于现代的windowsnt内核。nt内核是由os/2和openvms等系统上借用来的。windows可以在32位和64位的intel和amd的处理器上运行,但是早期的版本也可以在decalpha、mips与powerpc架构上运行。虽然由于人们对于开放源代码作业系统兴趣的提升,windows的市场占有率有所下降,但是到2004年为止,windows操作系统在世界范围内占据了桌面操作系统90%的市场。[4]
windows系统也被用在低阶和中阶服务器上,并且支持网页服务的数据库服务等一些功能。最近微软花费了很大研究与开发的经费用于使windows拥有能运行企业的大型程序的能力。
windowsxp在2001年10月25日发布,2004年8月24日发布最新的升级包windowsxpservicepack2。微软最新的操作系统windowsvista(开发代码为longhorn)于2007年1月30日发售[5]。windwosvista增加了许多功能,尤其是系统的安全性和网络管理功能。windowsvista拥有界面华丽的aeroglass。

苹果macos

苹果macos系列操作系统是苹果公司(原称苹果电脑)给苹果个人电脑系列设计的os。

其他

大型主机以及嵌入式操作系统均与unix或windows家族关系不大,除了windowsce、windowsntembedded4.0及windowsxpembedded是windows的血亲产品,以及数种*bsd和嵌入式linux包为例外。
少数较旧的os今日依然在一些需要稳定性的市场中活跃,例如ibm的os/2[6]beos以及xts-400。
在达康时代狂潮过后,如amigaos与riscos等少数人使用的os依然持续建立,以满足狂热的爱好者社群与特殊专业使用者。

未来
研究与建立未来的操作系统依旧进行著。操作系统朝提供更省电、网络化、华丽的使用者界面的方向来改进。linux及一些类unixos正努力让自己成为个人用户舒适的环境。gnuhurd是一个企图完全兼容unix并加强许多功能的微内核架构。微软singularity是一个奠基于.net并以建立较佳内存保护机制为目目标研究计划。




历史列表
1956年
gm-naai/o

1959年
shareoperatingsystem

1960年
ibsys

1961年
ctss
mcp(burroughslargesystems)

1962年
gcos

1964年
exec8
os/360(宣称)
tops-10

1965年
multics(宣称)
os/360(上市)
tapeoperatingsystem(tos)

1966年
dos/360(ibm)
ms/8

1967年
acp(ibm)
cp/cms
its
waits

1969年
tenex
unix

1970年
dos/batch11(pdp-11)

1971年
os/8

1972年
mft(operatingsystem)
mvt
rdos
svs
vm/cms

1973年
altoos
rsx-11d
rt-11
vme

1974年
mvs(mvs/xa)

1975年
bs2000

1976年
cp/m
tops-20

1978年
appledos3.1(苹果公司第一个操作系统)
tripos
vms
lispmachine(cadr)

1979年
pos
nltss

1980年
os-9
qdos
sos
xde(tajo)
xenix

1981年
ms-dos

1982年
commodoredos
sunos(1.0)
ultrix

1983年
lisaos
coherent
novellnetware
prodos

1984年
macintoshos(系统1.0)
msx-dos
qnx
unicos

1985年
amigaos
ataritos
mipsos
oberonoperatingsystem
microsoftwindows1.0(windows第一版)

1986年
aix
gs-os
hp-ux

1987年
arthur
irix(sgi推出的第一个版本号是3.0)
minix
os/2(1.0)
microsoftwindows2.0

1988年
a/ux(苹果电脑)
lynxos
mvs/esa
os/400

1989年
nextstep(1.0)
riscos
scounix(第三版)

1990年
amigaos2.0
beos(v1)
osf/1
microsoftwindows3.0

1991年
linux

1992年
386bsd0.1
amigaos3.0
solaris2.0(sunos4.x的继承者,以svr4为基础,而非bsd)
microsoftwindows3.1

1993年
plan9(第一版)
freebsd
netbsd
microsoftwindowsnt3.1(第一版nt)

1995年
digitalunix(akatru64)
openbsd
os/390
microsoftwindows95

1996年
windowsnt4.0
1997年
inferno
macos7.6(第一版官方正式命名为macos)
skyos

1998年
solaris7(第一款64位元solaris版本,是2.7舍弃主版本号的称谓)
microsoftwindows98

1999年
aros
macos8
microsoftwindows98secondedition

2000年
atheos
macos9
morphos
microsoftwindows2000
microsoftwindowsme

2001年
amigaos4.0(2001年5月)
macosx10.1
microsoftwindowsxp
z/os

2002年
microsoftwindowsxp64-bitedition
windowsxptabletpcedition
windowsxpmediacenteredition
syllable
macosx10.2

2003年
microsoftwindowsserver2003(2003年3月28日)
microsoftwindowsxp64-bitedition-以microsoftwindowsserver2003为基础,同一天释出。
macosx10.3

2004年
microsoftwindowsxpmediacenteredition

2005年
microsoftwindowsxpprofessionalx64edition
macosx10.4

2006年
microsoftwindowsvista

2007年
macosx10.5





功能
操作系统位于底层硬件与用户之间,是两者沟通的桥梁。用户可以通过操作系统的用户界面,输入命令。操作系统则对命令进行解释,驱动硬件设备,实现用户要求。以现代观点而言,一个标准个人电脑的os应该提供以下的功能:
进程管理(processingmanagement)
记忆空间管理(memorymanagement)
文件系统(filesystem)
网络通讯(networking)
安全机制(security)
使用者界面(userinterface)
驱动程序(devicedrivers)

进程管理

不管是常驻程序或者应用程序,他们都以进程为标准执行单位。当年运用冯纽曼架构建造电脑时,每个中央处理器最多只能同时执行一个进程。早期的os(例如dos)也不允许任何程序打破这个限制,且dos同时只有执行一个进程(虽然dos自己宣称他们拥有终止并等待驻留(tsr)能力,可以部分且艰难地解决这问题)。现代的操作系统,即使只拥有一个cpu,也可以利用多进程(multitask)功能同时执行复数进程。进程管理指的是操作系统调整复数进程的功能。
由于大部分的电脑只包含一颗中央处理器,在单内核(core)的情况下多进程只是简单迅速地切换各进程,让每个进程都能够执行,在多内核或多处理器的情况下,所有进程通过许多协同技术在各处理器或内核上转换。越多进程同时执行,每个进程能分配到的时间比率就越小。很多os在遇到此问题时会出现诸如音效断续或鼠标跳格的情况(称做崩溃(thrashing),一种os只能不停执行自己的管理程序并耗尽系统资源的状态,其他使用者或硬件的程序皆无法执行)。进程管理通常实践了分时的概念,大部分的os可以利用指定不同的特权等级(priority),为每个进程改变所占的分时比例。特权越高的进程,执行优先级越高,单位时间内占的比例也越高。交互式os也提供某种程度的回馈机制,让直接与使用者交互的进程拥有较高的特权值。
除了进程管理之外,os尚有担负起进程间通讯(ipc)、进程异常终止处理以及死结(deadlock)侦测及处理等较为艰深的问题。
在进程之下尚有线程的问题,但是大部分的os并不会处理线程所遭遇的问题,通常os仅止于提供一组api让使用者自行操作或通过虚拟机器的管理机制控制线程之间的交互。

内存管理

根据帕金森定律:“你给程序再多内存,程序也会想尽办法耗光”,因此程序设计师通常希望系统给他无限量且无限快的内存。大部分的现代电脑内存架构都是阶层式的,最快且数量最少的寄存器为首,然后是高速缓存、内存以及最慢的磁盘储存设备。而os的内存管理提供寻找可用的记忆空间、配置与释放记忆空间以及交换内存和低速储存设备的内含物……等功能。此类又被称做虚拟内存管理的功能大幅增加每个进程可获得的记忆空间(通常是4gb,即使实际上ram的数量远少于这数目)。然而这也带来了微幅降低执行效率的缺点,严重时甚至也会导致进程崩溃。
内存管理的另一个重点活动就是借由cpu的帮助来管理虚拟位置。如果同时有许多进程储存于记忆设备上,操作系统必须防止它们互相干扰对方的内存内容(除非通过某些协议在可控制的范围下操作,并限制可存取的内存范围)。分割内存空间可以达成目标。每个进程只会看到整个内存空间(从0到内存空间的最大上限)被配置给它自己(当然,有些位置被os保留而禁止存取)。cpu事先存了几个表以比对虚拟位置与实际内存位置,这种方法称为分页(paging)配置。
借由对每个进程产生分开独立的位置空间,os也可以轻易地一次释放某进程所占据的所有内存。如果这个进程不释放内存,os可以退出进程并将内存自动释放。

磁盘与文件系统

所谓的文件系统,通常指称管理磁盘数据的系统,可将数据以目录或文件的型式储存。每个文件系统都有自己的特殊格式与功能,例如日志管理或不需磁盘重整。
os拥有许多种内置文件系统。例如linux拥有非常广泛的内置文件系统,如ext2、ext3、reiserfs、reiser4、gfs、gfs2、ocfs、ocfs2、nilfs与google文件系统。linux也支持非本地文件系统,例如xfs、jfs、fat家族与ntfs。另一方面,windows能支持的文件系统只有fat12、fat16、fat32与ntfs。ntfs系统是windows上最可靠与最有效率的文件系统。其他的fat家族都比ntfs老旧,且对于文件长度与分割磁盘能力都有很大限制,因此造成很多问题。而unix的文件系统多半是ufs,而unix中的一个分支solaris最近则开始支持一种新式的zfs
大部份上述的文件系统都有两种建置方法。系统可以以日志式(journalingfilesystem)或非日志式建置。日志式文件系统可以以较安全的手法执行系统回复。如果一个没有日志式建置的文件系统遇上突然的系统崩溃,导致数据建立在一半时停顿,则此系统需要特殊的文件系统检查工具才能撤消;日志式则可自动回复。微软的ntfs与linux的ext3、reiserfs与jfs都是日志式文件系统。
每个文件系统都实作相似的目录/子目录架构,但在相似之下也有许多不同点。微软使用“\”符号以建立目录/子目录关系,且文件名称忽略其大小写差异;unix系统则是以“/”建立目录架构,且文件名称大小写有差异。

网络

许多现代的os都具备操作主流网络通讯协议tcp/ip的能力。也就是说这样的操作系统可以进入网络世界,并且与其他系统分享诸如文件、打印机与扫描器等资源。
许多os也支持多个过去网络启蒙时代的各路网络通讯协议,例如ibm建立的sna、dec在它所生产的系统所设置的decnet架构与微软为windows制作的特殊通讯协议。还有许多为了特殊功能而研发的通讯协议,例如可以在网络上提供文件存取功能的nfs系统。现今大量用于影音流(streamingmedia)及游戏消息传送的udp协议等。

安全

大多数os都含有某种程度的信息安全机制。信息安全机制主要基于两大理念:
os提供外界直接或间接存取数种资源的管道,例如本地端磁盘机的文件、受保护的特权系统调用(systemcall)、使用者的隐私数据与系统执行的程序所提供的服务。
os有能力认证(authorization)资源存取的请求。允许通过认证的请求并拒绝无法通过的非法请求,并将适当的权力授权(authentication)给此请求。有些系统的认证机制仅简略地把资源分为特权或非特权,且每个请求都有独特的身份辨识号码,例如使用者名称。资源请求通常分成两大种类:
内部来源:通常是一个正在执行的程序发出的资源请求。在某些系统上,一个程序一旦可执行就可做任何事情(例如dos时代的病毒),但通常os会给程序一个识别代号,并且在此程序发出请求时,检查其代号与所需资源的存取权限关系。
外部来源:从非本地端电脑而来的资源请求,例如远程登入本机电脑或某些网络连接请求(ftp或http)。为了识别这些外部请求,系统也许会对此请求提出认证要求。通常是请求输入使用者名称以及相对应的密码。系统有时也会应用诸如磁卡或生物识别数据的它种认证方法。在某些例子,例如网络通讯上,通常不需通过认证即可存取资源(例如匿名存取的ftp服务器或p2p服务)。
除了允许/拒绝形式的安全机制,一个高安全等级的系统也会提供记录选项,允许记录各种请求对资源存取的行为(例如“谁曾经读了这个文件?”)。
肇因于军方与商业组织将敏感数据记录在电脑上,安全机制在os历史上是一个被长久关注与讨论的问题。美国国防部(dod)便创立了《可信赖之计算机系统评鉴程序》(tcsec),此手册确立了评鉴安全机制成效的基本原则。这对os作者来说非常重要,因为tcsec是用于评鉴、分类与选拔出用于处理、储存与获取敏感或机密数据的电脑系统的标准程序。

内部信息安全

内部信息安全可视为防止正在执行的程序任意存取系统资源的手段。大多os让普通程序可直接操作电脑的cpu,所以产生了一些问题,例如怎样把可如os一样处理事务、执行同样特殊指令的程序强迫停止,毕竟在此情境下,os也只是另一个平起平坐的程序。为通用os所生产的cpu通常于硬件层级上实践了一定程度的特殊指令保护概念。通常特权层级较低的程序想要执行某些特殊指令时会被阻断,例如直接存取像是硬盘之类的外部设备。因此,程序必须得经由询问os,让os执行特殊指令来存取磁盘。因此os就有机会检查此程序的识别身份,并依此接受或拒绝它的请求。
在不支持特殊指令架构的硬件上,另一个也是唯一的保护方法,则是os并不直接利用cpu执行使用者的程序,而是借由模拟一个cpu或提供一p-code系统(伪代码执行机),像是java一样让程序在虚拟机器上执行。
内部安全机制在多使用者电脑上特别重要:它允许每个系统使用者拥有自己个人的文件与目录,且其他使用者不能任意存取或删除。因为任何程序都可能绕过os的监控,更有可能绕过侧录程序的监控,拥有强制力的内部安全机制在侧录启动时也非常重要。

外部信息安全

通常一个操作系统会为其他网络上的电脑或使用者提供(主持)各种服务。这些服务通常借由端口或os网络地址后的数字存取点提供。通常此服务包括提供文件共享(ntfs)、打印共享、电子邮件、网页服务与文件传输协议(ftp)。外部信息安全的最前线,是诸如防火墙等的硬件设备。在os内部也常设置许多种类的软件防火墙。软件防火墙可设置接受或拒绝在os上执行的服务与外界的连接。因此任何人都可以安装并执行某些不安全的网络服务,例如telnet或ftp,并且设置除了某些自用通道之外阻挡其他所有连接,以达成防赌不良连接的机制。

使用者界面

今日大部分的os都包含图形化使用者界面。有几类较旧的os将图形化使用者界面与内核紧密结合,例如最早的windows与macos实作产品。此种手法可提供较快速的图形回应能力,且实作时不需切割模块因而较为省工,但是会有强烈副作用,例如图形系统崩溃将导致整个系统崩溃,例如死亡蓝屏幕。许多近代的os已模块化,将图形界面的副系统与内核分开(已知linux与macosx原先就是如此设计,而某些扩充版本的windows终于也采用此手法)。
许多os允许使用者安装或创造任何他们喜欢的图形界面[7]。大部分的unix与unix派生系统(bsd、linux与minix)通常会安装xwindow系统配合gnome或kde桌面环境。而某些os就没有这么弹性的图形化使用者界面,例如windows。这类的os只能通过外加的程序来改变其图形化使用者界面,甚或根本只能改变诸如菜单风格或颜色配置等部分[来源请求]。
图形化使用者界面与时并进,例如windows在每次新版本上市时就会将其图形化使用者界面改头换面,而macos的gui也在macosx上市时出现重大转变。

驱动程序

所谓的驱动程序是指某类设计来与硬件交互的电脑软件。通常是一设计完善的设备交互接口,利用与此硬件连接的电脑汇排流或通讯子系统,提供对此设备下令与接收信息的功能;以及最终目的,将消息提供给os或应用程序。驱动程序是针对特定硬件与特定os设计的软件,通常以操作系统内核模块、应用软件包或普通电脑程序的形式在os内核底下执行,以达到通透顺畅地与硬件交互的效果,且提供硬件在处理异步的时间依赖性接口(asynchronoustime-dependenthardwareinterface)时所需的中断处理程序(interrupthandler)。
设计驱动程序的主要目的在于操作抽象化,任何硬件模块,即使是同一类的设备,在硬件设计面上也有巨大差异。厂商推出的较新模块通常更可靠更有效率,控制方法也会有所不同。电脑与其os每每不能预期那些现有与新设备的变异之处,因此无法知道其操作方法。为解决此问题os通常会主动制订每种设备该有的操作方式,而驱动程序功能则是将那些os制订的行为描述,转译为可让设备了解的自定义操作手法。
理论上适合的驱动程序一旦安装,相对应的新设备就可以无误地执行。此新驱动程序可以让此设备完美地切合在os中,让使用者察觉不到这是os原本没有的功能。

结构

操作系统理论研究者有时把操作系统分成四大部分:
驱动程序-最底层的、直接控制和监视各类硬件的部分,它们的职责是隐藏硬件的具体细节,并向其他部分提供一个抽象的、通用的接口。
内核-操作系统之最内核部分,通常运行在最高特权级,负责提供基础性、结构性的功能。
支承库-(亦作“接口库”)是一系列特殊的程序库,它们指责在于把系统所提供的基本服务包装成应用程序所能够使用的编程接口(api),是最靠近应用程序的部分。例如,gnuc运行期库就属于此类,它把各种操作系统的内部编程接口包装成ansic和posix编程接口的形式。
外围-所谓外围,是指操作系统中除以上三类以外的所有其他部分,通常是用于提供特定高级服务的部件。例如,在微内核结构中,大部分系统服务,以及unix/linux中各种守护进程都通常被划归此列。
当然,本节所提出的四部结构观也绝非放之四海皆准。例如,在早期的微软视窗操作系统中,各部分耦合程度很深,难以区分彼此。而在使用外核结构的操作系统中,则根本没有驱动程序的概念。因而,本节的讨论只适用于一般情况,具体特例需具体分析。
操作系统中四大部分的不同布局,也就形成了几种整体结构的分野。常见的结构包括:简单结构、层结构、微内核结构、垂直结构、和虚拟机结构。


分类

操作系统的分类没有一个单一的标准,可以根据工作方式分为批处理操作系统、分时操作系统、实时操作系统、网络操作系统和分布式操作系统等;根据架构可以分为单内核操作系统等;根据运行的环境,可以分为桌面操作系统,嵌入式操作系统等;根据指令的长度分为8bit,16bit,32bit,64bit的操作系统。

内核结构

内核是操作系统最内核最基础的构件,因而,内核结构往往对操作系统的外部特性以及应用领域有着一定程度的影响。尽管随着理论和实践的不断演进,操作系统高层特性与内核结构之间的耦合有日趋缩小之势,但习惯上,内核结构仍然是操作系统分类之常用标准。
内核的结构可以分为单内核、微内核、超微内核、以及外核等。
单内核结构是操作系统中各内核部件杂然混居的形态,该结构于1960年代(亦有1950年代初之说,尚存争议),历史最长,是操作系统内核与外围分离时的最初形态。
微内核结构是1980年代产生出来的较新的内核结构,强调结构性部件与功能性部件的分离。20世纪末,基于微内核结构,理论界中又发展出了超微内核与外内核等多种结构。尽管自1980年代起,大部分理论研究都集中在以微内核为首的“新兴”结构之上,然而,在应用领域之中,以单内核结构为基础的操作系统却一直占据着主导地位。
在众多常用操作系统之中,除了qnx和基于mach的unix等个别系统外,几乎全部采用单内核结构,例如大部分的unix、linux,以及windows(微软声称windowsnt是基于改良的微内核架构的,尽管理论界对此存有异议)。微内核和超微内核结构主要用于研究性操作系统,还有一些嵌入式系统使用外核。
基于单内核的操作系统通常有着较长的历史渊源。例如,绝大部分unix的家族史都可上溯至1960年代。该类操作系统多数有着相对古老的设计和实现(例如某些unix中存在着大量1970年代、1980年代的代码)。另外,往往在性能方面略优于同一应用领域中采用其他内核结构的操作系统(但通常认为此种性能优势不能完全归功于单内核结构)。

通用与专用、嵌入式

通用操作系统是面向一般没有特定应用需求的操作系统。由于没有特定的应用需求,通用操作系统为了适应更广泛的应用,需要支持更多的硬件与软件,需要针对所有的用户体验,对系统进行更新。通用操作系统是一个工程量繁重的操作系统。

实时与非实时

“实时操作系统”(realtimeos)泛指所有据有一定实时资源调度以及通讯能力的操作系统。而所谓“实时”,不同语境中往往有着非常不同的意义。某些时候仅仅用作“高性能”的同义词。但在操作系统理论中“实时性”所指的通常是特定操作所消耗的时间(以及空间)的上限是可预知的。比如,如果说某个操作系统提供实时内存分配操作,那也就是说一个内存分配操作所用时间(及空间)无论如何也不会超出操作系统所承诺的上限。实时性在某些领域非常重要,比如在工业控制、医疗器材、影音频合成、以及军事领域,实时性都是无可或缺的特性。
常用实时操作系统有qnx、vxworks、rtlinux等等,而linux、多数unix、以及多数windows家族成员等都属于非实时操作系统。操作系统整体的实时性通常依仗内核的实时能力,但有时也可在非实时内核上建立实时操作系统,很多在windows上建立的实时操作系统就属于此类。
在posix标准中专有一系用于规范实时操作系统的api,其中包括posix.4、posix.4a、posix.4b(合称posix.4)以及posix.13等等。符合posix.4的操作系统通常被认可为实时操作系统(但实时操作系统并不需要符合posix.4标准)。

8位、16位、32位、64位

所谓8位、16位、32位、64位等术语有时指总线宽度,有时指指令宽度(在定长指令集中),而在操作系统理论中主要是指内存寻址的宽度。如果内存的寻址宽度是16位,那么每一个内存地址可以用16个二进制位来表示,也就是说可以在64kb的范围内寻址。同样道理32位的宽度对应4gb的寻址范围,64位的宽度对应16exabyte的寻址范围。内存寻址范围并非仅仅是对操作系统而言的,其他类型的软件的设计有时也会被寻址范围而影响。但是在操作系统的设计与实现中,寻址范围却有着更为重要的意义。
在早期的16位操作系统中,由于64kb的寻址范围太小,大都都采用“段”加“线性地址”的二维平面地址空间的设计。分配内存时通常需要考虑“段置换”的问题,同时,应用程序所能够使用的地址空间也往往有比较小的上限。
在32位操作系统中,4gb的寻址范围对于一般应用程序来说是绰绰有余的,因而,通常使用一维的线性地址空间,而不使用“段”。
操作系统:在计算机存储器中安装的第一个软件系统,专门用于管理计算机硬件和其它软件,响应用户对硬件和软件的操作,在电脑上常见的有dos、windows98/nt/2000/xp等。

上一篇:方正科技

下一篇:cdma