Apa itu Driver Pada Operating System Dan Komputer?
Sebenarnya adalah sesuatu yang cukup rumit dan kompleks untuk menjelaskan apa itu driver pada operating system dan komputer dalam satu kalimat. Dalam pengertian yang paling mendasar, driver pada operating system adalah suatu software yang memungkinkan operating system dan device berkomunikasi satu sama lain.
Sebagai contoh Sebuah aplikasi membutuhkan untuk membaca data dari device tertentu. Aplikasi tersebut akan memanggil fungsi yang diimplementasikan pada operating system, dan operating system akan memanggil fungsi yang diimplementasikan pada driver. Sebuah driver dan device yang dibuat, didesain, diproduksi oleh perusahaan yang sama mengetahui bagaimana berkomunikasi dengan device hardware untuk mendapatkan data. Setelah driver mendapatkan data dari device, ia akan kembali ke operating system, dan memberikan data ke aplikasi.
Flow dari driver — driver pada operating system
Definisi Driver pada operating system yang lebih luas
Beberapa hal yang perlu kamu ketahui tentang driver:
- Tidak semua driver dibuat oleh perusahaan yang membuat device. Dalam banyak kasus, driver dirancang sesuai dengan standart device yang dipublis. Hal ini menandakan, perancang device tidak harus menyediakan driver, driver mungkin dibuat oleh Microsot, atau perusahaan lain.
- Tidak semua driver berkomunikasi secara langsung kepada device. Untuk setiap request I/O (sebagai contoh membaca data) tertentu sering kali terdapat lebih dari satu driver yang berpartisipasi untuk menangani request I/O tersebut. Secara visual kamu dapat melihat diagram dibawah ini. Beberapa driver dalam diagram mungkin saja berpartisipasi untuk mengubah bentuk request I/O ke bentuk lain. Secara teori, driver tidak berkomunikasi secara langsung dengan device, device hanya memanipulasi bentuk dari request I/O dan memberikan hasil transformasinya ke driver lain.
Definisi lebih luas dari driver — driver pada operating system
- Driver yang mengolah data terakhir kita sebut sebagai Function Driver dan driver yang melakukan pengolahan data tambahan seperti mentransformasikan data kita sebut sebagai Filter Driver.
- Beberapa Filter Driver melakukan observasi dan mencatat informasi tentang request I/O namun tidak berpartisipasi aktif di dalamnya. Sebagai contoh Filter Driver tertentu hanya bertindak sebagai verifier untuk memastikan driver lain menangani request I/O dengan benar
Dengan begitu, kita dapat memperluas definisi driver dengan mengatakan bahwa driver adalah komponen software apapun yang melakukan observasi atau berpartisipasi dalam komunikasi antar operating system dan device.
Software Driver
Definisi yang tadi sudah kita perluas sudah termasuk masuk akal dan akurat, tetapi masih belum lengkap karena beberapa driver tidak terasosiasi dengan device manapun.
Sebagai contoh kamu membutuhkan alat yang harus mengakses data struktur yang merupakan bagian dari inti operating system, yang mana hanya bisa diakses dengan kode yang dieksekusi di kernel mode. Kamu dapat melakukan hal ini dengan cara membagi tool tersebut menjadi 2 komponen utama. Komponen pertama dieksekusi dalam user mode yang direpresentasikan dalam User Interface. Komponen yang kedua dieksekusi dalam kernel mode dan memiliki akses ke struktur data dari inti operating system.
Komponen yang dieksekusi dalam user mode dapat disebut sebagai Application, dan komponen yang dieksekusi dalam kernel mode dapat disebut sebagai software driver. Software driver sama sekali tidak terasosiasi pada device apapun.
Diagram berikut dapat mengilustrasikan bagaimana user mode berkomunikasi dengan kernel mode (software driver).
User mode dan kernel mode — driver pada operating system
Software driver selalu di eksekusi pada kernel mode. Alasan utama membuat software driver adalah untuk mendapatkan akses ke data yang terlindungi yang hanya dapat diakses dalam kernel mode. Tapi driver tidak selalu membutuhkan akses ke data dan resource dalam kernel mode, jadi beberapa driver hanya dieksekusi dalam user mode.
Ada beberapa kategori driver yang belum kita sebut yaitu Bus Driver. Untuk lebih mengerti tentang bus driver kamu harus mengerti tentang device nodes dan device tree.
Sebelum dijelaskan bahwa Function Driver adalah device yang berkomunikasi langsung dengan device. Penjelasan ini benar jika device terkoneksi langsung dengan Peripheral Component Interconnect (PCI) bus. Function driver menggunakan PCI device untuk memperoleh address yang sudah di map dari port dan memory resource pada device. Function driver berkomunikasi secara langsung dengan device dengan cara mengakses address tersebut.
Namun dalam beberapa kasus, device tidak terkoneksi secara langsung dengan PCI bus. Device dapat terkoneksi ke host bus adapter. Sebagai contoh, sebuah USB toaster yang terhubung dengan host bus adapter (dapat disebut USB host controller), yang terkoneksi dengan PCI bus. USB toaster memiliki function driver dan USB host controller juga memiliki function driver. Function driver pada USB toaster berkomunikasi secara tidak langsung dengan function driver pada USB host controller dengan cara mengirimkan request. Lalu Function driver pada USB host controller akan berkomunikasi dengan secara langsung dengan USB host controller yang akan berkomunikasi dengan USB toaster.
USB Toaster Diagram — driver pada operating system
Technology has to be invented or adopted ~ Jared Diamond
Originally published at nginy.net on October 22, 2017.