Going cross-platform - how htop was made portable
Converting the process manager htop from being Linux-only into a portable application
The story of how htop, a popular interactive process manager, went from being a Linux-only application into a portable one. In this talk I will discuss the technical approaches taken in porting process, the design choices that went into it, and also a bit of the backstory on how and why this conversion came to be.
htop is a popular text-mode process manager, originally written for Linux. Its original mission was to "aim to be a better top".
For many years, it remained as a Linux-only application, because, while the UI was dependent only on the portable library ncurses, the entire logic for gathering process data was based on the /proc filesystem.
In the spirit of free software, this didn't stop enterprising users from porting it to different platforms, so htop ran, at different capacities, on FreeBSD (using a Linux procfs emulation layer) and Mac OS X, via an ad-hoc port that was never integrated back upstream.
It was not until 2015 that the htop codebase was made truly portable. In this talk, I will discuss how and why that happened, and talk about the challenges and design decisions involved. I will focus on the technical process, but I will also touch on the positive social impact to the project.
About the speaker: Hisham Muhammad is the original author of htop, a project started in 2004. Hisham is also the lead developer of LuaRocks, the package manager for the Lua language and a co-founder of the GoboLinux distribution.