Perbedaan dan hubungan antara firmware dan driver perangkat

27
  1. Bagaimana firmware dan driver perangkat berbeda dan terkait? Saya pikir kedua perangkat kontrol?
  2. Apakah firmware selalu melakukan booting sendiri, sedangkan driver harus dijalankan / di-boot oleh OS?
Tim
sumber

Jawaban:

24
  1. Firmware adalah perangkat lunak yang berjalan pada perangkat. Driver adalah perangkat lunak yang memberi tahu sistem operasi Anda cara berkomunikasi dengan perangkat. Tidak semua perangkat memiliki firmware - hanya perangkat dengan tingkat kecerdasan tertentu.

  2. Saya tidak yakin apa yang Anda maksud ... secara umum, firmware tidak ada hubungannya dengan "boot" ... Saya pikir mungkin yang Anda tanyakan adalah, apakah perangkat dengan firmware selalu memiliki firmware yang diinstal pada perangkat, atau itu dimuat setelah waktu boot. Jika itu yang Anda tanyakan, jawabannya adalah tidak ...

Paling umum, perangkat dengan firmware memprogram firmware ke dalam perangkat (baik dengan chip ROM, atau chip ROM yang dapat diprogram), tetapi ada beberapa perangkat di mana firmware dimuat ke perangkat pada waktu inisialisasi. Saya bisa memikirkan beberapa kartu jaringan dan webcam yang beroperasi dengan cara ini, tapi saya yakin ada yang lain juga.

Flimzy
sumber
Terima kasih! dalam 2, dengan self-booting, maksud saya jika firmware dijalankan dengan sendirinya bukan oleh orang lain, sedangkan driver dijalankan oleh OS bukan dengan sendirinya? Saya mengambil kata self-booting dari "Tanpa sistem operasi, seorang pengguna tidak dapat menjalankan program aplikasi di komputer mereka, kecuali jika program aplikasi self-boot" di en.wikipedia.org/wiki/Operating_system
Tim
1
Firmware dijalankan oleh perangkat keras itu sendiri ... Saya pikir itu menjawab pertanyaan? Pertimbangkan ini: Banyak perangkat non-komputer memiliki "firmware" - seperti kamera digital, pemutar DVD, ponsel, dll. Jadi jelas dalam kasus ini, firmware benar-benar mandiri dalam perangkat itu sendiri. Hanya jika / ketika Anda mencolokkan salah satu perangkat tersebut ke komputer Anda Anda memerlukan driver .
Flimzy
1
Terima kasih! Dari en.wikipedia.org/wiki/Computer_software : "Firmware adalah perangkat lunak tingkat rendah yang sering disimpan pada perangkat memori yang dapat diprogram secara listrik. Firmware diberi namanya karena diperlakukan seperti perangkat keras dan dijalankan (" dieksekusi ") oleh program perangkat lunak lain." Apakah firmware dijalankan oleh program perangkat lunak lain atau oleh perangkat keras itu sendiri?
Tim
-1 mengapa Anda mengatakannya only devices with some level of intelligence have firmware? Saya akan mengatakan sebaliknya, perangkat sederhana (elektronik) mungkin tidak memiliki sistem operasi tetapi memiliki firmware.
Celeritas
@Celeritas: Karena hanya perangkat dengan tingkat kecerdasan tertentu yang memiliki firmware, berbeda dengan yang (seperti port RS-232) yang tidak. Jika Anda membandingkan perangkat yang memiliki seluruh OS (ponsel, iPod, GPS yang dapat diprogram, dll), Anda berbicara tentang lapisan abstraksi yang sama sekali berbeda, yang benar-benar tidak ada hubungannya dengan "driver perangkat" dalam pengertian tradisional. Kelas perangkat lunak akses ini sering disebut "driver perangkat", tetapi pada kenyataannya itu adalah protokol aplikasi jaringan yang diterapkan di atas driver perangkat (seperti yang berkomunikasi dengan port USB atau bluetooth).
Flimzy
5

Firmware mengimplementasikan perincian tingkat rendah yang diperlukan untuk mengoperasikan perangkat keras, dan menyediakan API / ABI ke tingkat yang lebih tinggi. Driver perangkat menyediakan adaptor antara OS dan API / ABI yang diekspos oleh firmware.

Ignacio Vazquez-Abrams
sumber
1
Terima kasih! Apakah driver perangkat bagian dari OS, dan dijalankan oleh kernel OS? Apakah firmware bagian dari perangkat, dan dijalankan oleh kernel OS atau firmware itu sendiri?
Tim
1
Driver perangkat dianggap sebagai bagian dari OS, dan biasanya berjalan pada host CPU. Firmware biasanya dijalankan oleh perangkat; mungkin diunggah ke perangkat oleh OS.
Ignacio Vazquez-Abrams
Ini harus menjadi jawaban yang diterima.
Eric Wang
4

Definisi modern atau penggunaan umum firmware tidak ada hubungannya dengan fungsi perangkat lunak tertentu. Firmware hanyalah perangkat lunak yang disimpan dalam chip semikonduktor yang tidak mudah menguap (mis. PROM, EEPROM atau flash) daripada perangkat penyimpanan massal seperti hard drive. Perangkat lunak yang disimpan dapat berupa biner yang terhubung secara monolitik, atau terdiri dari modul pemuat, kernel dan aplikasi. (OTOH saya telah melihat beberapa kartu TV tuner untuk PC yang memerlukan pemuatan "firmware" oleh kernel Linux untuk menyelesaikan inisialisasi.)

Asal usul istilah ini berkaitan dengan logika yang dikendalikan prosesor versus logika bawaan. Perangkat lunak yang disimpan pada hard drive dapat dengan mudah dimodifikasi dan diperbarui. Revisi dan pembaruan untuk logika bawaan diperlukan perancangan ulang dan penggantian modul atau modul. Jalan tengahnya adalah prosesor yang menjalankan perangkat lunak untuk mengontrol perangkat keras. Perangkat lunak ini disebut perusahaan gudang untuk mencerminkan jalan tengah antara lembut gudang vs keras logika kabel. Awalnya firmware disimpan dalam chip ROM, PROM atau EPROM untuk menjaga modularitas board. Kemajuan EEPROM dan chip flash memungkinkan pembaruan firmware di-sirkuit dan di-papan.

Ketika prosesor (dan periferal) menjadi lebih kecil dan lebih murah dan lebih sedikit daya haus, kemungkinan untuk menanamkannya dalam setiap jenis perangkat / alat diperluas. Untuk membuat perangkat lunak untuk mengoperasikan perangkat ini kasar dan aman, perangkat lunak disimpan dalam chip memori flash daripada hard drive; itu juga membuat perangkat lebih kecil dan jauh lebih murah. Istilah firmware telah diperluas untuk mencakup semua perangkat lunak dalam perangkat / peralatan dengan prosesor tertanam, meskipun beberapa bagian dari kode yang disimpan tidak memiliki hubungan untuk mengganti logika bawaan.

serbuk gergaji
sumber
Lalu apa artinya menginstal firmware pada penyimpanan besar? Suka paket Debian ini ?
xuhdev
1
@xuhdev - Paket Debian itu terdiri dari file-file yang dapat digunakan oleh berbagai driver perangkat Linux. File-file tersebut direferensikan sebagai "firmware" karena ditulis ke perangkat yang dilampirkan oleh driver Linux. File-file tersebut mungkin berisi data atau kode operasional untuk UC / uP tertanam perangkat. Perhatikan bahwa file ini ditransfer ke perangkat dimuat ke memori volatile perangkat, dan memuat harus terjadi setelah setiap perangkat atau sistem reset The "Instalasi" ini "firmware" pada penyimpanan massal host hanyalah mekanisme prosedural (yaitu penanganan paket).
serbuk gergaji
3

Seseorang memposting pertanyaan ini baru-baru ini , mengatakan:

Firmware adalah kombinasi dari memori persisten, kode program, dan data yang tersimpan di dalamnya. Contoh umum perangkat yang mengandung Firmware adalah sistem tertanam seperti lampu lalu lintas, peralatan konsumen, jam tangan digital, komputer, periferal komputer, ponsel, dan kamera digital. Firmware yang terdapat dalam perangkat ini menyediakan program kontrol untuk perangkat tersebut.

Faktanya, driverstag SuperUser didefinisikan:

Driver, juga disebut driver perangkat atau driver perangkat lunak adalah perangkat lunak yang memungkinkan program komputer tingkat tinggi untuk berinteraksi dengan perangkat perangkat keras. Ketika sebuah program komputer meminta interaksi dengan perangkat perangkat keras tertentu, driver akan menangani terjemahan instruksi dan output antara perangkat dan program komputer yang memanggil driver.

dan, firmwaretag didefinisikan:

Secara umum, perbedaan antara perangkat lunak dan firmware adalah tingkat di mana ia berinteraksi dengan perangkat keras. Firmware berinteraksi pada tingkat perangkat yang sangat rendah sedangkan perangkat lunak berinteraksi pada tingkat tinggi. Firmware umumnya mengontrol pengaturan waktu dasar, kontrol dan fungsionalitas perangkat keras.

Awalnya saya pikir firmwareitu dipasang ke chip atau papan langsung dan tinggal di sana, itulah sebabnya itu harus "di-flash", sementara Anda akan menginstal driverdi atas sistem operasi.

Kesimpulan:

Firmwarememungkinkan perangkat keras untuk "melakukan" hal-hal, dan driversmemungkinkan perangkat lunak untuk berinteraksi dengan perangkat keras.

bgmCoder
sumber