美國(guó)Linux服務(wù)器系統(tǒng)的文件類型

2024-04-28    分類: 網(wǎng)站建設(shè)

美國(guó)Linux服務(wù)器系統(tǒng)的文件類型有多種區(qū)分,不同的類型分別對(duì)應(yīng)不同的功能,因此用戶們可能不太了解美國(guó)Linux服務(wù)器系統(tǒng)的文件類型,下面創(chuàng)新互聯(lián)小編就來介紹下美國(guó)Linux服務(wù)器系統(tǒng)主要的文件類型。

1、管道文件

管道分為匿名管道和命名管道,美國(guó)Linux服務(wù)器管道文件都是一端寫入、另一端讀取,屬于單方向數(shù)據(jù)傳輸,數(shù)據(jù)也都是直接在內(nèi)存中傳輸?shù)模艿朗沁M(jìn)程間通信的一種方式,例如父進(jìn)程寫,子進(jìn)程讀。

在shell中匿名管道就是一個(gè)管道符號(hào)|,例如ls | grep xxx,其中l(wèi)s對(duì)應(yīng)的進(jìn)程是這個(gè)獨(dú)立進(jìn)程組中的父進(jìn)程,grep對(duì)應(yīng)的進(jìn)程是子進(jìn)程,父進(jìn)程寫,子進(jìn)程讀。

在美國(guó)Linux服務(wù)器編程語(yǔ)言中,匿名管道是通過創(chuàng)建兩個(gè)文件句柄或文件描述符來實(shí)現(xiàn)的,一個(gè)文件句柄用于寫數(shù)據(jù),例如A寫入端,數(shù)據(jù)寫入A將自動(dòng)推入B中,另一個(gè)文件句柄用于讀數(shù)據(jù)。

對(duì)于命名管道,即有名稱的管道,命名管道將文件保留在美國(guó)Linux服務(wù)器文件系統(tǒng)中,它也稱為FIFO。雖然命名管道文件保留在文件系統(tǒng)中,但是這個(gè)文件只是使用命名管道的一個(gè)入口,在使用命名管道傳輸數(shù)據(jù)的時(shí)候,仍然是在內(nèi)存中進(jìn)行的,也就是說并不會(huì)因?yàn)楸A粼谖募到y(tǒng)上命名管道的效率就低了。

在shell中,可以使用mknod命令或mkfifo命令創(chuàng)建命名管道,在寫某些特殊需求的shell腳本時(shí),命名管道非常有用。

一般的管道都是單向通信的,無法實(shí)現(xiàn)雙向通信的功能,也就是只能一邊寫一邊讀,不能兩邊都能讀、寫。如果美國(guó)Linux服務(wù)器要實(shí)現(xiàn)雙向通信,可以創(chuàng)建兩根管道,或者使用更方便的套接字。

2、套接字Socket

套接字用來實(shí)現(xiàn)美國(guó)Linux服務(wù)器兩端通信,正如上面分析的可以實(shí)現(xiàn)雙向管道的進(jìn)程間通信功能。不僅如此,套接字還能通過網(wǎng)絡(luò)實(shí)現(xiàn)跨主機(jī)的進(jìn)程間通信功能。套接字需要成對(duì)才有意義,也就是分為兩端,每一端都有用于讀、寫的文件描述符,相當(dāng)于兩根雙向通信的管道。

套接字根據(jù)協(xié)議族的方式分為兩大類:網(wǎng)絡(luò)套接字和Unix Domain套接字。當(dāng)然從協(xié)議族往下,套接字可細(xì)分為很多種類型,例如INET套接字可以分為TCP套接字、UDP套接字、鏈路層套接字、Raw套接字等等。其中網(wǎng)絡(luò)套接字是美國(guó)Linux服務(wù)器網(wǎng)絡(luò)編程的基礎(chǔ)和核心。

3、Unix Domain套接字

對(duì)于單機(jī)的進(jìn)程間通信,使用Unix Domain套接字比Inet套接字更好,因?yàn)閁nix Domain套接字沒有網(wǎng)絡(luò)通信組件,也就是少了很多網(wǎng)絡(luò)功能,使得美國(guó)Linux服務(wù)器更加輕量。

Unix Domain套接字有兩個(gè)文件句柄,這兩個(gè)文件句柄都是同時(shí)可讀、可寫的句柄。進(jìn)程1向A寫入數(shù)據(jù),將自動(dòng)推送到B上,進(jìn)程2可從B上讀取從A寫入的數(shù)據(jù),同理進(jìn)程2向B中寫入數(shù)據(jù)將自動(dòng)推送到A上,進(jìn)程1可從A上讀取從B寫入的數(shù)據(jù)。

在美國(guó)Linux服務(wù)器編程語(yǔ)言中,創(chuàng)建Unix Domain Socket自然有對(duì)應(yīng)的函數(shù)輕松創(chuàng)建。對(duì)于bash shell,可以通過nc命令來創(chuàng)建,或者干脆使用兩個(gè)命名管道來實(shí)現(xiàn)對(duì)應(yīng)的功能。

4、網(wǎng)絡(luò)套接字

對(duì)于跨網(wǎng)絡(luò)的美國(guó)Linux服務(wù)器進(jìn)程間通信,需要使用網(wǎng)絡(luò)套接字。每個(gè)網(wǎng)絡(luò)套接字都由5部分組成,它們稱為套接字的5元組。格式如下:

{protocol, src_addr, src_port, dest_addr, dest_port}

即協(xié)議、源地址、源端口、目標(biāo)地址、目標(biāo)端口。

每端套接字在內(nèi)核空間都有兩個(gè)buffe,每一端都有recv buffer和send buffer。進(jìn)程1向自己的套接字的send buffer寫入數(shù)據(jù),將發(fā)送到對(duì)端的recv buffer中,然后對(duì)端的進(jìn)程2就可以從recv buffer中讀取數(shù)據(jù)。

但是在真正可以讀、寫網(wǎng)絡(luò)套接字之前,網(wǎng)路套接字還需要一些設(shè)置。服務(wù)端套接字創(chuàng)建socket函數(shù),創(chuàng)建后就會(huì)有一個(gè)文件句柄或文件描述符供讀、寫操作,還要綁定地址和監(jiān)聽端口,客戶端則只需要?jiǎng)?chuàng)建套接字后,直接使用connect函數(shù)向服務(wù)端套接字發(fā)起連接請(qǐng)求即可。

5、塊設(shè)備和字符設(shè)備

美國(guó)Linux服務(wù)器塊設(shè)備是硬件設(shè)備,通過隨機(jī)訪問固定大小的數(shù)據(jù)塊來區(qū)分。固定大小的chunk稱為塊block。最常見的塊設(shè)備是硬盤,但也存在許多其他塊設(shè)備,如軟盤驅(qū)動(dòng)器、藍(lán)光閱讀器和閃存。注意這些都是掛載文件系統(tǒng)的設(shè)備,美國(guó)Linux服務(wù)器文件系統(tǒng)就像是塊設(shè)備的通用語(yǔ)言。

字符設(shè)備通過連續(xù)的流數(shù)據(jù)訪問,一個(gè)字節(jié)接著一個(gè)字節(jié),典型的字符設(shè)備是終端和鍵盤。區(qū)分塊設(shè)備和字符設(shè)備最簡(jiǎn)單的方法是看數(shù)據(jù)訪問的方式。能隨機(jī)訪問獲取數(shù)據(jù)的是塊設(shè)備,必須按字節(jié)順序訪問的是字符設(shè)備。

以上就是美國(guó)Linux服務(wù)器系統(tǒng)主要的文件類型介紹。希望能幫助有需要的美國(guó)Linux服務(wù)器了解更多信息。

分享題目:美國(guó)Linux服務(wù)器系統(tǒng)的文件類型
文章路徑:http://www.muchs.cn/news11/325461.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃網(wǎng)頁(yè)設(shè)計(jì)公司、網(wǎng)站設(shè)計(jì)公司、企業(yè)網(wǎng)站制作企業(yè)建站、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司