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.

❤️🐧

  • lnxtx (xe/xem/xyr)@feddit.nl
    link
    fedilink
    English
    arrow-up
    2
    ·
    edit-2
    5 小时前

    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
    100000
    

    vs. uuid 1.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
    100000
    

    EDIT: I’m blind (wrong result).

  • timhh@programming.dev
    link
    fedilink
    arrow-up
    10
    arrow-down
    2
    ·
    1 天前

    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.

    • A_norny_mousse@feddit.orgOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      10 小时前

      Can you explain?
      Use for what?
      Also it is being seeded, according to the file urandom_min_reseed_secs which 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_threshold
      

      edit: the type is always DCE/random

    • A_norny_mousse@feddit.orgOP
      link
      fedilink
      arrow-up
      2
      ·
      edit-2
      9 小时前

      That’s what I mean. No more searching for ways to create shell-friendly randomness ($RANDOM does not always cut it).

      • A_norny_mousse@feddit.orgOP
        link
        fedilink
        arrow-up
        1
        ·
        5 小时前

        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.

      • A_norny_mousse@feddit.orgOP
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        9 小时前

        while :; do cat /proc/sys/kernel/random/uuid > /dev/null; done

        edit: on all cores for maximum “efficiency”

      • DaPorkchop_@lemmy.ml
        link
        fedilink
        arrow-up
        16
        ·
        1 天前

        Would have to be cat /proc/sys/kernel/random/uuid > /dev/null

        You can’t pipe to a file, only to programs, and since /dev/null isn’t an executable your command will simply give an error.

        To make it more clear, consider using dd, which lets you explicitly specify an input and output file. For example: dd if=/proc/sys/kernel/random/uuid of=/dev/sda1 wait shit that wasn’t the right output oh god oh fu

      • henfredemars@infosec.pub
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 天前

        The information will be evenly distributed upon its surface and some believe one day it will be be radiated back out into the rest of the system.

      • Hamartiogonic@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        1
        ·
        23 小时前

        That reminds me of the CPU stress test I ran many years ago.

        dd if=/dev/random of=/dev/null

        If you have 8 cores, just open 8 terminals, and run that code in each of them.

          • Hamartiogonic@sopuli.xyz
            link
            fedilink
            arrow-up
            1
            ·
            10 小时前

            Absolutely not, quite the opposite actually. However, the end result is close to 100% CPU load, which is good enough for some purposes. Let’s say you want to test the performance of your CPU cooler, or overclock stability, this should good enough. There are also dedicated tools for people with more advanced needs.

        • lime!@feddit.nu
          link
          fedilink
          English
          arrow-up
          2
          ·
          edit-2
          22 小时前
          for i in {1..n}  # where n == number of cores
          do
            dd if=/dev/urandom of=/dev/null &
          done
          
          # to stop:
          jobs -p | xargs kill
          
            • lime!@feddit.nu
              link
              fedilink
              English
              arrow-up
              1
              ·
              10 小时前

              the advantage of yours is that you can actually see the performance number afterwards.