मैं देख रहा हूँ कि इन 2 योगों को चारों ओर फेंक दिया गया था, और मैं सोच रहा था कि क्या कोई GUID और UUID के बीच कोई अंतर है?
मैं देख रहा हूँ कि इन 2 योगों को चारों ओर फेंक दिया गया था, और मैं सोच रहा था कि क्या कोई GUID और UUID के बीच कोई अंतर है?
जवाबों:
इसका सरल उत्तर है: कोई अंतर नहीं है, वे एक ही बात कर रहे हैं। उन्हें एक 16 बाइट (128 बिट) मान के रूप में मानें जो एक अद्वितीय मान के रूप में उपयोग किया जाता है। Microsoft-Speak में उन्हें GUID कहा जाता है, लेकिन Microsoft-Speak का उपयोग नहीं करने पर उन्हें UUIDs कहते हैं।
यहां तक कि यूयूआईडी विनिर्देश और माइक्रोसॉफ्ट के लेखकों का दावा है कि वे समानार्थक हैं:
IETF RFC 4122 के परिचय से " एक यूनिवर्सली यूनिक IDentifier (UUID) URN Namespace ": "UUIDs के लिए एक यूनिफ़ॉर्म रिसोर्स नाम नेमस्पेस (यूनिवर्सली यूनिक IDentifier), जिसे GUID (ग्लोबली यूनिक IDentifier) भी कहा जाता है।"
से आईटीयू आयकर सिफारिश X.667, आईएसओ / आईईसी 9834-8: 2004 अंतर्राष्ट्रीय मानक : "UUIDs भी विश्व स्तर पर अद्वितीय पहचानकर्ता (GUIDs) के रूप में जाना जाता है, लेकिन इस शब्द का इस सिफारिश में नहीं किया जाता है।"
और Microsoft का यह भी दावा है कि एक GUID UUID RFC द्वारा निर्दिष्ट किया गया है: "Microsoft Windows प्रोग्रामिंग और विंडोज ऑपरेटिंग सिस्टम में, एक विश्व स्तर पर अद्वितीय पहचानकर्ता (GUID), जैसा कि [RFC4122] में निर्दिष्ट है, ... सार्वभौमिक रूप से अद्वितीय पहचानकर्ता (UUID) है। ) को कभी-कभी GUID के पर्याय के रूप में Windows प्रोटोकॉल विनिर्देशों में उपयोग किया जाता है। "
लेकिन सही उत्तर इस बात पर निर्भर करता है कि प्रश्न का अर्थ क्या है जब वह "यूयूआईडी" कहता है ...
पहला भाग इस बात पर निर्भर करता है कि पूछने वाला क्या सोच रहा है जब वे "यूयूआईडी" कह रहे हैं।
Microsoft का दावा है कि सभी UUIDs GUID हैं। लेकिन क्या सभी GUIDs वास्तविक UUID हैं? यही है, क्या सभी यूयूआईडी का सेट सभी GUID के सेट का एक उचित उपसमूह है, या यह सटीक सेट है?
आरएफसी 4122 के विवरण को देखते हुए, यूयूआईडी के चार अलग-अलग "वेरिएंट" हैं। यह ज्यादातर इसलिए है क्योंकि यूयूआईडी विनिर्देशन के निर्माण में उन विशिष्टताओं को एक साथ लाने से पहले ऐसे 16 बाइट पहचानकर्ता उपयोग में थे। RFC 4122 की धारा 4.1.1 से , UUID के चार संस्करण हैं:
RFC 4122 के अनुसार, सभी UUID वेरिएंट "वास्तविक UUID" हैं, फिर सभी GUID वास्तविक UUID हैं। शाब्दिक प्रश्न के लिए "GUID और UUID के बीच कोई अंतर है" जवाब निश्चित रूप से RFC 4122 UUIDs के लिए नहीं है : कोई अंतर नहीं (लेकिन नीचे दूसरे भाग के अधीन)।
लेकिन सभी GUIDs वैरिएंट 2 UUIDs नहीं हैं (जैसे Microsoft COM में GUID हैं जो वेरिएंट 3 UUIDs हैं)। यदि प्रश्न "GUID और संस्करण 2 UUIDs के बीच कोई अंतर है", तो उत्तर हां में होगा - वे भिन्न हो सकते हैं। प्रश्न पूछने वाला व्यक्ति शायद वेरिएंट के बारे में नहीं जानता है और हो सकता है कि वह केवल वेरिएंट 2 यूयूआईडी के बारे में सोच रहा हो जब वे "यूयूआईडी" शब्द कहते हैं (उदाहरण के लिए वे मैक पते + समय और यूयूआईडी के यादृच्छिक संख्या एल्गोरिदम रूपों के बारे में जानते हैं, जो दोनों संस्करणों की संस्करण 2)। किस मामले में, उत्तर हां अलग है ।
तो, उत्तर, भाग में, यह पूछने पर निर्भर करता है कि पूछने वाला व्यक्ति "यूयूआईडी" शब्द कहने पर क्या सोच रहा है। क्या उनका मतलब वेरिएंट 2 यूयूआईडी है (क्योंकि वह एकमात्र वेरिएंट है जिससे वे परिचित हैं) या सभी यूयूआईडी?
दूसरा भाग इस बात पर निर्भर करता है कि UUID की परिभाषा के रूप में किस विनिर्देशन का उपयोग किया जा रहा है।
यदि आपको लगता है कि भ्रमित था, तो ITU-T X.667 ISO / IEC 9834-8: 2004 पढ़ें जो कि RFC 4122 के साथ संरेखित और पूरी तरह से तकनीकी रूप से संगत माना जाता है । यह खंड 11.2 में एक अतिरिक्त वाक्य है, जो कहता है, "इस सिफारिश के अनुरूप सभी यूयूआईडीएस हैं। अंतर्राष्ट्रीय मानक में 7 बिट्स ऑक्टेट 7 सेट के 1 और बिट 6 ऑक्टेट 7 सेट से 0 के बिट वाले संस्करण होंगे"। जिसका मतलब है कि केवल वेरिएंट 2 यूयूआईडी उस स्टैंडर्ड के अनुरूप है (उन दो बिट वैल्यू का मतलब वेरिएंट 2 है)। यदि यह सच है, तो सभी GUIDs ITU-T / ISO / IEC UUIDs के अनुरूप नहीं हैं, क्योंकि अनुरूप ITU-T / ISO / IEC UUIDs केवल 2 संस्करण हो सकते हैं।
इसलिए, वास्तविक उत्तर इस बात पर भी निर्भर करता है कि यूयूआईडी के किस विनिर्देश के बारे में प्रश्न पूछ रहा है। हम स्पष्ट रूप से सभी UUIDs के बारे में बात कर रहे हैं और सिर्फ भिन्न नहीं 2 UUIDs मान लिया जाये कि: वहाँ है कोई फर्क नहीं GUID और IETF की UUIDs के बीच है, लेकिन हाँ अंतर GUID और के बीच अनुरूप आईटीयू-टी / आईएसओ / आईईसी के UUIDs!
बाइनरी एनकोडिंग भिन्न हो सकते हैं
जब बाइनरी में एन्कोड किया गया (मानव-पठनीय पाठ प्रारूप के विपरीत), GUID को चार अलग-अलग क्षेत्रों के साथ एक संरचना में संग्रहीत किया जा सकता है। यह प्रारूप केवल पहले 3 फ़ील्ड के बाइट क्रम में UUID मानक से अलग है ।
Bits Bytes Name Endianness Endianness
(GUID) RFC 4122
32 4 Data1 Native Big
16 2 Data2 Native Big
16 2 Data3 Native Big
64 8 Data4 Big Big
GUID Microsoft का UUID मानक का कार्यान्वयन है।
प्रति विकिपीडिया :
GUID शब्द का अर्थ आमतौर पर Microsoft द्वारा यूनिकली आइडेंटिफ़ायर (UUID) मानक के कार्यान्वयन से है ।
उसी विकिपीडिया लेख से एक अद्यतन उद्धरण:
RFC 4122 में ही कहा गया है कि UUIDs को "GUIDs" के रूप में भी जाना जाता है। यह सब बताता है कि "GUID", मूल रूप से Microsoft द्वारा उपयोग किए जाने वाले UUID के एक प्रकार का उल्लेख करते हुए, UUID के लिए केवल एक वैकल्पिक नाम बन गया है ...
The term "GUID" typically refers to various implementations of the universally unique identifier (UUID) standard.
ज़रुरी नहीं। GUID अधिक Microsoft-केंद्रित है जबकि UUID का अधिक व्यापक रूप से उपयोग किया जाता है (जैसे, कलश में: uuid: URN योजना और CORBA में)।
GUID का उन क्षेत्रों में लंबे समय तक उपयोग होता है जहां यह आवश्यक नहीं है कि UUID के समान ही 128-बिट मान हो। उदाहरण के लिए, RSS विनिर्देश GUIDs को आपके चयन के किसी भी स्ट्रिंग होने के लिए परिभाषित करता है , जब तक कि यह अद्वितीय है, एक ".Permalink" विशेषता के साथ यह निर्दिष्ट करने के लिए कि आप जिस मूल्य का उपयोग कर रहे हैं वह केवल आइटम के सिंडिकेटेड होने के लिए एक Permalink है।
माइक्रोसॉफ्ट का GUID
शाब्दिक प्रतिनिधित्व यूयूआईडी के रूप में हो सकता है जो दो घुंघराले ब्रेसिज़ से घिरा हो {}
।
SQL सर्वर में GUID और PostgreSQL में UUID के बीच एक अंतर पत्र मामला है; SQL सर्वर आउटपुट ऊपरी जबकि PostgreSQL आउटपुट कम है।
हेक्साडेसिमल मान "ए" के माध्यम से "एफ" निचले मामले के पात्रों के रूप में आउटपुट होते हैं और इनपुट पर असंवेदनशील होते हैं। - rfc4122 # अनुभाग -3