Firmware vs software comparison