①
色々あるのですが、CPUに絞って言います。
今現在、「パソコン」という商品として売られているパソコンのほとんどはx86_64というアーキテクチャを採用したCPUが搭載されています。CPUのアーキテクチャというのはどういう命令ができるかという規格のようなものです。x86_64はx86というアーキテクチャを64bitに拡張した物でx86であり、一昔前のパソコンではx86のCPUを搭載していました。また、古いMacではPowerPCというx86やx86_64とは全く別系統で互換性のないCPUを搭載していました。もし、古いパソコン(Mac含む)があれば、x86_64ではないものが搭載されている可能性はあります。
x86_64向けに作られたOSはx86_64を採用したCPUのマシンで動作することは可能ですが、x86_64と互換性のないCPUのマシンで動作させることはできません。ですので、先ほどの古いパソコンでは動作しない場合があります。しかし、x86向けに作られたOSはx86でもx86_64でも動作させることが可能です。なぜなら、x86_64はx86を拡張した物で、動作に互換性を持たせているからです。
どのOSがどのCPU向けかは異なります。かつてのWindowsは32bit版と64bit版がそれぞれ別に売られていることがありました(現在のWindows 10は両方が入っていて、インストール時に選択できる形でしか売ってないようです)。この32bit版はx86、64bit版はx86_64のことです。64bit版を買ってきても、x86のパソコンにはいられません。ましてやPowerPCのMacには絶対に入れることはできません。このようにCPUによっては入れられない場合があると言うことがありました。
Windows以外も同様で、OSによってどのアーキテクチャ向けを用意しているかが異なります。たとえばRed Hat Linux 7はx86版がありません。どうやっても、x86な古いパソコンには入れられません。その他、もっと専用のCPU向けしか無い物があります。パソコン以外に目を向けると、CPUのアーキテクチャはもっとあります。組み込みやスマホ・タブレットなどに向いているARM、サーバーやワークステーション向けのSPARC、x86_64との競争に敗れたIA-64、Macに見捨てられたがゲーム機等で採用されているPowerPC等です。これらはさらに32bit版と64bit版があったり、さらに細かくわかれます。それら全てをサポートするのは大変です。ですので、全てのOSがどのCPUでも動作させることができるとは言えません。Windows 10もx86とx86_64とARM(一部のエディションのみ、Homeとかは用意されていない)でしか動作させることはできません。
②
質問が二つあるようですが、コンパイラを必ずしもダウンロードする必要はありません。例えば、CentOSのDVDインストーラでインストールするときに、開発パッケージも含めて初めからインストールしておけば、OSのインストールが終わった時点でコンパイラはインストールされています。
全てのOSに全ての言語のコンパイラや環境が揃っているわけではありません。Cは多くのOSで利用可能ですが、比較的新しい言語の場合は、OSが限られている場合や、コンパイラのインストールが大変な場合もあります。たとえば、Crystalという言語ではLinuxやMacでは動作しますが、Windowsのネイティブ環境での動作はサポートしていません(Bash on Ubuntu on Windowsでは可能ですが)。DelphiはMac向けのアプリも作成可能ですが、開発環境はWindowsでしか動作しません。
また、そのOSで動くアプリをそのOSで開発できない物があります。一番の例はスマホ・タブレットのiOSやAndroidでしょう。iPhoneで動くアプリだからといってiPhone上でコンパイルしているのではありません。WindowsやMacなどでコンパイルして、それをスマホ・タブレットにもってきて実行する形になります。
結局何が言いたいかというと、全ての○○があてはまる、という事象はわりと少ないと言うことです。探せば、どこかしら例外が出てくるのはよくあることであり、一般化するのは危険です。事実Cであっても、組み込み製品向けの場合は、組み込み製品の基板上でコンパイルするなんて事はしていません。パソコン等でその組み込み製品向けにコンパイルできるコンパイラを使ってコンパイルし、製品の中にコピーして実行しています。より具体的に、ある言語、あるOS、という話をしないと、YESかNOかの回答はできず、だいたいそうかな、程度しか答えることはできません。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。