Bagikan melalui


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. Ketika driver mendapatkan data, driver mengembalikannya ke sistem operasi, yang kemudian mengembalikannya ke aplikasi.

Diagram yang menunjukkan interaksi antara aplikasi, sistem operasi, dan driver.

Memperluas definisi

Penjelasan ini menyederhanakan konsep driver. Berikut adalah beberapa poin lain yang perlu dipertimbangkan:

  • Produsen perangkat tidak selalu mengembangkan driver. 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 tersusun dalam stack driver berpartisipasi 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 dalam tumpukan.

    Diagram yang mengilustrasikan komunikasi antara aplikasi, sistem operasi, tiga driver, dan perangkat.

    • Driver fungsi: Driver yang berkomunikasi langsung dengan perangkat disebut driver fungsi.

    • Filter driver: Driver yang melakukan pemrosesan tambahan disebut driver filter .

    Untuk informasi selengkapnya, lihat Tumpukan driver.

  • Beberapa driver filter mengamati dan merekam informasi tentang permintaan I/O tetapi tidak terlibat di dalamnya. Misalnya, beberapa driver filter bertindak sebagai verifier untuk memastikan driver lain dalam tumpukan menangani permintaan I/O dengan benar.

Untuk memperbaiki definisi, driver adalah komponen perangkat lunak apa pun yang mengamati atau berpartisipasi dalam komunikasi antara sistem operasi dan perangkat.

Driver perangkat lunak

Definisi yang diperluas ini lebih akurat tetapi masih belum lengkap. Beberapa driver sama sekali tidak terkait dengan perangkat keras apa pun.

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. Komponen yang berjalan dalam mode kernel disebut driver perangkat lunak. Driver perangkat lunak tidak terkait dengan perangkat keras.

Diagram ini mengilustrasikan aplikasi mode pengguna yang berkomunikasi dengan driver perangkat lunak mode kernel.

Diagram yang menggambarkan hubungan antara aplikasi dan driver perangkat lunak.

Driver perangkat lunak selalu berjalan dalam mode kernel. Mereka terutama ditulis untuk mengakses data yang dilindungi yang hanya tersedia dalam mode kernel. 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 pengemudi 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 lebih lanjut tentang driver fungsi

Penjelasan sejauh ini terlalu menyederhanakan driver fungsi. Penjelasan sejauh ini menyatakan bahwa driver fungsi adalah driver yang berkomunikasi langsung dengan perangkat. Pernyataan ini berlaku untuk perangkat yang terhubung langsung ke bus Interkoneksi Komponen Periferal (PCI). Driver fungsi untuk perangkat PCI mendapatkan alamat yang dipetakan ke sumber daya port dan memori pada perangkat. Fungsi driver berkomunikasi langsung dengan perangkat dengan menulis ke alamat-alamat tersebut.

Dalam banyak kasus, perangkat tidak terhubung langsung ke bus PCI. Sebagai gantinya, perangkat terhubung ke adaptor bus host yang terhubung ke bus PCI. Misalnya, pemanggang roti USB terhubung ke adaptor bus host, yang disebut pengontrol host USB. Pengontrol tersebut terhubung ke bus PCI. Pemanggang roti USB memiliki driver fungsi dan pengontrol host USB juga memiliki driver fungsi.

Driver fungsi untuk pemanggang berkomunikasi secara tidak langsung dengan pemanggang tersebut dengan mengirim permintaan ke driver fungsi untuk pengontrol host USB. Driver untuk pengontrol host USB kemudian berkomunikasi langsung dengan perangkat keras pengontrol host USB, yang berkomunikasi dengan perangkat toaster.

Diagram yang menunjukkan interaksi antara driver pemanggang toaster USB, driver pengontrol host USB, dan bus PCI.