❶ linux中普通文件和塊設備文件的區別
1,概述
一直都搞不明白普通文件跟塊文件的區別,總覺得一個普通的文件是存放在磁碟塊上,那它既屬於普通文件又屬於塊設備文件。剛好下午睡了一個大頭覺,比較清醒,集中學習了下普通文件和塊設備文件的區別和聯系。
本文從基本概念,定址空間,內核讀寫幾個方面介紹普通文件和塊設備文件的辯證統一。
2,基本概念
普通文件(Regular File)。指普通意義上的文件,如數據文件、可執行文件等。
設備文件(Device File)。類unix操作系統都是基於文件概念的,文件是由位元組序列而構成的信息載體。根據這一點,可以把IO設備當作設備文件這種所謂的特殊文件來處理;因此,與磁碟上的普通文件進行交互所用的同一系統調用可直接用於IO設備。根據設備驅動程序的基本特徵,設備文件可以分為兩種:塊和字元。這兩種硬體設備之間的差異並不容易劃分,但我們至少可以假定以下的差異:[1]
· 塊設備的數據可以隨機地被訪問,而且從人類用戶的觀點看,傳送任何數據塊所需的時間都是較少而且是大致相同的。塊設備的典型例子是硬碟、軟盤[1]。塊設備一般情況下是帶緩沖區的。
· 字元設備的數據或者不可以隨機訪問,或者可以被隨機訪問,但是訪問隨機數據所需的時間很大程度上依賴於數據在設備內的位置[1]。
3, 定址空間的區別
塊設備文件是塊設備的物理定址空間;普通文件是塊設備的虛擬定址空間。普通文件比塊設備文件多一層文件系統的地址轉換機構。
❷ 塊設備文件和字元設備文件的本質區別是什麼
設備文件分為Block
Device Driver和Character Device Drive兩類。 Device Drive又被稱為字元設備或裸設備raw
devices; Block Device Driver通常成為塊設備。而Block Device Driver是以固定大小長度來傳送轉移資料
;Character Device Driver是以不定長度的字元傳送資料 。且所連接的Devices也有所不同,Block
Device大致是可以隨機存取(Random Access)資料的設備,如硬碟機或光碟機;而Character
Device剛好相反,依循先後順序存取資料的設備,如印表機 、終端機等皆是。
/dev/dsk對應的為塊設備,文件系統的操作用到它,如mount。/dev/rdsk對應的為字元設備(裸設備,rdsk的r即為 raw),fsck
newfs等會涉及到。一般我們的操作系統和各種軟體都是以塊方式讀寫硬碟,這里的塊是邏輯塊,創建文件系統時可以選擇,windows里叫簇。可看 newfs or
mkfs的manual。oracle是比較常見的字元方式讀寫硬碟。
字元設備還是塊設備的定義屬於操作系統的設備訪問層,與實際物理設備的特性無必然聯系。設備訪問層下面是驅動程序,所以只要驅動程序提供的方式,都可以。也就是說驅動程序支持stream方式,那麼就可以用這種方式訪問,驅動程序如果還支持block方式,那麼你想用哪種方式訪問都可以,典型的比如硬碟式的裸設備,兩種都支持塊設備(block
device):是一種具有一定結構的隨機存取設備,對這種設備的讀寫是按塊進行的,他使用緩沖區來存放暫時的數據,待條件成熟後,從緩存一次性寫入設備或從設備中一次性讀出放入到緩沖區,如磁碟和文件系統等字元設備(Character
device):這是一個順序的數據流設備,對這種設備的讀寫是按字元進行的,而且這些字元是連續地形成一個數據流。他不具備緩沖區,所以對這種設備的讀寫是實時的,如終端、磁帶機等。
系統中能夠隨機(不需要按順序)訪問固定大小數據片(chunks)的設備被稱作塊設備,這些數據片就稱作塊。最常見的塊設備是硬碟,除此以外,還有軟盤驅動器、CD-ROM驅動器和快閃記憶體等等許多其他塊設備。注意,它們都是以安裝文件系統的方式使用的——這也是塊設備一般的訪問方式。
另一種基本的設備類型是字元設備。字元設備按照字元流的方式被有序訪問,像串口和鍵盤就都屬於字元設備。如果一個硬體設備是以字元流的方式被訪問的話,那就應該將它歸於字元設備;反過來,如果一個設備是隨機(無序的)訪問的,那麼它就屬於塊設備。
這兩種類型的設備的根本區別在於它們是否可以被隨機訪問——換句話說就是,能否在訪問設備時隨意地從一個位置跳轉到另一個位置。舉個例子,鍵盤這種設備提供的就是一個數據流,當你敲入「fox」這個字元串時,鍵盤驅動程序會按照和輸入完全相同的順序返回這個由三個字元組成的數據流。如果讓鍵盤驅動程序打亂順序來讀字元串,或讀取其他字元,都是沒有意義的。所以鍵盤就是一種典型的字元設備,它提供的就是用戶從鍵盤輸入的字元流。對鍵盤進行讀操作會得到一個字元流,首先是「f」,然後是「o」,最後是「x」,最終是文件的結束(EOF)。當沒人敲鍵盤時,字元流就是空的。硬碟設備的情況就不大一樣了。硬碟設備的驅動可能要求讀取磁碟上任意塊的內容,然後又轉去讀取別的塊的內容,而被讀取的塊在磁碟上位置不一定要連續,所以說硬碟可以被隨機訪問,而不是以流的方式被訪問,顯然它是一個塊設備。
內核管理塊設備要比管理字元設備細致得多,需要考慮的問題和完成的工作相比字元設備來說要復雜許多。這是因為字元設備僅僅需要控制一個位置—當前位置—而塊設備訪問的位置必須能夠在介質的不同區間前後移動。所以事實上內核不必提供一個專門的子系統來管理字元設備,但是對塊設備的管理卻必須要有一個專門的提供服務的子系統。不僅僅是因為塊設備的復雜性遠遠高於字元設備,更重要的原因是塊設備對執行性能的要求很高;對硬碟每多一分利用都會對整個系統的性能帶來提升,其效果要遠遠比鍵盤吞吐速度成倍的提高大得多。另外,我們將會看到,塊設備的復雜性會為這種優化留下很大的施展空間。
linux驅動程序中字元設備和塊設備的三點區別
1.字元設備只能以位元組為最小單位訪問,而塊設備以塊為單位訪問,例如512位元組,1024位元組等
2.塊設備可以隨機訪問,但是字元設備不可以
3.字元和塊沒有訪問量大小的限制,塊也可以以位元組為單位來訪問
❸ 什麼叫設備文件
1、 國務院制定《特種設備安全監察條例》的宗旨是什麼?
答:①加強特種設備的安全監察;
②防止和減少事故;
③保障人民群眾生命和財產安全;
④促進經濟發展。
2、什麼是特種設備?
答:是指涉及生命安全、危險性較大的設備和設施的總稱。
3、什麼叫安全監察?
答:指負責特種設備安全監督管理的政府機關為了實現安全的目的,而從事的決策、組織、管理、控制和監督檢查等活動的總和。
4、 什麼叫行政許可?
答:指行政機關根據公民、法人或其他組織的申請、經依法審查、准予其從事特定活動的行為。
5、 特種設備安全監察的七個環節是什麼?
答:①設計;
②製造;
③安裝;
④改造;
⑤維修;
⑥使用;
⑦檢驗檢測。
6、 特種設備安全監察的六個屬性是什麼?
答:①強制性;
②排他性;
③公正性;
④公開性;
⑤規范性;
⑥系統性。
7、 特種設備安全監察的五項原則是什麼?
答:①安全至上的原則;
②企業負責的原則;
③權責一致的原則;
④統一監管的原則;
⑤綜合治理的原則。
8、 特種設備安全監察的機制是什麼?
答:①部門依法監管;
②企業全面負責;
③政府督促協調;
④社會廣泛監督。
9、特種設備安全監察的三大制度是什麼?
答:①特種設備的政府責任制度;
②特種設備的市場准入制度;
③特種設備的監督檢查制度。
10、什麼叫行政行為?
答:指國家行政機關依法實施管理、直接或間接產生行政法律效果的行為。
11、行政行為的特徵是什麼?