操作系統

用手机看条目

出自 MBA智库百科(https://wiki.mbalib.com/)

操作系統(operating system,OS)

目錄

什麼是操作系統

  操作系統是管理電腦硬體與軟體資源的電腦程式,同時也是電腦系統的內核與基石。操作系統需要處理如管理與配置記憶體、決定系統資源供需的優先次序、控制輸入與輸出裝置、操作網路與管理文件系統等基本事務。操作系統也提供一個讓使用者與系統互動的操作界面。

  操作系統的型態非常多樣,不同機器安裝的操作系統可從簡單到複雜,可從非智能手機嵌入式系統超級電腦的大型操作系統。許多操作系統製造者對它涵蓋範疇的定義也不盡一致,例如有些操作系統整合了圖形用戶界面,而有些僅使用命令行界面,而將圖形用戶界面視為一種非必要的應用程式。

  操作系統理論在電腦科學中,為歷史悠久而又活躍的分支;而操作系統的設計與實現則是軟體工業的基礎與內核。

操作系統的功能

  操作系統位於底層硬體與用戶之間,是兩者溝通的橋梁。用戶可以通過操作系統的用戶界面,輸入命令。操作系統則對命令進行解釋,驅動硬體設備,實現用戶要求。以現代標準而言,一個標準PC的操作系統應該提供以下的功能:

進程管理(Processing management)

  不管是常駐程式或者應用程式,他們都以行程為標準執行單位。當年運用馮·諾伊曼結構建造電腦時,每個中央處理器最多只能同時執行一個行程。早期的操作系統(例如DOS)也不允許任何程式打破這個限制,且DOS同時只有執行一個進程(雖然DOS自己宣稱他們擁有終止並等待駐留能力,可以部分且艱難地解決這問題)。現代的操作系統,即使只擁有一個CPU,也可以利用多進程(multitask)功能同時執行多個進程。進程管理指的是操作系統調整多個行程的功能。

  由於大部分的電腦只包含一顆中央處理器,在單內核(Core)的情況下多行程只是簡單迅速地切換各行程,讓每個行程都能夠執行,在多內核或多處理器的情況下,所有行程透過許多協同技術在各處理器或內核上轉換。越多行程同時執行,每個行程能分配到的時間比率就越小。很多操作系統在遇到此問題時會出現諸如音效斷續或滑鼠跳格的情況(稱做崩潰(Thrashing),一種操作系統只能不停執行自己的管理程式並耗盡系統資源的狀態,其他用戶或硬體的程式皆無法執行)。行程管理通常實踐了分時的概念,大部分的操作系統可以利用指定不同的特權等級(priority),為每個行程改變所占的分時比例。特權越高的行程,執行優先順序越高,單位時間內占的比例也越高。互動式操作系統也提供某種程度的回饋機制,讓直接與用戶互動的行程擁有較高的特權值。

  除了行程管理之外,操作系統尚有擔負起行程間通信(IPC)、行程異常終止處理以及死鎖(Dead Lock)偵測及處理等較為艱深的問題。在行程之下尚有執行緒的問題,但是大部分的操作系統並不會處理執行緒所遭遇的問題,通常操作系統僅止於提供一組API讓用戶自行操作或透過虛擬機器的管理機制控制執行緒之間的互動。

記憶體管理(Memory management)

  根據帕金森定律:“你給程式再多記憶體,程式也會想盡辦法耗光”,因此程式員通常希望系統給他無限量且無限快的記憶體。大部分的現代電腦記憶體架構都是階層式的,最快且數量最少的暫存器為首,然後是快取、記憶體以及最慢的磁碟儲存裝置。而操作系統的記憶體管理提供尋找可用的記憶空間、配置與釋放記憶空間以及交換記憶體和低速儲存裝置的內含物……等功能。此類又被稱做虛擬記憶體管理的功能大幅增加每個行程可獲得的記憶空間(通常是4GB,即使實際上RAM的數量遠少於這數目)。然而這也帶來了微幅降低執行效率的缺點,嚴重時甚至也會導致行程崩潰。

  記憶體管理的另一個重點活動就是藉由CPU的幫助來管理虛擬位置。如果同時有許多行程儲存於記憶裝置上,操作系統必須防止它們互相干擾對方的記憶體內容(除非透過某些協定在可控制的範圍下操作,並限制可存取的記憶體範圍)。分割記憶體空間可以達成目標。每個行程只會看到整個記憶體空間(從0到記憶體空間的最大上限)被配置給它自己(當然,有些位置被操作系統保留而禁止存取)。CPU事先存了幾個表以比對虛擬位置與實際記憶體位置,這種方法稱為分頁配置。

  藉由對每個行程產生分開獨立的位置空間,操作系統也可以輕易地一次釋放某行程所占據的所有記憶體。如果這個行程不釋放記憶體,操作系統可以結束行程並將記憶體自動釋放。

文件系統(File system)

  所謂的檔案系統,通常指稱管理磁碟資料的系統,可將資料以目錄或檔案的型式儲存。每個檔案系統都有自己的特殊格式與功能,例如日誌管理或不需磁碟重整。

  操作系統擁有許多種內建檔案系統。例如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系統則是以“/”建立目錄架構,且檔案名稱大小寫有差異。

網路通信(Networking)

  許多現代的操作系統都具備操作主流網路通信協定TCP/IP的能力。也就是說這樣的操作系統可以進入網路世界,並且與其他系統分享諸如檔案、印表機與掃描器等資源。

  許多操作系統也支援多個過去網路啟蒙時代的各路網路通信協定,例如IBM建立的系統網路架構、DEC在它所生產的系統所設定的DECnet架構與微軟為Windows製作的特殊通信協定。還有許多為了特殊功能而研發的通信協定,例如可以在網路上提供檔案存取功能的NFS系統。現今大量用於影音串流(Streaming media)及游戲訊息傳送的UDP協定等。

安全機制(Security)

  大多數操作系統都含有某種程度的資訊安全機制。資訊安全機制主要基於兩大理念:

  操作系統提供外界直接或間接存取數種資源的管道,例如本地端磁碟機的檔案、受保護的特權系統呼叫、用戶的隱私資料與系統執行的程式所提供的服務。

  操作系統有能力認證資源存取的請求。允許通過認證的請求並拒絕無法通過的非法請求,並將適當的權力授權(Authorization)給此請求。有些系統的認證機制僅簡略地把資源分為特權或非特權,且每個請求都有獨特的身份辨識號碼,例如用戶名稱。資源請求通常分成兩大種類:

  內部來源:通常是一個正在執行的程式發出的資源請求。在某些系統上,一個程式一旦可執行就可做任何事情(例如DOS時代的病毒),但通常操作系統會給程式一個識別代號,並且在此程式發出請求時,檢查其代號與所需資源的存取許可權關係。

  外部來源:從非本地端電腦而來的資源請求,例如遠端登入本機電腦或某些網路連線請求(FTP或HTTP)。為了識別這些外部請求,系統也許會對此請求提出認證要求。通常是請求輸入用戶名稱以及相對應的密碼。系統有時也會應用諸如磁卡或生物識別資料的它種認證方法。在某些例子,例如網路通信上,通常不需通過認證即可存取資源(例如匿名存取的FTP伺服器或P2P服務)。

用戶界面(User interface)

  今日大部分的操作系統都包含圖形用戶界面(GUI)。有幾類較舊的操作系統將圖形化用戶界面與內核緊密結合,例如最早的Windows與Mac OS實作產品。此種手法可提供較快速的圖形回應能力,且實作時不需切割模組因而較為省工,但是會有強烈副作用,例如圖形系統崩潰將導致整個系統崩潰,例如藍屏死機。許多近代的操作系統已模組化,將圖形界面的副系統與內核分開(已知Linux與Mac OS X原先就是如此設計,而某些擴充版本的Windows終於也採用此手法)。

  許多操作系統允許用戶安裝或創造任何他們喜歡的圖形用戶界面。大部分的Unix與Unix衍生系統(BSD、Linux與Minix)通常會安裝X Window系統配合GNOME或KDE桌面環境。而某些操作系統就沒有這麼彈性的圖形化用戶界面,例如Windows。這類的操作系統只能透過外加的程式來改變其圖形化用戶界面,甚至根本只能改變諸如選單風格或顏色配置等部分。

  圖形化用戶界面與時併進,例如Windows在每次新版本上市時就會將其圖形化用戶界面改頭換面,而Mac OS的GUI也在Mac OS X上市時出現重大轉變。

驅動程式(Device drivers)

  所謂的驅動程式(Device driver)是指某類設計來與硬體互動的電腦軟體。通常是一設計完善的裝置互動界面,利用與此硬體連接的電腦匯排流或通信子系統,提供對此裝置下令與接收資訊的功能;以及最終目的,將訊息提供給操作系統或應用程式。驅動程式是針對特定硬體與特定操作系統設計的軟體,通常以操作系統內核模組、應用軟體包或普通電腦程式的形式在操作系統內核底下執行,以達到通透順暢地與硬體互動的效果,且提供硬體在處理非同步的時間依賴性界面(asynchronous time-dependent hardware interface)時所需的中斷處理常式。

  設計驅動程式的主要目的在於操作抽象化,任何硬體模組,既使是同一類的裝置,在硬體設計面上也有巨大差異。廠商推出的較新模組通常更可靠更有效率,控制方法也會有所不同。電腦與其操作系統每每不能預期那些現有與新裝置的變異之處,因此無法知道其操作方法。為解決此問題操作系統通常會主動制訂每種裝置該有的操作方式,而驅動程式功能則是將那些操作系統制訂的行為描述,轉譯為可讓裝置瞭解的自訂操作手法。

  理論上適合的驅動程式一旦安裝,相對應的新裝置就可以無誤地執行。此新驅動程式可以讓此裝置完美地切合在操作系統中,讓用戶察覺不到這是操作系統原本沒有的功能。

本條目對我有幫助11
MBA智库APP

扫一扫,下载MBA智库APP

分享到:
  如果您認為本條目還有待完善,需要補充新內容或修改錯誤內容,請編輯條目投訴舉報

本条目由以下用户参与贡献

苏青荇,33.

評論(共0條)

提示:評論內容為網友針對條目"操作系統"展開的討論,與本站觀點立場無關。

發表評論請文明上網,理性發言並遵守有關規定。

打开APP

以上内容根据网友推荐自动排序生成

闽公网安备 35020302032707号