Je suis curieux de savoir comment fonctionnent les pilotes en général. Je comprends les concepts de base et aussi comment fonctionne un seul conducteur. Où je suis confus est comment ils fonctionnent quand plusieurs conducteurs sont impliqués.Fonctionnement des pilotes (PCIe et USB, par exemple)
Laissez-moi vous expliquer ma question par un exemple:
Supposons que j'ai un PCIe et une interface USB dans HW. L'interface principale de l'hôte (où réside le pilote, le système d'exploitation et les applications) est PCIe. L'interface USB est accessible à l'hôte via PCIe. Donc, dans ce cas, je aurais un pilote pour PCIe ainsi que pour USB. Lorsque les données doivent être transférées via USB par application, l'application appelle les appels système/OS. Cela finirait par atterrir dans le pilote USB. Est-ce correct?
Une fois le traitement du pilote USB terminé, les appels PCIe doivent être appelés. Qui le fait? est-ce OS ou pilote USB lui-même? Je suppose que ce serait le système d'exploitation, car autrement, cela briserait la philosophie modulaire de base. Mais le fait d'appeler le système d'exploitation semble contre-intuitif car j'ai toujours supposé que le flux allait de l'application au système d'exploitation au pilote et au matériel.
Quelqu'un peut-il jeter un peu de lumière sur ce sujet?
Google 'interrupts' –
Malheureusement, ceci est très spécifique au système. – user3344003