一、操做系統介紹數據庫
操做系統(Operating System,簡稱OS)是管理計算機硬件與軟件資源的計算機程序。操做系統須要處理如管理與配置內存、決定系統資源供需的優先次序、控制輸入設備與輸出設備、操做網絡與管理文件系統等基本事務。操做系統也提供一個讓用戶與系統交互的操做界面。windows
組成:操做系統由內核、驅動程序、接口庫、外圍等部分組成。瀏覽器
特徵:併發、共享、虛擬、異步安全
體系結構:模塊組合結構、層次結構、微內核結構服務器
功能:處理器管理、存儲器管理、設備管理、文件管理、進程管理、內存管理、網絡通訊、安全機制網絡
基本類型:批處理系統、分時操做系統、實時操做系統架構
二、操做系統的功能併發
操做系統主要包括如下幾個方面的功能 :異步
(1)進程管理:其工做主要是進程調度,在單用戶單任務的狀況下,處理器僅爲一個用戶的一個任務所獨佔, 進程管理的工做十分簡單。但在多道程序或多用戶的狀況 下,組織多個做業或任務時,就要解決處理器的調度、 分配和回收等問題 。
(2)存儲管理分爲幾種功能:存儲分配、存儲共享、存儲保護 、存儲擴張。
(3)設備管理分有如下功能:設備分配、設備傳輸控制 、設備獨立性。
(4)文件管理:文件存儲空間的管理、目錄管理 、文件操做管理、文件保護。
(5)做業管理:做業管理是負責處理用戶提交的任何要求分佈式
三、操做系統分類
計算機的操做系統根據不一樣的用途分爲不一樣的種類,從功能角度分析,分別有實時系統、批處理系統、分時系統、網絡操做系統、分佈式軟件系統等。
(1)分時操做系統
分時系統能夠實現用戶的人機交互須要,多個用戶共同使用一個主機,很大程度上節約了資源成本。 分時系統具備多路性、獨立性、交互性、可靠性的優勢,可以將用戶-系統-終端任務實現。
分時操做系統是使一臺計算機採用時間片輪轉的方式同時爲幾個、幾十個甚至幾百個用戶服務的一種操做系統。
把計算機與許多終端用戶鏈接起來,分時操做系統將系統處理機時間與內存空間按必定的時間間隔,輪流地切換給各終端用戶的程序使用。
因爲時間間隔很短,每一個用戶的感受就像他獨佔計算機同樣。分時操做系統的特色是可有效增長資源的使用率。例如UNIX系統就採用剝奪式動態優先的CPU調度,有力地支持分時操做。
常見的分時操做系統:Windows,Unix,Linux
(2)實時操做系統
實時系統主要是指系統能夠快速的對外部命令進行響應,在對應的時間裏處理問題,協調系統工做。
實時操做系統(RTOS)是指當外界事件或數據產生時,可以接受並以足夠快的速度予以處理,其處理的結果又能在規定的時間以內來控制生產過程或對處理系統作出快速響應。
調度一切可利用的資源完成實時任務,並控制全部實時任務協調一致運行的操做系統。提供及時響應和高可靠性是其主要特色。
常見實時操做系統:VxWorks,FreeRTOS,RT-Thread,LiteOS,uCOS,QNX,WinCE,MQX
(3)批處理操做系統
批處理系統出現於20世紀60年代,批處理系統可以提升資源的利用率和系統的吞吐量。
批處理是指用戶將一批做業提交給操做系統後就再也不干預,由操做系統控制它們自動運行。這種採用批量處理做業技術的操做系統稱爲批處理操做系統。
批處理操做系統分爲單道批處理系統和多道批處理系統。批處理操做系統不具備交互性,它是爲了提升CPU的利用率而提出的一種操做系統
(4)網絡操做系統
網絡操做系統 是一種能代替操做系統的軟件程序,是網絡的心臟和靈魂,是向網絡計算機提供服務的特殊的操做系統。藉由網絡達到互相傳遞數據與各類消息,分爲服務器(Server)及客戶端(Client)。
而服務器的主要功能是管理服務器和網絡上的各類資源和網絡設備的共用,加以統合並控管流量,避免有癱瘓的可能性,而客戶端就是有着能接收服務器所傳遞的數據來運用的功能,好讓客戶端能夠清楚的搜索所需的資源。
(5)分佈式軟件系統
分佈式軟件系統(Distributed Software Systems),是支持分佈式處理的軟件系統,是在由通訊網絡互聯的多處理機體系結構上執行任務的系統。它包括分佈式操做系統、分佈式程序設計語言及其編譯(解釋)系統、分佈式文件系統和分佈式數據庫系統等。
四、操做系統體系結構
(1)簡單體系結構
計算機操做系統誕生初期,其體系結構就屬於簡單體系結構,因爲當時各式各樣影響因素的做用,如硬件性能、平臺、軟件水平等方面的限制,使得當時的計算機操做系統結構呈現出一種混亂且結構模糊的狀態,其操做系統的用戶應用程序和其內核程序魚龍混雜,甚至其運行的地址和空間都是一致的。這種操做系統實際上就是一系列過程和項目的簡單組合,使用的模塊方法也相對較爲粗糙,所以致使其結構宏觀上很是模糊。
(2)單體內核結構
隨着科學技術的不斷髮展和進步,硬件及其平臺的水平和性能獲得了很大程度的提升,其數量和種類也與日俱增,操做系統的複雜性也逐漸加深,其具有的功能以及性能愈來愈多,在此背景下,單體內核結構的操做系統誕生並獲得了應用,例如UNIX操做系統、windows NT/XP等。通常狀況下,單體內核結構的操做系統主要具有如下集中功能,分別是文件及內存管理、設備驅動、CPU調度以及網絡協議處理等。因爲內核的複雜性不斷加深,相關的開發設計人員爲了實現對其良好的控制,逐漸開始使用了一些較爲成熟的模塊化方法,並根據其不一樣的功能將其進行結構化,進而將其劃分爲諸多的模塊,例如文件及內存管理模塊、驅動模塊、CPU調度模塊及網絡協議處理等。這些模塊所使用的地址和空間與內核使用的徹底一致,其以函數調用的方式構建了用於通信的結構來實現各個模塊之間的通信。在使用模塊化的方法之後,只要其通信接口沒有發生明顯的變化,即便整個結構中的任何一個模塊發生變化也不會對結構中的其餘模塊形成任何的影響,爲其系統的維護和改良擴充提供了便利。雖然單體內核結構的計算機操做系統通過了模塊化的處理,可是其中的所有模塊仍然是在硬件之上、應用軟件之下的操做系統核心中運轉和工做。模塊與模塊之間活動的層次沒有任何的差異。
(3)層次式結構
層次式結構的計算機操做系統是爲了減小以往操做系統中各個模塊之間因爲聯繫緊密而帶來的各類問題而誕生的,其能夠作大程度的減小甚至是避免循環調用現象的發生,確保調用有序,爲操做系統設計目標的實現奠基了堅實的基礎。在層次式結構的計算機操做系統之中,其是由諸多系統分爲若干個層次的,其最底層是硬件技術,其餘每個層級均是創建在其下一層級之上的。在設計其計算機操做系統內核時,主要採用與抽象數據類型十分相似的設計方法進行的,在系統中的每個層級均包含着多種數據和操做,且每個的數據和操做是其餘層不可見的,在每一層當中都配備了用於其餘層使用的一操做接口,同時每一層發生的訪問行爲只能針對其下層進行,不能訪問其上層的數據和服務,嚴格遵照了調用規則,在很大程度上避免了其餘層次對某一層次的干擾和破壞。對於理想的層次式計算機系統體系結構來講,其之間的聯繫不只僅是單向依賴性的,同時各個層級之間也要具有相互的獨立性,且只能對低層次的模塊和功能進行調用,例如THE系統。可是這種理想的全序層次式計算機操做系統在現實中建成是較爲困難的,其沒法徹底避免模塊之間循環調用現象的出現,某個層級之間仍舊存在某種循環關係,這種層次式結構又被叫做半序層次式計算機操做系統,例如SUE操做系統。
(4)微內核結構
微內核計算機操做系統體系結構又能夠被叫做客戶機結構或者服務器結構,其實際上就是一種將系統中的代碼轉移到更高層次當中,儘量地減小操做系統中的東西,僅僅保留一個小體積的內核,通常狀況下其使用的主要方法就是經過用戶進程來實現操做系統所具有的各項功能,具體來講就是用戶進程能夠將相關的請求和要求發送到服務器當中,而後由服務器完成相關的操做之後在經過某種渠道反饋到用戶進程當中。在微內核結構中,操做系統的內核主要工做就是對客戶端和服務器之間的通訊進行處理,在系統中包括許多部分,每個部分均具有某一方面的功能,例如文件服務、進程服務、終端服務等,這樣的部分相對較小,相關的管理工做也較爲便利。這種機構的服務的運行都是以用戶進程的形式呈現的,既不在覈心中運行,也不直接地對硬件進行訪問,這樣一來即便服務器發生錯誤或受到破壞也不會對系統形成影響,僅僅只是會形成相對應服務器的崩潰。
(5)外核結構
外核結構的計算機操做系統本質上就是爲了得到更高的性能和靈活性而設計出來的,在系統中,操做系統接口處於硬件層,在內核中提出所有由以往操做系統帶來的抽象,並將重點和關鍵放在了更多硬件資源的複用方面。在操做系統的外核結構中,內核負責的主要工做僅僅爲簡單的申請操做以及釋放和複用硬件資源,其由以往操做系統提供的抽象所有在用戶空間當中運行。
通常狀況下,外核結構中的內核主要有三大方面的工做,分別是對資源的全部權進行跟蹤、爲操做系統的安全提供保護以及撤銷對資源的訪問行爲。在覈外,基本上全部的操做系統中的抽象都是以庫的形式呈現出來的,而用戶在訪問硬件資源時也是經過庫的調用來完成的。
五、安全加固技術
隨着計算機網絡與應用技術的不斷髮展,信息系統安全問題愈來愈引發人們的關注,信息系統一旦遭受破壞,用戶及單位將受到重大的損失,對信息系統進行有效的保護,是必須面對和解決的迫切課題,而操做系統安全在計算機系統總體安全中相當重要,增強操做系統安全加固和優化服務是實現信息系統安全的關鍵環節。當前,操做系統安全構成威脅的問題主要有系統漏洞、脆弱的登陸認證方式、訪問控制形同虛設、計算機病毒、特洛伊木馬、隱蔽通道、系統後門惡意程序和代碼感染等,增強操做系統安全加固工做是整個信息系統安全的基礎。
(1)安全加固原理
安全加固是指按照系統安全配置標準,結合用戶信息系統實際狀況,對信息系統涉及的終端主機、服務器、網絡設備、數據庫及應用中間件等軟件系統進行安全配置加固、漏洞修復和安全設備調優。經過安全加固,能夠合理增強信息系統安全性,提升其健壯性,增長攻擊入侵的難度,可使信息系統安全防範水平獲得大幅提高。
(2)安全加固方法
安全加固主要經過人工對系統進行漏洞掃描,針對掃描結果使用打補丁、強化帳號安全、修改安全配置、優化訪問控制策略、增長安全機制等方法加固系統以及堵塞系統漏洞、「後門」,完成加固工做。
(3)安全加固流程
安全加固主要包含如下幾個環節:
A、安全加固範圍肯定收集須要進行安全加固的信息系統所涉及的計算機設備、網絡、數據庫及應用中間件的設備狀況。
B、制訂安全加固方案根據信息系統的安全等級劃分和具體要求,利用網絡安全經驗和漏洞掃描技術和工具,對加固範圍內的計算機操做系統、網絡設備、數據庫系統及應用中間件系統進行安全評估,從內、外部對信息系統進行全面的評估,檢查這些系統目前安全情況,根據現狀制定相應的安全加固措施,造成安全加固方案。
C、安全加固方案實施根據制定的安全加固實施方案實施加固,完成後對加固後的系統進行全面的測試和檢查,確保加固對系統業務無影響,並填寫加固實施記錄。
D、安全加固報告輸出根據安全加固實施記錄,編寫最終的安全加固實施報告,對加固工做進行總結,對已加固的項目、加固效果、遺留問題進行彙總統計。
六、操做系統虛擬化
操做系統虛擬化做爲容器的核心技術支撐,獲得了研究者的普遍關注。最近幾年,不管是在以SOSP/OSDI爲表明的計算機系統領域頂級學術會議上,仍是以Google爲表明的重要互聯網企業中,都陸續出現了一批操做系統虛擬化的最新研究成果,而且成果數量呈現出逐年增長的整體趨勢。
操做系統虛擬化技術容許多個應用在共享同一主機操做系統 (Host OS) 內核的環境下隔離運行, 主機操做系統爲應用提供一個個隔離的運行環境, 即容器實例:操做系統虛擬化技術架構能夠分爲容器實例層、容器管理層和內核資源層。
操做系統虛擬化與傳統虛擬化最本質的不一樣是傳統虛擬化須要安裝客戶機操做系統 (Guest OS) 才能執行應用程序,而操做系統虛擬化經過共享的宿主機操做系統來取代 Guest OS。
七、操做系統實例
(1)嵌入式系統
嵌入式系統使用很是普遍的系統(如VxWorks、eCos、Symbian OS及Palm OS)以及某些功能縮減版本的Linux或者其餘操做系統。某些狀況下,OS指稱的是一個內置了固定應用軟件的巨大泛用程序。在許多最簡單的嵌入式系統中,所謂的OS就是指其上惟一的應用程序。
iOS是由蘋果公司開發的手持設備操做系統。蘋果公司於2007年1月9日的Macworld 大會上公佈這個系統,以Darwin爲基礎,屬於類Unix 的商業操做系統。最初是設計給 iPhone 使用的,後來陸續套用到 iPod touch 、iPad 以及 Apple TV 等產品上。iOS與蘋果的 Mac OS X 操做系統同樣,屬於類Unix的商業操做系統。本來這個系統名爲 iPhone OS,由於 iPad,iPhone,iPod touch 都使用 iPhone OS,因此 2010 年 WWDC 大會上宣佈更名爲 iOS(iOS 爲美國 Cisco 公司網絡設備操做系統註冊商標,蘋果更名已得到 Cisco 公司受權)。
Android是一種基於Linux的自由及開放源代碼的操做系統。主要使用於移動設備,如智能手機和平板電腦,由Google公司和開放手機聯盟領導及開發。還沒有有統一中文名稱,中國大陸地區較多人使用「安卓」。Android操做系統最初由Andy Rubin開發,主要支持手機。2005年8月由Google收購注資。2007年11月,Google與84家硬件製造商、軟件開發商及電信營運商組建開放手機聯盟共同研發改良Android系統。隨後Google以Apache開源許可證的受權方式,發佈了Android的源代碼。第一部Android智能手機發佈於2008年10月。Android逐漸擴展到平板電腦及其餘領域上,如電視、數碼相機、遊戲機、智能手錶等。2011年第一季度,Android在全球的市場份額首次超過塞班系統,躍居全球第一。 2013年的第四季度,Android平臺手機的全球市場份額已經達到78.1%。2013年09月24日谷歌開發的操做系統Android在迎來了5歲生日,全世界採用這款系統的設備數量已經達到10億臺。
(2)類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強中472臺使用Linux,6臺使用Windows,其他爲各種BSD等Unix。
(3)微軟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%的市場。
Windows系統也被用在低級和中階服務器上,而且支持網頁服務的數據庫服務等一些功能。最近微軟花費了很大研究與開發的經費用於使Windows擁有能運行企業的大型程序的能力。
Windows XP在2001年10月25日發佈,2004年8月24日發佈服務包2(Service Pack 2),2008年4月21日發佈最新的服務包3(Service Pack 3)。
Windows 7,是由微軟公司(Microsoft)開發的操做系統,內核版本號爲Windows NT 6.1。Windows 7可供家庭及商業工做環境:筆記本電腦 、多媒體中心等使用。和同爲NT6成員的Windows Vista一脈相承,Windows 7繼承了包括Aero風格等多項功能,而且在此基礎上增添了些許功能。
Windows 10是由美國微軟公司開發的應用於計算機和平板電腦的操做系統,於2015年7月29日發佈正式版。
Windows 10操做系統在易用性和安全性方面有了極大的提高,除了針對雲服務、智能移動設備、天然人機交互等新技術進行融合外,還對固態硬盤、生物識別、高分辨率屏幕等硬件進行了優化完善與支持。截至2020年3月6日,Windows 10正式版已更新至十一月更新10.0.18363版本。
微軟上一款操做系統Windows Vista(開發代碼爲Longhorn)於2007年1月30日發售。Windows Vista增長了許多功能,尤爲是系統的安全性和網上管理功能,而且其擁有接口華麗的Aero Glass。可是總體而言,其在全球市場上的口碑卻並非很好。其後繼者Windows 7則是於2009年10月22日發售, Windows 7改善了Windows Vista爲人詬病的性能問題,相較於Windows Vista,在一樣的硬件環境下,Windows 7的表現較Windows Vista爲好。而最新的Windows 10則是於2015年7月29日發售。
(4)MacOS X
macOS,前稱「MacOS X」或「OS X」,是一套運行於蘋果Macintosh系列計算機上的操做系統。Mac OS是首個在商用領域成功的圖形用戶界面系統。Macintosh開發成員包括比爾·阿特金森(Bill Atkinson)、傑夫·拉斯金(Jef Raskin)和安迪·赫茨菲爾德(Andy Hertzfeld)。從OS X 10.8開始在名字中去掉Mac,僅保留OS X和版本號。2016年6月13日在WWDC2016上,蘋果公司將OS X改名爲macOS,現行的最新的系統版本是10.15 catalina,即macOS Mojave。
(5)Chrome OS Google Chrome OS是一項Google的輕型的、基於網絡的計算機操做系統計劃,其基於Google的瀏覽器Google Chrome的Linux內核。