What's Inside a Kernel Core Dump

29 February 2024

My article, again posted on the Oracle Linux Blog, goes into “excruciating detail” on the contents of kernel core dumps, or vmcores. It describes common data, metadata, and formats, as well as tools for introspecting, and of course debugging them.

Read more

My experience being blocked by Google Safe Browsing

12 November 2022

Since April of 2021, I’ve hosted a Mastodon server on the domain It’s mostly for me and friends I know personally – nothing like the bigger, public ones. Until the last week or two, the server was mostly dead. Then Elon finally bought Twitter, triggering a mass exodus from Twitter, right into Mastodon. Conveniently, my server was already there, so it was a nice place for me and my friends to jump right in and grab some popcorn while we all watch Twitter implode.

Read more

Unwinding a Stack by Hand with Frame Pointers and ORC

23 March 2022

My article, posted on the Oracle Linux Blog, goes in depth on how the Linux kernel creates stack traces at runtime. It describes the common frame pointer approach, as well as the newer approach for x86_64 called ORC, which allows omitting the frame pointer.

Read more

Use deadsnakes PPA on Ubuntu hirsute

21 June 2021

Today I upgraded a computer of mine from Ubuntu Groovy Gorilla (20.10) to Hirsute Hippo (21.04). The process was mostly painless, but I had to go through the standard process of evaluating each file in /etc/apt/sources.d/*.distUpgrade to determine how all of my PPAs or other software repositories needed to be updated. The one that took the most work was the Deadsnakes PPA.

Read more

When it comes to git history, less is more

15 June 2021

At a previous company, there was an “infamous” commit in our main repository. The commit was about 10 years old, and it replaced every tab with 4 spaces. When the commit was authored, the repository was likely in the hundreds of thousands, or maybe millions, of lines of code. For folks like me, who liked to go “spelunking” through git history, it was a frustrating barrier, but no more than a moderate frustration. It didn’t impact day-to-day work. After all, this repo was a regularly-deployed web application. Development happened on the master branch, deploys happened multiple times per business day, and old revisions were quickly forgotten.

Read more

Subscribe to Kernel Mailing Lists over NNTP on Thunderbird

05 May 2021

Linux kernel mailing lists are really important to watch and learn. They’re the best place to watch what’s happening upstream, you can see (almost) every change and the review process that goes into it. They can help you build an understanding for what sort of development is taking place on a particular subsystem, and how the maintainer and reviewers feel about certain types of changes.

Read more

Please Stop Form Validation on Key Strokes

03 March 2021

Today I encountered a bug in a web form. A textbox required a numeric value, but when I attempted to enter it, I found that none of my keystrokes resulted in digits appearing in the box. I’ve experienced this bug once every few months for several years at this point. I always knew the reason for it, but today I felt just annoyed enough to fully research the issue and write about it.

Read more

Stack Overflow Users Rejoice as Pattern Matching is Added to Python 3.10

09 February 2021

INTERNET – Stack Overflow users today rejoiced at the prospect of Python’s upcoming 3.10 release including the controversial new pattern matching feature described in PEP 634.

Read more

The Windows 10 Installer Dystopia

08 November 2020

A few days ago I had the displeasure of helping a friend reinstall Windows on their laptop, which had previously contained Ubuntu. The reason for their switch isn’t that important – although I helpfully suggested keeping Linux, it was their machine and their decision. I didn’t expect the process to be particularly difficult. After all, I work on operating systems for a living now, so I didn’t expect any trouble. But to my surprise, I encountered a nearly dystopian situation before I even got to the desktop.

Read more

Visualizing gzip compression with Python!

22 September 2020

Not that long ago, I found myself wanting to understand gzip. I didn’t necessarily want to learn to implement the algorithm, but rather I just wanted to understand how it was performing on a particular file. Even more specifically, I wanted to understand which parts of a file compressed well, and which ones did not.

Read more

Creative Commons License

Stephen Brennan's Blog is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License