Solaris 32ビット/ 64ビットの混乱


3

AMD-でSolarisを使用しています

uname -a 与える

OS Solaris 10 x86_64 (SunOS goldtpus34 5.10 Generic_144489-11

私はそれが32ビットカーネルを持っているか64ビットカーネルを持っているかを見つけたかったので

/usr/bin/isainfo -k

それは言います

amd64

しかし、私がするとき

file /sbin/init 

それは言います

ELF 32-bit LSB executable 80386 Version 1, dynamically linked, stripped

また、私がファイルした場合、それは言います

ELF 64-bit LSB executable AMD64 Version 1 [SSE2 SSE FXSR FPU], dynamically linked, not stripped 

カーネルを64ビットモードで動作させ、システムutils / process spawner(init)を32ビットモードで動作させることは可能です。

私は混乱しています。

OSカーネルがSolarisおよびLinuxで64/32ビットモードにある場合に正確に取得する方法


Solarisの64ビットインストールのバイナリの大部分は32ビットバイナリです。これには、SPARCチップとx86チップの違いに関連する歴史的な理由があります。これは、Linuxでとられるアプローチとは異なります。そのため、カーネルが64ビットモードで起動された場合でも、initは32ビットバイナリであることがわかります。Bon Gartが言うように、「isainfo」コマンドは、カーネルが実行できるプログラムの種類を表示するように特別に設計されています。
クリスクエネル

回答:


6

isainfo -kの出力は、カーネルが実行しているモードを示します。あなたのケースでは、64ビットカーネルを実行しています。カーネルのすべてが64ビットモードで実行されます(デバイスドライバー、システムコールなど)。

Solaris(および他の多くのOS)の美しさは、32ビットバイナリもネイティブに実行できることです。Solaris OSに付属するほとんどのプログラム、ツール、ユーティリティは、32ビットツールです。唯一の例外は、/ usr / bin / amd64にあるものです。これらは通常、カーネル構造を直接操作する必要があるか、より大きな直接アドレス可能なメモリ空間を利用したいものです。それらは、問題のツールがハードリンクされている/ usr / lib / isaexecを介して自動的に選択されます(32ビットの対応物は/ usr / bin / i86にあります)(/ usr / bin / ps、たとえば/ usr / lib / isaexecへのハードリンク)。

initは32ビットバイナリの形でのみ提供されます。これは大丈夫です。実行しているカーネルについては何も言いません。Solaris 2.3イメージからの同じinitは、Solaris 11(つまりSPARC)でも完全に正常に実行されると確信しています。本当にエキサイティングなことは何もしません。


1

Oracleフォーラムのこのスレッドは、混乱を共有している他の誰かを扱うという点で、あなたの状況を非常によく説明しています。関連するポイントをいくつか引用しますが、スレッド全体を読む必要があります。

Solaris 10は、同じメディアで32ビットと64ビットの両方のアーキテクチャで提供されます。インストール後の最初の起動時に、正しいモードが自動的に選択されます。

システムが32ビットで起動されている場合、Solarisは32ビットCPUを検出しています。

このコマンドの出力は何ですか:

# isainfo -kv

# psrinfo -pv

そのため、OSが64ビットプロセッサを検出したと報告した場合、64ビットモードで動作しています。


ありがとう。Oracleフォーラムのスレッドを読んでください。しかし、64ビットのSolaris 10カーネルを起動したときに(私の場合)/ sbin / initが32ビットとして表示されるのはなぜだろうと思っています。initは、ブートアップ後にカーネルによって起動される最初のメインプロセスであるため、まだ奇妙です。
goldenmean
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.