Saya bisa mengatakan "GUID", saya tidak bisa mengatakan "UUID".
Hardwareguy
48
Saya mengucapkan UUID sebagai "Anda-wid"
Matt Greer
106
Aku berkata "kamu-kamu-aku-dee", tapi aku bukan penutur asli ...
Wilt
20
Spesifikasi UUID ( RFC-4122 ) mengatakan secara abstrak: Spesifikasi ini mendefinisikan ruang nama Sumber Daya Seragam untuk UUID (Pengidentifikasi Unik Universal), juga dikenal sebagai GUID (Pengidentifikasi Unik Global)
Tom
89
UUID unik secara universal (lingkup-semesta) sedangkan GUID hanya unik secara global (lingkup-dunia). Tidak ada yang unik multiversal, yaitu mereka bukan BANYAK. Ini berarti bahwa pada prinsipnya Anda tidak boleh menggunakan GUIDs secara antarplanet. Selain itu, mereka cukup banyak dipertukarkan.
rsp
Jawaban:
817
The jawaban sederhana adalah: tidak ada perbedaan , mereka adalah hal yang sama. Perlakukan mereka sebagai nilai 16 byte (128 bit) yang digunakan sebagai nilai unik. Dalam Microsoft-Speak mereka disebut GUID, tetapi menyebutnya sebagai UUID ketika tidak menggunakan Microsoft-Speak.
Bahkan penulis spesifikasi UUID dan Microsoft mengklaim mereka adalah sinonim:
Dari pengantar IETF RFC 4122 " Pengidentifikasi Unik Universal (UUID) URN Namespace ": "namespace Nama Sumber Daya Seragam untuk UUID (Pengenal Unik Unik), juga dikenal sebagai GUID (Pengidentifikasi Unik Global)."
Dan Microsoft bahkan mengklaim GUID ditentukan oleh UUID RFC: "Dalam pemrograman Microsoft Windows dan sistem operasi Windows, pengidentifikasi unik global (GUID), sebagaimana ditentukan dalam [RFC4122], adalah ... Istilah pengidentifikasi unik universal (UUID ) terkadang digunakan dalam spesifikasi protokol Windows sebagai sinonim untuk GUID. "
Tetapi jawaban yang benar tergantung pada apa artinya pertanyaan itu ketika mengatakan "UUID" ...
Bagian pertama tergantung pada apa yang dipikirkan penanya ketika mereka mengatakan "UUID".
Klaim Microsoft menyiratkan bahwa semua UUID adalah GUID. Tetapi apakah semua GUID benar-benar UUID? Yaitu, apakah set semua UUID hanya subset yang tepat dari set semua GUID, atau apakah set yang sama persis?
Melihat rincian RFC 4122, ada empat "varian" UUID yang berbeda. Ini sebagian besar karena pengidentifikasi 16 byte tersebut digunakan sebelum spesifikasi tersebut disatukan dalam pembuatan spesifikasi UUID. Dari bagian 4.1.1 dari RFC 4122 , empat varian UUID adalah:
Kompatibilitas mundur, Sistem Komputasi Jaringan
The varian ditentukan dalam RFC 4122 (yang ada lima sub-varian, yang disebut "versi")
Dicadangkan, kompatibilitas mundur Microsoft Corporation
Dicadangkan untuk definisi masa depan.
Menurut RFC 4122, semua varian UUID adalah "UUID nyata", maka semua GUID adalah UUID nyata. Untuk pertanyaan literal "apakah ada perbedaan antara GUID dan UUID" jawabannya pasti tidak untuk RFC 4122 UUID: tidak ada perbedaan (tetapi tergantung pada bagian kedua di bawah).
Tetapi tidak semua GUID adalah varian 2 UUID (mis. Microsoft COM memiliki GUID yang merupakan varian 3 UUID). Jika pertanyaannya adalah "apakah ada perbedaan antara GUID dan varian 2 UUID", maka jawabannya adalah ya - mereka bisa berbeda. Seseorang yang mengajukan pertanyaan mungkin tidak tahu tentang varian dan mereka mungkin hanya memikirkan varian 2 UUID ketika mereka mengatakan kata "UUID" (misalnya mereka secara samar-samar mengetahui alamat MAC + waktu dan bentuk algoritma acak nomor UUID, yang keduanya versi dari varian 2). Dalam hal ini, jawabannya adalah ya berbeda .
Jadi jawabannya, sebagian, tergantung pada apa yang dipikirkan orang yang bertanya ketika mereka mengucapkan kata "UUID". Apakah maksudnya varian 2 UUID (karena itu adalah satu-satunya varian yang mereka ketahui) atau semua UUID?
Bagian kedua tergantung pada spesifikasi mana yang digunakan sebagai definisi UUID.
Jika Anda berpikir itu membingungkan, baca ITU-T X.667 ISO / IEC 9834-8: 2004 yang seharusnya disejajarkan dan sepenuhnya kompatibel secara teknis dengan RFC 4122 . Ini memiliki kalimat tambahan dalam Klausul 11.2 yang mengatakan, "Semua UUID yang sesuai dengan Rekomendasi ini | Standar Internasional harus memiliki bit varian dengan bit 7 dari oktet 7 set ke 1 dan bit 6 dari oktet 7 set ke 0". Yang berarti bahwa hanya varian 2 UUID yang sesuai dengan Standar tersebut (kedua nilai bit itu berarti varian 2). Jika itu benar, maka tidak semua GUID memenuhi UUID ITU-T / ISO / IEC, karena ITID UUU ITU-T / ISO / IEC yang sesuai hanya dapat menjadi nilai varian 2.
Oleh karena itu, jawaban sebenarnya juga tergantung pada spesifikasi UUID yang ditanyakan. Dengan asumsi kita jelas berbicara tentang semua UUID dan bukan hanya varian 2 UUID: tidak ada perbedaan antara GUID dan UUET IETF, tapi ya perbedaan antara GUID dan mematuhi UUID ITU-T / ISO / IEC!
Pengkodean biner bisa berbeda
Ketika dikodekan dalam biner (sebagai lawan dari format teks yang dapat dibaca manusia), GUID dapat disimpan dalam struktur dengan empat bidang berbeda sebagai berikut. Format ini berbeda dari standar UUID hanya dalam urutan byte dari 3 bidang pertama.
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
Istilah GUID biasanya mengacu pada penerapan Microsoft terhadap standar Pengenal Unik Dunia (UUID).
Kutipan yang diperbarui dari artikel Wikipedia yang sama:
RFC 4122 sendiri menyatakan bahwa UUID "juga dikenal sebagai GUID". Semua ini menunjukkan bahwa "GUID", sementara awalnya merujuk pada varian UUID yang digunakan oleh Microsoft, telah menjadi hanya nama alternatif untuk UUID ...
Sama seperti microsoft untuk mengambil sesuatu yang bekerja di mana-mana (alam semesta) dan membuatnya bekerja dalam subset yang sangat kecil (dunia) :)
Gus
33
Perhatikan bahwa jika Anda ingin mengonversi dari representasi binari GUID Microsoft ke UUID standar, Anda harus membalik endianness dari tiga (dari empat) bidang data pertama sebagaimana dirinci dalam bagian "Penyandian biner" di sini: en.wikipedia.org/ wiki / Globally_unique_identifier
Formulir
87
Inilah sebabnya mengapa astronot tidak diizinkan untuk menginstal Windows di ISS.
intuited
10
@bdukes Sepertinya Wikipedia telah mengubah apa yang Anda sebut sebagai pernyataan mereka. Sekarang berbunyiThe term "GUID" typically refers to various implementations of the universally unique identifier (UUID) standard.
Khadim Ali
13
Tidak juga. GUID lebih Microsoft-sentris sedangkan UUID digunakan lebih luas (misalnya, seperti dalam urn: uuid: skema URN, dan di CORBA).
GUID telah lama digunakan di area yang tidak memiliki nilai 128-bit dengan cara yang sama dengan UUID. Misalnya, spesifikasi RSS mendefinisikan GUID sebagai string yang Anda pilih, asalkan unik, dengan atribut "isPermalink" untuk menentukan bahwa nilai yang Anda gunakan hanyalah tautan permanen kembali ke item yang disindikasikan.
Ini hanya untuk representasi tekstual dari GUID. Struktur sebenarnya berbeda.
anonim
-2
Satu perbedaan antara GUID di SQL Server dan UUID di PostgreSQL adalah huruf besar; Output SQL Server lebih tinggi sementara output PostgreSQL lebih rendah.
Nilai heksadesimal "a" hingga "f" adalah output sebagai karakter huruf kecil dan tidak sensitif huruf pada input. - rfc4122 # section-3
Jawaban:
The jawaban sederhana adalah: tidak ada perbedaan , mereka adalah hal yang sama. Perlakukan mereka sebagai nilai 16 byte (128 bit) yang digunakan sebagai nilai unik. Dalam Microsoft-Speak mereka disebut GUID, tetapi menyebutnya sebagai UUID ketika tidak menggunakan Microsoft-Speak.
Bahkan penulis spesifikasi UUID dan Microsoft mengklaim mereka adalah sinonim:
Dari pengantar IETF RFC 4122 " Pengidentifikasi Unik Universal (UUID) URN Namespace ": "namespace Nama Sumber Daya Seragam untuk UUID (Pengenal Unik Unik), juga dikenal sebagai GUID (Pengidentifikasi Unik Global)."
Dari Rekomendasi Internasional ITU-T X.667, Standar Internasional ISO / IEC 9834-8: 2004 : "UUID juga dikenal sebagai Pengidentifikasi Unik Global (GUID), tetapi istilah ini tidak digunakan dalam Rekomendasi ini."
Dan Microsoft bahkan mengklaim GUID ditentukan oleh UUID RFC: "Dalam pemrograman Microsoft Windows dan sistem operasi Windows, pengidentifikasi unik global (GUID), sebagaimana ditentukan dalam [RFC4122], adalah ... Istilah pengidentifikasi unik universal (UUID ) terkadang digunakan dalam spesifikasi protokol Windows sebagai sinonim untuk GUID. "
Tetapi jawaban yang benar tergantung pada apa artinya pertanyaan itu ketika mengatakan "UUID" ...
Bagian pertama tergantung pada apa yang dipikirkan penanya ketika mereka mengatakan "UUID".
Klaim Microsoft menyiratkan bahwa semua UUID adalah GUID. Tetapi apakah semua GUID benar-benar UUID? Yaitu, apakah set semua UUID hanya subset yang tepat dari set semua GUID, atau apakah set yang sama persis?
Melihat rincian RFC 4122, ada empat "varian" UUID yang berbeda. Ini sebagian besar karena pengidentifikasi 16 byte tersebut digunakan sebelum spesifikasi tersebut disatukan dalam pembuatan spesifikasi UUID. Dari bagian 4.1.1 dari RFC 4122 , empat varian UUID adalah:
Menurut RFC 4122, semua varian UUID adalah "UUID nyata", maka semua GUID adalah UUID nyata. Untuk pertanyaan literal "apakah ada perbedaan antara GUID dan UUID" jawabannya pasti tidak untuk RFC 4122 UUID: tidak ada perbedaan (tetapi tergantung pada bagian kedua di bawah).
Tetapi tidak semua GUID adalah varian 2 UUID (mis. Microsoft COM memiliki GUID yang merupakan varian 3 UUID). Jika pertanyaannya adalah "apakah ada perbedaan antara GUID dan varian 2 UUID", maka jawabannya adalah ya - mereka bisa berbeda. Seseorang yang mengajukan pertanyaan mungkin tidak tahu tentang varian dan mereka mungkin hanya memikirkan varian 2 UUID ketika mereka mengatakan kata "UUID" (misalnya mereka secara samar-samar mengetahui alamat MAC + waktu dan bentuk algoritma acak nomor UUID, yang keduanya versi dari varian 2). Dalam hal ini, jawabannya adalah ya berbeda .
Jadi jawabannya, sebagian, tergantung pada apa yang dipikirkan orang yang bertanya ketika mereka mengucapkan kata "UUID". Apakah maksudnya varian 2 UUID (karena itu adalah satu-satunya varian yang mereka ketahui) atau semua UUID?
Bagian kedua tergantung pada spesifikasi mana yang digunakan sebagai definisi UUID.
Jika Anda berpikir itu membingungkan, baca ITU-T X.667 ISO / IEC 9834-8: 2004 yang seharusnya disejajarkan dan sepenuhnya kompatibel secara teknis dengan RFC 4122 . Ini memiliki kalimat tambahan dalam Klausul 11.2 yang mengatakan, "Semua UUID yang sesuai dengan Rekomendasi ini | Standar Internasional harus memiliki bit varian dengan bit 7 dari oktet 7 set ke 1 dan bit 6 dari oktet 7 set ke 0". Yang berarti bahwa hanya varian 2 UUID yang sesuai dengan Standar tersebut (kedua nilai bit itu berarti varian 2). Jika itu benar, maka tidak semua GUID memenuhi UUID ITU-T / ISO / IEC, karena ITID UUU ITU-T / ISO / IEC yang sesuai hanya dapat menjadi nilai varian 2.
Oleh karena itu, jawaban sebenarnya juga tergantung pada spesifikasi UUID yang ditanyakan. Dengan asumsi kita jelas berbicara tentang semua UUID dan bukan hanya varian 2 UUID: tidak ada perbedaan antara GUID dan UUET IETF, tapi ya perbedaan antara GUID dan mematuhi UUID ITU-T / ISO / IEC!
Pengkodean biner bisa berbeda
Ketika dikodekan dalam biner (sebagai lawan dari format teks yang dapat dibaca manusia), GUID dapat disimpan dalam struktur dengan empat bidang berbeda sebagai berikut. Format ini berbeda dari standar UUID hanya dalam urutan byte dari 3 bidang pertama.
sumber
GUID adalah implementasi Microsoft dari standar UUID.
Per Wikipedia :
Kutipan yang diperbarui dari artikel Wikipedia yang sama:
sumber
The term "GUID" typically refers to various implementations of the universally unique identifier (UUID) standard.
Tidak juga. GUID lebih Microsoft-sentris sedangkan UUID digunakan lebih luas (misalnya, seperti dalam urn: uuid: skema URN, dan di CORBA).
sumber
GUID telah lama digunakan di area yang tidak memiliki nilai 128-bit dengan cara yang sama dengan UUID. Misalnya, spesifikasi RSS mendefinisikan GUID sebagai string yang Anda pilih, asalkan unik, dengan atribut "isPermalink" untuk menentukan bahwa nilai yang Anda gunakan hanyalah tautan permanen kembali ke item yang disindikasikan.
sumber
GUID
Representasi tekstual Microsoft dapat berupa UUID yang dikelilingi oleh dua kurung kurawal{}
.sumber
Satu perbedaan antara GUID di SQL Server dan UUID di PostgreSQL adalah huruf besar; Output SQL Server lebih tinggi sementara output PostgreSQL lebih rendah.
Nilai heksadesimal "a" hingga "f" adalah output sebagai karakter huruf kecil dan tidak sensitif huruf pada input. - rfc4122 # section-3
sumber