Linux `uname -m` รับข้อมูลได้อย่างไร


15

Linux uname -mจะรับข้อมูลจากที่ไหน

ฉันถามเพราะผมมีเครื่องที่เป็น 64 บิตสำหรับการตรวจสอบและuname -aและuname -rยืนยันว่า แต่พิมพ์uname -m i686มันมาจากไหน?

คำตอบ:


23

คุณต้องคำนึงถึงว่าunameพิมพ์ข้อมูลจากซอฟต์แวร์และฮาร์ดแวร์ของคุณ เครื่อง 64- บิตของคุณอาจเรียกใช้การกระจาย Linux แบบ 32 บิต

uname -aพิมพ์ข้อมูลนี้ (ตามลำดับ): ชื่อเคอร์เนล, ชื่อโหนด, เคอร์เนล - รุ่น, เคอร์เนล - รุ่น, เครื่อง, โปรเซสเซอร์, แพลตฟอร์มฮาร์ดแวร์, ระบบปฏิบัติการ หากคุณเห็นฮาร์ดแวร์ 64 บิตและเคอร์เนล i686 แสดงว่าคุณได้ติดตั้งเคอร์เนล Linux 32 บิต

สำหรับการตอบคำถามทั้งหมดของคุณ: 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เพื่อดูค่าส่งคืน uname แบบเต็ม
user1686

ฉันใช้ Linux และ UNIX ในช่วง 4 ปีที่ผ่านมาและไม่มีความคิดเกี่ยวกับ strace ฉันสงสัยว่ามันใช้ ptrace ใต้ฝากระโปรงหรือไม่ ... หากมีโปรแกรมที่อนุญาตให้ฉันตรวจสอบได้อย่างง่ายดาย! ;)
คู่ปรับ Shot

2
@ParthianShot มันใช้ ptrace strace strace uname -aเพื่อตรวจสอบการใช้งาน และนำเอาต์พุตไปยังไฟล์โดยตรงเพื่อให้คุณสามารถอ่านได้อย่างสะดวกสบาย
tbodt

@ParthianShot และพวกเขายังไม่ได้กล่าวถึงแม้ltraceยัง :)
oakad
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.