Operating System
History
1980年代前
第一部电脑并没有操作系统。
这是由于早期电脑的建立方式(如同建造机械算盘)与效能不足以执行如此程式。
但在1947年发明了晶体管,以及莫里斯·威尔克斯发明的微程序方法,
使得电脑不再是机械装置,而是电子产品。
系统管理工具以及简化硬件操作流程的程式很快就出现了,且成为操作系统的滥觞。
到了1960年代早期,商用电脑制造商制造了批次处理系统,
此系统可将工作的建置、排程以及执行序列化。
此时,厂商为每一台不同型号的电脑创造不同的操作系统,
因此为某电脑而写的程式无法移植到其他电脑上执行,即使是同型号的电脑也不行。
到了1964年,IBM System/360推出了一系列用途与价位都不同的大型电脑,
而它们都共用代号为OS/360的操作系统(而非每种产品都用量身订做的操作系统)。
让单一操作系统适用于整个系列的产品是System/360成功的关键,
且实际上IBM目前的大型系统便是此系统的后裔,
为System/360所写的应用程序依然可以在现代的IBM机器上执行。
OS/360也包含另一个优点:永久贮存装置—硬盘机的面世(IBM称为DASD)。
另一个关键是分时概念的建立:将大型电脑珍贵的时间资源适当分配到所有用户身上。
分时也让用户有独占整部机器的感觉;
而Multics的分时系统是此时众多新操作系统中实践此观念最成功的。
1963年,奇异公司与贝尔实验室合作以PL/I语言建立的Multics,
是激发1970年代众多操作系统建立的灵感来源,
尤其是由AT&T贝尔实验室的丹尼斯·里奇与肯·汤普逊所建立的Unix系统,
为了实践平台移植能力,此操作系统在1973年由C语言重写;
另一个广为市场采用的小型电脑操作系统是VMS。1980年代
第一代微型计算机并不像大型电脑或小型电脑,没有装设操作系统的需求或能力;
它们只需要最基本的操作系统,通常这种操作系统都是从ROM读取的,
此种程式被称为监视程式(Monitor)。
1980年代,家用电脑开始普及。
通常此时的电脑拥有8-bit处理器加上64KB内存、显示器、键盘以及低音质音响。
而80年代早期最著名的套装电脑为使用微处理器6510(6502芯片特别版)的Commodore C64。
此电脑没有操作系统,而是以一8KB唯读记忆体BIOS初始化彩色显示器、键盘以及软驱和打印机。
它可用8KB唯读记忆体BASIC语言来直接操作BIOS,并依此撰写程式,大部分是游戏。
此BASIC语言的直译器勉强可算是此电脑的操作系统,当然就没有内核或软硬件保护机制了。
此电脑上的游戏大多跳过BIOS层次,直接控制硬件。
早期最著名的磁盘启动型操作系统是CP/M,它支援许多早期的微电脑,且被MS-DOS大量抄袭其功能。
最早期的IBM PC其架构类似C64。
当然它们也使用了BIOS以初始化与抽象化硬件的操作,甚至也附了一个BASIC直译器!
但是它的BASIC优于其他公司产品的原因在于他有可携性,并且相容于任何符合IBM PC架构的机器上。
这样的PC可利用Intel-8088处理器(16-bit暂存器)定址,并最多可有1MB的内存,然而最初只有640KB。
软式磁盘机取代了过去的磁带机,成为新一代的储存装置,并可在他512KB的空间上读写。
为了支援更进一步的档案读写概念,磁盘操作系统(Disk Operating System,DOS)因而诞生。
此操作系统可以合并任意数量的磁区,因此可以在一张磁盘片上放置任意数量与大小的档案。
档案之间以档名区别。IBM并没有很在意其上的DOS,因此以向外部公司购买的方式取得操作系统。
1980年微软公司取得了与IBM的合约,并且收购了一家公司出产的操作系统,
在将之修改后以MS-DOS的名义出品,此操作系统可以直接让程式操作BIOS与档案系统。
到了Intel-80286处理器的时代,才开始实作基本的储存装置保护措施。
MS-DOS的架构并不足以满足所有需求,
因为它同时衹能执行最多一个程式(如果想要同时执行程式,
只能使用ISR(中断处理常式)的方式来跳过OS而由程式自行处理多工的部分),
且没有任何内存保护措施。对驱动程式的支援也不够完整,因此导致诸如音效装置必须由程式自行设置的状况,
造成不相容的情况所在多有。某些操作的效能也是可怕地糟糕。
许多应用程序因此跳过MS-DOS的服务程式,而直接存取硬件装置以取得较好的效能。
虽然如此,但MS-DOS还是变成了IBM PC上面最常用的操作系统(IBM自己也有推出DOS,称为IBM-DOS或PC-DOS)。
MS-DOS的成功使得微软成为地球上最赚钱的公司之一。
而1980年代另一个崛起的操作系统异数是Mac OS,此操作系统紧紧与麦金塔电脑捆绑在一起。
此时一位全录伯拉图实验室的员工Dominik Hagen访问了苹果电脑的史提夫·乔布斯,
并且向他展示了此时全录发展的图形化用户界面。
苹果电脑惊为天人,并打算向全录购买此技术,
但因伯拉图实验室并非商业单位而是研究单位,因此全录回绝了这项买卖。
在此之后苹果一致认为个人电脑的未来必定属于图形用户界面,因此也开始发展自己的图形化操作系统。
现今许多我们认为是基本要件的图形化界面技术与规则,
都是由苹果电脑打下的基础(例如下拉式选单、桌面图示、拖曳式操作与双点击等)。
但正确来说,图形化用户界面的确是全录创始的。1990年代
延续1980年代的竞争,1990年代出现了许多影响未来个人电脑市场深厚的操作系统。
由于图形化用户界面日趋繁复,操作系统的能力也越来越复杂与巨大,
因此强韧且具有弹性的操作系统就成了迫切的需求。
此年代是许多套装类的个人电脑操作系统互相竞争的时代。
上一年代于市场崛起的苹果电脑,由于旧系统的设计不良,使得其后继发展不力,
苹果电脑决定重新设计操作系统。经过许多失败的专案后,
苹果于1997年释出新操作系统——Mac OS X的测试版,而后推出的正式版取得了巨大的成功。
让原先失意离开苹果的史提夫·乔布斯风光再现。
除了商业主流的操作系统外,从1980年代起在开放源码的世界中,
BSD系统也发展了非常久的一段时间,但在1990年代由于与AT&T的法律争端,
使得远在芬兰赫尔辛基大学的另一股开源操作系统——Linux兴起。
Linux内核是一个标准POSIX内核,其血缘可算是Unix家族的一支。
Linux与BSD家族都搭配GNU计划所发展的应用程序,
但是由于使用的许可证以及历史因素的作弄下,Linux取得了相当可观的开源操作系统市占率,
而BSD则小得多。相较于MS-DOS的架构,
Linux除了拥有傲人的可移植性(相较于Linux,MS-DOS衹能运行在Intel CPU上),
它也是一个分时多行程内核,以及良好的内存空间管理(普通的行程不能存取内核区域的内存)。
想要存取任何非自己的内存空间的行程衹能透过系统调用来达成。
一般行程是处于用户态(User mode)底下,而执行系统呼叫时会被切换成内核态(Kernel mode),
所有的特殊指令衹能在内核态执行,此措施让内核可以完美管理系统内部与外部装置,
并且拒绝无权限的行程提出的请求。
因此理论上任何应用程序执行时的错误,都不可能让系统崩溃。
另一方面,微软对于更强力的操作系统呼声的回应便是Windows NT于1999年的面世。
1983年开始微软就想要为MS-DOS建构一个图形化的操作系统应用程序,
称为Windows(有人说这是比尔·盖茨被苹果的Lisa电脑上市所刺激)。
一开始Windows并不是一个操作系统,只是一个应用程序,其背景还是纯MS-DOS系统,
这是因为当时的BIOS设计以及MS-DOS的架构不甚良好之故。
在1990年代初,微软与IBM的合作破裂,微软从OS/2(早期为命令列模式,
后来成为一个很技术优秀但是曲高和寡的图形化操作系统)专案中抽身,
并且在1993年7月27日推出Windows 3.1,一个以OS/2为基础的图形化操作系统。
并在1995年8月15日推出Windows 95。
直到这时,Windows系统依然是建立在MS-DOS的基础上,
因此消费者莫不期待微软在2000年所推出的Windows 2000上,
因为它才算是第一个脱离MS-DOS基础的图形化操作系统。
底下的表格为Windows NT系统的架构:在硬件阶层之上,
有一个由微内核直接接触的硬件抽象层(HAL),
而不同的驱动程式以模组的形式挂载在内核上执行。
因此微内核可以使用诸如输入输出、档案系统、网络、资讯安全机制与虚拟内存等功能。
而系统服务层提供所有统一规格的函式呼叫库,可以统一所有副系统的实作方法。
例如尽管POSIX与OS/2对于同一件服务的名称与呼叫方法差异甚大,
它们一样可以无碍地实作于系统服务层上。
在系统服务层之上的副系统,全都是用户态,因此可以避免用户程式执行非法行动。
另一方面,微软对于更强力的操作系统呼声的回应便是Windows NT于1999年的面世。
1983年开始微软就想要为MS-DOS建构一个图形化的操作系统应用程序,
称为Windows(有人说这是比尔·盖茨被苹果的Lisa电脑上市所刺激)。
一开始Windows并不是一个操作系统,只是一个应用程序,其背景还是纯MS-DOS系统,
这是因为当时的BIOS设计以及MS-DOS的架构不甚良好之故。
在1990年代初,微软与IBM的合作破裂,
微软从OS/2(早期为命令列模式,后来成为一个很技术优秀但是曲高和寡的图形化操作系统)专案中抽身,
并且在1993年7月27日推出Windows 3.1,一个以OS/2为基础的图形化操作系统。
并在1995年8月15日推出Windows 95。直到这时,Windows系统依然是建立在MS-DOS的基础上,
因此消费者莫不期待微软在2000年所推出的Windows 2000上,
因为它才算是第一个脱离MS-DOS基础的图形化操作系统。
底下的表格为Windows NT系统的架构:在硬件阶层之上,
有一个由微内核直接接触的硬件抽象层(HAL),
而不同的驱动程式以模组的形式挂载在内核上执行。
因此微内核可以使用诸如输入输出、档案系统、网络、资讯安全机制与虚拟内存等功能。
而系统服务层提供所有统一规格的函式呼叫库,可以统一所有副系统的实作方法。
例如尽管POSIX与OS/2对于同一件服务的名称与呼叫方法差异甚大,
它们一样可以无碍地实作于系统服务层上。
在系统服务层之上的副系统,全都是用户态,因此可以避免用户程式执行非法行动。今日&未来
Mainstream Operating System
Windows | MacOS | Unix | Linux |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |
List of Linux Distributions
Suse | Debian | CentOS | FreeBSD | Ubuntu | Fedora | Gentoo | Red Hat | Solaris |
---|---|---|---|---|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
Other Operating System
Android | Blackberry | Symbian | ChromeOS |
---|---|---|---|
![]() |
![]() |
![]() |
![]() |