Kısa cevap, yalnızca fiziksel bir dosya sistemi desteğiniz /dev
varsa (ve modern bir Linux dağıtımı kullanıyorsanız, muhtemelen kullanmamanızdır).
Uzun cevap şöyle:
Bu, her şeyin bir dosya olduğu orijinal UNIX felsefesine dayanıyor. Bu felsefe, UNIX'i bu kadar çok yönlü yapan şeyin bir parçasıdır, çünkü uygulamanızda doğrudan fiziksel donanımla konuşmak için özel bir koda ihtiyaç duymadan kullanıcı alanından cihazlarla doğrudan etkileşim kurabilirsiniz.
Başlangıçta, /dev
cihaz dosyalarınızı koyduğunuz tanınmış bir ada sahip başka bir dizindi. Bazı UNIX sistemleri hala bu yaklaşımı benimsemektedir (OpenBSD'nin hala yaptığını düşünüyorum) ve genellikle sistemin böyle olup olmadığını söyleyebilirsiniz, çünkü sistemin aslında sahip olmadığı cihazlar için çok sayıda cihaz dosyası olacaktır (örneğin, her biri için dosyalar) olası her diskte olası bölüm). Bu, bellekte yer ve zamandan daha az disk alanı kullanma maliyetinden tasarruf sağlar, bu da genellikle çok kısıtlı ve çok hızlı olmayan erken sistemler için iyi bir takas olmuştur. Buna genel olarak statik bir elektrik denir /dev
.
Modern Linux sistemlerinde (ve FreeBSD'ye ve muhtemelen Solaris'in son sürümlerine de inanıyorum), /dev
çekirdek tarafından doldurulan geçici bir bellek içi dosya sistemidir (veya Systemd kullanıyorsanız udev, çünkü neredeyse her şeyi yapmak için çekirdeğe güvenmezler) . Bu, bazı bellek (genellikle birkaç MB'den daha az) ve çok küçük bir işlem yükü karşılığında biraz disk alanı tasarrufu sağlar. Ayrıca, başka bir avantajı da var, en büyüklerinden biri, sıcak takılı donanımı tespit etmenin daha kolay olmasıdır. Buna genel olarak bir dinamik olması denir /dev
.
Her iki durumda da, cihaz düğümlerine normal VFS katmanı üzerinden erişilir, bu da tanım gereği bir inode'a sahip olmaları gerektiği anlamına gelir (sanal bir tane olsa bile, olması gerektiği gibi stat()
çalışır. Pratik bir perspektiften, bu, dinamik kullanan sistemler üzerinde sıfır etkiye sahiptir, /dev
çünkü yalnızca düğümleri bellekte saklarlar veya gerektiğinde oluştururlar ve /dev
statik olduğu yerde sıfıra yakın etki gösterir , çünkü inotlar disk üzerinde sıfır boşluğa yakındır ve çoğu dosya sisteminin üst sınırı yoktur. veya ihtiyaç duyabileceğinden çok daha fazlasını sağlar.