That’s all. I just found this in a random script. Generates a random UUID every time it’s called. I didn’t know.
Of course I can also use uuidgen or pipe /dev/(u)random into something to get a random alphanumeric string - but this is built right into the kernel!
In /proc/sys/kernel/random/, there’s also boot_id which seems to do the same is static, and some tweakable parameters.
❤️🐧
boot_idseems to be static, probably set at boot.
So don’t use it for a random uuid.it’s fine as long as you reboot before each call
Oops you’re correct. Editing OP.
That’s what you get when you define a file system as “a system that names things”.
deleted by creator
Yeah but please don’t actually use this. Use a proper UUID library that works cross-platform and lets you choose the UUID type and can be seeded etc.
Can you explain?
Use for what?
Also it is being seeded, according to the fileurandom_min_reseed_secswhich is also writeable. Here are the other files:-r--r--r-- 1 root root 0 25. 5. 11:13 boot_id -r--r--r-- 1 root root 0 25. 5. 11:19 entropy_avail -r--r--r-- 1 root root 0 25. 5. 11:19 poolsize -rw-r--r-- 1 root root 0 25. 5. 11:19 urandom_min_reseed_secs -r--r--r-- 1 root root 0 25. 5. 11:19 uuid -rw-r--r-- 1 root root 0 25. 5. 11:19 write_wakeup_thresholdedit: the type is always DCE/random
There are a few reasons you shouldn’t use this in proper programs. If you’re the sort of person that thinks hacky Bash scripts are acceptable then sure, use it there.
- It isn’t cross-platform. Not available on Mac/Windows.
- There are several types of UUID with different properties. This doesn’t let you choose which one to use.
- To make programs deterministic (really useful for testing!) you want to be able to seed all their randomness with a specific seed so that it generates the same UUID each time you run it. (Obviously in normal use you would use a random seed.)
I’ve used this in some bash scripts, very useful!
That’s what I mean. No more searching for ways to create shell-friendly randomness ($RANDOM does not always cut it).
Thank you so much for sharing this!
Interesting,
non-scientific speed test:kernel 6.1.0-37-amd64:
$ time for i in $(seq 1 100000); do cat /proc/sys/kernel/random/uuid > /dev/null; done real 3m53,388s user 1m37,366s sys 2m13,847s $ for i in $(seq 1 100000); do cat /proc/sys/kernel/random/uuid ; done | wc -l 100000vs.
uuid1.6.2-1.5+b11:$ time for i in $(seq 1 100000); do uuid -v4 > /dev/null; done real 4m44,854s user 1m37,867s sys 3m4,414s $ for i in $(seq 1 100000); do uuid -v4 ; done | wc -l 100000EDIT: I’m blind (wrong result).
See also: /dev/null
It’s basically a black hole where you can throw anything.
Yes, but what if it were a subscription? May I present: /dev/null-as-a-Service.
The most secure Bitcoin endpoint yet!
lol.
Okay, let’s be honest, it’s basically a crappy Pentium 4 box with Debian and nginx installed.







