Linux

I recently discovered Elvish, which is a shell perfectly suited to process structured data. In my case it is perfect to be used with varlink. Too bad elvish has no numeric type and can’t feed varlink with int and float, because to-json converts them to strings. To see what I […]

Chicken and Egg For a long time we tried to solve the early boot IPC problem. IPC problem you ask? Well, in the early boot phase we cannot talk D-BUS, because the daemon is not running yet, but to bring up the system, so that the D-BUS daemon can run […]

On modern CPUs, rust seems to perform very nicely with the thread context switches, at least when benchmarking an echo server. For that I also wrote an echo server benchmark client. The README.md of the server also contains some benchmark numbers.

People who want to secure their Fedora/RHEL system have to: add a BIOS password add a grub password add “rd.shell=0” to the kernel command line Anaconda does add “rd.shell=0” to the kernel command line automatically, if you setup the bootloader with a password.

When compiling systemd on rawhide, we noticed a significant slowdown in compile time. Investigating further, it turns out, that libtool forks an incredible amount of sed. Running perf showed 30% of the “make all” was spent in bash. strace showed an execve of sed with the same arguments 180,000 times!!!!! […]

Lately Kay Sievers and David Herrmann created a UEFI loader stub, which starts a linux kernel with an initrd and a kernel command line, which are COFF sections of the executable. This enables us to create single UEFI executable with a standard distribution kernel, a custom initrd and our own […]

If you want to bootstrap a distribution or want to rebuild it from the sources (SRPMS) to get the same binaries (think CentOS), you have to build the build tools and rebuild them with the built build tools, which have to be built with other build tools… My goal for […]

$ getconf _NPROCESSORS_ONLN returns the number of CPUs online Internally it is parsing /sys/devices/system/cpu/online, which can have the contents: 0-3,5,7-9. Better let getconf do all the counting for you. This is very useful, if you want to optimize the number of threads.