「
Operating System
」的各地常用名稱
|
---|
中?大陸
| 操作系?
|
---|
臺灣
| 作業系統
|
---|
港澳
| 作業系統
|
---|
操作系?
(英語:
Operating System
,縮寫:
OS
)是一?主管?控制
?算机
操作、?用和?行
硬件
、
?件
資源
和提供公共
服?
???用?交互的相互??的
系??件
程序
,同?也是?算机系?的核心?基石。操作系?需要?理如管理與配置
?存
、決定系統資源供需的優先次序、控制輸入與輸出裝置、操作
??
與管理
文件系?
等基本事務。操作系?也提供一個讓使用者與系統互動的操作界面。
操作系?的型態非常多樣,不同機器安裝的操作系?可從簡單到複雜,可從
行動電話
的
嵌入式系?
到
超級電腦
的
大型作業系統
。許多操作系?製造者對?涵盖范?的定?也不?一致,例如有些操作系?整合了
?形用?界面
,而有些僅使用
命令行界面
,將?形用?界面視?一種非必要的應用程式。
操作系?理?在
?算机科?
中,?歷史悠久而又活?
[1]
的分支;而操作系?的??????是?件工?的基??核心
[2]
。
歷史
[
??
]
綜觀電腦之歷史,作業系統與電腦硬體的發展息息相關。作業系統之本意原?提供簡單的
工作排序
能力,後?輔助更新更複雜的硬體設施而漸漸演化。從最早的
批次模式
開始,
分時機制
也隨之出現,在
多處理器
時代來臨時,作業系統也隨之添加多處理器協調功能,甚至是
分散式系統
的協調功能。其他方面的演變也類似於此。?一方面,在個人電腦上,個人電腦之作業系統因襲大型電腦的成長之路,在硬體越來越複雜、?大時,也逐步實踐以往?有大型電腦才有的功能。
總而言之,作業系統的歷史就是一部解決電腦系統需求與問題的歷史。
1980年代前
[
??
]
第一部電腦?沒有作業系統。這是由於早期電腦的建立方式(如同建造機械
算盤
)與效能不足以執行如此程式。但在1947年發明了
電晶體
,以及
莫里斯·威?克斯
發明的
微程序
方法,使得電腦不再是機械裝置,而是電子?品。系統管理工具以及簡化硬體操作流程的程式?快就出現了,且成?作業系統的起源。到了1960年代早期,商用電腦製造商製造了
批次處理
系統,此系統可將工作的建置、排程以及執行
序列化
。此時,廠商?每一台不同型號的電腦創造不同的作業系統,因此?某電腦而寫的程式無法移植到其他電腦上執行,?使是同型號的電腦也不行。
到了1964年,
IBM System/360
推出了一系列用途與價位都不同的
大型電腦
,而?們都共用代號?
OS/360
的作業系統(而非每種?品都用量身訂做的作業系統)。讓單一作業系統適用於整個系列的?品是System/360成功的關鍵,且實際上IBM目前的大型系統便是此系統的後裔,?System/360所寫的應用程式依然可以在現代的IBM機器上執行。
OS/360也包含?一個優點:永久貯存裝置?
硬?
的面世(IBM稱?
DASD
)。?一個關鍵是
分時
?念的建立:將大型電腦珍貴的時間資源適當分配到所有使用者身上。分時也讓使用者有獨?整部機器的感覺;而
Multics
的分時系統是此時?多新作業系統中實踐此觀念最成功的。
1963年,
奇異公司
與
貝爾實驗室
合作以PL/I語言建立的
Multics
[3]
,是激發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
,?支援許多早期的微電腦。最早期的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成爲了
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),所有的特殊指令?能在核心模式執行,此措施讓核心可以完美管理系統內部與外部裝置,?且拒?無權限的行程提出的請求。因此理論上任何應用程式執行時的錯誤,都不可能讓系統
崩潰
。
幾乎完整的Linux架構圖
|
使用者
模式
|
應用程式(sh、
vi
、
OpenOffice.org
等)
|
複雜
函式庫
(
KDE
、glib等)
|
|
|
簡單函式庫(opendbm、sin等)
|
|
C函式庫(open、fopen、socket、exec、calloc等)
|
核心
模式
|
系統中斷、呼叫、錯誤等軟硬體訊息
|
核心(驅動程式、行程、網路、?存管理等)
|
硬體(處理器、?存、各種裝置)
|
?一方面,微軟對於更?力的作業系統呼聲的回應便是
Windows NT
於1993年的面世。
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的基礎上,不?微?在?同?也在??不依?于DOS的NT系列Windows系?,?在后?完全放?了DOS而?向NT作?Windows的基?。
底下的表格?Windows NT系統的架構:在硬體階層之上,有一個由微核心直接接觸的
硬體抽象層
(HAL),而不同的驅動程式以模組的形式掛載在核心上執行。因此微核心可以使用諸如輸入輸出、?案系統、網路、資訊安全機制與虛擬記憶體等功能。而系統服務層提供所有統一規格的函式呼叫庫,可以統一所有子系統的實作方法。例如?管POSIX與OS/2對於同一件服務的名稱與呼叫方法差異甚大,?們一樣可以無?地實作於系統服務層上。在系統服務層之上的子系統,全都是使用者模式,因此可以避免使用者程式執行非法行動。
簡化版本的Windows NT抽象架構
|
使用者
模式
|
OS/2
應用程式
|
Win32
應用程式
|
DOS
程式
|
Win16
應用程式
|
POSIX
應用程式
|
|
其他
DLL函式庫
|
DOS系統
|
Windows模擬系統
|
OS/2子系統
|
Win32子系統
|
POSIX.1子系統
|
核心
模式
|
系統服務層
|
輸入輸出管理
?案系統、網路系統
|
物件管理系統 / 安全管理系統 / 行程管理 / 物件間通訊管理 / 行程間通訊管理 / 虛擬記憶體管理
微核心
|
視?管理程式
|
驅動程式
|
硬體抽象層(HAL)
|
圖形驅動
|
硬體(處理器、記憶體、外部裝置等)
|
子系統架構第一個實作的子系統群當然是以前的微軟系統。DOS子系統將每個DOS程式當成一行程執行,?以個別獨立的MS-DOS虛擬機器承載其
運行環境
。?外一個是Windows 3.1模擬系統,實際上是在Win32子系統下執行Win16程式。因此達到了安全掌控?MS-DOS與早期Windows系統所撰寫之舊版程式的能力。然而此架構只在
Intel 80386
處理器及後繼機型上實作。且某些會直接讀取硬體的程式,例如大部分的Win16遊?,就無法套用這套系統,因此?多早期遊?便無法在Windows NT上執行。Windows NT有3.1、3.5、3.51與4.0版。Windows 2000是Windows NT的改進系列(事實上是Windows NT 5.0)、
Windows XP
(Windows NT 5.1)以及
Windows Server 2003
(Windows NT 5.2)與
Windows Vista
(Windows NT 6.0)也都是立基於Windows NT的架構上。
而本年代漸漸增長?越趨複雜的嵌入式設備市場也促使
嵌入式作業系統
的成長。
今日
[
??
]
現代作業系統通常都有一個使用的繪圖裝置的
?形用?界面
(GUI),?附加如滑鼠或觸控面版等有別於鍵盤的輸入裝置。舊的OS或效能導向的伺服器通常不會有如此親切的介面,而是以
命令行界面
(CLI)加上鍵盤?輸入裝置。以上兩種介面其實都是所謂的
殼
,其功能?接受?處理使用者的指令(例如按下一按?,或在命令提示列上鍵入指令)。
選擇要安裝的作業系統通常與其硬體架構有?大關係,只有
Linux
與
BSD
幾乎可在所有硬體架構上執行,而Windows NT僅移植到了
DEC Alpha
與
MIPS Magnum
。在1990年代早期,個人電腦的選擇就已被?限在
Windows
家族、
類Unix
家族以及Linux上,而以Linux及Mac OS X?最主要的?類選擇,直至今日。
大型機
與
嵌入式系統
使用?多樣化的作業系統。大型主機近期有許多開始支援
Java
及Linux以便共享其他平台的資源。嵌入式系統近期百家爭鳴,從給
Sensor Networks
用的
Berkeley Tiny OS
到可以操作
Microsoft Office
的
Windows CE
都有。
?人??
[
??
]
個人電腦市場目前分?兩大陣營,此兩種架構分別有支持的作業系統:
大型電腦
[
??
]
最早的操作系?是??20世?60年代的大型主????的,由于??些系?在?件方面做了巨大投?,因此原?的?算机?商?????原?操作系?相兼容的硬件?操作系?。?些早期的操作系?是?代操作系?的先?。?在仍被支持的大型主机操作系?包括:
?代的大型主机一般也可?行Linux或Unix??。
嵌入式
[
??
]
嵌入式系統使用非常廣泛的系統(如
VxWorks
、
eCos
、
Symbian OS
及
Palm OS
)以及某些功能縮減版本的Linux或者其他作業系統。某些情況下,OS指稱的是一個內建了固定應用軟體的巨大泛用程式。在許多最簡單的嵌入式系統中,所謂的OS就是指其上唯一的應用程式。
類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?中全數皆使用Linux系統。
[4]
微軟Windows
[
??
]
Microsoft Windows
系列作業系統是在微軟給IBM機器設計的
MS-DOS
的基礎上設計的圖形作業系統。現在的Windows系統,如Windows 2000、Windows XP皆是建立于現代的
Windows NT
核心。NT核心是由
OS/2
和
OpenVMS
等系統上借用來的。Windows可以在32位元和64位元的
Intel
和
AMD
的處理器上運行,但是早期的版本也可以在
DEC Alpha
、
MIPS
與
PowerPC
架構上運行。
雖然由於人們對於開放原始碼作業系統興趣的提升,Windows的市場?有率有所下降,但是到2004年?止,Windows作業系統在世界範圍內?據了?面作業系統90%的市場。
[5]
Windows系統也被用在低階和中階伺服器上,?且支援網頁服務的資料庫服務等一些功能。最近微軟花費了?大?究與開發的經費用於使Windows擁有能運行企業的大型程式的能力。
Windows XP在2001年10月25日發佈,2004年8月24日發佈服務包2(Service Pack 2),2008年4月21日發佈最新的服務包3,但只有32位元(Service Pack 3)。
Windows XP的下一代?Windows Vista(開發代碼?Longhorn)於2007年1月30日發?
[6]
。
Windows Vista
增加了許多功能,尤其是系統的安全性和網路管理功能,?且其擁有介面華麗的
Aero Glass
。但是整體而言,其在全球市場上的口碑??不是?好。其後繼者
Windows 7
則是於2009年10月22日發?,
Windows 7
改善了
Windows Vista
?人?病的效能問題,相較於
Windows Vista
,在同樣的硬體環境下,
Windows 7
的表現較Windows Vista?好。
Windows 8 於2012年10月26日發?,與Windows Phone 8共用核心,取消了開始按?,?使用了全新動態?介面,?可使用Windows 市集購買安裝App,但由於整體介面相較於前幾版是?大的更改,以及?觸控設計的介面,讓不少鍵盤滑鼠使用者比較不習慣。微軟於隔年2013年10月18日發布了Windows 8.1,?加回了開始按?。
而最多人使用的Windows 的
Windows 10
則是於2015年7月29日發?。而每次大更新後就更改版本號,目前最新?21H2。會在2025年10月25日停止支援Windows 10家用版及專業版
Windows 11於2021年10月5日發行ISO等安裝?,但無發?盒裝版。是目前最新的Windows,也是唯一可以安裝Android App與只有64位元版的Windows
?果macOS
[
??
]
macOS
,前?“Mac OS X”或“OS X”,是一套?行于?果
Macintosh
系列??上的操作系?。Mac OS是首?在商用?域成功的
?形用?界面
系?。Macintosh??成?包括
比?·阿特金森
(Bill Atkinson)、
杰夫·拉斯金
(Jef Raskin)和
安迪·赫茨菲?德
(Andy Hertzfeld)。?OS X 10.8?始在名字中去掉Mac,?保留OSX和版本?。在WWDC 2016 上,?果公司?OS X更名?macOS,?行的最新的系?版本是
macOS Sonoma
。
Chrome OS
[
??
]
Google Chrome OS是一?Google的?型??操作系???,其基于Google的??器
Google Chrome
的Linux?核。
其他
[
??
]
大型主機以及
嵌入式
作業系統均與Unix或Windows家族關係不大,除了
Android
,
Windows CE
、
Windows NT
及
Windows XP Embedded
是Windows的血親?品,以及數種*BSD和嵌入式Linux套件?例外。
少數較舊的OS今日依然在一些需要穩定性的市場中活躍,例如IBM的
OS/2
、
BeOS
以及
XTS-400
。
在
達康時代
狂潮過後,如
AmigaOS
與
RISC OS
等少數人使用的OS依然持續建立,以滿足狂熱的愛好者社群與特殊專業使用者。
?秀的操作系?必定要具?能?各?能力??的用??足各?需求的工具包可?化的高效?便程序?境,以程序??建程序,就如立法的法律指??范新的法案的?建。?其?是操作系?所?含的一部分,?定了可以有多强的?充能力。比如,某?操作系?有??的??者工具包集成?境程序?且是?可?化的,?能?能力不太高的人一看能?的,用于修改某??音合成器包含???示,可要是操作系?本身不支持也?有提供可用的工具程序,就??得?繁?,?可能?了?到??目?,??者就要??好各?相?的工具程序,甚至自己???一系列相?的工具程序?建??的工具包,最后?要??代?。若是有人想通?音??生成五??,要??似???言的五??????一下,?各?音色,音准采集???出一整套?律,通??音??可以??出?器的??等,?而?出?符完成??音到??的???生成。可是?人?却又更???也不必要如此。若是需要用?音的波形?重??音,?有相?的工具集是相????,?外只有使用同一套?音的波形?制??的所生成的波形?用?再?的?音才是原?的?音。
在作?商品出?的操作系??件的?史中常常因?其中包含的??器,媒?播放器在美?遭到反??起?,差点使得功能上?缺不全。少?操作系??件能?提供??全面的App和?用工具程序。
操作系??件的??也需要??的???境。
在同一台?算机上?行不同的操作系??件,就能?以不同的方式?使用?算机?源。比如,在Mac上?行OS X和Windows以??不同的技?
OpenCL
,
Core Image
:
DirectX
?使用?形????似的作用。
通??像??和?音????行信息搜索。
能??足不同需求所要求的精?程度???的精??分,以及尺度?分可以互?,同步,??原本必須由多?人?同合作才能完成的??需要?整?相互同步的操控作?,?就必?有??消息?送?示,可?化的用于??同步??任?的配置脚本,以及?行????任?的完整?件。
未來
[
??
]
?究與建立未來的作業系統依舊進行著。作業系統朝提供更省電、網路化、易用、華麗的使用者介面的方向來改進。類UNIX OS通過和
?面環境
開發者協作,正努力讓自己改進使用環境。
eyeOS是一套基於PHP實現的半開源模擬雲端運算操作系?,但其實質只是在網路瀏覽器中提供一種類似無界限的類獨立操作系?,其?非於任何類似虛擬化中實現的?正電腦操作系?,能提供諸如Word、PPT、Excel的在線處理功能…
GNU Hurd
是一個以完全相容Unix?加?許多功能?目?的微核心架構。微軟
Singularity
是一個奠基於
.Net
?以建立較佳
記憶體保護
機制?目標的?究計?。
功能
[
??
]
操作系?位于底?硬件?用?之?,是?者?通的?梁。用?可以通?操作系?的用?界面,?入命令。操作系???命令?行解?,??硬件??,??用?要求。以?代?准而言,一??准PC的操作系???提供以下的功能:
- ?程管理(Processing management)
- ?存管理(Memory management)
- 文件系?(File system)
- ??通信(Networking)
- 安全机制(Security)
- 用?界面(User interface)
- ??程序(Device drivers)
?程管理
[
??
]
不管是常駐程式或者應用程式,他們都以
行程
?標準執行單位。當年運用
馮·諾伊曼結構
建造電腦時,每個
中央處理器
最多只能同時執行一個行程。早期的操作系?(例如DOS)也不允許任何程式打破這個限制,且DOS同時只有執行一個?程(雖然DOS自己宣稱他們擁有終止?等待駐留能力,可以部分且艱難地解決這問題)。現代的作業系統,?使只擁有一個CPU,也可以利用
多?程
(multitask)功能同??行多??程。
?程管理
指的是操作系??整多?行程的功能。
由於大部分的電腦只包含一顆中央處理器,在單核心(Core)的情況下多行程只是簡單迅速地切換各行程,讓每個行程都能?執行,在多核心或多處理器的情況下,所有行程透過許多
協同技術
在各處理器或核心上轉換。越多行程同時執行,每個行程能分配到的時間比率就越小。?多操作系?在遇到此問題時會出現諸如音效斷續或滑鼠跳格的情況(稱做??(Thrashing),一種操作系?只能不停執行自己的管理程式?耗盡系統資源的狀態,其他使用者或硬體的程式皆無法執行。行程管理通常實踐了
分時
的?念,大部分的操作系?可以利用指定不同的特權等級(priority),?每個行程改變所?的分時比例。特權越高的行程,執行優先順序越高,單位時間內?的比例也越高。互動式操作系?也提供某種程度的回饋機制,讓直接與使用者互動的行程擁有較高的特權?。
除了行程管理之外,操作系??有擔負起
行程間通訊
(IPC)、行程異常終止處理以及
死?
(Dead Lock)偵測及處理等較?艱深的問題。
在行程之下?有
執行?
的問題,但是大部分的操作系??不會處理執行?所遭遇的問題,通常操作系?僅止於提供一組API讓使用者自行操作或透過
虛擬機器
的管理機制控制執行?之間的互動。
?存管理
[
??
]
根據
?金森定律
:「
??程序再多?存,程序也?想??法耗光
」,因此
程式設計師
通常希望系統給他
無限量
且
無限快
的記憶體。大部分的現代電腦記憶體架構都是
階層式
的,最快且數量最少的
暫存器
?首,然後是
快取
、
記憶體
以及最慢的
磁?儲存裝置
。而操作系?的
記憶體管理
提供尋?可用的記憶空間、配置與釋放記憶空間以及交換記憶體和低速儲存裝置的內含物……等功能。此類又被稱做
虛擬記憶體管理
的功能大幅增加每個行程可獲得的記憶空間(通常是4
GB
,?使實際上RAM的數量遠少於這數目)。然而這也帶來了微幅降低執行效率的缺點,嚴重時甚至也會導致行程崩潰。
記憶體管理的?一個重點活動就是藉由CPU的?助來管理虛擬位置。如果同時有許多行程儲存於記憶裝置上,作業系統必須防止?們互相干擾對方的記憶體內容(除非透過某些協定在可控制的範圍下操作,?限制可存取的記憶體範圍)。分割記憶體空間可以達成目標。每個行程只會看到整個記憶體空間(從0到記憶體空間的最大上限)被配置給?自己(當然,有些位置被操作系?保留而禁止存取)。CPU事先存了幾個表以比對虛擬位置與實際記憶體位置,這種方法稱?
分頁
配置。
藉由對每個行程?生分開獨立的位置空間,操作系?也可以輕易地一次釋放某行程所?據的所有記憶體。如果這個行程不釋放記憶體,操作系?可以結束行程?將記憶體自動釋放。
磁??文件系?
[
??
]
所謂的
?案系統
,通常指稱管理磁?資料的系統,可將資料以目錄或?案的型式儲存。每個?案系統都有自己的特殊格式與功能,例如日誌管理或不需磁?重整。
操作系?擁有許多種內建?案系統。例如
Linux
擁有非常廣泛的內建?案系統,如
ext2
、
ext3
、
ext4
、
ReiserFS
、
Reiser4
、
GFS
、
GFS2
、
OCFS
、
OCFS2
、
NILFS
與
Google?案系統
。Linux也支援非原生?案系統,例如
XFS
、
JFS
、
FAT
家族與
NTFS
。?一方面,
Windows
能支援的?案系統?有FAT12、FAT16、FAT32、EXFAT與NTFS。NTFS系統是Windows上最可?與最有效率的?案系統。其他的FAT家族都比NTFS老舊,且對於?案長度與分割磁?能力都有?大限制,因此造成?多問題。而UNIX的?案系統多半是
UFS
,而UNIX中的一個分支
Solaris
最近則開始支援一種新式的
ZFS
。
大部?上述的?案系統都有兩種建置方法。系統可以以
日誌式
或非日誌式建置。日誌式?案系統可以以較安全的手法執行系統恢?。如果一個沒有日誌式建置的?案系統遇上突然的系統崩潰,導致資料建立在一半時停頓,則此系統需要特殊的?案系統檢?工具才能復原;日誌式則可自動恢?。
微?
的NTFS與Linux的ext3、ext4、reiserFS與JFS都是日誌式?案系統。
每個?案系統都實作相似的目錄/子目錄架構,但在相似之下也有許多不同點。微軟使用「
\
」符號以建立目錄/子目錄關係,且?案名稱忽略其大小寫差異;UNIX系統則是以「
/
」建立目錄架構,且?案名稱大小寫有差異。(其實這是給系??用的,"/"或"\"?不實際存在硬?)
??
[
??
]
許多現代的操作系?都具備操作主流網路通訊協定
TCP/IP
的能力。也就是說這樣的作業系統可以進入網路世界,?且與其他系統分享諸如?案、印表機與掃描器等資源。
許多操作系?也支援多個過去網路?蒙時代的各路網路通訊協定,例如
IBM
建立的
系統網路架構
、
DEC
在?所生?的系統所設定的
DECnet
架構與微軟?Windows製作的特殊通訊協定。還有許多?了特殊功能而?發的通訊協定,例如可以在網路上提供?案存取功能的
NFS
系統。現今大量用於影音串流(Streaming media)及遊?訊息傳送的
UDP
協定等。
安全
[
??
]
大多數操作系?都含有某種程度的
資訊安全
機制。資訊安全機制主要基於兩大理念:
- 操作系?提供外界直接或間接存取數種資源的管道,例如本地端磁?機的?案、受保護的特權
系統呼叫
、使用者的隱私資料與系統執行的程式所提供的服務。
- 操作系?有能力
認證
資源存取的請求。允許通過認證的請求?拒?無法通過的非法請求,?將適當的權力
授權
(
Authorization
)給此請求。有些系統的認證機制僅簡略地把資源分?特權或非特權,且每個請求都有獨特的身?辨識號碼,例如使用者名稱。資源請求通常分成兩大種類:
- 內部來源:通常是一個正在執行的程式發出的資源請求。在某些系統上,一個程式一旦可執行就可做任何事情(例如
DOS
時代的
病毒
),但通常操作系?會給程式一個識別代號,?且在此程式發出請求時,檢?其代號與所需資源的存取權限關係。
- 外部來源:從
非本地端電腦
而來的資源請求,例如遠端登入本機電腦或某些網路連線請求(
FTP
或
HTTP
)。?了識別這些外部請求,系統也許會對此請求提出認證要求。通常是請求輸入使用者名稱以及相對應的密碼。系統有時也會應用諸如磁?或生物識別資料的?種認證方法。在某些例子,例如網路通訊上,通常不需通過認證?可存取資源(例如匿名存取的FTP伺服器或
P2P
服務)。
除了允許/拒?形式的安全機制,一個高安全等級的系統也會提供記錄選項,允許記錄各種請求對資源存取的行?(例如「誰曾經讀了這個?案?」)。
肇因於軍方與商業組織將敏感資料記錄在電腦上,安全機制在操作系?歷史上是一個被長久關注與討論的問題。
美國
國防部
(DoD)便創立了
《
可信賴之計算機系統評鑑程序
》
(
TCSEC
),此手冊確立了評鑑安全機制成效的基本原則。這對操作系?作者來說非常重要,因?TCSEC是用於評鑑、分類與選拔出用於處理、儲存與獲取敏感或機密資料的電腦系統的標準程序。
內部通?安全
[
??
]
內部資訊安全可視?防止正在執行的程式任意存取系統資源的手段。大多操作系?讓普通程式可直接操作電腦的
CPU
,所以?生了一些問題,例如?樣把可如操作系?一樣處理事務、執行同樣特殊指令的程式?迫停止,畢竟在此情境下,操作系?也只是?一個平起平坐的程式。?通用操作系?所生?的CPU通常於硬體層級上實踐了一定程度的特殊指令保護?念。通常特權層級較低的程式想要執行某些特殊指令時會被阻斷,例如直接存取像是硬?之類的外部裝置。因此,程式必須得經由詢問操作系?,讓操作系?執行特殊指令來存取磁?。因此操作系?就有機會檢?此程式的識別身?,?依此接受或拒??的請求。
在不支援特殊指令架構的硬體上,?一個也是唯一的保護方法,則是操作系??不直接利用CPU執行使用者的程式,而是藉由
模擬
一個CPU或提供一
P-code机
系統(
?代碼
執行機),像是
Java
一樣讓程式在
虛擬機器
上執行。
內部安全機制在多使用者電腦上特別重要:?允許每個系統使用者擁有自己個人的?案與目錄,且其他使用者不能任意存取或刪除。因?任何程式都可能繞過操作系?的監控,更有可能繞過側錄程式的監控,擁有?制力的內部安全機制在側錄?動時也非常重要。
外部通?安全
[
??
]
通常一個作業系統會?其他網路上的電腦或使用者提供(主持)各種服務。這些服務通常藉由
端口
或操作系?網路地址後的數字存取點提供。通常此服務包括提供?案共享(NFS)、列印共享、
電子郵件
、
網頁服務
與?案傳輸協定(
FTP
)。外部資訊安全的最前線,是諸如
防火?
等的硬體裝置。在操作系?內部也常設置許多種類的軟體防火牆。軟體防火牆可設定接受或拒?在操作系?上執行的服務與外界的連線。因此任何人都可以安裝?執行某些不安全的網路服務,例如
Telnet
或FTP,?且設定除了某些自用通道之外阻?其他所有連線,以達成防堵不良連線的機制。
使用者界面
[
??
]
今日大部分的操作系?都包含
?形用?界面
(GUI)。有幾類較舊的操作系?將圖形化使用者介面與
核心
緊密結合,例如最早的Windows與
Mac OS
實作?品。此種手法可提供較快速的圖形回應能力,且實作時不需切割模組因而較?省工,但是會有?烈副作用,例如圖形系統崩潰將導致整個系統崩潰,例如
藍白當機?面
。許多近代的操作系?已
模組化
,將圖形介面的子系統與核心分開(已知Linux與Mac OS X原先就是如此設計,而某些擴充版本的Windows終於也採用此手法)。
許多操作系?允許使用者安裝或創造任何他們喜歡的?形用?界面
[7]
。大部分的Unix與Unix衍生系統(BSD、Linux與
Minix
)通常會安裝
X Window
系統配合
GNOME
或
KDE
?面環境。而某些操作系?就沒有這?彈性的圖形化使用者介面,例如Windows。這類的操作系?只能透過外加的程式來改變其圖形化使用者介面,甚至根本只能改變諸如選單風格或?色配置等部分
[來源請求]
。
圖形化使用者介面與時?進,例如Windows在每次新版本上市時就會將其圖形化使用者介面改頭換面,而Mac OS的GUI也在Mac OS X上市時出現重大轉變。
??程序
[
??
]
所謂的
驅動程式
(Device driver)是指某類設計來與硬體互動的電腦軟體。通常是一設計完善的裝置互動介面,利用與此硬體連接的電腦匯排流或通訊子系統,提供對此裝置下令與接收資訊的功能;以及最終目的,將訊息提供給操作系?或應用程式。驅動程式是針對特定硬體與特定操作系?設計的軟體,通常以作業系統核心模組、應用軟體包或普通電腦程式的形式在操作系?
核心
底下執行,以達到通透順暢地與硬體互動的效果,且提供硬體在處理非同步的時間依賴性介面(asynchronous time-dependent hardware interface)時所需的中斷處理常式。
設計驅動程式的主要目的在於操作
抽象化
,任何硬體模組,?使是同一類的裝置,在硬體設計面上也有巨大差異。廠商推出的較新模組通常更可?更有效率,控制方法也會有所不同。電腦與其操作系?每每不能預期那些現有與新裝置的變異之處,因此無法知道其操作方法。?解決此問題操作系?通常會
主動制訂
每種裝置該有的操作方式,而驅動程式功能則是將那些操作系?制訂的行?描述,轉譯?可讓裝置瞭解的自訂操作手法。
理論上適合的驅動程式一旦安裝,相對應的新裝置就可以無誤地執行。此新驅動程式可以讓此裝置完美地切合在操作系?中,讓使用者察覺不到這是操作系?原本沒有的功能。
??
[
??
]
操作系?理??究者有?把操作系?分成四大部分:
- ??程序
- 最底?的、直接控制和??各?硬件的部分,??的??是?藏硬件的具???,?向其他部分提供一?抽象的、通用的接口。
- ?核
- 操作系?之最核心部分,通常?行在最高特??,??提供基?性、??性的功能。
- 支承?
- (亦作“
接口?
”)是一系列特殊的程序?,????在于把系?所提供的基本服?包?成?用程序所能?使用的?程接口(
API
),是最?近?用程序的部分。例如,
GNU C?行期?
就?于此?,?把各?操作系?的?部?程接口包?成ANSI C和
POSIX
?程接口的形式。
- 外?
- 所?外?,是指操作系?中除以上三?以外的所有其他部分,通常是用于提供特定高?服?的部件。例如,在微?核??中,大部分系?服?,以及
UNIX
/
Linux
中各?守??程都通常被??此列。
?然,本?所提出的四部???也?非放之四海皆准。例如,在早期的微???操作系?中,各部分?合程度?深,?以?分彼此。而在使用
外核
??的操作系?中,?根本?有??程序的?念。因而,本?的??只适用于一般情?,具?特例需具?分析。
操作系?中四大部分的不同布局,也就形成了??整???的分野。常?的??包括:????、???、微?核??、垂直??、和
??机
??。
分?
[
??
]
操作系?的分??有一??一的?准,可以根据工作方式分?
批?理操作系?
、
分?操作系?
、
??操作系?
、
??操作系?
和
分布式操作系?
等;根据架?可以分?
??核操作系?
等;根据?行的?境,可以分??面操作系?,
嵌入式操作系?
等;根据指令的?度分?8bit, 16bit, 32bit,
64bit
的操作系?。
?核??
[
??
]
?核是操作系?最核心最基?的?件,其??往往?操作系?的外部特性以及?用?域有着一定程度的影?。?管?着理?和??的不?演?,操作系?高?特性??核??之?的?合有日??小之?,但??上,?核??仍然是操作系?分?之常用?准。
?核的??可以分?
??核
、
微?核
、
超微?核
、以及
外核
等。
??核??是操作系?中各核心部件?然混居的形?,????生于1960年代(亦有1950年代初之?,?存??),?史最?,是操作系??核?外?分??的最初形?。
微?核??是1980年代?生出?的?新的?核??,强???性部件?功能性部件的分?。20世?末,基于微?核??,理?界中又?展出了超微?核?外?核等多???。?管自1980年代起,大部分理??究都集中在以微?核?首的“新?”??之上,然而,在?用?域之中,以??核???基?的操作系?却一直占据着主?地位。
在?多常用操作系?之中,除了
QNX
和基于Mach的UNIX等??系?外,?乎全部采用??核??,例如大部分的
Unix
、
Linux
,以及
Windows
(
微?
??Windows NT是基于改良的微?核架?的,?管理?界?此存有??)。微?核和超微?核??主要用于?究性操作系?,?有一些
嵌入式系?
使用外核。
基于??核的操作系?通常有着??的?史?源。例如,?大部分UNIX的家族史都可上溯至1960年代。??操作系?多?有着相?古老的??和??(例如某些UNIX中存在着大量1970年代、1980年代的代?)。?外,往往在性能方面略?于同一?用?域中采用其他?核??的操作系?(但通常??此?性能??不能完全?功于??核??)。
通用??用、嵌入式
[
??
]
通用操作系?
是面向一般?有特定?用需求的操作系?。由于?有特定的?用需求,通用操作系??了适?更?泛的?用,需要支持更多的硬件??件,需要??所有的用???,?系??行更新。通用操作系?是一?工程量繁重的操作系?。
???非??
[
??
]
「
??操作系?
」(Real Time OS)泛指所有据有一定???源?度以及通?能力的操作系?。而所?“??”,不同?境中往往有着非常不同的意?。某些?候??用作“高性能”的同??。但在操作系?理?中“??性”所指的通常是特定操作所消耗的??(以及空?)的上限是可?知的。比如,如果?某?操作系?提供???存分配操作,那也就是?一??存分配操作所用??(及空?)无?如何也不?超出操作系?所承?的上限。??性在某些?域非常重要,比如在工?控制、??器材、影音?合成、以及?事?域,??性都是无可或缺的特性。
常用??操作系?有
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位、128位
[
??
]
所謂8位、16位、32位、64位、128位等術語有時指匯流排寬度,有時指指令寬度(在定長指令集中),而在作業系統理論中主要是指記憶體定址的寬度。如果記憶體的定址寬度是16位,那?每一個記憶體地址可以用16個二進位位來表示,也就是說可以在64KB的範圍內定址。同樣道理32位的寬度對應4GB的定址範圍,64位的寬度對應16 Exabyte的定址範圍。記憶體定址範圍?非僅僅是對作業系統而言的,其他類型的軟件的設計有時也會被定址範圍而影響。但是在作業系統的設計與實現中,定址範圍?有着更?重要的意義。
在早期的16位作業系統中,由於64KB的定址範圍太小,大都都採用「段」加「線性地址」的二維平面地址空間的設計。分配記憶體時通常需要考慮「段置換」的問題,同時,應用程序所能?使用的地址空間也往往有比較小的上限。
在32位作業系統中,4GB的定址範圍對於一般應用程序來說是綽綽有餘的,因而,通常使用一維的線性地址空間,而不使用「段」。
注?
[
??
]
?考文?
[
??
]
引用
[
??
]
?源
[
??
]
- Deitel, Harvey M.; Deitel, Paul; Choffnes, David.
Operating Systems
. Upper Saddle River, NJ: Pearson/Prentice Hall. 2004.
ISBN
978-0-13-182827-8
.
- Silberschatz, Abraham; Galvin, Peter Baer; Gagne, Greg. Operating System Concepts. Hoboken, NJ: John Wiley & Sons. 2008.
ISBN
978-0-470-12872-5
.
(俗稱“恐龍書”,OS?科書“聖經”)
- Tanenbaum, Andrew S.; Woodhull, Albert S. Operating Systems. Design and Implementation. Upper Saddle River, N.J.: Pearson/Prentice Hall. 2011.
ISBN
978-0-13-142938-3
.
(Linux由此書而?發,可惜新版本將實作內容移除)
- Stallings, William.
Operating Systems: Internals and Design Principles, 5/E
. Prentice Hall. 2005.
ISBN
978-0-13-147954-8
.
?閱
[
??
]
外部連結
[
??
]