Dari mana Linux uname -m
mendapatkan informasinya?
Saya bertanya karena saya memiliki mesin yang 64-bit pasti, dan uname -a
dan uname -r
mengkonfirmasi itu, tetapi uname -m
dicetak i686
. Dari mana asalnya?
Anda harus mempertimbangkan akun yang uname
mencetak informasi dari perangkat lunak dan perangkat keras Anda. Mesin 64-bit Anda dapat menjalankan distribusi Linux 32-bit.
uname -a
mencetak informasi ini (secara berurutan): nama kernel, nama panggilan, rilis kernel, versi kernel, mesin, prosesor, platform perangkat keras, sistem operasi. Jika Anda melihat perangkat keras 64 bit dan kernel i686, maka Anda telah menginstal kernel Linux 32-bit.
Untuk menjawab seluruh pertanyaan Anda: uname adalah panggilan sistem dan alat baris perintah ini menggunakannya. Anda dapat memeriksa bahwa runing mudahstrace uname -a
$ strace uname -a
execve("/bin/uname", ["uname", "-a"], [/* 23 vars */]) = 0
brk(0) = 0x9fa6000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b4abb365000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b4abb366000
access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
...
...
...
uname({sys="Linux", node="my_pc", ...}) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b4abe953000
uname({sys="Linux", node="my_pc", ...}) = 0
uname({sys="Linux", node="my_pc", ...}) = 0
write(1, "Linux my_pc 2.6.18-371.8.1.el5 "..., 99Linux my_pc 2.6.18-371.8.1.el5 #1 SMP Thu Apr 24 18:19:36 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
) = 99
close(1) = 0
munmap(0x2b4abe953000, 4096) = 0
exit_group(0) = ?
strace -v
untuk melihat nilai pengembalian penuh uname.strace strace uname -a
. Dan arahkan output ke file sehingga Anda bisa membacanya dengan nyaman.ltrace
belum menyebutkan . :)