国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Linux操作系統(tǒng)的網(wǎng)絡(luò)編程方法研究

2011-08-15 00:52殷曉輝
科技傳播 2011年13期
關(guān)鍵詞:源代碼進(jìn)程應(yīng)用程序

殷曉輝

中國聯(lián)通寧夏分公司,寧夏 銀川 750000

隨著Linux嵌入式系統(tǒng)技術(shù)的逐步發(fā)展,其應(yīng)用領(lǐng)域和市場份額繼續(xù)快速擴(kuò)大。其主要應(yīng)用領(lǐng)域是服務(wù)系統(tǒng)和嵌入式系統(tǒng)。Linux作為一種使用類的UNIX操作系統(tǒng),不僅可以在INTEL,AMD等系列個人計算機(jī)上運(yùn)行,也可以在許多工作站級的電腦上面運(yùn)行。

1 Linux操作系統(tǒng)簡介

嵌入式系統(tǒng)定義:

嵌入式系統(tǒng)是將先進(jìn)的計算機(jī)技術(shù),半導(dǎo)體技術(shù)和電子技術(shù)與各個行業(yè)的具體應(yīng)用相結(jié)合的產(chǎn)物。其定義為:以應(yīng)用為中心、以計算機(jī)技術(shù)為基礎(chǔ)、軟件硬件可剪裁、適應(yīng)應(yīng)用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴(yán)格要求的專用計算機(jī)系統(tǒng)。嵌入式Linux操作系統(tǒng)是指對Linux經(jīng)過裁剪小型化后,可固化在存儲器或單片機(jī)中,應(yīng)用于特定嵌入式場合的專用Linux操作系統(tǒng)。與其它操作系統(tǒng)相比,Linux的特點(diǎn)如下:

1)Linux操作系統(tǒng)能夠與UNIX系統(tǒng)相互兼容。Linux系統(tǒng)幾乎具有全部UNIX系統(tǒng)特征,而且能夠適合POSIX國際標(biāo)準(zhǔn)的系統(tǒng);

2)Linux系統(tǒng)有自由的軟件和開放的源代碼特征。Linux項目一開始就與GNU項目緊密聯(lián)系起來,它的許多重要組成部分直接來自GNU項目,只要遵從GPL條款,任何人就可以自由使用Linux源代碼;

3)Linux操作系統(tǒng)具有網(wǎng)絡(luò)性能高和安全性強(qiáng)的特點(diǎn)。Linux支持所有標(biāo)準(zhǔn)因特網(wǎng)協(xié)議和提供各種高性能服務(wù)。Linux操作系統(tǒng)包含了大量網(wǎng)絡(luò)管理、網(wǎng)絡(luò)服務(wù)等工具,利用它可以建立起高效的防火墻、路由器、工作站等功能;

4)Linux系統(tǒng)支持多樣化的硬件平臺。例如RISC、CISC、32位、64位等各種處理器,Linux操作系統(tǒng)都能支持它們運(yùn)行。

2 Linux操作系統(tǒng)的實(shí)時性不足

Linux系統(tǒng)調(diào)度CPU的時間是通過調(diào)度固定的時間片(time slices)來實(shí)現(xiàn)的。例如最開始進(jìn)程賦予一個高的優(yōu)先級,在某個進(jìn)程的時間片內(nèi),這個進(jìn)程如果放棄CPU,它的優(yōu)先級將不會變,或者變的更高。如果一個進(jìn)程使用完它的時間片,它的優(yōu)先級將會變低?;谝陨咸卣?,Linux操作系統(tǒng)的實(shí)時性不足主要體現(xiàn)在幾個方面:

1)Linux操作系統(tǒng)內(nèi)核是非搶占式的。比如當(dāng)普通進(jìn)程運(yùn)行在核心態(tài)時,實(shí)時進(jìn)程優(yōu)先級低于普通進(jìn)程;

2)Linux操作系統(tǒng)的平均響應(yīng)時間最少為數(shù)10ms,對響應(yīng)時間要求更嚴(yán)的實(shí)時系統(tǒng)無能為力;

3)由于實(shí)時調(diào)度策略中的RR和FIFO算法存在,無法嚴(yán)格保證具有高優(yōu)先級的實(shí)時進(jìn)程總是優(yōu)先于普通進(jìn)程執(zhí)行;

4)Linux操作系統(tǒng)內(nèi)核的進(jìn)程經(jīng)常關(guān)閉中斷。如果低優(yōu)先級的進(jìn)程關(guān)閉了中斷,即使有高優(yōu)先級實(shí)時進(jìn)程的中斷發(fā)生,導(dǎo)致系統(tǒng)最終也無法響應(yīng)。

3 Linux的網(wǎng)絡(luò)編程

3.1 Linux操作系統(tǒng)的網(wǎng)絡(luò)功能

Linux操作系統(tǒng)在通訊和網(wǎng)絡(luò)功能方面都優(yōu)于絕大多數(shù)操作系統(tǒng)。Linux的網(wǎng)絡(luò)功能主要有以下幾點(diǎn):

1)Linux操作系統(tǒng)支持TCP/IP協(xié)議。任何系統(tǒng)必須遵循的網(wǎng)絡(luò)協(xié)議是TCP/IP,TCP/IP對建網(wǎng)提出了統(tǒng)一的規(guī)范的要求。

2)Linux支持多樣的網(wǎng)絡(luò)數(shù)據(jù)庫。數(shù)據(jù)庫是信息資源的重要來源,Linux對數(shù)據(jù)庫支持也不例外。而且Linux支持的大型數(shù)據(jù)庫很多,如ORACEL、 SQLSERvER等。

3)Linux系統(tǒng)擁有豐富的網(wǎng)絡(luò)服務(wù)功能。Linux提供了豐富的網(wǎng)絡(luò)服務(wù),如電子郵件、文件傳輸、網(wǎng)絡(luò)新聞等。

3.2 Linux網(wǎng)絡(luò)不安全的因素

絕大多數(shù)計算機(jī)安全問題是由于管理不當(dāng)造成,而不是系統(tǒng)軟件本身的漏洞。因此嚴(yán)格的管理會極大程度地降低系統(tǒng)被非法入侵的風(fēng)險,下面是幾種常見的安全漏洞。

1)特權(quán)軟件的安全漏洞。特權(quán)軟件的一種攻擊的方法是通過IFS(Input Files Separator,輸入字段分隔符) shell 變量來實(shí)現(xiàn)的。IFS變量用于決定傳給shell 字符串的分隔符。例如,一個程序如果調(diào)用函數(shù)system()或popen()執(zhí)行一個shell 命令,那么該命令首先由shell 來分析,如果執(zhí)行的用戶可以控制IFS 環(huán)境變量,就可能會導(dǎo)致不可預(yù)測的結(jié)果。另一個攻擊方法是通過使用HOME環(huán)境變量;

2)特洛伊木馬程序。它與一般用戶想要執(zhí)行的程序從外觀上(如文件名)看很相似,例如編輯器、登錄程序或者游戲程序等。特洛伊木馬程序與一般用戶想要執(zhí)行的程序表面上很相似,執(zhí)行的卻是其它的操作,等到用戶發(fā)現(xiàn),卻為時已晚。例如刪除文件、竊取密碼和格式化磁盤等;

3)研究源代碼的漏洞。許多入侵者是通過研究一些程序的源代碼而成功的攻擊系統(tǒng)的;

4)網(wǎng)絡(luò)監(jiān)聽及數(shù)據(jù)截取。威脅計算機(jī)網(wǎng)絡(luò)安全的一個重要因素是計算機(jī)之間傳輸?shù)臄?shù)據(jù)可以很容易的被截取。其原因在于異種機(jī)的互聯(lián),敏感數(shù)據(jù)的傳輸往往不在系統(tǒng)的控制之下,有許多現(xiàn)成的軟件可以監(jiān)視網(wǎng)絡(luò)上傳輸?shù)臄?shù)據(jù)。

3.3 Linux網(wǎng)絡(luò)遵守的安全性準(zhǔn)則

在設(shè)計inetd 服務(wù)程序時,要特別注意buffer overflow(緩存區(qū)溢出)的問題,也就是以下這種狀況: char buffer_overflow[64];fscanf(stdin,“%s”,buffer_overflow);

幾乎所有的安全漏洞都是由此而來的,黑客高手可以透過buffer 塞爆,然后塞進(jìn)他自己的程序進(jìn)來,因此一定要杜絕這種使用方式。

3.4 Linux網(wǎng)絡(luò)編程的模式

在Linux網(wǎng)絡(luò)操作系統(tǒng)中,網(wǎng)絡(luò)數(shù)據(jù)傳輸需要經(jīng)歷4個層次:用戶進(jìn)程、socket、網(wǎng)絡(luò)協(xié)議、網(wǎng)絡(luò)設(shè)備。它的網(wǎng)絡(luò)編程是通過socket套接字接口來實(shí)現(xiàn)的,應(yīng)用程序通過使用socket統(tǒng)一接口收發(fā)網(wǎng)絡(luò)上的數(shù)據(jù),網(wǎng)絡(luò)的socket數(shù)據(jù)傳輸是一種特殊的I/O,socket好像通信線插口,只要通信雙方都有插口,兩個插口之間有通信線連接,就可以通信,這樣方便了聯(lián)網(wǎng)應(yīng)用程序的編程,一個套字節(jié)是與網(wǎng)絡(luò)的一個連接。應(yīng)用程序中使用套接字來調(diào)用套接口,套接字可認(rèn)為是指向套接口的指針,就像文件描述符是指向文件的指針一樣。一個Socket有3個特征:網(wǎng)域、類型、協(xié)議。網(wǎng)絡(luò)編程基本模式有以下3種:

1)客戶機(jī)/服務(wù)器模式??蛻魴C(jī)/服務(wù)器模式在操作過程中采取的是主動請示方式,首先服務(wù)器方要先啟動,并根據(jù)請示提供相應(yīng)服務(wù)。網(wǎng)絡(luò)編程的基本模式是client/serve:模式,該模式的建立基于以下兩點(diǎn):一、非對等作用;二、通信完全是異步的;

2)面向連接協(xié)議的字節(jié)流套接字編程。字節(jié)流套接字編程socket采用的是傳輸控制協(xié)議TCP。TCP提供面向連接的流傳輸,面向連接對可靠性的保證首先是它在進(jìn)行數(shù)據(jù)傳輸前,必須在信源端和信宿端建立互相的連接;

3)非連接協(xié)議的數(shù)據(jù)報套接字編程。數(shù)據(jù)報式socket采用的是用戶數(shù)據(jù)報協(xié)議UDP,提供無連接數(shù)據(jù)報傳輸,主要應(yīng)用在高可靠性、低延遲的局域網(wǎng)上。它的優(yōu)點(diǎn)是高效率低開銷,不用建立連接和撤銷連接,缺點(diǎn)是不可靠,報文丟失后需重發(fā)。

4 結(jié)論

Linux操作系統(tǒng)完全TCP/IP協(xié)議簇,其內(nèi)核結(jié)構(gòu)在網(wǎng)絡(luò)方面是非常完善的。Linux操作系統(tǒng)支持多種類型的套接字地址簇并將其抽象為統(tǒng)一的套接字接口socket,這樣方便了互聯(lián)網(wǎng)應(yīng)用程序的編程,而且也為網(wǎng)絡(luò)應(yīng)用程序之間的數(shù)據(jù)通信提供了便利。

[1]孫瓊.嵌入式Linux應(yīng)用程序開發(fā)詳解[M].北京:人民郵電出版社,2006,7.

[2]張斌,高波,等.Linux網(wǎng)絡(luò)編程[M].北京:清華大學(xué)出版社,2000,1.

猜你喜歡
源代碼進(jìn)程應(yīng)用程序
人工智能下復(fù)雜軟件源代碼缺陷精準(zhǔn)校正
基于TXL的源代碼插樁技術(shù)研究
債券市場對外開放的進(jìn)程與展望
刪除Win10中自帶的應(yīng)用程序
軟件源代碼非公知性司法鑒定方法探析
揭秘龍湖產(chǎn)品“源代碼”
社會進(jìn)程中的新聞學(xué)探尋
我國高等教育改革進(jìn)程與反思
Linux僵死進(jìn)程的產(chǎn)生與避免