Не пойму как именно ОС через firmware обращается к устройству (в моем случае wireless адаптер, через USB).
Читаю о firmware: это прошивка, которую устанавливают в само устройство. Но неужели при установки firmware каждый раз мой GNU/Linux или OpenBSD перезаписывают (перепрошивают) устройство? Т.е. после установки пакета с firmware (набор бинарников) и использовании этого устройства, мы имеем "другое устройство", т.е. перепрошитое?

Я явно чего-то не допопнимаю и хотел бы разобраться с этим вопросом.
С модулями ядра все понятно - функционал подключается к ядру (в случае модулей), я вижу этот модуль через lsmod (в GNU/Linux), а он, в свою очередь, знает как работать с устройством. Есть модуль - есть интерфейс, нет модуля - мы не знаем об устройсве и о том, как с ним работать. А как работает firmware, и как ядро узнает о его наличии, а точнее - о необходимости его использования для общения с устройством? Я сейчас в OpenBSD, было бы здорово, если бы кто-то хотя бы навел на мысль и показал на примере как ПО взаимодействует с устройством именно через firmware в этой ОС.
Заранее спасибо.