It sounds nice, but can someone explain if there are any downsides?
It sounds nice, but can someone explain if there are any downsides?
on the upside, these changes often improve overall security of the code and are merged upstream so those using other OS's benefit.
Edit: To answer GP's question, you're probably already incurring a cache miss if you're pointer chasing so in most cases there should be no effect on performance.
From https://www.openbsd.org/innovations.html:
> Library order randomization: In rc(8), re-link libc.so, libcrypto, and ld.so on startup, placing the objects in a random order. Theo de Raadt and Robert Peichaer, May 2016, enabled by default since OpenBSD 6.0 and 6.2.
and
> Kernel relinking at boot: the .o files of the kernel are relinked in random order from a link-kit, before every reboot. This provides substantial interior randomization in the kernel's text and data segments for layout and relative branches/calls. Basically a unique address space for each kernel boot, similar to the userland fork+exec model described above but for the kernel. Theo de Raadt, June 2017.