Articles on Linux
Last updated: 2023/03/08
Top deep-dives on Linux
My business card runs Linux, yours can too
Dmitry Grinberg describes making a business card that runs Linux.
Although the complexity of modern computers is great, in that it allows to to quickly build wonderful applications that would've previously taken 1000x the resources, one downside is that it becomes really easy to miss out on all of the details of what your computer is actually doing. Justine Tunney's Blinkenlights is a neat binary emulator that allows you to watch under the hood of your computer when running an executable.
Essential Page Cache theory
"In essence the Page Cache is a part of Virtual File System (VFS) which main purpose, as you can guess, is improving IO latency of read and write operations". In this second article of a nine part series, Viacheslav Biriukov answers questions like what is, what problem does it solve, and why is it called a "Page" cache, then goes on to outline how reads and writes are handled.
Beginner's Guide to Installing from Source (2015)
An older article, but useful nonetheless. Simon Kitching provides background information about relevant commands and the process in general for downloading and installing code from source.
- Highlights different methods of distribution
- Covers security, specifically checking the checksum hash
- Touches on build Systems: configure, make, cmake, etc
Made of Bugs
Nelson Elhage describes a bug related to creating child processes in Linux that was causing unexpected crashes in a small percentage of distributed jobs.
An Ubuntu kernel bug causes container crashes
Jordan Webb explains how a misapplied patch in Ubuntu caused it to panic when Docker containers were launched.
Racing against the clock -- hitting a tiny kernel race window
Jann Horn does a very deep and technical dive on exploiting a garbage collection race condition in the Linux kernel.
The quantum state of Linux kernel garbage collection CVE-2021-0920 (Part I)
Xingyu Jin does "a deep dive into an in-the-wild Android exploit" that is enabled by a race condition in the Linux kernel's garbage collector.
Distribution packaging for Linux desktop applications is unsustainable
Cooper Lewis explains how the traditional model of linux packaging has many issues and provides a solution in the form of Flatpak.
- "Dependency hell describes how Linux systems rely on specific libraries and versions of software, and if those libraries conflict with each other, installations can fail"
- I'm continually amazed that the Linux ecosystem is not only surviving, but thriving
- "Adoption of a universal app format may noticeably accelerate the development pace of many Linux applications"
Data-driven performance optimization with Rust and Miri
Keaton Brandt walks us through optimizing Rust code for one of the Advent of Code challenges.
- Profilers are tools that analyze how well a piece of software is performing
- Perf-based libraries like flamegraph work by sampling the stack trace of your software on a regular interval
- Miri is a project owned by the rust team with the aim of running rust code in an interpreter, primarily to help with debugging
[CVE-2022-1786] A Journey To The Dawn
Kyle Zeng describes a 0-day vulnerability in the Linux kernel that they found and exploited on Google's kCTF platform. Kyle goes on to describe the process of reporting the bug and submitting the exploit.
Code specialization for the MIR lightweight JIT compiler
Vladimir Makarov "discuss[es] how [he] plan[s] to support the generation of specialized and deoptimized code in MIR, and what support has already been implemented in the MIR project".
Bringing WireGuard to Genode
Martin Stein explores implementing a WireGuard VPN on Gentoo Linux.