8

多数のマシンのマシンアーキテクチャタイプを発見したいと思います。各マシンのホスト名があります。マシンには、Debian 4 linux、SunOS 9、SunOS 10、またはAppleDarwinが搭載されています。すべてunixライクですが、わずかな違いがあります。

知りたいのは:-アーキテクチャ(x86、x86_64、ia64、sparc、powerpc ...)-プロセッサタイプ(intel pentium、pentium pro、pentium II、sparc、powerpc、itanium、athlon、core 2 duo、cytrixなど) ...)-プロセッサの数

注意してください、私はマシンの「タイプ」が欲しいです。'uname'を使用した愚かなアプローチは、Sunでは機能せず、マシンが実際には' x86_64'であるが、オペレーティングシステムが32ビットである場合、'i686'のようなものも返します。/ proc / cpuinfoも機能せず、一部のマシンにはCコンパイラがインストールされていないため、状況はさらに複雑になります(すべてのマシンにsh、おそらくpythonまたはperl、dunnoがインストールされていると確信しています)。

前もって感謝します!!:)

4

6 に答える 6

20

arch ; uname -a

archは、CPU命令セットの名前を取得するための標準的な方法です。uname -aは、OSに関する多くの情報を取得します。unamewithouthaはOS名を取得します。

ただし、プログラム的に言えば、と同等archですuname -m

于 2009-01-29T04:46:41.977 に答える
4

次の Perl ワンライナーを試すことができます。

perl -MConfig -e 'print "$Config{myarchname}\n";'

Perl 5.10.0 を搭載した Mac OS X Leopard では、「i386-darwin」と出力されることを私は知っています。Perl で実際のプロセッサ名を取得する方法を知りません。可能性がかなり限られているため、おそらく C を使用するのが最善の策です。Perl から C コンパイラの定義済みマクロを取得できます。

perl -MConfig -e 'print join("\n", split(/ /, $Config{cppsymbols})), "\n";'

これは、Mach-O 形式の や(少なくとも Leopard では)のような C マクロと、 や のような役に立たないものを一覧表示__LITTLE_ENDIAN__します。もちろん、このヘルプはすべて、すべてのマシンに Perl があることを前提としています。そうでない場合は、他の言語にも同様の機能が備わっているはずです。__MACH____i386____GNUC____STDC__

于 2009-01-26T21:25:55.563 に答える
2

/proc/cpuinfo が機能しないのはなぜですか?

あなたが言及したすべてのOSを知っているわけではありませんが、Linuxの下で非常に詳細な情報を提供すると思います. 少なくとも、CPU のモデルでは、データ テーブルから他の情報を参照できます。

ソフトウェアは、OS が認識できるものしか認識できないため、OS が/proc/cpuinfoなどの情報を提供しない場合、それを知る方法はありません。

コメントに返信:

すべての OS について /proc/cpuinfo を探すと言っているわけではありません。これは 2 段階の方法です。最初に uname を使用している OS を見つけ、次に CPU 情報の OS 固有の位置を探します。

于 2009-01-26T21:45:45.617 に答える
2

Puppet システムの factor コンポーネントを確認することをお勧めします。URL http://reductivelabs.com/projects/facter/から。

オペレーティング システムからファクトを取得するためのクロスプラットフォーム Ruby ライブラリ。複数の解決メカニズムをサポートし、いずれも特定のオペレーティング システムまたは環境でのみ動作するように制限できます。Facter は、オペレーティング システム名、IP アドレス、MAC アドレス、SSH キーなどを取得する場合に特に便利です。
于 2009-01-26T21:13:02.237 に答える
1

これは完全な答えではありませんが、目標を達成するのに役立つ場合があります。

Arch は HP-UX Itanium では動作せず、おっしゃったように /proc ファイルシステムもありません。

O/Sが使っているエンディアン(バイトオーダー)をシェルコマンドで簡単に調べる方法を説明します少なくとも 4 つの主要な Unix (Linux x86_64、Solaris Sparc、AIX/Power、HP-UX Itanium) で動作します。バイト順がわかっている場合は、このソースに基づいて、扱っている CPU について多くのことを推測できます。

たとえば、Solaris が正しいアーキテクチャを教えてくれないが、それがビッグ エンディアンであることがわかった場合、少なくとも x86_64 ではなく、おそらく Sparc を使用していないことがわかります。

最後に、Sparc の場合、OS が 32 ビット モードで実行されているか 64 ビット モードで実行されているかを判断するには、次のようにします。

# isalist -v
sparcv9+vis2 sparcv9+vis sparcv9 sparcv8plus+vis2 sparcv8plus+vis sparcv8plus sparcv8 sparcv8-fsmuld sparcv7 sparc

「sparcv9」と表示されている場合は 64 ビット、sparcv8 は 32 ビットです。

于 2011-12-06T19:01:19.400 に答える
0

を使えuname -aば多くの情報が得られるので、知りたい情報を探す必要があります。

使用するだけです:

uname -i

ハードウェア プラットフォーム用

また

uname -m

マシンのハードウェア名

于 2013-04-14T16:20:49.463 に答える