Birçok cihazda, ana işlemler bilgisayardan çevre birimine bayt göndermek veya bilgisayardaki çevre biriminden bayt almaktır. Bu tür cihazlar borulara benzer ve karakter cihazları gibi iyi çalışırlar . Okuma ve yazmayan işlemler için (seri hattaki akış kontrolü gibi), cihaz, ioctl adı verilen geçici komutlar sunar .
Bazı aygıtlar normal dosyalara çok benzer: sınırlı sayıda bayttan oluşur ve belirli bir konumda yazdıklarınız daha sonra aynı konumdan okunabilir. Bu cihazlara blok cihaz denir .
Ağ arayüzleri daha karmaşık: okudukları ve yazdıkları şey bayt değil paket. Her zamanki arayüzü readve ile kullanmak hala mümkün writeolsa da, garip olurdu: muhtemelen her çağrı writebir paket gönderir ve her çağrı readbir paket alır (ve tampon paketin sığmayacak kadar küçükse) paket kaybolur).
Ağ arayüzleri sadece cihaz sağlayanlar olarak mevcut olabilir ioctl. Aslında, bazı unix varyantlarının yaptığı, fakat Linux'un olmadığı şeydir. Bu yaklaşımın bir avantajı var; örneğin, Linux'ta ağ arayüzleri udev'i kaldırabilirdi . Ancak avantajlar sınırlıdır, bu yüzden yapılmamıştır.
Ağla ilgili uygulamaların çoğu, bireysel ağ arayüzlerini önemsemez, daha yüksek bir seviyede çalışırlar. Örneğin, bir web tarayıcısı TCP bağlantıları yapmak ister ve bir web sunucusu TCP bağlantılarını dinlemek ister. Bu amaçla, faydalı olacak olan yüksek seviyeli ağ protokolleri için cihazlardır, örn.
{ echo $'GET http://www.google.com/ HTTP/1.0\r';
echo $'Host: www.google.com\r';
echo $'\r' >&0; cat; } <>/dev/tcp/www.google.com/80
Aslında ksh ve bash, TCP ve UDP müşterileri için böyle bir arayüz sağlar. Bununla birlikte, genel olarak, ağ uygulamaları dosyaya erişen uygulamalardan daha karmaşıktır. Veri alışverişlerinin çoğu readve benzeri çağrılarla gerçekleştirilirken write, bağlantının kurulması sadece bir dosya adından daha fazla bilgi gerektirir. Örneğin, TCP bağlantılarını dinlemek iki adım atar: biri sunucu dinlemeye başladığında yapılacak ve biri her müşteri bağlandığında yapılacaktır. Bu tür ilave adımlar, ağ oluşturma işleminin kendi API'sine sahip olmasının ana nedeni olan API dosyasına uygun değildir.
Genellikle /devLinux'ta girişleri olmayan (ancak bazı diğer unix değişkenlerinde bulunan) başka bir aygıt sınıfı video bağdaştırıcılarıdır. Prensip olarak, basit video adaptörleri , her pikselin rengini temsil eden bloklardan yapılmış blok aygıtları olabilen çerçeve oluşturucu aygıtlar olarak gösterilebilir. Hızlandırılmış video adaptörleri, uygulamaların komut gönderdiği karakter cihazları olarak gösterilebilir. Burada, cihaz arabiriminin dezavantajı yavaştır: görüntüleme uygulamasının (pratikte bir X sunucusu), herhangi bir şeyi görüntülerken çekirdek çağrıları yapması gerekir. Bunun yerine, X sunucusunun çoğunlukla doğrudan video bağdaştırıcısının belleğine yazdığı, çünkü daha hızlı.