Skip to main content

Gilles Chehade

I write and run systems software. I’m the author of OpenSMTPD, the mail server that ships in the OpenBSD base system, and CTO of Plakar, where I work on kloset, a content-addressable backup engine. poolp.org is where I write about what I build.

I also take short consulting engagements — architecture and code review, technical due diligence for funds and acquirers, mail infrastructure — through my practice, aljuna.tech. If you’ve read something here and want the same eyes on your system, that’s the door.

2023, a retrospective.

·965 words·5 mins
TL;DR: A personal retrospective of 2023 2023 was a rough year # I usually enjoy doing these yearly posts, looking back at what I did and planning what I’ll do, but 2023 was a rough year. I’m glad it’s over.

Plakar: an avalanche of changes

·2625 words·13 mins
TL;DR: Significant refactoring to improve its performance, implemented read and write semaphores to throttle chunkers and reduce memory usage, introduced a repository index and packfiles to decrease the number of I/O operations, also intrioduced a new HTTP storage backend. A ton of refactors # I’ve done so much work on plakar in the past few weeks that I don’t even know what to begin with…

Plakar: a TON of changes

·3855 words·19 mins
TL;DR: TL;DR: a lot of work in plakar, but also on CDC and index optimization. Optimized go-fastcdc # I ran into a benchmark which included my implementation of the FastCDC algorithm, and it made me realise that it was not on par with alternative implementations:

Building my own guitar, part 4

·325 words·2 mins
TL;DR: Came back from vacation, started working on the neck but realised I really needed more tools. Luckily, I could get some that weren’t too expensive. Working on the head # I had ordered and received this neck, which fits nicely, but I wanted to rework the head a bit so it looked a little less PRSey. Unfortunately, after spending an hour trying to manually reshape and sand, I figured I was doing it wrong and needed some automated tools… otherwise I’d still be working on the head in December.

Plakar: snapshot forking and tagging

·2064 words·10 mins
TL;DR: plakar gained two minor features, snapshots fork-ing and snapshots tagging, which makes it possible to unlock several major new features in a relatively short future. Plakar is not only for backups # If you have followed my work on this project, you may have assumed that plakar was intended solely for backups: it’s not entirely the case.

Implementing a system call for OpenBSD

·3090 words·15 mins
TL;DR: I found a printed copy of an assignment I had to do in 2005 back when I was a student to implement a system call for OpenBSD and Linux. I lost the original LaTeX file so I decided to rewrite it so I have a digital copy. The article originally covered loadable kernel modules (LKM) which is no longer a thing in OpenBSD, I trimmed that part. I also trimmed the Linux part because I didn’t care about it back then and did the minimum to pass ;-) This article is translated from French. Disclaimer # The content of this post is based on an assignment I wrote in 2005, back when I was a student at Epitech, so things have probably changed and this is by no means a tutorial: please don’t write system calls and don’t submit them to OpenBSD… unless you’ve been told it’s a good idea by OpenBSD developers.