プログラムとオペレーティングシステムの観点から、32ビット対64ビット対ARM

プログラムとオペレーティングシステムの観点から、32ビット対64ビット対ARM

したがって、Raspbian(デフォルトでLXDEを含むARM Debian派生製品)を実行するときは、aptitudeを使用して通常のパッケージをインストールできます。ただし、たとえば、.debファイルをダウンロードするには、32ビットまたは64ビットを選択し、ファイルをダウンロードしてRaspbianで実行する必要があります(動作しません)。

公式リポジトリからパッケージをインストールするとARMシステムで動作するのはなぜですか?なぜ互換性がないのですか?

私もハードウェアとソフトウェアビットの違いについて少し混乱しています。 ARMはハードウェアですか?

ベストアンサー1

TL、DR:「32ビット」および「64ビット」オプションのみが利用可能な場合、どちらのオプションもRaspberry Pi(または他のARMベースのコンピュータ)には適していません。 ARM用のパッケージと適切な起動パッケージ(例:armhf

「32ビット」と「64ビット」は、プロセッサアーキテクチャの特性の1つにすぎません。多くのプロセッサフ​​ァミリには、32ビットおよび64ビットバリアント(x86、ARM、Sparc、PPC、MIPSなど)があります。ダーバンさまざまなプロセッサ機能とさまざまなソフトウェア機能のための23の公式バイナリリリースがあります。

あなたはABIあなたのシステムのため。アプリケーションバイナリインタフェース(ABI)には、プロセッサタイプ(より正確には命令セット)だけでなく、プログラムがプロセッサと対話する方法に関連するその他の特性も含まれます。特に、プログラムがライブラリ内のコードを呼び出すとき、ABIはライブラリ関数への引数が渡される方法(レジスタまたはスタック)を決定します。

PCの世界には2つのコマンドセットがあります(わずかな違いは重要ではありません)。

  • IA-32、変形x86、しばしばi386(Debianで使用される名前)またはi686(例えばIA-32、x86アーキテクチャファミリの複数世代)と呼ばれます。
  • x86-64、x64またはamd64(Debianで使用される名前)とも呼ばれます(完全に他のIA-64と混同しないでください)。

Intel と AMD はどちらも x86 命令と x86-64 命令セットを実装するプロセッサを製造しています。最新のPCプロセッサはx86-64およびx86命令セットの両方をサポートしますが、古いPCプロセッサはx86のみをサポートします。 x86命令セットは32ビットレジスタを使用し、x86-64命令セットは64ビットレジスタを使用し、すべてのLinuxインストールは各命令セットに対してABIを使用するため、しばしば「32ビット」または「64ビット」説明します。ビット" "。 PC環境では、「32ビット」は「x86」を意味し、「64ビット」は「x86-64」を意味します。

ARMプロセッサには全く異なる命令セットがあります。 ARMシステムにx86またはx86-64パッケージをインストールすることはできません。正しい命令セット、より一般的には正しいABIを取得するには、ARM用のパッケージが必要です。現在、64ビットARMプロセッサの主な64ビットディストリビューションはありません。ARMv864ビット命令セットを導入したアーキテクチャの改訂は、依然として非常に新しく一般的ではありません。ただし、さまざまなプロセッサ機能を想定し、さまざまなバージョンのパラメータ転送ルールを使用する複数の32ビットABIがあります。 Linuxで使用される主なARM ABIは次のとおりです。

armhfをサポートするすべてのデバイスはarmelもサポートしますが、指定されたシステムインストールは一貫している必要があります。 Raspbianはarmhfを使用しています(実際、armhfがまだ新しいものであるときは、armhfのDebian armelのポートで始まりました)。

1少なくとも主流ディストリビューションの場合。一部の組み込みディストリビューションには、さまざまなバージョンの標準Cライブラリ(glibc、Dietlibc、uclibcなど)用にコンパイルされたパッケージを含む複数のx86バイナリバージョンがあります。

おすすめ記事