ioctl
/dev
girişle el ele gitme eğilimi gösterir ; tipik kodunuz
fd=open("/dev/mydevice",O_RDRW);
ioctl(fd,.....);
Bu mükemmel standart Unix davranışıdır. Çekirdek sürücüsünün içine erişim denetimleri koyabilirsiniz (örn. Yalnızca root
bazı şeyler yapabilir veya daha ince taneli erişim için belirli bir yetenek gerektirebilir), bu da onu oldukça esnek ve güçlü hale getirir.
Tabii ki bu, cihazların blok / karakter okuma-yazma etkinliğini kullanmaktan çok daha fazlasını ortaya çıkarabileceği anlamına gelir; birçok şey ioctl
çağrılar yoluyla yapılabilir . O kadar kolay gelen oldukça kolay kabuk komut dosyalarından kullanmak, ama C
ya perl
ya python
ya da benzer.
sysfs
girişler sürücülerle etkileşimin başka bir yoludur. Genellikle her komut türünün farklı bir girişi olur, bu nedenle sürücüyü yazmak karmaşık olabilir, ancak kullanıcı alanı üzerinden erişimi çok kolaylaştırır; basit kabuk komut dosyaları birçok şeyi işleyebilir, ancak çok verimli olmayabilir
netlink
öncelikle ağ veri aktarımlarına odaklanmıştır (sanırım!), ancak diğer şeyler için kullanılabilir. Daha büyük hacimli veri aktarımı için gerçekten iyi ve ioctl
bazı durumlarda halef olması gerekiyor .
Tüm seçenekler iyidir; kullanım durumunuz sürücünüzden hangi arabirim türünün gösterileceğini daha iyi belirleyebilir.