Özel Dosya Nedir?

Bir bilgisayar işletim sisteminde, özel bir dosya, bir dosya sisteminde saklanabilen bir dosya türüdür. Özel bir dosyaya bazen bir cihaz dosyası da denir.

Özel bir dosyanın amacı, cihazı dosya sisteminde bir dosya olarak ortaya çıkarmaktır. Özel bir dosya donanım aygıtları (ve çekirdek tarafından oluşturulan ve kullanılan sanal aygıtlar) için evrensel bir arabirim sağlar, çünkü dosya G / Ç için araçlar aygıta erişmek için kullanılabilir.

Veriler kırmızı olduğunda veya özel bir dosyaya yazıldığında, işlem hemen gerçekleşir ve geleneksel dosya sistemi kurallarına tabi değildir.

Linux'ta iki tür özel dosya vardır: özel dosyaları ve karakter özel dosyalarını engelleyin .

Bir blok özel dosyası, bir blok cihaza doğrudan bir arayüz olarak işlev görür. Bir blok aygıtı, blok olarak G / Ç verileri gerçekleştiren herhangi bir aygıttır.

Blok özel dosya örnekleri:

  • / dev / sd xn - fiziksel depolama aygıtlarının bölümleri monte edilmiştir. X harfi fiziksel bir cihaza karşılık gelir ve n sayısı o cihazdaki bir bölüme karşılık gelir. Örneğin, / dev / sda1 tipik olarak birinci fiziksel depolama cihazındaki ilk bölümdür.
  • / dev / loop n - loop cihazları. Bunlar, dosya sistemindeki bir dosyanın blok cihaz olarak kullanılmasına izin veren özel cihazlardır. Dosya kendine ait bir dosya sistemi içerebilir ve fiziksel bir depolama aygıtında monte edilmiş bir bölümmiş gibi erişilebilir. Örneğin, bir ISO disk görüntü dosyası bir döngü cihazı olarak monte edilebilir.

Bir bloğun sisteminizde ne kadar büyük olduğunu bilmek istiyorsanız, " blockdev --getbsz device " komutunu root olarak çalıştırın:

 sudo blockdev - getbsz / dev / sda1 
 4096 

Bu örnekte, blok boyutu 4096 bayttır (4 kibibit).

Karakter özel dosyaları

Karakter özel bir dosya bir blok aygıta benzer, ancak veriler bir kerede bir karakter (sekiz bit veya bir bayt) ile yazılır.

Özel karakter dosyalarına örnekler:

  • / dev / stdin (Standart giriş)
  • / dev / stdout (Standart çıktı.)
  • / dev / stderr (Standart hata.)
  • / dev / random (PRNG, ek entropi elde etmek için değer döndürmeyi geciktirebilecek)
  • / dev / urandom (Gerekli entropi ne olursa olsun, hemen her zaman bir değer döndüren PRNG)
  • / dev / null (Boş aygıt. Bu dosyadan okumak her zaman boş bayt alır; bu dosyaya yazmak hiçbir şey yapmaz.)

Linux dosya tipleri

Linux çekirdeğinde, dosya türleri sys / stat.h başlık dosyasında bildirilmiştir . Her Linux dosya tipi için tip ismi, sembolik isim ve bit maskesi aşağıda listelenmiştir.

Bir dosyanın özel olup olmadığını nasıl anlarım?

Blok özel testi

Bash'da, " test -b dosyası " komutu, dosya özelse, 0, başka bir tür ise veya yoksa 1 olan bir çıkış durumu döndürür.

 test -b / dev / sda1; Eko mu? # Özel bloğu kontrol et, testin yankı çıkış durumunu kontrol et 
 0 
 test -b / dev / null; Eko mu? # karakter özel dosyalar özel blok değildir 
 1 

Özel karakter testi

Bir dosyanın özel karakter olup olmadığını belirlemek için " test -c file " kullanın:

 test -c / dev / null; Eko mu? 
 0 

Stat kullanarak

Bir dosyanın türünü stat ile de kontrol edebilirsiniz:

 stat / dev / sda1 
 Dosya: / dev / sda1 Boyut: 0 Bloklar: 0 IO Blok: 4096 blok özel dosya Cihaz: 6h / 6d Inode: 7998 Bağlantılar: 1 Cihaz tipi: 8, 1 Erişim: (0660 / brw-rw ----) Uid : (0 / root) Gid: (6 / disk) Erişim: 2018-07-08 06: 41: 25.540000000 -0400 Değiştirme: 2018-07-08 06: 41: 25.540000000 -0400 Değiştirme: 2018-07-08 06: 41: 25.540000000 -0400 Doğum: - 
 stat / dev / random 
 Dosya: / dev / random Boyut: 0 Bloklar: 0 IO Blok: 4096 karakter özel dosya Cihaz: 6h / 6d Inode: 6518 Bağlantılar: 1 Cihaz tipi: 1, 8 Erişim: (0666 / crw-rw-rw-) Uid: (0 / root) Gid: (0 / root) Erişim: 2018-07-08 06: 41: 19.676000000 -0400 Değiştirme: 2018-07-08 06: 41: 19.676000000 -0400 Değiştirme: 2018-07-08 06:41 : 19.676000000 -0400 Doğum: - 

Inode, İşletim sistemi terimleri, Standart giriş (stdin), Standart çıkış (stdout)