लिनक्स uname -mको इसकी जानकारी कहाँ से मिलती है?
मैं पूछ रहा हूं क्योंकि मेरे पास एक मशीन है जो 64-बिट्स के लिए सुनिश्चित है, uname -aऔर uname -rइसकी पुष्टि करता है, लेकिन uname -mप्रिंट करता है i686। यह कहाँ से मिलता है ??
लिनक्स uname -mको इसकी जानकारी कहाँ से मिलती है?
मैं पूछ रहा हूं क्योंकि मेरे पास एक मशीन है जो 64-बिट्स के लिए सुनिश्चित है, uname -aऔर uname -rइसकी पुष्टि करता है, लेकिन uname -mप्रिंट करता है i686। यह कहाँ से मिलता है ??
जवाबों:
आपको यह ध्यान रखना है कि 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) = ?
strace strace uname -a। और आउटपुट को किसी फ़ाइल में निर्देशित करें ताकि आप आराम से इसे पढ़ सकें।
ltraceअभी तक इसका उल्लेख नहीं किया है। :)
strace -vपूर्ण नाम वापसी मान देखने के लिए उपयोग करें ।