地位
計算機有軟、硬件組成,如果沒有軟件,則計算機就等于一堆廢鐵。軟件可分為:
系統程序——管理計算機和應用程序(其中操作系統是其核心);應用程序——解決用戶問題的程序。
計算機系統各個層次之間存在着一種單向服務的關系,即每一個内層都向其外層提供了一組接口。這裡提到的“接口”與計算機硬件之間的硬接口在概念上雖然是相同的,但是它們并不像硬接口那樣通過硬件的電氣連接完成其功能。而是由指令、程序和數據結構等形成的一種接口,通常把這種接口稱為“軟接口”。通過軟接口,内層以事先約定好的方式為外層提供服務,外層則通過該接口使用内層提供的服務來完成本身的功能。
下面從内向外簡要說明各個層次的特性以及層次間接口的作用。
1.硬件系統
硬件系統指組成計算機基本結構的5個部分,即運算器、控制器、主存儲器以及輸入設備和輸出設備。運算器和控制器通常集成在一個芯片上,成為中央處理器(CPU)。CPU是執行程序時進行運算和控制的裝置,它直接控制着計算機各個部件的工作,是硬件系統的核心。
主存儲器(内存)是存放系統中運行的程序和數據的部件。
輸入輸出設備(外圍設備)是用于實現計算機系統與外界信息交換的各種硬件設備。硬件是操作系統存在的物質基礎。硬件層提供給操作系統的接口是機器的指令系統。操作系統的程序使用指令系統所提供的機器指令所具有的功能,實現對硬件的直接管理和控制。
2.操作系統
操作系統是靠近硬件的軟件層,其功能是直接控制和管理系統資源(包括軟件、硬件)。計算機系統的硬件在操作系統的管理和控制下,其功能得以充分發揮。從用戶觀點看,引入操作系統後,計算機系統成為一台硬件系統功能更強、服務質量更高、使用更方便的機器。操作系統與其他系統軟件一起向用戶提供了一個良好的工作環境,用戶無需了解許多與硬件和系統軟件的細節,就能方便的使用計算機。
操作系統在硬件系統上運行,它常駐内存内,并提供給上層兩種接口:操作接口和編程接口。操作接口由一系列操作命令組成,用戶通過操作接口可以方便地使用計算機。編程接口由一系列的系統調用組成各種程序可以使用這些系統調用讓操作系統為其服務,并通過操作系統來使用硬件和軟件資源。所以其他程序是在操作系統提供的功能基礎上運行的。
3.系統應用軟件
系統應用層由一系列的語言處理程序和系統服務程序構成。這些程序不是常駐内存的,而是存放在磁盤或其他外存儲設備上,僅當需要運行這些程序時,才把它們裝入内存。應用程序的主要功能是為用戶編制應用軟件、加工和調試程序以及處理數據提供必要服務。
系統應用層程序在操作系統的支持下工作,它們一般都使用機器指令以及操作系統提供的系統調用來編制程序。對上層它們提供了編制源程序的語句和語法或調試命令、系統維護命令等。
系統應用軟件層的程序有效地擴充了計算機系統的功能。它們與操作系統一起組成系統軟件整體,起到了簡化程序設計、擴大計算機處理能力、提高計算機使用效率、充分發揮各種資源功能的作用。
因此,可以把這些系統應用程序看作是操作系統功能的延伸,甚至可以把它們看作操作系統的一部分。但是它與操作系統的不同之處在于,其運行環境與普通用戶應用程序一樣,它們仍然要通過操作系統才能使用和控制系統資源。
4.應用軟件
計算機層次結構的最外層是應用程序。這些程序是計算機用戶為了使用計算機完成某一特定工作,或者解決某一具體問題而編制的程序。這些軟件主要是使用其下層的系統應用程序提供的服務來實現自己的特定功能。
作用
主要體現在兩方面:
1.屏蔽硬件物理特性和操作細節,為用戶使用計算機提供了便利
指令系統(成千上萬條機器指令,它們的執行由微程序的指令解釋系統實現的)。計算機問世初期,計算機工作者就是在裸機上通過手工操作方式進行工作。計算機硬件體系結構越來越複雜。
2.有效管理系統資源,提高系統資源使用效率
如何有效地管理、合理地分配系統資源,提高系統資源的使用效率是操作系統必須發揮的主要作用。資源利用率、系統吞吐量是兩個重要的指标。
計算機系統要同時供多個程序共同使用。操作解決資源共享問題!!如何分配、管理有限的資源是非常關鍵的問題!
操作系統定義:操作系統是計算機系統中最基本的系統軟件,它用于有效地管理系統資源,并為用戶使用計算機提供了便利的環境。
組成部分
操作系統理論研究者有時把操作系統分成四大部分:
驅動程序:最底層的、直接控制和監視各類硬件的部分,它們的職責是隐藏硬件的具體細節,并向其他部分提供一個抽象的、通用的接口。
内核:操作系統内核部分,通常運行在最高特權級,負責提供基礎性、結構性的功能。
接口庫:是一系列特殊的程序庫,它們職責在于把系統所提供的基本服務包裝成應用程序所能夠使用的編程接口(API),是最靠近應用程序的部分。例如,GNUC運行期庫就屬于此類,它把各種操作系統的内部編程接口包裝成ANSIC和POSIX編程接口的形式。
外圍:是指操作系統中除以上三類以外的所有其他部分,通常是用于提供特定高級服務的部件。例如,在微内核結構中,大部分系統服務,以及UNIX/Linux中各種守護進程都通常被劃歸此列。
并不是所有的操作系統都嚴格包括這四大部分。例如,在早期的微軟視窗操作系統中,各部分耦合程度很深,難以區分彼此。而在使用外核結構的操作系統中,則根本沒有驅動程序的概念。
操作系統中四大部分的不同布局,也就形成了幾種整體結構的分野。常見的結構包括:簡單結構、層結構、微内核結構、垂直結構、和虛拟機結構。
内核結構
内核是操作系統最内核最基礎的構件,因而,内核結構往往對操作系統的外部特性以及應用領域有着一定程度的影響。盡管随着理論和實踐的不斷演進,操作系統高層特性與内核結構之間的耦合有日趨縮小之勢,但習慣上,内核結構仍然是操作系統分類之常用标準。
内核的結構可以分為單内核、微内核、混合内核、外内核等。
單内核(Monolithic kernel),又稱為宏内核。單内核結構是操作系統中各内核部件雜然混居的形态,該結構于1960年代(亦有1950年代初之說,尚存争議),曆史最長,是操作系統内核與外圍分離時的最初形态。
微内核(Microkernel),又稱為微核心。微内核結構是1980年代産生出來的較新的内核結構,強調結構性部件與功能性部件的分離。20世紀末,基于微内核結構,理論界中又發展出了超微内核與外内核等多種結構。盡管自1980年代起,大部分理論研究都集中在以微内核為首的“新興”結構之上,然而,在應用領域之中,以單内核結構為基礎的操作系統卻一直占據着主導地位。
混合内核(Hybrid kernel)像微内核結構,隻不過它的組件更多的在核心态中運行,以獲得更快的執行速度。
外内核(Exokernel)的設計理念是盡可能的減少軟件的抽象化,這使得開發者可以專注于硬件的抽象化。外核心的設計極為簡化,它的目标是在于同時簡化傳統微内核的訊息傳遞機制,以及整塊性核心的軟件抽象層。
在衆多常用操作系統之中,除了QNX和基于Mach的UNIX等個别系統外,幾乎全部采用單内核結構,例如大部分的Unix、Linux,以及Windows(微軟聲稱Windows NT是基于改良的微内核架構的,盡管理論界對此存有異議)。微内核和超微内核結構主要用于研究性操作系統,還有一些嵌入式系統使用外核。
基于單内核的操作系統通常有着較長的曆史淵源。例如,絕大部分UNIX的家族史都可上溯至1960年代。該類操作系統多數有着相對古老的設計和實現(例如某些UNIX中存在着大量1970年代、1980年代的代碼)。另外,往往在性能方面略優于同一應用領域中采用其他内核結構的操作系統(但通常認為此種性能優勢不能完全歸功于單内核結構)。
主要功能
操作系統的主要功能是資源管理,程序控制和人機交互等。計算機系統的資源可分為設備資源和信息資源兩大類。設備資源指的是組成計算機的硬件設備,如中央處理器,主存儲器,磁盤存儲器,打印機,磁帶存儲器,顯示器,鍵盤輸入設備和鼠标等。信息資源指的是存放于計算機内的各種數據,如文件,程序庫,知識庫,系統軟件和應用軟件等。
操作系統位于底層硬件與用戶之間,是兩者溝通的橋梁。用戶可以通過操作系統的用戶界面,輸入命令。操作系統則對命令進行解釋,驅動硬件設備,實現用戶要求。以現代觀點而言,一個标準個人電腦的OS應該提供以下的功能:
進程管理(Processing management)
内存管理(Memory management)
文件系統(File system)
網絡通訊(Networking)
安全機制(Security)
用戶界面(User interface)
驅動程序(Device drivers)
資源管理
系統的設備資源和信息資源都是操作系統根據用戶需求按一定的策略來進行分配和調度的。操作系統的存儲管理就負責把内存單元分配給需要内存的程序以便讓它執行,在程序執行結束後将它占用的内存單元收回以便再使用。對于提供虛拟存儲的計算機系統,操作系統還要與硬件配合做好頁面調度工作,根據執行程序的要求分配頁面,在執行中将頁面調入和調出内存以及回收頁面等。
處理器管理或稱處理器調度,是操作系統資源管理功能的另一個重要内容。在一個允許多道程序同時執行的系統裡,操作系統會根據一定的策略将處理器交替地分配給系統内等待運行的程序。一道等待運行的程序隻有在獲得了處理器後才能運行。一道程序在運行中若遇到某個事件,例如啟動外部設備而暫時不能繼續運行下去,或一個外部事件的發生等等,操作系統就要來處理相應的事件,然後将處理器重新分配。
操作系統的設備管理功能主要是分配和回收外部設備以及控制外部設備按用戶程序的要求進行操作等。對于非存儲型外部設備,如打印機、顯示器等,它們可以直接作為一個設備分配給一個用戶程序,在使用完畢後回收以便給另一個需求的用戶使用。對于存儲型的外部設備,如磁盤、磁帶等,則是提供存儲空間給用戶,用來存放文件和數據。存儲性外部設備的管理與信息管理是密切結合的。
信息管理是操作系統的一個重要的功能,主要是向用戶提供一個文件系統。一般說,一個文件系統向用戶提供創建文件,撤銷文件,讀寫文件,打開和關閉文件等功能。有了文件系統後,用戶可按文件名存取數據而無需知道這些數據存放在哪裡。這種做法不僅便于用戶使用而且還有利于用戶共享公共數據。此外,由于文件建立時允許創建者規定使用權限,這就可以保證數據的安全性。
程序控制
一個用戶程序的執行自始至終是在操作系統控制下進行的。一個用戶将他要解決的問題用某一種程序設計語言編寫了一個程序後就将該程序連同對它執行的要求輸入到計算機内,操作系統就根據要求控制這個用戶程序的執行直到結束。操作系統控制用戶的執行主要有以下一些内容:調入相應的編譯程序,将用某種程序設計語言編寫的源程序編譯成計算機可執行的目标程序,分配内存儲等資源将程序調入内存并啟動,按用戶指定的要求處理執行中出現的各種事件以及與操作員聯系請示有關意外事件的處理等。
人機交互
操作系統的人機交互功能是決定計算機系統“友善性”的一個重要因素。人機交互功能主要靠可輸入輸出的外部設備和相應的軟件來完成。可供人機交互使用的設備主要有鍵盤顯示、鼠标、各種模式識别設備等。與這些設備相應的軟件就是操作系統提供人機交互功能的部分。人機交互部分的主要作用是控制有關設備的運行和理解并執行通過人機交互設備傳來的有關的各種命令和要求。
進程管理
不管是常駐程序或者應用程序,他們都以進程為标準執行單位。當年運用馮紐曼架構建造電腦時,每個中央處理器最多隻能同時執行一個進程。早期的OS(例如DOS)也不允許任何程序打破這個限制,且DOS同時隻有執行一個進程(雖然DOS自己宣稱他們擁有終止并等待駐留(TSR)能力,可以部分且艱難地解決這問題)。現代的操作系統,即使隻擁有一個CPU,也可以利用多進程(multitask)功能同時執行複數進程。進程管理指的是操作系統調整複數進程的功能。
由于大部分的電腦隻包含一顆中央處理器,在單内核(Core)的情況下多進程隻是簡單迅速地切換各進程,讓每個進程都能夠執行,在多内核或多處理器的情況下,所有進程通過許多協同技術在各處理器或内核上轉換。越多進程同時執行,每個進程能分配到的時間比率就越小。
很多OS在遇到此問題時會出現諸如音效斷續或鼠标跳格的情況(稱做崩潰(Thrashing),一種OS隻能不停執行自己的管理程序并耗盡系統資源的狀态,其他使用者或硬件的程序皆無法執行)。進程管理通常實現了分時的概念,大部分的OS可以利用指定不同的特權等級(priority),為每個進程改變所占的分時比例。特權越高的進程,執行優先級越高,單位時間内占的比例也越高。交互式OS也提供某種程度的回饋機制,讓直接與使用者交互的進程擁有較高的特權值。
内存管理
根據帕金森定律:“你給程序再多内存,程序也會想盡辦法耗光”,因此程序員通常希望系統給他無限量且無限快的存儲器。大部分的現代計算機存儲器架構都是層次結構式的,最快且數量最少的暫存器為首,然後是高速緩存、存儲器以及最慢的磁盤存儲設備。而操作系統的存儲器管理提供查找可用的記憶空間、配置與釋放記憶空間以及交換存儲器和低速存儲設備的内含物……等功能。此類又被稱做虛拟内存管理的功能大幅增加每個進程可獲得的記憶空間(通常是4GB,即使實際上RAM的數量遠少于這數目)。然而這也帶來了微幅降低運行效率的缺點,嚴重時甚至也會導緻進程崩潰。
存儲器管理的另一個重點活動就是借由CPU的幫助來管理虛拟位置。如果同時有許多進程存儲于記憶設備上,操作系統必須防止它們互相幹擾對方的存儲器内容(除非通過某些協定在可控制的範圍下操作,并限制可訪問的存儲器範圍)。分區存儲器空間可以達成目标。每個進程隻會看到整個存儲器空間(從0到存儲器空間的最大上限)被配置給它自己(當然,有些位置被操作系統保留而禁止訪問)。CPU事先存了幾個表以比對虛拟位置與實際存儲器位置,這種方法稱為标簽頁(paging)配置。
借由對每個進程産生分開獨立的位置空間,操作系統也可以輕易地一次釋放某進程所占據的所有存儲器。如果這個進程不釋放存儲器,操作系統可以退出進程并将存儲器自動釋放。
虛拟内存
虛拟内存是計算機系統内存管理的一種技術。它使得應用程序認為它擁有連續的可用的内存(一個連續完整的地址空間),而實際上,它通常是被分隔成多個物理内存碎片,還有部分暫時存儲在外部磁盤存儲器上,在需要時進行數據交換。
用戶接口
用戶接口包括作業一級接口和程序一級接口。作業一級接口為了便于用戶直接或間接地控制自己的作業而設置。它通常包括聯機用戶接口與脫機用戶接口。程序一級接口是為用戶程序在執行中訪問系統資源而設置的,通常由一組系統調用組成。
在早期的單用戶單任務操作系統(如DOS)中,每台計算機隻有一個用戶,每次運行一個程序,且次序不是很大,單個程序完全可以存放在實際内存中。這時虛拟内存并沒有太大的用處。但随着程序占用存儲器容量的增長和多用戶多任務操作系統的出現,在程序設計時,在程序所需要的存儲量與計算機系統實際配備的主存儲器的容量之間往往存在着矛盾。
例如,在某些低檔的計算機中,物理内存的容量較小,而某些程序卻需要很大的内存才能運行;而在多用戶多任務系統中,多個用戶或多個任務更新全部主存,要求同時執行獨斷程序。這些同時運行的程序到底占用實際内存中的哪一部分,在編寫程序時是無法确定的,必須等到程序運行時才動态分配。
用戶界面
用戶界面(User Interface,簡稱UI,亦稱使用者界面)是系統和用戶之間進行交互和信息交換的媒介,它實現信息的内部形式與人類可以接受形式之間的轉換。
用戶界面是介于用戶與硬件而設計彼此之間交互溝通相關軟件,目的在使得用戶能夠方便有效率地去操作硬件以達成雙向之交互,完成所希望借助硬件完成之工作,用戶界面定義廣泛,包含了人機交互與圖形用戶接口,凡參與人類與機械的信息交流的領域都存在着用戶界面。用戶和系統之間一般用面向問題的受限自然語言進行交互。目前有系統開始利用多媒體技術開發新一代的用戶界面。
Android
Android是一個真正意義上的開放性移動設備綜合平台。它包括操作系統、用戶界面和應用程序-移動電話工作所需的全部軟件,而且不存在任何以往阻礙移動産業創新的專有權障礙。谷歌與開放手機聯盟合作開發了Android,這個聯盟由包括中國移動、摩托羅拉、高通、宏達和T-Mobile在内的30多家技術和無線應用的領軍企業組成。通過與運營商、設備制造商、開發商和其他有關各方結成深層次的合作夥伴關系,我們希望借助建立标準化、開放式的移動電話軟件平台,在移動産業内形成一個開放式的生态系統。我們認為此舉必将推進更好、更快的創新,為移動用戶提供不可預知的應用和服務。
使用Android系統的Google手機:HTCG1
Android作為谷歌企業戰略的重要組成部分,将進一步推進"随時随地為每個人提供信息"這一企業目标的實現。我們發現,全球為數衆多的移動電話用戶從未使用過任何基于Android的電話。谷歌的目标是讓(移動通訊)不依賴于設備甚至平台。出于這個目的,Android将補充,而不會替代谷歌長期以來奉行的移動發展戰略:通過與全球各地的手機制造商和移動運營商結成合作夥伴,開發既有用又有吸引力的移動服務,并推廣這些産品。
開放手機聯盟的成立和Android的推出是對現狀的重大改變,在帶來初步效益之前,還需要不小的耐心和高昂的投入。但是,我們認為全球移動用戶從中能獲得的潛在利益是值得付出這些努力的。如果你也是一個開發者,并對我們的想法感興趣,就請再給我們一星期的時間,屆時谷歌便能提供SDK了。
如果你是一名移動用戶,隻需再等一段時間,我們的一些合作夥伴計劃在2008年下半年推出基于Android平台的電話産品。如果你已經擁有一部你了解并喜愛的電話,請登錄mobile.google.com,确保你已經安裝谷歌手機地圖、Gmail以及其他一些專為你的手機開發的精彩應用。谷歌将繼續努力,讓這些服務變得更好,同時也将添加更有吸引力的特性、應用和服務。
HTCG1操作界面Android是Google開發的基于Linux平台的開源手機操作系統。它包括操作系統、用戶界面和應用程序——移動電話工作所需的全部軟件,而且不存在任何以往阻礙移動産業創新的專有權障礙。
谷歌與開放手機聯盟合作開發了Android,這個聯盟由包括中國移動、摩托羅拉、高通、宏達和T-Mobile在内的30多家技術和無線應用的領軍企業組成。通過與運營商、設備制造商、開發商和其他有關各方結成深層次的合作夥伴關系,我們希望借助建立标準化、開放式的移動電話軟件平台,在移動産業内形成一個開放式的生态系統。我們認為此舉必将推進更好、更快的創新,為移動用戶提供不可預知的應用和服務。
國内Android本地化做的較好的操作系統主要是點心操作系統,點心操作系統——Tapas是基于Android平台、針對中國用戶使用習慣打造的互聯網智能手機操作系統,在底層技術架構優化的基礎上,為用戶提供流暢的操作體驗;同時根據本土化需求,提供貼心的功能設計及豐富的移動互聯網應用。
它由前百度員工張磊開發,在創新工場創辦一周年之際正式亮相。Tapas為用戶提供了大量的應用程序和豐富多彩的應用,還有動态的照片管理器、天氣預報、音樂播放器功能。此外,點心還推出“均衡雲計算”理念,整合網絡環境、終端設備等負責狀況,智能分配手機端及雲端計算量、管理流量分配,為用戶提供安全貼心的雲計算服務。點心操作系統由北京風靈創景科技有限公司開發。該公司是李開複博士旗下的創新工場投資孵化的第一家公司。