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, writeve 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, writeya ioctlcihaz 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.