操作系統(tǒng)的作用是什么
操作系統(tǒng)的作用是什么
操作系統(tǒng)(英語:operating system,縮寫作 OS)是管理計算機硬件與軟件資源的計算機程序,同時也是計算機系統(tǒng)的內(nèi)核與基石。操作系統(tǒng)需要處理如管理與配置內(nèi)存、決定系統(tǒng)資源供需的優(yōu)先次序、控制輸入設備與輸出設備、操作網(wǎng)絡與管理文件系統(tǒng)等基本事務。操作系統(tǒng)也提供一個讓用戶與系統(tǒng)交互的操作界面。操作系統(tǒng)的類型非常多樣,不同機器安裝的操作系統(tǒng)可從簡單到復雜,可從移動電話的嵌入式系統(tǒng)到超級計算機的大型操作系統(tǒng)。許多操作系統(tǒng)制造者對它涵蓋范疇的定義也不盡一致,例如有些操作系統(tǒng)集成了圖形用戶界面,而有些僅使用命令行界面,而將圖形用戶界面視為一種非必要的應用程序。下面是小編收集整理的操作系統(tǒng)的作用是什么范文,歡迎借鑒參考。
操作系統(tǒng)的作用是什么(一)
Kali Linux
Kali Linux屬于開源項目,并由Offensive Security公司負責維護與資助——這是一家世界級信息安全培訓與滲透測試服務供應商。除了Kali Linux之外,Offensive Security公司旗下還擁有Exploit Database以及免費在線課程Metasploit Unleashed。
BackBox
BackBox Linux由多位技術人員協(xié)作開發(fā)而成,且擁有一套由支持成員構成的中等規(guī)模社區(qū)體系。它擁有大量接入點,而團隊中的每位成員都專注于一項特定任務。因此,該團隊中的各成員除了完成自己的本職工作,亦能夠以動態(tài)方式參與到其它任務當中。
3Arch Linux
Arch Linux是一套獨立開發(fā)而成的i686.x86-64通用型GNU/Linux發(fā)行版,其出色的靈活性足以適應任何角色定位。這套Linux發(fā)行版的開發(fā)取向強調(diào)簡單性、最小化以及代碼優(yōu)雅性。Arch在安裝方面屬于最小化基礎系統(tǒng),可由用戶根據(jù)自己的理想預期環(huán)境選取想要或者必需的功能進行配置及安裝。官方并不提供GUI配置功能,而且大部分系統(tǒng)配置操作都需要通過shell以及文本編輯器實現(xiàn)?;谄錆L動發(fā)布模式,Arch系統(tǒng)始終處于行業(yè)發(fā)展的領先位置,而且通常能夠提供大多數(shù)軟件的最新版本。
Samurai Web安全框架
Samurai Web測試框架是一套活動Linux環(huán)境,并通過預配置實現(xiàn)Web滲透測試環(huán)境的功能定位。其CD鏡像中包含多種專門面向測試與攻擊網(wǎng)站的最佳開源與免費工具。在該環(huán)境的開發(fā)工作當中,我們根據(jù)自己的安全實踐方式選取合適的工具方案。這些工具目前已經(jīng)被囊括于我們的這套四步式Web滲透測試流程當中。
Parrot安全取證操作系統(tǒng)
Parrot安全操作系統(tǒng)是一套面向安全場景的操作系統(tǒng),其設計目的在于實現(xiàn)滲透測試、計算機取證、逆向工程、黑客入侵、云滲透、隱私/匿名與密碼功能。這款操作系統(tǒng)以Debian為基礎,且由Frozenbox網(wǎng)絡公司負責開發(fā)。
Bugtraq
Bugtraq是一套專門面向各類計算機安全問題的電子郵件清單,其中包含大量與安全漏洞相關的討論內(nèi)容、供應商安全聲明、漏洞利用方法以及修復手段等等。這是一套規(guī)模龐大的郵件清單,而且?guī)缀跛行滦桶踩┒炊急荒依ㄓ谄渲小T撜搲瑫r提供一系列軟件與系統(tǒng)開發(fā)商的聯(lián)系方式,大家可以通過有針對性的方式向其提供新型安全漏洞的相關信息,從而幫助其快速加以解決。從企業(yè)運營的角度來看,它還能夠提供一套漏洞整體視角,幫助企業(yè)客戶擺脫耗費大量精力關注個別供應商公告的傳統(tǒng)作法,并通過論壇平臺搜尋來自同行企業(yè)的觀點與意見。
Nodezero
NodeZero是一套基于Ubuntu的Linux系統(tǒng),旨在作為完整系統(tǒng)以實現(xiàn)滲透測試工作。NodeZero當中包含約300款滲透測試相關工具,外加滲透測試過程中所必需的基礎服務功能集。另外,我們還準備了一套滲透工具庫,從而保證大家的系統(tǒng)能夠始終跟得上其更新進度。
Deft
DEFT(全稱為數(shù)字化證據(jù)與取證工具包)是一款專門負責實現(xiàn)計算機取證的Linux發(fā)行版,其主要特性在于通過向PC接入未受篡改或者損壞的設備(包括外接磁盤以及U盤等等)實現(xiàn)系統(tǒng)的實時運行,從而徹底擺脫引導流程。DEFT系統(tǒng)基于GNU Linux開發(fā)而成,其能夠?qū)崿F(xiàn)實時運行(通過DVDROM或者U盤),并以VMware或者Virtualbox之上的虛擬裝置形式進行安裝或者運行。DEFT采用LXDE作為桌面環(huán)境,同時利用WINE實現(xiàn)Linux系統(tǒng)之下的Winodws工具執(zhí)行能力。它還具備一套易于上手的啟動管理器,用于實現(xiàn)設備管理。
Pentoo
Pentoo是一套基于Gentoo的、以安全為主要側重點的livecd方案。
它基本上可以看作加入了大量定制化工具以及定制化內(nèi)核等要素的gentoo安裝版本。以下為其部分現(xiàn)有功能特性:
利用aufs補丁強化內(nèi)核
采用來自最新穩(wěn)定內(nèi)核版本的Backported Wifi堆棧
模塊載入機制支持ala slax
可將變更保存在U盤當中
XFCE4 wm
利用開發(fā)工具支持Cuda/OPENCL破解
若采取安裝運行方式則可實現(xiàn)系統(tǒng)更新
Cyborg Hawk
Cyborg Linux是目前世界上最先進的滲透測試發(fā)行版。作為當前最先進、最強大且最為美觀的Linux滲透測試發(fā)行版,Cyborg Hawk為白帽黑客及網(wǎng)絡安全專家提供大量值得收藏的終極工具組合。Cyborg能夠讓我們更為輕松地實現(xiàn)IT基礎設施安全保護。作為核心優(yōu)勢,其非常清楚測試人員需要怎樣一款強大而高效的系統(tǒng)方案,并憑借著出色的工具選項同與穩(wěn)定Linux環(huán)境的密切集成支持各類測試相關工作。
操作系統(tǒng)的作用是什么(二)
操作系統(tǒng)】(operating system,OS)是最基本的系統(tǒng)軟件,它是控制和管理計算機所有硬件和軟件資源的一組程序,是用戶和計算機之間的通信界面,用戶通過操作系統(tǒng)的使用和設置,使計算機更有效進行工作。操作系統(tǒng)具有進程管理、存儲器管理、設備管理、文件管理和任務管理五個功能。
Windows 7是微軟繼Windows XP、Vista之后的又一代操作系統(tǒng),它具有性能更高、啟動更快、兼容性更強等很多新特性和優(yōu)點,提高了屏幕觸控支持和手寫識別,支持虛擬硬盤,改善多內(nèi)核處理器,改善開機速度和內(nèi)核改進等。Windows 7的設計主要圍繞五個重點:針對筆記本式計算機的特有設計;基于應用服務的設計;用戶的個性化;視聽娛樂的優(yōu)化;用戶易用性的新引擎。
操作系統(tǒng)的作用是什么(三)
一、驅(qū)動的作用
任何一個計算機系統(tǒng)的運行都是系統(tǒng)中軟硬件協(xié)作的結果,沒有硬件的軟件是空中樓閣,而沒有軟件的硬件則只是一堆廢鐵。硬件是底層基礎,是所有軟件得以運行的平臺,代碼最終會落實為硬件上的組合邏輯與時序邏輯;軟件則實現(xiàn)了具體應用,它按照各種不同的業(yè)務需求而設計,滿足了用戶的需求。硬件較固定,軟件則很靈活,可以適應各種復雜多變的應用??梢哉f,計算機系統(tǒng)的軟硬件互相成就了對方。
但是,軟硬件之間同樣存在著悖論,那就是軟件和硬件不應該互相滲透到對方的領地。為了盡可能快速地完成設計,應用軟件工程師不想也不必關心硬件,而硬件工程師也難有足夠的閑暇和能力來顧及軟件。例如,應用軟件工程師在調(diào)用套接字發(fā)送和接收數(shù)據(jù)包的時候,他不必關心網(wǎng)卡上的中斷、寄存器、存儲空間、I/O端口、片選以及其他任何硬件詞匯;在使用printf()函數(shù)輸出信息的時候,他不用知道底層究竟是怎樣把相應的信息輸出到屏幕或串口。
也就是說,應用軟件工程師需要看到一個沒有硬件的純粹的軟件世界,硬件必須被透明地呈現(xiàn)給他們。誰來實現(xiàn)硬件對應用軟件工程師的隱形?這個艱巨的任務就落在了驅(qū)動工程師的頭上。
對設備驅(qū)動最通俗的解釋就是“驅(qū)使硬件設備行動” 。設備驅(qū)動與底層硬件直接打交道,按照硬件設備的具體工作方式讀寫設備寄存器,完成設備的輪詢、中斷處理、DMA通信,進行物理內(nèi)存向虛擬內(nèi)存的映射,最終使通信設備能夠收發(fā)數(shù)據(jù),使顯示設備能夠顯示文字和畫面,使存儲設備能夠記錄文件和數(shù)據(jù)。
由此可見,設備驅(qū)動充當了硬件和應用軟件之間的紐帶,它使得應用軟件只需要調(diào)用系統(tǒng)軟件的應用編程接口(API)就可讓硬件去完成要求的工作。在系統(tǒng)中沒有操作系統(tǒng)的情況下,工程師可以根據(jù)硬件設備的特點自行定義接口,如對串口定義SerialSend()、SerialRecv();對 LED 定義LightOn()、LightOff();以及對 Flash 定義FlashWrite()、FlashRead()等。而在有操作系統(tǒng)的情況下,設備驅(qū)動的架構則由相應的操作系統(tǒng)定義,驅(qū)動工程師必須按照相應的架構設計設備驅(qū)動,這樣,設備驅(qū)動才能良好地整合到操作系統(tǒng)的內(nèi)核中。
驅(qū)動程序溝通著硬件和應用軟件,而驅(qū)動工程師則溝通著硬件工程師和應用軟件工程師。隨著通信、電子行業(yè)的迅速發(fā)展,全世界每天都會有大量的新芯片被生產(chǎn),大量的新電路板被設計,因此,也會有大量設備驅(qū)動需要開發(fā)。這些設備驅(qū)動,或運行在簡單的單任務環(huán)境中,或運行在 VxWorks、Linux、Windows等多任務操作系統(tǒng)環(huán)境中,發(fā)揮著不可替代的作用。
二、有無操作系統(tǒng)的區(qū)別
1)無操作系統(tǒng)(即裸機)時的設備驅(qū)動
并不是任何一個計算機系統(tǒng)都一定要運行操作系統(tǒng),在許多情況下操作系統(tǒng)是不要的。對于功能比較單一、控制并不復雜的系統(tǒng),如公交車刷卡機、電冰箱、微波、簡單的手機和小靈通等,并不需要多任務調(diào)度、文件系統(tǒng)、內(nèi)存管理等復雜功能,單任務架構完全可以很好地支持它們的工作。一個無限循環(huán)中夾雜對設備中斷的檢測或者對設備的輪詢是這種系統(tǒng)中軟件的典型架構。裸機的實現(xiàn)就有點類似單片機(MCU)了,盡管單片機的寄存器沒有那么的多,如果會裸機驅(qū)動,我想,應該能勝任單片機的工作了,呵呵。
在這樣的系統(tǒng)中,雖然不存在操作系統(tǒng),但是設備驅(qū)動是必須存在的。一般情況下,對每一種設備驅(qū)動都會定義為一個軟件模塊,包含.h文件和.c文件,前者定義該設備驅(qū)動的數(shù)據(jù)結構并聲明外部函數(shù),后者進行設備驅(qū)動的具體實現(xiàn)。書中例舉了一個串口驅(qū)動serial.c serial.h,主要是配置GPIO,串口控制寄存器,以及串口的收發(fā)(讀寫)寄存器,而這幾個配置都是自定義函數(shù)實現(xiàn)的,比如串口的寫(發(fā))SerialSend 函數(shù)等。
其他模塊需要使用這個設備的時候,只需要包含設備驅(qū)動的頭文件 serial.h,然后調(diào)用其中的外部接口函數(shù)即可。如我們要從串口上發(fā)送字符串“Hello World”,使用函數(shù)SerialSend( " Hello World ",11)即可。
由此可見,在沒有操作系統(tǒng)的情況下,設備驅(qū)動的接口被直接提交給了應用軟件工程師, 應用軟件沒有跨越任何層次就直接訪問了設備驅(qū)動的接口。 設備驅(qū)動包含的接口函數(shù)也與硬件的功能直接吻合, 沒有任何附加功能。
有的工程師把單任務系統(tǒng)設計成設備驅(qū)動和具體的應用軟件模塊處于同一層次(即應用程序也在比如serial.c中實現(xiàn)),這顯然是不合理的,不符合軟件設計中高內(nèi)聚低耦合的要求。
另一種不合理的設計是直接在應用中操作硬件的寄存器(單獨一個main.c,所有功能都在一個函數(shù)中實現(xiàn),不采用其他任何接口/函數(shù)),而不單獨設計驅(qū)動模塊,這種設計意味著系統(tǒng)中不存在或未能充分利用可被重用的驅(qū)動代碼。
2)有操作系統(tǒng)時的設備驅(qū)動
無操作系統(tǒng)時的設備驅(qū)動中的設備驅(qū)動直接運行在硬件之上,不與任何操作系統(tǒng)關聯(lián)。當系統(tǒng)中包含操作系統(tǒng)后,設備驅(qū)動會變得怎樣?
首先,無操作系統(tǒng)時設備驅(qū)動的硬件操作工作仍然是必不可少的, 沒有這一部分,設備驅(qū)動不可能與硬件打交道。
其次,我們還需要將設備驅(qū)動融入內(nèi)核。為了實現(xiàn)這種融合,必須在所有的設備驅(qū)動中設計面向操作系統(tǒng)內(nèi)核的接口,這樣的接口由操作系統(tǒng)規(guī)定,對一類設備而言結構一致,獨立于具體的設備。
由此可見,當系統(tǒng)中存在操作系統(tǒng)的時候,設備驅(qū)動變成了連接硬件和內(nèi)核的橋梁。操作系統(tǒng)的存在勢必要求設備驅(qū)動附加更多的代碼和功能(以我看,主要是提供了很多結構),把單一的“驅(qū)使硬件設備行動”變成了操作系統(tǒng)內(nèi)與硬件交互的模塊,它對外呈現(xiàn)為操作系統(tǒng)的API,不再給應用軟件工程師直接提供接口。有了操作系統(tǒng)之后,設備驅(qū)動反而變得復雜,那要操作系統(tǒng)干什么?
首先,一個復雜的軟件系統(tǒng)需要處理多個并發(fā)的任務,沒有操作系統(tǒng),想完成多任務并發(fā)是很困難的。
其次,操作系統(tǒng)給我們提供內(nèi)存管理機制。一個典型的例子是,對于多數(shù)含 MMU的處理器而言,Windows、Linux 等操作系統(tǒng)可以讓每個進程都獨立地訪問 4GB的內(nèi)存空間。
上述優(yōu)點似乎并沒有體現(xiàn)在設備驅(qū)動身上,操作系統(tǒng)的存在給設備驅(qū)動究竟帶來了什么好處呢?
簡而言之,操作系統(tǒng)通過給設備驅(qū)動制造麻煩來達到給上層應用提供便利的目的。如果設備驅(qū)動都按照操作系統(tǒng)給出的獨立于設備的接口而設計,應用程序?qū)⒖墒褂媒y(tǒng)一的系統(tǒng)調(diào)用接口來訪問各種設備。對于類UNIX的VxWorks、Linux等操作系統(tǒng)而言,應用程序通過write()、read()等函數(shù)讀寫文件就可以訪問各種字符設備和塊設備,而不用管設備的具體類型和工作方式,是非常方便的。
不管有無操作系統(tǒng),不管是SerialSend,或者write,訪問設備都需要對寄存器進行讀寫操作,比如串口,在dev目錄下有個ttys0結點,我們可以通過ioctl函數(shù)對其進行讀寫操作,當然,write、read更為直接咯。而上層的應用可以對這些函數(shù)進行封裝,定義不同的接口,從而實現(xiàn)更多的功能。