Linux Kernel Development Workflow: Testing Changes in a Virtual Machine

I think we can all agree that the faster a code-compile-test development cycle is, the better. Working on an operating system kernel like Linux throws a bit of a wrench in the development cycle that most of us are used to simply because Linux expects to be driving some hardware! This means that the kernel … Continue reading Linux Kernel Development Workflow: Testing Changes in a Virtual Machine

Deploying the Telegraf InfluxDB Grafana (TIG) Stack with Docker to Monitor a Linux Host

A screenshot of the "Host Dashboard" Grafana dashboard.

So I set up an old Dell Optiplex 7010 to be my home Linux development server and decided to use that as an opportunity to start learning Docker so I used that to deploy an IRC bouncer onto my home server. Obviously, the next thing to do would be to deploy monitoring software so that … Continue reading Deploying the Telegraf InfluxDB Grafana (TIG) Stack with Docker to Monitor a Linux Host

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 … Continue reading How the Linux Kernel Detects PCI Devices and Pairs Them with Their Drivers

Lessons Learned From an Open Source Capstone Project

The last term of my undergraduate Computer Science degree is almost over. Yay! My software engineering capstone project also comes to an academic close in a matter of days and I wanted to take a moment to reflect on some of the key lessons that I’ve learned from this entire process. For the uninitiated, Computer … Continue reading Lessons Learned From an Open Source Capstone Project