लिनक्स `uname -m` को इसकी जानकारी कैसे मिलती है?


15

लिनक्स uname -mको इसकी जानकारी कहाँ से मिलती है?

मैं पूछ रहा हूं क्योंकि मेरे पास एक मशीन है जो 64-बिट्स के लिए सुनिश्चित है, uname -aऔर uname -rइसकी पुष्टि करता है, लेकिन uname -mप्रिंट करता है i686। यह कहाँ से मिलता है ??

जवाबों:


23

आपको यह ध्यान रखना है कि unameआपके सॉफ़्टवेयर और हार्डवेयर से जानकारी प्रिंट करता है। आपकी 64-बिट मशीन 32-बिट लिनक्स वितरण चला सकती है।

uname -aइस जानकारी को प्रिंट करता है (क्रम में): कर्नेल-नाम, नोडनेम, कर्नेल-रिलीज़, कर्नेल-संस्करण, मशीन, प्रोसेसर, हार्डवेयर-प्लेटफॉर्म, ऑपरेटिंग-सिस्टम। यदि आप 64 बिट हार्डवेयर और i686 कर्नेल देखते हैं, तो आपने 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पूर्ण नाम वापसी मान देखने के लिए उपयोग करें ।
user1686

मैं पिछले 4 वर्षों से लिनक्स और यूनिक्स का उपयोग कर रहा हूं और मुझे स्ट्रेस के बारे में कोई जानकारी नहीं है। मुझे आश्चर्य है कि क्या यह हुड के नीचे ptrace का उपयोग करता है ... यदि केवल एक कार्यक्रम था जो मुझे आसानी से जांचने की अनुमति देता था! ;)
पार्थियन ने शॉट

2
@ParthianShot यह ptrace का उपयोग कर रहा है। सत्यापित करने के लिए, का उपयोग करें strace strace uname -a। और आउटपुट को किसी फ़ाइल में निर्देशित करें ताकि आप आराम से इसे पढ़ सकें।
tbodt

@ParthianShot और उन्होंने ltraceअभी तक इसका उल्लेख नहीं किया है। :)
ओकाद
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.