While Tianocore EDKII still dominates the UEFI development world, there has been continuous effort to enable Rust for firmware development. But so far the tools involved have not been stabilised. We now started an effort to remedy this and get stable Rust support for UEFI targets.
The Meson Build System provides support for running on Microsoft Windows, including support for Microsoft Visual Studio C++. GitHub Actions provides public access to CI machines running Microsoft Windows. But trying to tie both together is not as straightforward as it sounds.
With dbus-broker we have introduced the resource-accounting of bus1 into the D-Bus world. We believe it greatly improves and strengthens the resource distribution of the D-Bus messages bus, and we have already found a handful of resource leaks that way. However, it can be a daunting task to solve resource exhaustion bugs, so I decided to describe the steps we took to resolve a recent resource-leak…
The ELF data format divides object files into segments and sections , which has for long caused confusion. Both terms segment and section can be used interchangeably in almost all cases in the English language ( [1] , [2] ). What is often overlooked is that the ELF specification explicitely meant both to mean almost the same. They merely provide two views of the same data, but use different terms…
Imagine a finite resource that you want to distribute amongst peers in a fair manner. If you know the number of peers to be n , the problem becomes trivial and you can assign every peer 1/n -th of the total. This way every peer gets the same amount, while no part of the resource stays unused. But what if the number of peers is only known retrospectively? That is, how many resources do you grant a…
The recommended way to link UEFI applications on linux was until now through GNU-EFI , a toolchain provided by the GNU Project that bridges from the ELF world into COFF/PE32+ . But why don’t we compile directly to native UEFI? A short dive into the past of GNU Toolchains , its remnants, and a surprisingly simple way out.
Almost everyone these days relies on continuous integration. And it seems, once you got accustomed to it, you never want to work without it again. Unfortunately, most CI systems lack cross-architecture capabilities. As a systems engineer with lots of C projects, I was desperately looking for a solution to run my tests on little-endian, big-endian, 32bit, and 64bit machines. So far, without any…
I recently had to assemble linux distribution images to be run in containers and virtual machines. While most package managers provide tools to bootstrap an entire distribution into a target directory (e.g., debootstrap , dnf --installroot , zypper , pacstrap , …), I needed to do that for foreign architectures. Fortunately, Fedora got me covered!
Later this year, on November 21, 2017, D-Bus will see its 15th birthday . An impressive age, only shy of the KDE and GNOME projects, whose collaboration inspired the creation of this independent IPC system. While still relied upon by the most recent KDE and GNOME releases, D-Bus is not free of criticism. Despite its age and mighty advocates, it never gained traction outside of its origins. On the…