システムを報告するコマンドがBig EndianなのかLittle Endianなのか、それとも最良の選択がPerlや一連のコマンド技術を使うのかを知っている人はいますか?
真珠
# little
$ perl -MConfig -e 'print "$Config{byteorder}\n";'
12345678
# big
$ perl -MConfig -e 'print "$Config{byteorder}\n";'
87654321
OD |
# little
$ echo -n I | od -to2 | awk 'FNR==1{ print substr($2,6,1)}'
1
# big
$ echo -n I | od -to2 | awk 'FNR==1{ print substr($2,6,1)}'
0
引用する
ベストアンサー1
LSCPU
このlscpu
コマンドは次のことを示します。
Byte Order: Little Endian
動作することが知られているシステム
- オペレーティングシステム6
- Ubuntu(12.04、12.10、13.04、13.10、14.04)
- フェドラ(17,18,19)
- ArchiLinux 2012+
- Linux Mint Debian(したがって、Debian テストも想定)。
このシステムは動作しないことが知られている。
- フェドラ14
- CentOS 5(RHEL5と仮定)
分布の間に明らかな違いがあるのはなぜですか?
多くの検索の最後に理由を見つけました。 util-linuxバージョン2.19lscpu
には、システムのバイト順序を報告する出力を表示する機能が含まれている最初のバージョンのようです。
テストでFedora 14システムでバージョン2.18と2.19をコンパイルしましたが、次の出力に違いがあります。
ユーティリティLinux 2.18
$ util-linux-ng-2.18/sys-utils/lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
CPU(s): 4
Thread(s) per core: 2
Core(s) per socket: 2
CPU socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 37
Stepping: 5
CPU MHz: 1199.000
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3
ユーティリティLinux 2.19
$ util-linux-2.19/sys-utils/lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 2
Core(s) per socket: 2
CPU socket(s): 1
NUMA node(s): 1
Vendor ID: GenuineIntel
CPU family: 6
Model: 37
Stepping: 5
CPU MHz: 2667.000
BogoMIPS: 5320.02
Virtualization: VT-x
L1d cache: 32K
L1i cache: 32K
L2 cache: 256K
L3 cache: 3072K
NUMA node0 CPU(s): 0-3
上記のバージョンはすべて公式ホームページからダウンロードされます。kernel.orgウェブサイト。