Як Linux `unme -m` отримує свою інформацію?


15

Звідки Linux uname -mбере свою інформацію?

Я запитую, бо у мене напевно машина, яка на 64 біти, uname -aі uname -rпідтверджую це, але uname -mдрукує i686. Звідки це взяти ??

Відповіді:


23

Ви повинні врахувати, що unameдрукує інформацію з вашого програмного та апаратного забезпечення. Ваша 64-розрядна машина може мати 32-розрядний дистрибутив Linux.

uname -aдрукує цю інформацію (по порядку): ім'я ядра, ім'я вузла, випуск ядра, версія ядра, машина, процесор, апаратно-платформа, операційна система. Якщо ви бачите 64-бітове апаратне забезпечення та ядро ​​i686, то ви встановили 32-бітове ядро ​​Linux.

Щоб відповісти на все ваше запитання: uname - це системний виклик, і цей інструмент командного рядка використовує його. Це можна легко перевіритиstrace 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)                           = ?

2
Використовуйте strace -vдля перегляду повних неповернених значень.
користувач1686

Я використовував Linux і UNIX протягом останніх 4 років і не мав уявлення про страйк. Цікаво, чи він використовує ptrace під кришкою ... Якби тільки була програма, яка дозволила мені легко перевірити! ;)
Парфянський розстріл

2
@ParthianShot Використовується ptrace. Для перевірки використовуйте strace strace uname -a. І направляйте вихід у файл, щоб ви могли зручно його читати.
tbodt

@ParthianShot І вони ще навіть не згадували ltrace. :)
oakad
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.