GUID සහ UUID අතර වෙනසක් තිබේද?


879

මෙම අක්ෂර 2 වටා විසි වී ඇති බව මට පෙනේ, මම කල්පනා කළේ GUID සහ UUID අතර වෙනසක් තිබේද?


190
මට "GUID" යැයි පැවසිය හැකිය, මට "UUID" යැයි පැවසිය නොහැක.
දෘඩාංග

48
මම UUID උච්චාරණය කරන්නේ "ඔබ-පළල"
මැට් ග්‍රීර්

111
මම කියන්නේ "ඔබ-ඔබ-අයි-ඩී", නමුත් මම ස්වදේශීය කථිකයෙක් නොවේ ...
විල්ට්

21
UUID පිරිවිතර ( RFC-4122 ) සාරාංශයේ මෙසේ කියයි: මෙම පිරිවිතරයෙන් UUIDs (විශ්වීය අද්විතීය හැඳුනුම්පත) සඳහා වන ඒකාකාර සම්පත් නාම නාම අවකාශයක් අර්ථ දක්වයි, එය GUIDs ලෙසද හැඳින්වේ (ගෝලීයව අද්විතීය හැඳුනුම්පත)
ටොම්

5
@rsp - මම කැමතියි, නමුත් ක්වොන්ටම් පරිගණනය වේගයෙන් දෙයක් බවට පත්වෙමින් තිබෙන බව ඔබට මතක් විය, එබැවින් ඔබට කාරණයක් තිබිය හැකිය!
mc01

Answers:


836

මෙම සරල පිළිතුරක් කිසි වෙනසක් **, ඒ එකම දේ වනුයේ: වේ.

2020-08-20 යාවත්කාලීන කිරීම : GUIDs (මයික්‍රොසොෆ්ට් විසින් භාවිතා කරන පරිදි) සහ UUIDs (RFC4122 විසින් අර්ථ දක්වා ඇති පරිදි) සමාන පෙනුමක් ඇති අතර සමාන අරමුණු සඳහා සේවය කරන අතර, සියුම් නමුත් ඉඳහිට වැදගත් වෙනස්කම් තිබේ. නිශ්චිතවම, සමහර මයික්‍රොසොෆ්ට් GUID ලියකියවිලි ඕනෑම ස්ථානයක ඕනෑම හෙක්ස් ඉලක්කම් අඩංගු කිරීමට GUID වලට ඉඩ දෙන අතර RFC4122 සඳහා versionසහ variantක්ෂේත්‍ර සඳහා නිශ්චිත අගයන් අවශ්‍ය වේ . එසේම, [එම සබැඳිය අනුව], GUIDs සියල්ලම ඉහළ අක්ෂර විය යුතු අතර, UUIDs "කුඩා අකුරු ලෙස ප්‍රතිදානය විය යුතු අතර ආදානය පිළිබඳ සංවේදී නොවේ". මෙය කේත පුස්තකාල අතර නොගැලපීම් වලට හේතු විය හැක ( මෙවැනි ).

(මුල් පිළිතුර පහත දැක්වේ)


අද්විතීය අගයක් ලෙස භාවිතා කරන බයිට් 16 (බිටු 128) අගයක් ලෙස සලකන්න. මයික්‍රොසොෆ්ට්-කථනයේදී ඒවා GUID ලෙස හැඳින්වේ, නමුත් මයික්‍රොසොෆ්ට්-කථනය භාවිතා නොකරන විට ඒවා UUID ලෙස හඳුන්වන්න.

UUID පිරිවිතරයේ සහ මයික්‍රොසොෆ්ට් හි කතුවරුන් පවා ඒවා සමාන පද යැයි කියති:

  • IETF RFC 4122 හඳුන්වාදීමේ සිට " විශ්වීය අද්විතීය හැඳුනුම්පතක් (UUID) URN නාම අවකාශය": "UUIDs (විශ්වීය අද්විතීය හැඳුනුම්පත) සඳහා ඒකාකාරී සම්පත් නාම නාම අවකාශයක්, එය GUIDs (ගෝලීයව අද්විතීය හඳුනාගැනීමක්) ලෙසද හැඳින්වේ."

  • සිට 2004 ජාත්යන්තර ප්රමිති: ITU-T නිර්දේශය X.667, ISO / IEC 9834-8 : "UUIDs ද අනන්ය ලෙස හඳුනා ගැනීම (GUIDs) ලෙස හඳුන්වන අතර, නමුත් මෙම කාලීන මෙම නිර්දේශය භාවිතා කර නැත."

  • මයික්‍රොසොෆ්ට් පවා කියා සිටින්නේ UUID RFC විසින් GUID එකක් නියම කර ඇති බවයි: “මයික්‍රොසොෆ්ට් වින්ඩෝස් ක්‍රමලේඛන සහ වින්ඩෝස් මෙහෙයුම් පද්ධති වලදී, [RFC4122] හි නිශ්චිතව දක්වා ඇති පරිදි ගෝලීය වශයෙන් අද්විතීය හඳුනාගැනීමක් (GUID) යනු ... විශ්වීය අද්විතීය අනන්‍යතාවය (UUID) ) සමහර විට වින්ඩෝස් ප්‍රොටොකෝල් පිරිවිතරයන්හි GUID සඳහා සමාන පදයක් ලෙස භාවිතා කරයි.

නමුත් නිවැරදි පිළිතුර රඳා පවතින්නේ "UUID" යැයි කියන විට ප්‍රශ්නයෙහි තේරුම මතය ...

පළමු කොටස රඳා පවතින්නේ අසන්නා "UUID" යැයි පවසන විට ඔවුන් සිතන දේ මත ය.

මයික්‍රොසොෆ්ට් හිමිකම් පෑමෙන් ඇඟවෙන්නේ සියලුම UUIDs GUIDs බවයි. නමුත් සියලුම GUIDs සැබෑ UUID ද? එනම්, සියලුම UUIDs කට්ටලය සියලු GUIDs කට්ටලයේ නිසි උප කුලකයක්ද, නැතහොත් එය හරියටම එකම කට්ටලයක්ද?

RFC 4122 හි විස්තර දෙස බලන විට UUID වල වෙනස් "ප්‍රභේද" හතරක් ඇත. මෙයට බොහෝ දුරට හේතු වී ඇත්තේ UUID පිරිවිතරයක් නිර්මාණය කිරීමේදී එම පිරිවිතරයන් එකට ගෙන ඒමට පෙර එවැනි බයිට් හඳුනාගැනීම් 16 ක් භාවිතා කර තිබීමයි. RFC 4122 හි 4.1.1 වගන්තියේ සිට , UUID හි ප්‍රභේද හතර නම්:

  1. වෙන් කර ඇති, ජාල පරිගණක පද්ධතියේ පසුගාමී අනුකූලතාව
  2. මෙම ප්රභේද්යයක් RFC 4122 හි නිශ්චිතව දක්වා (ඉන් පහක් "සංස්කරණ" නමින් හඳුන්වන උප ප්රභේද, ඇත)
  3. වෙන් කර ඇති, මයික්‍රොසොෆ්ට් සංස්ථාවේ පසුගාමී අනුකූලතාව
  4. අනාගත අර්ථ දැක්වීම සඳහා වෙන් කර ඇත.

RFC 4122 ට අනුව, සියලුම UUID ප්‍රභේද "සැබෑ UUIDs" වේ, එවිට සියලුම GUIDs සැබෑ UUIDs වේ. “GUID සහ UUID අතර වෙනසක් තිබේද” යන වචනයේ පරිසමාප්ත අර්ථයෙන්ම RFC 4122 UUIDs සඳහා පිළිතුර නැත: වෙනසක් නැත (නමුත් පහත දෙවන කොටසට යටත්ව).

නමුත් සියලුම GUIDs ප්‍රභේද 2 UUIDs නොවේ (උදා: Microsoft COM හි GUIDs ඇත, ඒවා ප්‍රභේද 3 UUIDs වේ). ප්‍රශ්නය "GUID සහ 2 UUID ප්‍රභේද අතර වෙනසක් තිබේද" නම්, පිළිතුර ඔව් වනු ඇත - ඒවා වෙනස් විය හැකිය. ප්‍රශ්නය අසන කෙනෙකු බොහෝ විට ප්‍රභේද ගැන නොදන්නා අතර ඔවුන් "UUID" යන වචනය පවසන විට ප්‍රභේද 2 UUID ගැන පමණක් සිතනු ඇත (උදා: ඔවුන් MAC ලිපිනය + වේලාව සහ UUID හි අහඹු සංඛ්‍යා ඇල්ගොරිතම ආකාර ගැන නොපැහැදිලි ලෙස දනී. ප්‍රභේද 2 හි අනුවාද දෙකම වේ ). කුමන අවස්ථාවෙහිදී, පිළිතුර ඔව් වෙනස් වේ.

එබැවින් පිළිතුර, අර්ධ වශයෙන්, "UUID" යන වචනය පවසන විට අසන පුද්ගලයා සිතන දේ මත රඳා පවතී. ඔවුන් අදහස් කරන්නේ 2 UUID ප්‍රභේදය (ඔවුන් දන්නා එකම ප්‍රභේදය එය නිසා) හෝ සියලුම UUIDs ද?

දෙවන කොටස රඳා පවතින්නේ UUID හි අර්ථ දැක්වීම ලෙස භාවිතා කරන පිරිවිතරයන් මත ය.

එය අවුල් සහගත යැයි ඔබ සිතන්නේ නම්, ITFC-T X.667 ISO / IEC 9834-8: 2004 කියවන්න, එය පෙළගැස්විය යුතු අතර RFC 4122 සමඟ සම්පූර්ණයෙන්ම තාක්‍ෂණිකව අනුකූල වේ . එහි 11.2 වන වගන්තියේ අමතර වාක්‍යයක් ඇත, “මෙම නිර්දේශයට අනුකූල වන සියලුම යූඅයිඅයිඩී | එයින් අදහස් වන්නේ 2 UUID ප්‍රභේදය පමණක් එම ප්‍රමිතියට අනුකූල වන බවයි (එම බිටු අගයන් දෙකෙන් අදහස් වන්නේ ප්‍රභේදය 2). එය සත්‍ය නම්, සියලු GUIDs ITU-T / ISO / IEC UUIDs අනුකූල නොවේ, මන්ද අනුකූල ITU-T / ISO / IEC UUIDs විචල්‍ය 2 අගයන් පමණක් විය හැකි බැවිනි .

එමනිසා, සත්‍ය පිළිතුර රඳා පවතින්නේ ප්‍රශ්නය විමසන්නේ UUID හි පිරිවිතර මත ය. අපි පැහැදිලිවම කතා කරන්නේ සියලු UUIDs ගැන පමණක් නොව 2 UUID ප්‍රභේද ගැන පමණක් නොවේ: GUID සහ IETF හි UUIDs අතර වෙනසක් නැත , නමුත් ඔව් GUID සහ ITU-T / ISO / IEC හි UUIDs අනුකූල වීම අතර වෙනසක් !

ද්විමය කේතීකරණ වෙනස් විය හැකිය

ද්විමය වශයෙන් කේතනය කර ඇති විට (මිනිස් කියවිය හැකි පෙළ ආකෘතියට වෙනස්ව), GUID පහත දැක්වෙන පරිදි විවිධ ක්ෂේත්‍ර හතරක් සහිත ව්‍යුහයක ගබඩා කළ හැකිය . මෙම ආකෘතිය [UUID ප්‍රමිතිය] 8 ට වඩා වෙනස් වන්නේ පළමු ක්ෂේත්‍ර 3 හි බයිට් අනුපිළිවෙලට පමණි.

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

35
තෝරාගත් පිළිතුරට වඩා තොරතුරු. මම හිතන්නේ තෝරාගත් පිළිතුර ප්‍රශ්නයට නිරපේක්ෂ සරලම පිළිතුර වුවත්.
නිව් ඇලෙක්සැන්ඩ්‍රියා

3
පිළිතුරෙහි ඇතුළත් කර ඇති ද්විමය කේතීකරණ වගුව ඉතා ප්‍රයෝජනවත් වේ. Tnx
Luciano

2
'එන්ඩියන්ස්' ඉතා වැදගත් ය. ඔබ හැඳුනුම්පත බයිට් ලෙස ගබඩා කළහොත් ඔබට GUID සහ UUID වෙතින් වෙනස් ප්‍රති results ල ලැබෙනු ඇත.
කැලබසින්

හිතන්න, ජීවීන් 665 ක් තරම් ඉහළ මට්ටමක සිටින බව! මම මෙය ඉහළ නංවා නොගන්නේ කෙසේද?
හැකන් ලොට්විට්

662

GUID යනු මයික්‍රොසොෆ්ට් විසින් UUID ප්‍රමිතිය ක්‍රියාත්මක කිරීමයි.

එක් විකිපීඩියා, නිදහස් විශ්වකෝෂය :

සාමාන්‍යයෙන් GUID යන්නෙන් අදහස් කරන්නේ මයික්‍රොසොෆ්ට් විශ්වීය අද්විතීය හඳුනාගැනීමේ (UUID) ප්‍රමිතිය ක්‍රියාත්මක කිරීමයි.

එම විකිපීඩියා ලිපියේ යාවත්කාලීන කළ උපුටා දැක්වීමක්:

RFC 4122 විසින්ම කියා සිටින්නේ UUIDs “GUIDs ලෙසද හැඳින්වෙන” බවයි. මේ සියල්ලෙන් ඇඟවෙන්නේ “GUID”, මුලින් මයික්‍රොසොෆ්ට් විසින් භාවිතා කරන UUID ප්‍රභේදයක් ගැන සඳහන් කරන අතර එය හුදෙක් UUID සඳහා විකල්ප නාමයක් බවට පත්ව ඇති බවයි…


40
(ජී යනු ගෝලීයව නියෝජනය වේ)
ted.strauss

487
මයික්‍රොසොෆ්ට් සෑම තැනකම (විශ්වය) ක්‍රියා කරන දෙයක් ගෙන එය ඉතා කුඩා උප කුලකයක (ලෝකය) වැඩ කිරීමට සලස්වයි :)
ගුස්

33
ඔබට මයික්‍රොසොෆ්ට් හි GUID ද්විමය නිරූපණයෙන් සම්මත UUID බවට පරිවර්තනය කිරීමට අවශ්‍ය නම්, මෙහි “ද්විමය කේතීකරණ” කොටසේ විස්තර කර ඇති පරිදි පළමු (තුනෙන් හතරේ) දත්ත ක්ෂේත්‍රවල අන්තරායන් පෙරළීමට ඔබට සිදුවේ: en.wikipedia.org/ wiki / Globally_unique_identifier
ආකෘතිය

89
අයිඑස්එස් හි වින්ඩෝස් ස්ථාපනය කිරීමට ගගනගාමීන්ට ඉඩ නොදෙන්නේ මේ නිසා ය.
intuited

10
ubddukes පෙනෙන පරිදි විකිපීඩියාව ඔබ ඔවුන්ගේ ප්‍රකාශය ලෙස හැඳින්වූ දේ වෙනස් කර ඇත. එය දැන් කියවේThe term "GUID" typically refers to various implementations of the universally unique identifier (UUID) standard.
කදීම් අලි

14

ඇත්තෙන්ම නැහැ. GUID වඩාත් මයික්‍රොසොෆ්ට් කේන්ද්‍රීය වන අතර UUID වඩාත් පුළුල් ලෙස භාවිතා කරයි (උදා : urn: uuid: URN යෝජනා ක්‍රමය සහ CORBA හි).


1
මයික්‍රොසොෆ්ට් කේන්ද්‍රීයතාවයේ නිර්වචනය හා බලපෑම කුමක්ද?
කාල් රිච්ටර්

8

UUID හා සමානවම බිට් 128 ක අගයක් අවශ්‍ය නොවන ප්‍රදේශවල GUID දිගු කලක් භාවිතා කරයි. නිදසුනක් ලෙස, RSS පිරිවිතරයන් GUIDs ඔබ තෝරා ගන්නා ඕනෑම නූලක් ලෙස අර්ථ දක්වයි , එය අද්විතීය වන තාක් කල්, "isPermalink" ගුණාංගයක් සහිතව, ඔබ භාවිතා කරන අගය සින්ඩිකේටනය කරන ලද අයිතමයට නැවත පර්මාලින්ක් එකක් බව සඳහන් කිරීමට.


0

SQL සේවාදායකයේ GUID සහ PostgreSQL හි UUID අතර එක් වෙනසක් වන්නේ අකුරු නඩුවයි; SQL සේවාදායකයේ ප්‍රතිදානය ඉහළ මට්ටමක පවතින අතර PostgreSQL ප්‍රතිදානයන් අඩු වේ.

"A" හරහා "f" හරහා ඇති ෂඩාස්රාකාර අගයන් කුඩා අකුරු ලෙස ප්‍රතිදානය වන අතර ආදානය මත අක්ෂර සංවේදී නොවේ. - rfc4122 # කොටස -3


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.