跳至內容

裝置檔案系統

出自Taiwan Tongues 台語維基
於 2025年8月23日 (六) 09:21 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

裝置檔案佇類 Unix 系統內底是一个裝置驅動程式的介面,並且如常規檔案仝款出現佇檔案系統中。

佇咧微軟仔 MS-DOS、OS 鋪二和 Windows 等作業系統內底嘛有專門的裝置檔案。𪜶允准應用程式使用裝置驅動程式,通過標準輸入輸出系統呼叫佮趕動程式互動,對而且簡省足濟工的,嘛有紮來佮裝置特性、功能無關係的使用者級 I / O。

裝置檔案通常替周邊裝置提供簡單的介面,如印表機。伊嘛是會當儉取遮裝置遮的特定資源,如硬碟分割區。伊閣會當存取無連接著任何真實裝置的系統資源,如資料接受器佮亂數生成器。

佇類 Unix 作業系統中包含兩類裝置節點,分別為字元檔案佮塊檔案。𪜶的區別是作業系統佮硬體欲按怎共𪜶讀寫資料。𪜶就叫𪜶就叫裝置特定的檔案,佮之對應的是號名的管道,伊也無連接著任何的裝置,嘛毋是一个檔案。

MS-DOS 的裝置檔案借鑑矣 Unix 的特殊檔案的概念。MS-DOS 的早期版本並無支援檔案 kha-tá-lok-guh 層次,裝置檔案的檔名被設定做保留字以區分普通檔案,新檔案抑是新檔案 kha-tá-lok-guh 袂當使用遮的裝置檔案的檔名。

咧支援 chroot 行程獨立的 Unix 系統(比如講 Solaris Containers)中,彼每一个 chroot 環境常在規个狀況下攏需要一个獨立的 / dev , 𪜶的掛載點佇主機的檔案系統中各種所在顯示。通過限制裝置節點干焦會當囥入 / dev 內的 chroot 實例中,chroot 環境會當強制實行硬體隔離(比 Unix 的檔案系統權限愛閣嚴格的一種存取控制,會使禁止特定應用程式存號抑是號名硬體)。

MS-DOS 通過開放裝置檔案的形式保證了裝置包含性,應用程式試驗存取當咧被使用的裝置的時會加上無法度存取裝置節點。Unix 佮 Linux 佇閣控制頂懸採取真濟種裝置驅動程式的原理。

實現

本質上講,裝置節點對應該作業系統分配的資源。Unix 通過幾若節點結構當中的 _ 主裝置號 _ 和 _ 對裝置號 _ 來辨識遮的資源。佇各種作業系統佮系統平台頂,遮的數攏是予人唯一分配的。通常,主數用佇指定驅動程式,幾若擺數用佇指定驅動程式控制的某一特定裝置(趕動程式可能控制較濟裝置), 佇這个情形下,系統可能共次數做參數傳予振動的程式。

電腦就像對待普通檔案彼款,用標準系統呼叫存取裝置節點。根據硬體的介面類型佮作業系統處理輸入輸出的方式,裝置檔案會當分做兩類。

裝置

字元裝置

_ 字元裝置 _ 是講逐改佮系統傳輸一字元的裝置。遮的裝置節點通常替傳真、虛擬終端和序列埠頭數據機之類裝置提供流通信的服務,伊通常毋支援隨機存取資料。

字元裝置佇咧實現時,濟濟無用緊取記持的。系統直接對裝置讀冊/寫入去每一字元。

塊裝置

_ 塊裝置 _ 是講佮系統間用塊的方式行動資料的裝置。遮的裝置節點通常代表會當裝置,如硬碟、CD-ROM 佮記持體區域。

塊裝置通常支援隨機存取佮定址,而且使用緊取記憶體。作業系統為輸入輸出分配了緊取以儲存一塊資料。當程式向裝置傳送矣讀取抑是寫入資料的請求的時陣,系統共資料中的每一字元儲存佇適當的快取中。緊號添予滇起來,會採取適當的操作(共資料傳走), 若系統清空緊取。

偽裝置

佇類 Unix 作業系統當中,裝置節點並無一定愛對應物理裝置。無這種對應關係的裝置是 _ 偽裝置 _。作業系統運用𪜶提供的足濟種功能。部份定定咧使用的偽裝置包括:

` / dev / null `

接受並擲捒所有輸入;即不產生任何輸出。

` / dev / full `

永遠咧予人填滿狀態的裝置。

` / dev / loop `

Loop 裝置

` / dev / zero `

產生連紲的 NUL 字元的串流 ( 數值為零 )。

` / dev / random `

產生一个虛假隨機的任意長度字元串流。( Blocking )

` / dev / urandom `

產生一个虛假隨機的任意長度字元串流。( Non-Blocking )

建立節點

節點是由 _ mknod _ 系統呼叫建立的。佇咧命令列中,有仝名的程式來建立節點。rename 和 unlink 系統呼叫會當用佇咧徙動佮刪除節點,相應的命令是講 mv 和 rm。咧使用 cp 命令的時加上 `-R ` 抑是 `-a ` 參數,會當建立一个佮原裝置節點具有仝款屬性的節點。

號名約定

佇基於 Linux 的系統內底,裝置節點一般咧 ` / dev ` 落,通常使用如下的字條:

  • fb:frame 勻勻仔衝
  • fd:軟碟
  • hd:IDE 硬碟抑是光碟機
  • lp:印表機
  • par:並列埠頭
  • pt:偽終端
  • s:SCSI 裝置
  • scd:SCSI 音訊光碟機
  • sd:SCSI 硬碟
  • sg:SCSI 通用裝置
  • sr:SCSI 資料光碟機
  • st:SCSI 磁帶
  • tty:終其尾
  • ttyS:序列埠頭大部份裝置的字首名後壁佮隨一个數字,伊唯一指定某一裝置。硬碟機的字條名後壁跟綴一字母佮一个數字,字母用佇指明裝置,數字用佇指明分割區。所以,` / dev / sda 三 ` 指定矣硬碟上的一个分割區,` / dev / pts / 十四 ` 指定一个網路終對談。

一寡仔 Linux 發行版用 SCSI 層來定義非 IDE 硬碟的硬碟裝置,比如講 SATA 硬碟、USB 磁碟等,因此雖然一塊硬碟可能並毋是 SCSI 硬碟,但是猶會當通過 ` sd ` 裝置共存取。

參考資料