Apa itu pengemudi?
Driver adalah komponen perangkat lunak yang memungkinkan sistem operasi dan perangkat berkomunikasi. Misalnya, ketika aplikasi perlu membaca data dari perangkat, aplikasi memanggil fungsi yang diterapkan oleh sistem operasi. Sistem operasi kemudian memanggil fungsi yang diterapkan oleh driver. Driver, biasanya dikembangkan oleh produsen perangkat, tahu cara berkomunikasi dengan perangkat keras perangkat untuk mendapatkan data. Setelah driver mendapatkan data, ia mengembalikannya ke sistem operasi, yang kemudian mengembalikannya ke aplikasi.
Memperluas definisi
Penjelasan kami menyederhanakan konsep driver. Berikut adalah beberapa poin lain yang perlu dipertimbangkan:
Driver tidak selalu harus dikembangkan oleh produsen perangkat. Jika perangkat mengikuti standar perangkat keras yang diterbitkan, Microsoft dapat menulis driver, sehingga perancang perangkat tidak perlu menyediakannya.
Tidak semua driver berkomunikasi langsung dengan perangkat. Seringkali, beberapa driver yang berlapis dalam tumpukan driver mengambil bagian dalam permintaan I/O. Cara konvensional untuk memvisualisasikan tumpukan adalah dengan peserta pertama di bagian atas dan peserta terakhir di bagian bawah, seperti yang ditunjukkan dalam diagram ini. Beberapa driver dalam tumpukan mengubah permintaan dari satu format ke format lainnya. Driver ini tidak berkomunikasi langsung dengan perangkat. Sebaliknya, mereka mengubah permintaan dan meneruskannya ke driver yang lebih rendah di tumpukan.
Driver fungsi: Driver yang berkomunikasi langsung dengan perangkat disebut driver fungsi.
Driver filter: Driver yang melakukan pemrosesan tambahan disebut driver filter.
Untuk informasi selengkapnya tentang tumpukan, lihat Tumpukan driver.
Beberapa driver filter mengamati dan merekam informasi tentang permintaan I/O tetapi tidak secara aktif mengambil bagian di dalamnya. Misalnya, beberapa driver filter bertindak sebagai pemverifikasi untuk memastikan driver lain dalam tumpukan menangani permintaan I/O dengan benar.
Kita dapat menyempurnakan definisi driver sebagai komponen perangkat lunak apa pun yang mengamati atau berpartisipasi dalam komunikasi antara sistem operasi dan perangkat.
Driver perangkat lunak
Definisi kami yang diperluas cukup akurat tetapi masih tidak lengkap karena beberapa driver tidak terkait dengan perangkat keras sama sekali.
Misalnya, jika Anda perlu menulis alat yang mengakses struktur data sistem operasi inti, Anda dapat membagi alat menjadi dua komponen. Komponen pertama berjalan dalam mode pengguna dan menyajikan antarmuka pengguna. Komponen kedua berjalan dalam mode kernel dan mengakses data sistem operasi inti. Komponen yang berjalan dalam mode pengguna disebut aplikasi, dan komponen yang berjalan dalam mode kernel disebut driver perangkat lunak. Pengandar perangkat lunak tidak terkait dengan perangkat keras.
Diagram ini mengilustrasikan aplikasi mode pengguna yang berkomunikasi dengan driver perangkat lunak mode kernel.
Driver perangkat lunak selalu berjalan dalam mode kernel. Mereka terutama ditulis untuk mengakses data yang dilindungi hanya tersedia dalam mode kernel. Namun, tidak semua driver perangkat memerlukan akses ke data dan sumber daya mode kernel, sehingga beberapa driver perangkat berjalan dalam mode pengguna.
Untuk informasi selengkapnya tentang mode prosesor, lihat Mode Pengguna dan Mode Kernel.
Sopir bus
Jenis pengemudi lain adalah sopir bus. Untuk memahami driver bus, Anda perlu memahami simpul perangkat dan pohon perangkat.
Untuk informasi tentang pohon perangkat, simpul perangkat, dan driver bus, lihat Simpul Perangkat dan Tumpukan Perangkat.
Informasi selengkapnya tentang driver fungsi
Penjelasan kami sejauh ini melampaui definisi driver fungsi. Kami menyatakan bahwa driver fungsi untuk perangkat adalah satu driver di tumpukan yang berkomunikasi langsung dengan perangkat. Ini berlaku untuk perangkat yang terhubung langsung ke bus Interkoneksi Komponen Periferal (PCI). Driver fungsi untuk perangkat PCI mendapatkan alamat yang dipetakan ke port dan sumber daya memori pada perangkat. Driver fungsi berkomunikasi langsung dengan perangkat dengan menulis ke alamat tersebut.
Namun, dalam banyak kasus, perangkat tidak terhubung langsung ke bus PCI. Sebagai gantinya, perangkat terhubung ke adaptor bus host yang terhubung ke bus PCI. Misalnya, pemangsa toaster USB terhubung ke adaptor bus host (disebut pengontrol host USB), yang terhubung ke bus PCI. Pemanggil toaster USB memiliki driver fungsi, dan pengontrol host USB juga memiliki driver fungsi. Driver fungsi untuk pemangsa berkomunikasi secara tidak langsung dengan pemangsa dengan mengirim permintaan ke driver fungsi untuk pengontrol host USB. Driver fungsi untuk pengontrol host USB kemudian berkomunikasi langsung dengan perangkat keras pengontrol host USB, yang berkomunikasi dengan pemangas.