Libusb, USB cihazlarıyla etkileşime giren bir kütüphanedir, lanetler metin terminalleriyle etkileşime girecek bir kütüphane, ALSA (daha doğrusu libasound bileşeni), audi cihazlarıyla etkileşime girecek bir kütüphanedir, vb. Çekirdek, donanım etkileşimlerini yönetir. Sağladığı cihaz dosyalarını uygulamaları aracılığıyla, donanım ile etkileşim açabilir read
, write
ve sistem çağrıları .ioctl
ioctl
bir sistem çağrısıdır: uygulamaların (kullanıcı düzeyi kod) çekirdek tarafından işlenen istekleri göndermesine izin verir.
Libusb, uygulamaların cihazda bildirilecek bir şey olduğunda yürütülen geri arama işlevlerini kaydetmesine izin verir. Kaputun altındaki bilgi akışına kabaca bir genel bakış:
- Veriyolundaki elektrik sinyali USB denetleyicisinde bir olayı tetikler.
- USB denetleyicisi ana işlemcide bir kesme sinyali verir.
- İşlemci, işletim sistemi çekirdeğinde kesme işleyicisini yürütür.
- Bir süreç engelleme şu anda bu kernel bildirimler
read
, write
ya ioctl
cihaz dosyası sistem çağrısı ve karşılığında bu sistem çağrısı neden olur.
- Kullanıcı arazi işleminde, sistem çağrısı döndüğünde kütüphane kodu yürütülür.
- Kütüphane kodu, uygulama programcısı tarafından kaydedilen geri arama işlevini yürütür.