अगर मैं "संस्करण" कहा जाता है मेरी निष्पादन पर निम्न आदेश, फेडोरा कोर 11 पर संकलित, मैं इस उत्पादनक्या लिनक्स फ़ाइल आदेश के उत्पादन में संस्करण संख्या क्षेत्र है
फ़ाइल संस्करण मिलता है
संस्करण: ELF 32-बिट LSB निष्पादन, इंटेल 80386, संस्करण 1 (SysV), गतिशील रूप से जुड़े हुए (साझा का उपयोग करता है libs), जीएनयू/लिनक्स 2.6.18 के लिए,
छीन नहीं 2.6 का महत्व क्या है .18 अंत की ओर संख्या, और क्या यह किसी भी प्रकार का उपयोग है ग्राहकों को tinguishing जो कुछ सॉफ्टवेयर के संस्करण डाउनलोड करना चाहिए?
मैं क्या अब तक देखा है से, यह संख्या निश्चित रूप से नहीं
- कर्नेल संस्करण
- libc संस्करण
- कुछ भी lsb_release से कोई लेना देना
मैं है 'ग्राहकों को यह जानने की अनुमति देने के लिए कुछ आसान पहचानकर्ता प्राप्त करना चाहते हैं कि उन्हें कौन सी बाइनरी रिलीज डाउनलोड करनी चाहिए, जिसे वे आदर्श रूप से कमांड टाइप करके पहचानने में सक्षम होना चाहिए (जैसे uname -a, हालांकि यह स्पष्ट रूप से है इस मामले में एक नहीं)।
धन्यवाद
धन्यवाद:
Btw,
/usr/include/asm/unistd_32.h
syscall संख्या, अंश होता है? मैंने शुरुआत में एक उपयोगकर्ता स्पेस प्रोग्राम के रूप में एक कर्नेल संस्करण को छूट दी है, जो libc.so पर केवल "निर्भर करता है" (ldd output की तरह), लेकिन मैं वहां लिंक देख सकता हूं। –आप ऐसा कह सकते हैं। वास्तविक सत्य थोड़ा अधिक उपनिवेश है: प्रत्येक कर्नेल संस्करण नए सिस्को नहीं लाता है और सामान्य प्रोग्राम में आप libc से syscall wrappers का उपयोग करते हैं। इसलिए संख्याओं को प्रोग्राम में ही हार्डकोड नहीं किया गया है लेकिन libc में। लेकिन अगर एक कर्नेल ने एक नया सिस्कल का आविष्कार किया है, तो आपका प्रोग्राम इस पर निर्भर करता है, आप उस प्रोग्राम को पुराने कर्नेल पर निष्पादित नहीं कर सकते हैं ... –
हां - मैं यही सोच रहा था - एक उपयोगकर्तास्पेस प्रोग्राम के रूप में, मुझे परवाह नहीं है कर्नेल - केवल libc। लेकिन निश्चित रूप से, libc को कर्नेल के बारे में ध्यान रखना चाहिए, क्योंकि यह कर्नेल के साथ उपयोगकर्ता स्थान पुल करता है।तो, वास्तव में, संख्या कर्नेल संस्करण है जिसे libc के खिलाफ संकलित किया गया था, जो विक्रेता से आता है (इस मामले में फेडोरा)। आपके समय के लिए धन्यवाद –