Saya bingung dengan penggunaan firmware dalam konteks Linux.
Pemahaman saya tentang firmware & driver adalah firmware adalah kode yang berjalan pada logam telanjang perangkat seperti Bluetooth IC, atau keyboard controller, atau kartu video, atau micro-controller satu tujuan. Firmware memaparkan antarmuka untuk OS untuk menggunakan layanannya.
Driver, sebagai perbandingan, adalah perangkat lunak yang digunakan kernel untuk berkomunikasi dengan antarmuka yang disebutkan sebelumnya yang disediakan oleh firmware. Jadi, driver video, driver keyboard, driver radio bluetooth.
Jadi mengapa saya terus membaca tentang file firmware Linux yang harus diinstal (mis. Sini ). Apakah ini diunggah ke perangkat keras? Apakah file-file ini digunakan oleh kernel? Apa arti dari firmware dalam konteks ini?
Jawaban:
Dalam konteks kernel Linux, firmware adalah perangkat lunak yang berjalan pada prosesor lain dalam sistem, misalnya pengontrol nirkabel, GPU, pengontrol SCSI ... Perangkat lunak ini digunakan untuk disimpan dalam ROM (dari berbagai jenis) yang terpasang pada pengontrol yang relevan , tetapi untuk mengurangi biaya dan membuat peningkatan lebih mudah, pengendali sekarang cenderung mengandalkan sistem operasi host untuk memuat firmware mereka.
Jadi file firmware tidak digunakan oleh kernel, mereka dimuat oleh kernel ke perangkat keras lainnya. Ini juga yang membuatnya samar-samar dapat diterima untuk memiliki perangkat lunak tanpa kode sumber dalam sistem FLOSS: argumennya bahwa itu tidak berjalan pada CPU utama tetapi pada perangkat lain.
sumber
/lib/firmware
(tunggal, tidak/etc
) berisi firmware yang digunakan oleh perangkat lain. Banyak perangkat (termasuk pengontrol nirkabel dan GPU) memerlukan firmware yang disediakan oleh sistem host, walaupun mereka mungkin memiliki ROM (atau flash) sendiri yang berisi firmware.