Apakah Fail Khas?

Dalam sistem pengendalian komputer, fail khas adalah satu jenis fail yang mungkin disimpan dalam sistem fail. Fail khas kadang-kadang juga dipanggil fail peranti .

Tujuan fail khas adalah untuk mendedahkan peranti sebagai fail dalam sistem fail. Fail khas menyediakan antara muka sejagat untuk peranti perkakasan (dan peranti maya yang dibuat dan digunakan oleh kernel), kerana alat untuk fail I / O boleh digunakan untuk mengakses peranti tersebut.

Apabila data merah dari atau ditulis ke fail khas, operasi berlaku serta-merta, dan tidak tertakluk kepada peraturan sistem fail konvensional.

Di Linux, terdapat dua jenis fail khas: menyekat fail khas dan fail khas aksara .

Fail khas blok berfungsi sebagai antara muka langsung kepada peranti blok. Peranti blok adalah sebarang peranti yang melakukan data I / O dalam unit blok.

Contoh fail khas blok:

  • / dev / sd xn - partisyen dipasang pada peranti storan fizikal. Huruf x merujuk kepada peranti fizikal, dan nombor n merujuk kepada pemisahan pada peranti itu. Sebagai contoh, / dev / sda1 biasanya partition pertama pada peranti storan fizikal yang pertama.
  • / dev / gelung n - alat gelung. Ini adalah peranti khas yang membolehkan fail dalam sistem fail digunakan sebagai peranti blok. Fail ini mungkin mengandungi seluruh sistem failnya sendiri, dan boleh diakses seolah-olah ia adalah partition yang dipasang pada peranti storan fizikal. Sebagai contoh, fail imej cakera ISO boleh dipasang sebagai peranti gelung.

Sekiranya anda ingin tahu berapa besar blok pada sistem anda, jalankan " blockdev --getbsz device " sebagai root, misalnya:

 sudo blockdev --getbsz / dev / sda1 
 4096 

Dalam contoh ini, saiz blok ialah 4096 bait (4 kibibit).

Fail khas watak

Fail khas aksara serupa dengan peranti blok, tetapi data ditulis satu aksara (lapan bit, atau satu bait) pada satu masa.

Contoh aksara fail khas:

  • / dev / stdin (Input standard.)
  • / dev / stdout (Output standard.)
  • / dev / stderr (Kesalahan standard.)
  • / dev / rawak (PRNG yang mungkin melambatkan kembali nilai untuk memperoleh entropi tambahan.)
  • / dev / urandom (PRNG yang selalu mengembalikan nilai dengan serta-merta, tanpa mengira entropi yang diperlukan.)
  • / dev / null (Peranti null Membaca dari fail ini selalu mendapat null byte; menulis ke fail ini berjaya melakukan apa-apa.)

Jenis fail Linux

Dalam kernel Linux, jenis fail diisytiharkan dalam fail header sys / stat.h. Nama jenis, nama simbolik, dan bitmask untuk setiap jenis fail Linux disenaraikan di bawah.

Bagaimanakah saya dapat mengetahui jika sesuatu fail adalah istimewa?

Ujian untuk blok istimewa

Dalam bash, perintah " test -b file " mengembalikan status exit 0 jika file blok khas, atau 1 jika file adalah jenis lain atau tidak ada.

 test -b / dev / sda1; echo $? # cek untuk blok khas, echo keluar status ujian 
 0 
 test -b / dev / null; echo $? # aksara fail khas tidak menyekat khas 
 1 

Uji untuk ciri khas

Untuk menentukan sama ada fail bersifat khas, gunakan " test -c file ":

 test -c / dev / null; echo $? 
 0 

Menggunakan statistik

Anda juga boleh menyemak jenis fail dengan stat :

 stat / dev / sda1 
 Fail: / dev / sda1 Saiz: 0 Blok: 0 IO Blok: 4096 blok fail khas Peranti: 6h / 6d Inode: 7998 Pautan: 1 Jenis peranti: 8.1 Akses: (0660 / brw-rw ----) : (0 / root) Gid: (6 / disk) Akses: 2018-07-08 06:41: 25.540000000 -0400 Ubah Suai: 2018-07-08 06:41: 25.540000000 -0400 Perubahan: 2018-07-08 06: 41: 25.540000000 -0400 Lahir: - 
 stat / dev / rawak 
 Fail: / dev / random Saiz: 0 Blok: 0 IO Blok: 4096 aksara fail khas Peranti: 6h / 6d Inode: 6518 Pautan: 1 Jenis peranti: 1, 8 Akses: (0666 / crw-rw-rw-) Uid: (0 / root) Gid: (0 / root) Akses: 2018-07-08 06: 41: 19.676000000 -0400 Ubah Suai: 2018-07-08 06:41: 19.676000000 -0400 Perubahan: 2018-07-08 06:41 : 19.676000000 -0400 Lahir: - 

Inode, Istilah sistem pengendalian, Input standard (stdin), Output standard (stdout)