ハードウェアに対して基本的な処理をするため、機器に組み込まれているソフトウェアなどのこと。
オペレーティングシステム(OS)を使っていないような装置では、装置の機能を提供する主要なソフトウェアとなる。
OSを使っている装置では、ソフトウェアとハードウェアの仲介役としての役割を担う。
パーソナルコンピュータのBIOSなどもファームウェアの一種である。
基本的には装置の制御をするためのものなので、あまり変更が加えられることの無いソフトウェアである。
その特徴から、多くの場合、開発言語としてアセンブリ言語が使われるが、CやC++などが使われる事もある。
現在は、一般的にはフラッシュメモリに書き込まれて出荷されるが、処理自体が非常に単純な場合、ソフトウェアではなくPLD等でそれを実現することもある。