Cpu-Architecture
在 Linux 中是否有報告字節順序的系統命令?
有誰知道報告系統是 Big Endian 還是 Little Endian 的命令,或者最好的選擇是使用 Perl 或一系列命令的這種技術?
Perl
# little $ perl -MConfig -e 'print "$Config{byteorder}\n";' 12345678 # big $ perl -MConfig -e 'print "$Config{byteorder}\n";' 87654321
來自 | awk
# 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
參考
處理器
該
lscpu
命令顯示(除其他外):Byte Order: Little Endian
已知可在其上工作的系統
- 中央作業系統 6
- Ubuntu(12.04、12.10、13.04、13.10、14.04)
- Fedora (17,18,19)
- ArchLinux 2012+
- Linux Mint Debian(因此也假設 Debian 測試)。
已知無法在其上執行的系統
- 軟呢帽 14
- CentOS 5(因此假設為 RHEL5)
為什麼發行版之間存在明顯差異?
經過大量探勘,我發現了原因。看起來 util-linux 版本 2.19 是第一個包含向
lscpu
您顯示報告系統字節順序的輸出的功能的版本。作為測試,我在我的 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 網站下載的。