මෙම අක්ෂර 2 වටා විසි වී ඇති බව මට පෙනේ, මම කල්පනා කළේ GUID සහ UUID අතර වෙනසක් තිබේද?
මෙම අක්ෂර 2 වටා විසි වී ඇති බව මට පෙනේ, මම කල්පනා කළේ GUID සහ UUID අතර වෙනසක් තිබේද?
Answers:
මෙම සරල පිළිතුරක් කිසි වෙනසක් **, ඒ එකම දේ වනුයේ: වේ.
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 හි ප්රභේද හතර නම්:
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
GUID යනු මයික්රොසොෆ්ට් විසින් UUID ප්රමිතිය ක්රියාත්මක කිරීමයි.
එක් විකිපීඩියා, නිදහස් විශ්වකෝෂය :
සාමාන්යයෙන් GUID යන්නෙන් අදහස් කරන්නේ මයික්රොසොෆ්ට් විශ්වීය අද්විතීය හඳුනාගැනීමේ (UUID) ප්රමිතිය ක්රියාත්මක කිරීමයි.
එම විකිපීඩියා ලිපියේ යාවත්කාලීන කළ උපුටා දැක්වීමක්:
RFC 4122 විසින්ම කියා සිටින්නේ UUIDs “GUIDs ලෙසද හැඳින්වෙන” බවයි. මේ සියල්ලෙන් ඇඟවෙන්නේ “GUID”, මුලින් මයික්රොසොෆ්ට් විසින් භාවිතා කරන UUID ප්රභේදයක් ගැන සඳහන් කරන අතර එය හුදෙක් UUID සඳහා විකල්ප නාමයක් බවට පත්ව ඇති බවයි…
The term "GUID" typically refers to various implementations of the universally unique identifier (UUID) standard.
ඇත්තෙන්ම නැහැ. GUID වඩාත් මයික්රොසොෆ්ට් කේන්ද්රීය වන අතර UUID වඩාත් පුළුල් ලෙස භාවිතා කරයි (උදා : urn: uuid: URN යෝජනා ක්රමය සහ CORBA හි).
UUID හා සමානවම බිට් 128 ක අගයක් අවශ්ය නොවන ප්රදේශවල GUID දිගු කලක් භාවිතා කරයි. නිදසුනක් ලෙස, RSS පිරිවිතරයන් GUIDs ඔබ තෝරා ගන්නා ඕනෑම නූලක් ලෙස අර්ථ දක්වයි , එය අද්විතීය වන තාක් කල්, "isPermalink" ගුණාංගයක් සහිතව, ඔබ භාවිතා කරන අගය සින්ඩිකේටනය කරන ලද අයිතමයට නැවත පර්මාලින්ක් එකක් බව සඳහන් කිරීමට.
SQL සේවාදායකයේ GUID සහ PostgreSQL හි UUID අතර එක් වෙනසක් වන්නේ අකුරු නඩුවයි; SQL සේවාදායකයේ ප්රතිදානය ඉහළ මට්ටමක පවතින අතර PostgreSQL ප්රතිදානයන් අඩු වේ.
"A" හරහා "f" හරහා ඇති ෂඩාස්රාකාර අගයන් කුඩා අකුරු ලෙස ප්රතිදානය වන අතර ආදානය මත අක්ෂර සංවේදී නොවේ. - rfc4122 # කොටස -3
මයික්රොසොෆ්ට් හි GUID
පෙළ නිරූපණය UUID ස්වරූපයෙන් වටකුරු වරහන් දෙකකින් වට විය {}
හැකිය.