This content originally appeared on Level Up Coding - Medium and was authored by Michał Burgunder
When looking at the landscape of operating systems (OS), as opposed to those of the sciences, we find something intriguing: explanations of all OS’s do not resemble anything one could teach a five-year old. One might hope that there is one single OS or that all computers follow specific guidelines, which they don’t. Thus, we need to work with the complexity of history and all of the technology’s incremental steps, and hope that we can navigate through the mess.
Luckily, most of the uninteresting low-level work has already been done by the 1960s,and is now so low level that it has lost its relevance for most software/web developers. The earliest “good-to-know-of-its-existence” OS is probably the Multiplics machine, which is where in history this overview will begin.
Foundations
The Multiplics machine was a computer developed at MIT in conjunction with Bell Labs and General Electric in 1964–1967, getting its name from a multiplexing computer, “a computer that accepts computational jobs from multiple users”. However, a new project at Bell labs would soon prove a much more fruitful endeavor that would turn off the final Mutiplics machine in 2000. Former multiple engineers attached themselves to this new project and brought with them the experiences they made during the development of Multiplics.
In 1972, they unveiled their new computer that was geared towards single users instead of a cohort of them. It was like this, that the first Unix machine was built and laid the foundations of modern operating systems. These included the well-known commands ls, cd, pwd etc., which took shape for the first time, and a specific file system with a development environment.
Few would know about these things on Unix machines, as Unix computers were expensive. So back then, making an OS available to everyone hadn’t been conceived yet, and releasing source code was akin to losing a patent. Thus, code was highly protected with restrictive licensing, emanating from a single source of authority: Any new possible spin-off from the Unix machine needed to be negotiated with the powers that owned Unix.
But because the ideas that Unix brought with it were so influential, companies that were designing their own OS’s wanted to use the same ideas as the Unix machine for compatibility reasons, which are not protected by patents. As a result, several future OS’s took advantage of this, such as the BSD OS’s, versions 1.0–4.0 (more about these below). This however, created a new problem: Not all spin-offs used the same Unix features, which made compatibility difficult to achieve.
To solve the issue, the Single Unix Specification (SUS) mapped out requirements to call an OS “unix-like.” Any operating system following SUS would retain specific features that would allow programs to run cross-platform. The BSDs (Berkeley Software Foundation, first started in ~1978) distributed a now discontinued family of OS’s that licensed their unix-like computers in a flexible way, which allowed their users more freedom. FreeBSD, OpenBSD, DragonFlyBSD, and most importantly, Darwin OS, are some of the most famous BSD OS’s.
Either way, any licensing is still licensing, which usually means restrictions. IBM wanted to avoid negotiating with Unix or BSD and wanted their own OS, which they could use at will. They would need to create it from the ground up and not use the CP/M OS, which was widely available at the time (around 1980, starting in 1974). After a minor dispute with software vendors, IBM gave a small firm the chance to do this, which gave rise to MS-DOS by Microsoft, in 1980, deprecating CP/M. In the following decades, Microsoft would come to dominate the personal computer market.
This OS’s code was also protected by patent, which meant that, to date, all OS software was hard to come by for the layman. Even MINIX OS’s code (an off-shoot from Unix, released 1987), which was used for educational purposes, had some licensing issues and stalled its popularity. A similar thing can be said about the BSD family of OS’s. The only permanent and complete solution was a free operating system with innumerable software applications that would be open-source for anyone to review, learn from, copy. use to build their own OS from, and, in general, to use any way they see fit.
Thus, the GNU project was created by Richard Stallman in 1983. He wanted to differentiate between his licencing and Unix, so he called his project “GNU”: “GNU is Not Unix!”: The OS would be unix-like but won’t have any restrictive licensing. Many people joined the project, no doubt inspired by the GNU manifesto, and started building this mythical OS. Compilers, text-editors, interpreters, UI’s, etc., were written from the ground up, and most of the code was completed a few years later, shortly before 1990.
Yet, there was still a big problem facing the GNU Project: Low-level code still needed to be written, such as the kernel, which they called GNU Hurd. While development continued, a smart and motivated computer science student announced that he is building a kernel as a side project, and soon after, released it to the public. The developers at GNU realized that Linus Torvalds had done much of the work they needed and saw no reason not to use it for their OS.
Instead of working on Hurd, many developers switched to Torvalds’ kernel and soon began incorporating it in the GNU OS, rewriting certain GNU applications to get the kernel to work. Rejoiced, Torvalds named his project “Freax” as it now needs to be identified. But because this centerpiece of the OS was so influential, someone attached the name “Linux” to the GNU OS instead. With this final component, the first open-source, non-restrictive licensed OS was born in 1991. Free to use, modify, learn from, and do whatever it was you would want to do with it.
In the meantime, Apple, founded in 1976, had acquired enough software with whatever licensing they mustered up to build an OS known as “System 1”, released in 1984. Microsoft had also made strides in their family of OS’s releasing Windows 1–3 in this time frame. In the BSD family, there were about a dozen new OS’s, probably the most famous being SunOS, released in 1982 (later replaced by Solaris in 1992) and Xenix in 1986. A Unix computer known as NeXTSTEP was released in 1989, with the main point of interest being that parts of it eventually ended up in Darwin, the OS that macs use since 2000.
These are the foundations of operating systems and should give you a bit of an overview of how far we’ve come: from closed source, licensed software, to completely free OS’s. The idea of GNU and Linux, compared to its peers, proved to be revolutionary.
Linux
While there are still good reasons to use BSD OS’s, Linux has become so widespread that the statistics speak for themselves: Most supercomputers in the world use Linux, as well as 90% of cloud infrastructure and a sizable portion of all running servers.
The rest of the stats are also mind-boggling. There are now hundreds of different Linux variations, known as distributions (also known as distros, or flavors), each one different, but sometimes essentially the same. Every distro tries to accommodate specific requirements, such as a machine with a complete set of forensic tools or a lightweight OS that works on weak computers. Given the amount of them and the shortness of this article, discussing each one would be redundant. Yet, their history and how they are talked about is useful to take a look at.
The original Linux OS was not well maintained, so some people wanted to create their own distros that they would maintain independently. Three main off-shoots from the original code base emerged: Slackware (1992), Debian (1993), and Red Hat (1994):
- Slackware OS’s were the first few off-shoots from Linux, which were created to mainly include the TCP/IP stack , which is why they were popular early on. Given how important TCP/IP had become, these protocols have been included in the SUS and are now implemented by default in virtually all unix-like machines. For this reason, Slackware became obsolete, with only a few flavors still maintained, such as Slackware ARM.
- Debian is one of the more heard-of distros, which was going to have a slow, but secure release schedule by design. Developer Ian Murdock started working on this new version of Linux and was announced and released in 1993. In time, noticing the reliable stream of updates, people trusted Debian more than the original Linux code base, which brought Debian to the forefront of Linux distros. While one can still download the original Debian OS, it is more common to download/use off-shoots from it, such as Kali Linux, or raspberryPi OS.
- Red Hat is a company founded in 1993 that promotes open-source software for other businesses and makes their money advising them on software. They wrote Red Hat for enhanced security, compliance, and flexibility of use and maintain the codebase (including the kernel) as part of their business model. An example of a RedHat distro would be CentOS.
Seeing that Debian had a hard-to-use UI however, another Linux OS distro family gained traction: Ubuntu. Ubuntu is based on Debian and was released in 2004 with the goal of making Debian more user-friendly. In time, the popularity of this family rose and inspired many other distros, such as Linux Mint, one of the most popular Linux distros out there.
One other Linux OS to mention that doesn’t arise out of thes threee families is Chrome OS, used for the Chromebook, a cheap laptop that found surprising success in schools. Funny enough, this OS can only come preinstalled on the machines on which it runs, which means that because Chrome OS seems to make up at least 1.21% of all OS’s at the time of writing, it makes it one of the more common Linux distros.
New distros kept coming and going since the early 1990s, while Microsoft and Apple kept releasing new versions of their OS’s with themed naming. Linux distributions finally stabilized around 2015–2017, with a handful of distros taking the lead. Yet, this is not the end of operating system history: While Linux distros were multiplying, another game-changing event occurred in this timeframe: The smartphone.
Mobile OS’s, RTOS, and the Internet of Things
It might seem strange, however, even relatively “simple” phones needed OS’s to run. Blackberry used Blackberry OS. Samsung uses Tizen OS, iPhone uses Darwin, Nokia uses Symbian OS; Android uses Android. Most phones in the 2000s have had in-housed developed lightweight OS’s to accommodate their phones to try and keep the user in their ecosystem (think of Apple’s iCloud).
Nowadays, there are only two major mobile systems: iOS, and Android, with others like blackberry lagging far behind. With the exception of iOS (which evolved from Darwin), most other mobile phone OS’s are based on Linux, in one way or another, such as Sailfish OS or perhaps Firefox OS.
OS’s for the Internet of Things (IoT) however, do not necessarily run on Linux. IoT requires small devices to perform very specific jobs, while Linux is too much of an overkill for these mini-computers most of the time. These OS’s might also be real-time operations systems (RTOS), for which memory allocation, post-processing, etc., might simply not be needed, which any Linux is equipped with.
More importantly, the licensing for these devices isn’t quite right, which means that while their OS’s are not used anymore, at least the BSD licensing has stayed relevant. With them, a handful of OS’s are making a name for themselves, each one slightly different from every other one (Contiki seems to be leading the charge). But because these small devices are so lightweight, many companies can create their own OSs curated to their specific needs. Amazon developed FreeRTOS, for example, while Microsoft uses Windows 10 IoT.
And that’s it; There are plenty more OS’s out there that I’ve missed (such as gaming consoles) and innumerable others that are open-source. Either way, this covers about 95% of known OS’s and gives us a small overview of this whole landscape.
The OS Landscape: A Guide for us All was originally published in Level Up Coding on Medium, where people are continuing the conversation by highlighting and responding to this story.
This content originally appeared on Level Up Coding - Medium and was authored by Michał Burgunder
Michał Burgunder | Sciencx (2021-08-31T17:26:40+00:00) The OS Landscape: A Guide for us All. Retrieved from https://www.scien.cx/2021/08/31/the-os-landscape-a-guide-for-us-all/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.