ファームウェアは、基本的に組み込み機器内で動作するプログラム全般を指します。
OSは、他のプログラムを動作させるために必要な基本的なサービスを行うプログラムを指します。
WindowsはOSですけど、それ単体では意味がなくて、InternetExprolerとかOfficeWordとかを動作させるためにHDDファイルの読み書きや、画像表示や、ネットワーク接続などをサービスするわけです。
また、ファームウェアの中には実はOSを含んでいます。(たいていは、リアルタイムOSですね)
ルータのファームウェアを例に取れば、
ネットワークの監視をするプログラムとか、設定画面を表示するプログラムとかがあります。
これらのプログラムを動作させるために必要なメモリ割り当てや、プログラム動作順序制御などをサービスするのがリアルタイムOSだったりします。
どーでしょうか??