中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

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

2023-12-29    分類: 網(wǎng)站建設

美國Linux服務器的系統(tǒng)文件類型有很多種,有部分美國Linux服務器用戶可能都不太了解這些文件類型,所以本文創(chuàng)新互聯(lián)就講解下其中幾個美國Linux服務器系統(tǒng)文件類型。

1、管道文件

管道分為匿名管道和命名管道。管道都是一端寫入、另一端讀取,屬于單方向數(shù)據(jù)傳輸,數(shù)據(jù)也都是直接在內存中傳輸?shù)?,管道是進程間通信的一種方式,例如父進程寫,子進程讀。

在shell中匿名管道就是一個管道符號“|”,例如ls | grep xxx,其中l(wèi)s對應的進程是這個獨立進程組中的父進程,grep對應的進程是子進程,父進程寫子進程讀。

在編程語言中,匿名管道是通過創(chuàng)建兩個文件句柄或文件描述符來實現(xiàn)的,一個文件句柄用于寫數(shù)據(jù),例如A寫入端,數(shù)據(jù)寫入A將自動推入B中,另一個文件句柄用于讀數(shù)據(jù)。

對于命名管道,即有名稱的管道,命名管道將文件保留在文件系統(tǒng)中,它也稱為FIFO。雖然命名管道文件保留在文件系統(tǒng)中,但是這個文件只是使用命名管道的一個入口,在使用命名管道傳輸數(shù)據(jù)的時候,仍然是在內存中進行的,也就是說并不會因為保留在文件系統(tǒng)上命名管道的效率就低了。

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

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

2、套接字(Socket)

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

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

3、Unix Domain套接字

對于單機的進程間通信,使用Unix Domain套接字比Inet套接字更好,因為Unix Domain套接字沒有網(wǎng)絡通信組件,也就是少了很多網(wǎng)絡功能,更加輕量。

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

在編程語言中,創(chuàng)建Unix Domain Socket自然有對應的函數(shù)輕松創(chuàng)建。對于bash shell,可以通過nc命令來創(chuàng)建,或者干脆使用兩個命名管道來實現(xiàn)對應的功能。

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

對于跨網(wǎng)絡的進程間通信,需要使用網(wǎng)絡套接字。每個網(wǎng)絡套接字都由5部分組成,它們稱為套接字的5元組。格式如下:

{protocol, src_addr, src_port, dest_addr, dest_port}

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

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

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

5、塊設備和字符設備

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

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

以上就是部分美國Linux服務器系統(tǒng)的文件類型介紹。關注創(chuàng)新互聯(lián),了解更多IDC資訊!

網(wǎng)頁標題:美國Linux服務器的系統(tǒng)文件類型
分享URL:http://m.rwnh.cn/news4/310904.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供App設計、小程序開發(fā)、微信公眾號軟件開發(fā)、網(wǎng)站排名網(wǎng)站導航

廣告

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

成都app開發(fā)公司
达州市| 温宿县| 彰化市| 施甸县| 资溪县| 永靖县| 上饶县| 来宾市| 黄冈市| 保康县| 永丰县| 千阳县| 射洪县| 丰宁| 攀枝花市| 郸城县| 阿克苏市| 桃江县| 无为县| 克山县| 黄陵县| 文安县| 柳林县| 西昌市| 安宁市| 孝义市| 浪卡子县| 泽州县| 云龙县| 内丘县| 西乌珠穆沁旗| 阿拉尔市| 天柱县| 神池县| 武义县| 乾安县| 济源市| 新化县| 灵璧县| 炎陵县| 边坝县|