Popple v1.1.0 released

I normally don’t make any fanfare for one of my weekend projects, but I ended up having a lot of fun with this one, so what the hell. I’m happy to announce that Popple v1.1.0 has been tagged. Popple is a karma bot for Discord that I wrote as a way to gain some more …

sevctl available soon in Fedora 34

I am pleased to announce that sevctl will be available in the Fedora repositories starting with Fedora 34. Fedora is the first distribution to include sevctl in its repositories 🎉. sevctl is an administrative utility for managing the AMD Secure Encrypted Virtualization (SEV) platform, which is available on AMD’s EPYC processors. It makes many routine …

Booting Cloud Images with QEMU

Do you ever get frustrated with waiting for a heavy VM image to download or with installing operating systems onto virtual machines manually? It can start to feel cumbersome after a while, especially if you bring up and tear down lots of virtual machines as part of your workflow. It’d be nice if spawning a …

Hacktoberfest 2020 Was Not All Bad

Hacktoberfest 2020 had a rocky start. I’m not here to argue against any of the criticisms brought up by other members of the community. Their feedback is not unfounded. However, I don’t believe it was all bad. I signed one of my weekend projects up for Hacktoberfest to gain some more experience in a maintainer …

Test Driven Development in the Clang Compiler

A while back, I participated in a software engineering capstone with a group of other computer science students to complete my degree. Our project was to create a from-scratch implementation of grsecurity’s “randstruct” GCC plugin for the Clang compiler. Long story short, we ended up sending out a request for comments (RFC) on the initial …

How the Linux Kernel Detects PCI Devices and Pairs Them With Their Drivers

Have you ever wondered how Linux knows what PCI devices are plugged in? How does Linux know what driver to associate with the device when it detects it? In short, here’s what happens: During the kernel’s init process (init/main.c), various subsystems are brought up according to their “init levels.” Among these early subsystems are the …