x86 Kernel Development & Relocatable Binaries – What I learned about Toolchains and Relocatable Code

This post is roughly a summary of the obscure knowledge I learned about toolchains and relocatable code in the last couple of years by studying the code of the microkernels NOVA and Hedron, my professional hands-on experience with kernel development, and several learning projects. I present some of the “hard and not obvious” properties of producing kernel binaries, information that only stands “between the lines” in existing projects, and topics I didn’t find Read more…

Modern Command Line Tool for FTP Backups

TL;DR: The convenient CLI-based FTP mirroring tool you wished for (hopefully, lol). In my previous blog post, I presented lftp as my CLI tool of choice in 2024 to connect to FTP servers to perform a parallel recursive download with FTPS (FTP over TLS). However, lftp is a powerful low-level building block, and you need to know how to use it to mirror a directory via FTP. I created a small convenient bash Read more…

Output of "--help" of my "ftp-backup" shell wrapper for "lftp" (screenshot).
Code snippet: Command line tool lftp for a parallel recursive secure FTP download of a remote directory.

Parallel Recursive FTPS Mirroring (Directory Download) from Command Line

TL;DR In this blog post, I show you the best option I found that you can use in 2024 to perform a parallel recursive download (backup) of an FTP directory via FTPS (explicit FTP via TLS) from the command line. lftp is the best command line tool (for Linux, macOS and other UNIX-like systems), but needs to be properly configured. For GUI-focused users, I recommend FileZilla. Introduction FTP is a quite outdated protocol Read more…

Compile Linux out-of-tree Module on NixOS in a Nix shell with an FHS Environment

In an earlier post, I talked about how you can build an out-of-tree Linux kernel module in a Nix derivation, i.e., package it in Nix. However, for quick prototyping, sometimes you want to just enter $ make in your shell, for example to check if everything compiles. Out-of-tree module projects following the recommended guidelines use a Makefile, possibly an additional KBuild file, and of course C source and header files. This header file Read more…