catコマンドだけでUUID4を生成できる不思議

Linuxで/dev/urandomを激しく読みまくる処理をさせるため、エントロピーを確認しようと思い立ち、cat /proc/sys/kernel/random/ まで打ち込んで、はてエントロピーはどのファイルで確認できるんだっけ? ということでtabキーでファイル名を確認しようとした。

$ cat /proc/sys/kernel/random/
boot_id                 poolsize                uuid
entropy_avail           read_wakeup_threshold   write_wakeup_threshold

ふむ、entropy_availだったね。
…なのだが、すごく気になるファイル名が。uuidって?
まさか、と思った次の瞬間にやってしまった。

$ cat /proc/sys/kernel/random/uuid
d0e522f7-217a-4c24-95d2-ec83a00ce173

こ、これはUUID4! なんとcatコマンドだけでUUID4が生成できる!
ちゃんと毎回違うのが返るのかチェック。

$ cat /proc/sys/kernel/random/uuid
c78913b7-2a6a-43dd-8e49-092270436f60
$ cat /proc/sys/kernel/random/uuid
e385571b-9f62-4015-9202-e85f9b899fc5
$ cat /proc/sys/kernel/random/uuid
c76dff26-b918-42ed-8784-9b5e58d0ac3e
$ cat /proc/sys/kernel/random/uuid
1bf58af5-abe0-4ecd-aacb-eb3c4df3b4c6
$ cat /proc/sys/kernel/random/uuid
098e7ed1-4e55-445d-a4e1-dcbbc9a8c13c

すげー、ちゃんとUUID4だ。
ここまで来ると、ちゃんと/dev/urandomあたりを使って生成しているか気になりますね。
つーことで、UUID4生成前のentropy_availの値を見てみた。

$ cat /proc/sys/kernel/random/entropy_avail
2816
$ cat /proc/sys/kernel/random/uuid
bbedd745-6d4f-486b-bd02-c3c16dbf3e5c
$ cat /proc/sys/kernel/random/uuid
de5e6910-3fc4-4931-b809-8acf1f315710
$ cat /proc/sys/kernel/random/uuid
df24e0a8-fb8f-465a-b539-4a6e64d73e55
$ cat /proc/sys/kernel/random/entropy_avail
1536

値が2816→1536と減ったので、きっと/dev/urandomあたりから作ってるくさいね。
さすがにカーネルソース読んで確認する元気はないので、それは元気な若者に任せますw

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)