當前位置:商標查詢大全網 - 商標查詢 - 操作系統中的壹些概念問題

操作系統中的壹些概念問題

操作系統是管理計算機軟硬件資源的程序,也是計算機系統的核心和基石。操作系統負責管理和配置內存、確定系統資源供需優先級、控制輸入輸出設備、操作網絡、管理文件系統等基本事務。操作系統還為用戶提供了與系統交互的操作界面。

操作系統的類型非常多樣,不同機器安裝的操作系統可以從簡單到復雜,從手機的嵌入式系統到超級計算機的大型操作系統。許多操作系統制造商對其覆蓋範圍有不同的定義。比如有的操作系統集成了圖形用戶界面,有的只使用文本界面,把圖形界面當成不必要的應用。

操作系統理論是計算機科學中壹個有著悠久歷史的活躍分支。操作系統的設計和實現是軟件產業的基礎和核心。

現代操作系統通常具有所使用的繪圖設備的圖形用戶界面,並添加不同於鍵盤的輸入設備,例如鼠標或觸摸面板。舊的OS或者以性能為導向的服務器通常沒有這麽友好的界面,而是使用命令行界面(CLI)和鍵盤作為輸入設備。以上兩個接口實際上都是所謂的shells,它們的功能都是接受和處理用戶的指令(比如按下壹個按鈕或者在命令提示符上鍵入指令)。

選擇要安裝的操作系統通常與其硬件架構有很大關系。只有Linux和BSD可以運行在幾乎所有的硬件架構上,而Windows NT只移植到DEC Alpha和MIPS Magnum上。在1990年代早期,個人電腦的選擇僅限於Windows系列、類Unix系列和Linux,直到今天,Linux和Mac OS X仍是最重要的替代選擇。

大型機和嵌入式系統使用多種操作系統。最近很多主機為了享受其他平臺的資源,開始支持Java和Linux。最近,從用於傳感器網絡的Berkeley Tiny OS到可以運行Microsoft Office的Windows CE,各種思想流派對嵌入式系統展開了激烈的爭論。

個人電腦:蘋果麥金塔電腦-蘋果OS X電腦,視窗系統(僅英特爾平臺),Linux,BSD。

IBM兼容PC-Windows、Linux、BSD和Mac OS X(非正式支持)。

主機:Burroughs MCP-B5000,IBM OS/360-IBM System/360,un ivac exec 8-un ivac 1108。

嵌入式系統:嵌入式系統使用非常廣泛的操作系統(如VxWorks、eCos、Symbian OS和Palm OS)以及壹些精簡版的Linux或其他操作系統。在某些情況下,OS是指壹個巨大的通用程序,內置固定的應用軟件。在很多最簡單的嵌入式系統中,所謂的OS是指上面唯壹的應用程序。

類Unix系統:所謂類Unix家族是指種類繁多的OS,包括System V、BSD、Linux等。由於Unix是開放集團的註冊商標,所以指的是遵守這家公司定義的行為的操作系統。類Unix通常是指包含比原始Unix更多功能的操作系統。

Unix系統可以在多種處理器架構下運行,在服務器系統上有很高的利用率,比如大學或工程應用的工作站。自由軟件的Unix變種,比如Linux和BSD,最近越來越流行,在個人臺式電腦市場也有很大斬獲,比如Ubuntu系統。

壹些Unix變種,如惠普的HP-UX和IBM的AIX,都是只為自己的硬件產品設計的,而SUN的Solaris可以安裝在自己的硬件或x86計算機上。蘋果電腦的Mac OS X是由NeXTSTEP、Mach和FreeBSD***,衍生出來的微核心BSD系統,替代了蘋果電腦早期的非Unix MAC OS。

經過幾年的努力,免費開源的Unix系統逐漸蠶食專利軟件的專業領域。例如,計算機動畫運營巨頭——SGI的IRIX系統已經被Linux家族和貝爾實驗室R&D團隊設計的Project No.9和Inferno系統所取代,這些系統都用於去中心化的表達環境。與其他Unix系統不同,它們選擇內置的圖形用戶界面。Plan 9並不流行,因為它最初推出時並不是自由軟件。後來免費開源軟件許可證Lucent Public License發布後,開始有了大量的用戶和社區。Inferno已經賣給維塔·四星龍,並在GPL/MIT許可下發行。

目前全球500強電腦中,472臺使用Linux,6臺使用Windows,其余為BSD等Unix。

微軟視窗:微軟視窗系列操作系統是微軟為IBM機器設計的基於MS-DOS的圖形操作系統。現在的Windows系統,比如Windows 2000,Windows XP,都是在現代的Windows NT內核中創建的。NT內核是從OS/2和OpenVMS借來的。Windows可以在32位和64位的英特爾和AMD處理器上運行,但早期版本也可以在DEC Alpha、MIPS和PowerPC架構上運行。雖然由於人們對開源操作系統興趣的增加,Windows的市場份額有所下降,但到2004年,Windows操作系統已經占據了全球桌面操作系統90%的市場。[3]

Windows系統也用於低層和中層服務器,支持web service的數據庫服務等部分功能。最近微軟花了大量的研發資金讓Windows具備運行企業大型程序的能力。

蘋果Mac OS: Mac OS是運行在蘋果Macintosh系列電腦上的操作系統。Mac OS是商業領域第壹個成功的圖形用戶界面。

Chrome OS:谷歌Chrome OS是谷歌的壹個輕量級計算機操作系統項目,基於谷歌瀏覽器Chrome的Linux內核。

進程管理:無論是常駐程序還是應用程序,都是以進程為標準運行的。當使用馮諾依曼結構構建計算機時,每個CPU在同壹時間只能運行壹個進程。早期的OS(比如DOS)不允許任何程序打破這種限制,DOS同時只有壹個進程運行(雖然DOS聲稱擁有終止和等待暫停(TSR)的能力,可以部分且困難地解決這個問題)。現代操作系統,即使只有壹個CPU,也可以利用多任務功能同時運行多個進程。進程管理是指操作系統調整復雜進程的功能。

因為大多數計算機只包含壹個中央處理器,所以在單核的情況下,多進程只是快速切換進程,讓每個進程都能運行。在多核或多處理器的情況下,所有進程都通過許多協作技術在每個處理器或內核上轉換。同時運行的進程越多,每個進程可以分配的時間比例就越小。很多OS都會遇到這個問題,比如時斷時續的音效或者鼠標跳脫(稱為系統顛簸,OS只能保持運行自己的管理程序而耗盡系統資源,其他用戶或者硬件程序無法運行的狀態)。進程管理通常實踐分時的概念,大多數操作系統可以通過指定不同的特權級別來改變每個進程的分時比例。特權越高,運行優先級越高,單位時間所占比例也越高。交互式OS還在壹定程度上提供了反饋機制,使得直接與用戶交互的進程擁有更高的特權值。

除了進程管理,OS還負責進程間通信(IPC)、進程異常終止、死鎖檢測和處理等難題。

進程下還是有運行線程的問題,但是大部分OS不會處理運行線程遇到的問題。通常情況下,OS只提供壹組API供用戶自行操作或者通過虛擬機的管理機制控制運行線程之間的交互。

內存管理:根據帕金森定律:“如果妳給程序更多的內存,程序會想盡辦法用完”,所以程序員通常希望系統給他無限的、無限快的內存。大多數現代計算機內存架構都是分層的,速度最快、數量最少的寄存器排在第壹位,其次是緩存、內存和速度最慢的磁盤存儲設備。操作系統的內存管理提供了搜索可用內存空間、配置和釋放內存空間以及交換內存和低速存儲設備的內容的功能。這種功能也稱為虛擬內存管理,它極大地增加了每個進程可用的內存空間(通常為4GB,盡管實際的RAM量遠小於此)。但也帶來了略微降低運行效率的缺點,嚴重時甚至會導致流程崩潰。

內存管理的另壹個關鍵活動是在CPU的幫助下管理虛擬位置。如果內存設備上同時存儲有多個進程,操作系統必須防止它們相互幹擾內存內容(除非它們通過壹些協議在可控範圍內運行,限制可訪問的內存範圍)。分區內存空間可以達到目的。每個進程只會看到整個內存空間(從0到內存空間的最大上限)都是為自己配置的(當然有些位置是OS保留的,禁止訪問)。CPU預先存儲了幾個表,以便將虛擬位置與實際內存位置進行比較。這種方法稱為分頁配置。

通過為每個進程創建壹個單獨和獨立的位置空間,操作系統還可以很容易地壹次釋放所有被進程占用的內存。如果該進程沒有釋放內存,操作系統可以退出該進程並自動釋放內存。

磁盤和文件系統:所謂文件系統,通常是指管理磁盤數據的系統,可以以目錄或文件的形式存儲數據。每個文件系統都有自己特殊的格式和功能,比如日誌管理或無磁盤重組。

操作系統有很多種內置文件系統。例如,Linux有各種各樣的內置文件系統,如ext2、ext3、ext4、ReiserFS、Reiser4、GFS、GFS2、OCFS、OCFS2、NILFS和谷歌文件系統。Linux還支持非本地文件系統,如XFS、JFS、FAT系列和NTFS。另壹方面,Windows可以支持的文件系統只有FAT12、FAT16、FAT32和NTFS。NTFS系統是Windows上最可靠、最高效的文件系統。其他FAT家族都比NTFS老,對文件長度和分區磁盤容量有很大的限制,因此造成很多問題。UNIX的文件系統大多是UFS,UNIX的壹個分支Solaris最近開始支持壹種新型的ZFS。

上述文件系統大多有兩種構建方法。該系統可以構建在日誌文件系統或非日誌文件系統中。日誌文件系統可以以更安全的方式運行系統恢復。如果沒有建立日誌的文件系統遇到突然的系統崩潰,導致數據創建中途停止,系統需要專門的文件系統檢查工具來撤銷;日誌類型可以自動回復。微軟的NTFS和Linux的ext3、ext4、reiserFS和JFS都是日誌文件系統。

每個文件系統都實現了相似的目錄/子目錄架構,但是在相似性下有很多差異。微軟用“\”符號創建目錄/子目錄關系,文件名忽略大小寫區別;UNIX系統用“/”創建目錄模式,文件名大小寫不同。

網絡:很多現代OS都具備運行主流網絡通信協議TCP/IP的能力。換句話說,這樣的操作系統可以進入網絡世界,與其他系統共享文件、打印機和掃描儀等資源。

很多OS也支持過去網絡啟蒙時代的各種網絡通信協議,比如IBM創立的SNA,DEC在其系統中設定的DECnet架構,微軟為Windows制定的專用通信協議。還有許多為特殊功能開發的通信協議,如NFS系統,它可以在網絡上提供文件訪問。現在大量的UDP協議用於流媒體和遊戲消息傳輸。

安全性:大多數操作系統都包含壹些信息安全機制。信息安全機制主要基於兩個概念:

操作系統為外界提供了直接或間接訪問多種資源的通道,如本地磁盤驅動器上的文件、受保護的特權系統調用、用戶的私有數據以及系統運行的程序提供的服務。

操作系統能夠授權資源訪問請求。允許認證請求,拒絕不能通過的非法請求,並對該請求授予適當的權限。某些系統的身份驗證機制只是簡單地將資源分為特權和非特權,每個請求都有壹個唯壹的標識號,比如用戶名。資源請求通常分為兩類:

內部資源:通常是來自正在運行的程序的資源請求。在某些系統上,程序壹旦可以運行,就可以做任何事情(比如DOS時代的病毒),但通常OS會給程序壹個識別碼,當程序發出請求時,會檢查其代碼與所需資源的訪問權限之間的關系。

外部來源:來自非本地計算機的資源請求,例如遠程登錄到本地計算機或壹些網絡連接請求(FTP或HTTP)。為了識別這些外部請求,系統可以對該請求提出認證要求。通常會要求輸入用戶名和相應的密碼。該系統有時使用其他認證方法,如磁卡或生物數據。在某些情況下,如網絡通信,資源(如匿名FTP服務器或P2P服務)通常無需身份驗證即可訪問。

除了允許/拒絕形式的安全機制之外,高安全性系統還將提供記錄選項,允許記錄各種訪問資源的請求(例如,“誰讀過這個文件?”)。

由於軍事和商業組織在計算機上記錄敏感數據,安全機制壹直是操作系統歷史上長期關註和討論的問題。美國國防部(DoD)建立了可信計算機系統評估計劃(TCSEC ),該計劃確立了評估安全機制有效性的基本原則。這對於操作系統作者來說非常重要,因為TCSEC是壹個標準程序,用於評估、分類和選擇處理、存儲和獲取敏感或機密數據的計算機系統。

內部信息安全:內部信息安全可以看作是防止正在運行的程序隨意訪問系統資源的手段。大部分OS都允許普通程序直接操作電腦的CPU,所以出現了壹些問題,比如如何強行停止像OS壹樣可以處理事務的程序,運行同樣的特殊指令。畢竟在這種情況下,OS只是另壹個平等的程序。為通用OS生產的CPU通常在硬件層面壹定程度上踐行特殊指令保護的理念。通常情況下,特權級別較低的程序在想要運行壹些特殊指令時會被阻止,比如直接訪問硬盤等外部設備。因此,程序必須要求操作系統運行特殊指令來訪問磁盤。因此,操作系統有機會檢查該程序的身份,並相應地接受或拒絕其請求。

在不支持特殊指令架構的硬件上,另壹個也是唯壹的保護方法是,OS不直接使用CPU運行用戶的程序,而是通過模擬壹個CPU或者提供壹個p代碼系統(偽代碼運行機),讓程序像Java壹樣運行在虛擬機上。

內部安全機制在多用戶計算機中尤為重要:它允許每個系統用戶擁有自己的個人文件和目錄,其他用戶不能隨意訪問或刪除。因為任何程序都有可能繞過OS的監控,更有可能繞過側錄程序的監控,而具有強制力的內部安全機制在側錄啟動時也是非常重要的。

外部信息安全:通常,壹個操作系統會為其他網絡上的計算機或用戶提供(托管)各種服務。這些服務通常由端口或操作系統網絡地址後面的數字接入點提供。通常,此服務包括文件共享(NTFS)、打印共享、電子郵件、web服務和文件傳輸協議(FTP)。外部信息安全的最前沿是硬件設備,如防火墻。許多種類的軟件防火墻通常設置在操作系統內部。軟件防火墻可以設置為接受或拒絕操作系統上運行的服務與外部世界之間的連接。因此,任何人都可以安裝並運行壹些不安全的網絡服務,如Telnet或FTP,並設置壹種機制來阻止除壹些私有通道之外的所有其他連接,以防止不良連接。

用戶界面:今天的大多數操作系統都包括壹個圖形用戶界面。有幾種比較老的OS將圖形用戶界面與核心緊密結合,比如最早的Windows和Mac OS實現產品。這種方式可以提供更快的圖形響應能力,而且不需要切割模塊就很省力,但是會有很強的副作用,比如圖形系統崩潰會導致整個系統崩潰,比如死亡藍屏。許多現代OS已經模塊化,將圖形界面的子系統從核心中分離出來(已知Linux和Mac OS X最初就是這樣設計的,Windows的壹些擴展版本最終也采用了這種方法)。

許多操作系統允許用戶安裝或創建任何他們喜歡的圖形界面[6]。大多數Unix和Unix派生的系統(BSD、Linux和Minix)通常用GNOME或KDE桌面環境安裝X Window系統。然而,壹些操作系統沒有這樣靈活的圖形用戶界面,例如Windows。這種OS只能通過額外的程序來改變其圖形用戶界面,甚至根本只改變菜單風格或顏色配置等部分【出處請求】。

圖形用戶界面與時俱進。例如,Windows每次新版本上市都會改變其圖形用戶界面,Mac OS的GUI也將在Mac OS X上市時進行重大變革。

驅動程序:所謂設備驅動程序,是指壹種設計用來與硬件交互的計算機軟件。通常是設計良好的設備交互接口,利用與該硬件相連的計算機集排子系統或通信子系統,為該設備提供訂購和接收信息的功能;並最終向操作系統或應用程序提供消息。驅動程序是為特定硬件和特定OS設計的軟件,通常以操作系統核心模塊、應用軟件包或普通計算機程序的形式運行在OS內核下,以達到與硬件透明平滑交互的效果,並提供壹個硬件在處理異步時變硬件接口時所需的中斷處理程序。

驅動程序設計的主要目的是抽象操作。任何壹個硬件模塊,哪怕是同壹種設備,在硬件設計上都有很大的差異。廠商推出的較新模塊通常更可靠、更高效,控制方式也會有所不同。計算機及其操作系統往往無法預測現有設備和新設備的區別,因此無法知道它們的操作方法。為了解決這個問題,OS通常會主動制定各個設備的操作模式,而驅動程序的作用就是將那些OS制定的行為描述翻譯成設備能夠理解的自定義操作方式。

壹旦安裝了理論上合適的驅動程序,相應的新設備就可以無誤地運行。這個新的驅動可以讓這個設備完美的貼合在OS中,讓用戶意識不到這是OS原本沒有的功能。