Choosing an operating system for an application framework

chart shows ordered separation of user, applications or programs, operating system (kernel), hardware (cpu, memory, devices)

“Linux kernel and computer layers” image (CC0-1.0) by M.ghlibre @ wikimedia

by a reluctant coder:
The choice of an operating system (OS) is usually of a matter of personal choice.

The main open source choices are Linux and BSD.  BSD is configured for web hosting and hosting many servers on one system. It was the first to add an internet protocol to its system. Desktops tend to run on Linux because of ease of installation and maintenance. Dedicated single-task processes such as supercomputing clusters use Linux. The effective multi-tasking forced-interrupt part of timesharing gets in the way of a dedicated single process.

If you are frugal or use recycled hardware, there may only be a few distributions supporting it. There may be one distribution supporting a particular vintage hardware or hardware abandoned by their manufacturers. This is especially true as the number of systems decreases and the number of users providing feedback to OS developers drops off. If you use a variety of vintage equipment, look for a framework that supports the variety of distros.

If your killer app is for a space probe or robot, a real-time operating system (RTOS) is more appropriate. Some RTOSes, such as RTEMS have a long heritage and pre-date open source licenses.

Each operating system packages software in a different way and may offer a different set of software. Packaging systems standardize regular OS maintenance including installing security patches and software updates.

Next post is about choosing an application framework.