Skip to content

A list of reference material to operating system development and administration and operating system history

License

Notifications You must be signed in to change notification settings

felipenlunkes/osdev

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 

Repository files navigation


Operating system history and reference material

This repository aims to count and list the open source operating system projects in activity, in addition to cataloging bibliographic references and useful material for the development and administration of operating systems.

For a list of active operating system and open source projects, visit the osdev-projects repository.


Summary

This document is divided into a few sections to make it easier to search for a specific topic. You will find reference material on operating systems already consolidated, such as UNIX, Linux and Windows in a dedicated section, which will bring documents, papers, books and a short history of each one of them. In another section, you'll find material geared toward operating system development, reference material for systems administration, and more information about software licenses that you can use in your projects. In the third section, you'll find tutorials for operating system development, sorted by target architecture. These tutorials may be available on video, on YouTube, or in text, present or not in GitHub repositories. In the next section, you will find other sites with more information and useful curiosities. Finally, in the last section, you can learn more about testing older operating systems that don't run on current hardware using the SSH utility (Linux, Windows, and macOS).

A quick summary of the sections in this document:


A brief history of Operating Systems

This section will address several operating systems that have revolutionized computing over the decades, changing the way we relate to our computers. These mainline systems were responsible for influencing the development of modern alternatives, and many of them (in their various incarnations) are still a part of our lives. In each topic, you will find references to the source code (if available), manuals, papers, books and other pages with more information, as well as forums that discuss aspects of each operating system. You will also be able to obtain information on how to run these systems, natively or in emulators/simulators. Additionally, you will see new, modern operating systems that build on existing concepts but attempt to overcome their limitations or solve new problems in new ways. To get started, click on one of the options listed below!

This session addresses:

  • A quick resume on each operating system;
  • History of operating systems;
  • Interesting new operating systems;
  • Historical material;
  • Internal technical documentation (kernel, interfaces, etc);
  • Source code of historical operating systems;
  • User manuals;
  • Manuals for the development of each operating system;
  • Guides for administration of each operating system;
  • Documentation on operating systems development;
  • Hardware documentation.

Click on each highlighted operating system to access material for that operating system.

UNIX

Have you ever heard of UNIX? UNIX was a revolutionary operating system, initially developed in 1969 by Ken Thompson, Dennis Ritchie and other employees of Bell Laboratories, owned by the American company AT&T. Initially developed as a hobby on an old unused PDP-7 computer, UNIX created countless foundations that define a modern operating system, influencing virtually all operating systems developed since then. UNIX instituted features such as support for multiple users and processes running at the same time (multitasking), implemented in a lightweight way (requiring few machine resources), and was initially written in Assembly language for PDP-7 and later rewritten in C language (developed by the same authors and used until today). Initially, the source code was distributed to Universities, including the University of California at Berkeley. At that University, UNIX was extensively studied and extended. Graduate students and researchers added advanced features to UNIX, such as virtual memory support, more modern file systems, and network support, leading to BSD (Berkeley Software Distribution) releases. The BSD were nothing more than the UNIX released by AT&T with improvements, then called BSD UNIX. With that, UNIX became very popular. UNIX was licensed to several companies, originating derived systems, such as Xenix, ULTRIX, Venix, Solaris and so on. The BSDs served as the basis for others, such as SunOS. Whereas the BSDs were distributed with a free license, AT&T's UNIX had a paid license. BSD then became the main free implementation of UNIX, giving rise to projects based on version 4.4 of BSD, now just called 4.4 BSD, FreeBSD, NetBSD and OpenBSD. FreeBSD is heavily used on servers these days, as well as forming the basis of macOS and iOS. Other companies' systems, such as Microsoft's MS-DOS and Windows, were heavily influenced by UNIX. UNIX was also an inspiration for the development of non-derived free systems, the so-called Unix-like, such as Minix and Linux itself.

Original source code

Download the system (install in a virtual machine or use in an emulator)

Specifications, documentation, manuals and historical material

Books and papers

Websites

Wikipedia content

Run UNIX


BSD

During its development in the 1960s, 1970s and 1980s, UNIX had its source code distributed to several research and teaching institutions. At the beginning of its life cycle, AT&T, the developer of the system, did not see UNIX as commercial software. Among the institutions that gained access to the system's source code, the University of California at Berkeley stood out. At the University, UNIX was used in teaching operating systems theory, as well as being the focus of research and development work, being the basis for several dissertations and postgraduate theses. Thousands of utilities were developed there that expanded on UNIX, including mail servers, text editors, and scientific and graphical modeling utilities. In addition, the researchers expanded the core of the system, inserting new functionalities and compatibility with new peripherals. When several companies and institutions became interested in the software developed at the University, the team began to group all the software produced, in the form of utilities or extensions to the core (kernel) of the system, creating and releasing the first BSD distribution (Berkeley Software Distribution), in March 1978. This release extended UNIX version 6 from AT&T. Over time, more and more software was developed, giving rise to BSD UNIX, a UNIX system adapted by the University and its researchers and students. Several milestones in UNIX development took place within the walls of the University of California, using AT&T's proprietary code as a base. Several commercial systems at the time derived from BSD UNIX software, such as SunOS, and DEC Ultrix. Within BSD UNIX came the TCP/IP implementation, essential for the internet and device-to-device communication as we have it today. All code developed at the University was released as free software under a permissive license, the BSD license. However, the original UNIX code was limited to the paid licensing imposed by AT&T. After a series of legal developments and changes in the point of view of AT&T, which started to market UNIX, all AT&T's proprietary code inside BSD UNIX had to be removed, creating an incomplete system. The missing components were rewritten again without proprietary code, including parts of the kernel, generating BSD Net/2, which loses the right to use the UNIX name. This system was used as a basis for the development of modern BSD systems, after the release of the last version from the University, 4.4BSD-Lite Release 2. After gaining compatibility with Intel processors, used in personal computers, this software, now called 386BSD, became the basis of modern systems such as FreeBSD and NetBSD (released in 1993). FreeBSD, for example, along with components from another project (the Mach kernel), is the basis for macOS, iOS, iPadOS and other Apple software, as well as being used on high-demand servers and personal computers, too. Today there are several descendant systems of 386BSD, which branched out from FreeBSD and NetBSD, such as OpenBSD, MidnightBSD, DragonFlyBSD, Darwin (base of macOS, iOS and others), among others. In addition, FreeBSD is the basis of the operating system for the Playstations 3, 4 and 5, Playstation Vita and borrows components for the operating system of the Nintendo Switch. If you have a Playstation, you have a BSD system in your house. In addition, BSD influenced several Windows components, which borrow the code responsible for the TCP/IP protocol, for example, in addition to several other operating systems. BSD UNIX, from 1978, is still alive today in its descendants, influencing even today how operating systems and utilities are written.

Specifications, books, papers, documentation, manuals and historical material

Wikipedia content


Plan 9 from Bell Labs

Plan 9 from Bell Labs is an operating system developed by the Computing Science Research Center (CSRC) at Bell Labs. Its development started in the mid-1980s, by the same creators of UNIX. In this way, Plan 9 from Bell Labs was built on UNIX concepts. Its first public version appeared in 1992, with source code and documentation available to universities. In 1995 there was the public release of Plan 9. In the system, the concept of "everything is a file" from UNIX was expanded, where all local resources, but also remote ones, started to be treated as files. This includes distributed file systems. UNIX's use of text terminals has been replaced by a graphical interface, although the Plan 9 shell, rc, remains text-based. The initial project was led by Rob Pike, Ken Thompson and Dave Presotto, with support from Dennis Ritchie, replacing UNIX as the primary research and development platform at Bell Labs. Plan 9 explores many new concepts derived from using networks as a distributed operating system. For a license fee of $350, anyone interested could obtain the system's source code, starting in 1995. With UNIX established as a commercial product for servers and personal computers, as well as Linux growing in the same niche, Plan 9 targeted the embedded computing market. In 1996, the project was put on the back burner in favor of Inferno, an operating system that incorporated much of what was developed for Plan 9, but intended to rival Sun Microsystems' Java platform. At the end of 1990, with the purchase of Bell Labs by Lucent Technologies, commercial support for Plan 9 was withdrawn, with distribution of the system code now as free software, in 2000 (in the third version of Plan 9 from Bell Labs). A large community has formed around the project, including current and former Bell Labs employees, who have continued to develop the system, including releasing new installation images of the system. Bell Labs continues to host the project to the present day. In 2021, rights to Plan 9 were transferred from Bell Labs to the Plan 9 Foundation, after official development of the system was terminated by Bell Labs. Several project forks also occurred, such as 9front, which releases monthly system builds with new features, such as Wi-Fi, audio and USB drivers, as well as game emulators. Other projects were also initiators, such as Harvey OS and Jehanne OS, based on Plan 9 from Bell Labs. Compatibility with UNIX was never a point within the system's initial development team, so much of the software must be recompiled using the APIs available on the system. In 1991, the code required to create a working system was far less than other projects such as the Mach kernel. Many of Plan 9's concepts have been incorporated into other systems, such as UTF-8 encoding. Unix-like systems such as Linux have implemented the 9P2000 protocol for remote file access. Several Plan 9 utilities have also been ported to other systems through the Plan 9 from User Space project. These utilities include the acme editor, also intended to replace utilities coming from GNU with utilities coming from Plan 9. The 9wm window manager was inspired by the Plan 9 counterpart. The Plan 9 rfork call was also implemented on Linux and BSD systems. Version 1903 of Windows 10 implements Plan 9's file system protocol as a server that allows communication between the Windows Subsystem for Linux and Windows itself, allowing the exchange of files. Plan 9 is currently licensed by MIT (March 23, 2021 onwards). Plan 9 is available on a number of platforms such as x86, PowerPC and ARM. It was even ported to run on the Raspberry Pi (ARM architecture).

Original source code

Download the system (install in a virtual machine or use in an emulator)

Specifications, books, papers, documentation, manuals and historical material

Specifications, documentation, manuals and historical material

Websites

Wikipedia content


FreeBSD

If you haven't read about BSD above, you might want to read it before continuing! If you've already read it, let's go!

After the release of Net/2, a version of BSD without AT&T proprietary code, William and Lynne Jolitz began porting BSD to Intel 80386 processors. To do so, they had to rewrite six kernel files that still contained AT&T's intellectual property, and they named the new system 386BSD. Development of this port was slow, and a group of users then decided to create a fork of the project. This project was named FreeBSD, the first version of which was released in November 1996. Both 386BSD and FreeBSD were based on versions of BSD, which led to necessary changes to the system base. In 1992, a company founded by former students and professors at the Computer Systems Research Group (CSRG) at the University of California at Berkeley, called Berkeley Software Design, Inc., or BSDi, was sued by AT&T, which claimed that the BSD/386 (later called BSD/OS), a system developed by the company that was based on 386BSD (as well as FreeBSD), contained code proprietary to AT&T. The agreement was not disclosed, but the company was supposed to migrate the system base to the new version 4.4BSD-Lite2, which although incomplete, did not contain AT&T code. To avoid a lawsuit, FreeBSD should also carry out this migration, which occurred in November 1994, with version 2.0 of FreeBSD, completely free of any AT&T intellectual property. Since then, the system has undergone continuous development, and is part of much of the world's network infrastructure. Companies such as IBM, Netflix, WhatsApp, Nokia, Juniper Networks (which produces routers and other network equipment and which run an operating system based on FreeBSD) and NetApp use FreeBSD in their network infrastructure or as a basis for building their products. Additionally, the Mach kernel, which powers Darwin and macOS, borrows much of the code from FreeBSD's kernel and user-mode utilities. Additionally, the Playstations 3, 4 and 5 operating systems are based on various versions of FreeBSD. The Nintendo Switch operating system, although not explored in depth, contains several FreeBSD components. Currently, the system supports the x86 (i386), x86_64 (amd64), arm, arm64 (AArch64), MIPS, PowerPC (32 and 64-bit), 64-bit SPARC and 64-bit RISC-V architectures. The system has modules that allow the execution of Linux binaries without the need for new compilation, in addition to having a wide library of utilities and a very powerful and complete package management system. It also has a compatibility layer for running software written for BSD/OS and UNIX System V Release 4. Additionally, it has a virtualization solution similar to Linux's KVM, called bhyve, which allows it to run a number of guest systems, with FreeBSD itself, OpenBSD, Linux and Windows. Unlike Linux, which only provides the kernel and a base set of drivers, FreeBSD is a complete software distribution in itself. In the FreeBSD source tree we have the kernel, drivers, standard system utilities, documentation and a series of other software, which are maintained and distributed together. Furthermore, it is worth mentioning that, to maintain a base system with the BSD license, the default shell and other utilities are not from the GNU project. An example is the default shell, tcsh, which plays the role of GNU bash on FreeBSD. Several operating systems, in addition to those already mentioned, are based on FreeBSD. Some of them are:

  • Juniper's JUNOS, an operating system for routers;
  • OneFS, from EMC Isilon;
  • Open Connect Appliance, from Netflix, responsible for managing the platform's content;
  • pfSense, an operating system responsible for managing firewall, routing and security;
  • TrueNAS.

Furthermore, there are several forks of the system, such as:

Source code

Download the system (install in a virtual machine or use in an emulator)

Specifications, books, papers, documentation, manuals and historical material

Wikipedia Content


NetBSD

Like FreeBSD (read above), NetBSD derives from 386BSD and was the first descendant of 386BSD released, on April 19, 1993. Originally, it derives from 4.3BSD-Reno, and was founded by Chris Demetriou, Theo by Raadt, Adam Glass and Charles Hannum. The project was established on the principles of being portable, clean and having correct code. Its name derives from the growth of networks and the Internet. In October 1994, version 1.0 of NetBSD was released, changing the original base to 4.4BSD-Lite, as was done by FreeBSD. Due to internal discussions within the project, Theo de Raadt was removed from the project, founding OpenBSD in 1995 (see below). Currently, NetBSD supports a number of architectures and platforms, including:

  • Alpha;
  • ARM;
  • ARM64 (AArch64);
  • x86 (i386);
  • x86_64 (amd64);
  • PA-RISC;
  • Motorola 68k;
  • MIPS;
  • PowerPC (32 and 64-bit);
  • Super H;
  • SPARC;
  • RISC-V;
  • VAX.

The system's motto is "Of course it runs NetBSD", highlighting the series of ports made for the most varied architectures.

Source code

Download the system (install in a virtual machine or use in an emulator)

Specifications, books, papers, documentation, manuals and historical material

Wikipedia content


OpenBSD

The OpenBSD project began in 1995 after the fork of NetBSD 1.0 by Theo de Raadt. The project focuses on portability, standardization of code and tools, security and correct and audited code. The creation of the project began after disagreements between the creators of the NetBSD project, with Theo de Raadt leaving. The first released version, 1.2, was released in July 1996, followed by version 2.0 released in October 1996. Since then, a new version has been released every six months. Usage statistics show that, in 2005, OpenBSD remained in second place on the list of most used BSDs, with 32.8%, behind only FreeBSD, with 77%. This data shows that OpenBSD has become more used than the project that originated it, NetBSD. In 2007, the OpenBSD Foundation was created to support the development of OpenBSD. Many of the components developed within the project are used by other products. Services for UNIX, a Microsoft extension for Windows, uses code from OpenBSD as well as OpenSSH. The pf firewall, created by the project, is used by both FreeBSD and macOS. Among the supported architectures, we have:

  • Alpha;
  • x86 (i386);
  • x86_64 (amd64);
  • ARM (ARMv7);
  • ARM64 (AArch64, ARMv8);
  • PA-RISC;
  • LANDISK;
  • Loongson;
  • Omron LUNA-88k/
  • MIPS64;
  • PowerPC (32 and 64-bit);
  • RISC-V 64-bit;
  • SPARC64.

Source code

Download the system (install in a virtual machine or use in an emulator)

Specifications, books, papers, documentation, manuals and historical material

Wikipedia content


Sun Microsystems/Oracle Solaris (and SunOS)

The history of Solaris begins with SunOS, both being based on UNIX and developed by Sun Microsystems. SunOS (version 0.7) was released in 1982, based on Version 7 UNIX. It was developed to run on the Motorola 68000 processor present in the Sun-1, the brand's computer, and did not have a graphical interface. It was succeeded by SunOS 1.0 in 1983 and became based on 4.2BSD, running on the Motorola 68010 processors present in the Sun-1 and Sun-2 computers. Furthermore, this version introduced a graphical interface, called Sun Window System. Until version 4.1.4, released in 1994, SunOS used BSD as its base. Version 5.0 started to use UNIX System V Release 4, after a great partnership between several companies (including Sun Microsystems) to unify and standardize the several UNIX-based systems available at the time. From that moment on, it was renamed to Solaris (although internally, as in the uname command return, we can find the name SunOS 5). In 1989, Sun released another interface to the system, called OpenWindows, compatible with the X11 protocol and also with OPEN LOOK. In 2005, Sun released Solaris as an open source project, and to date it is the only version of a UNIX system directly derived from and containing AT&T code released under a free license. OpenSolaris was jointly developed by the community and Sun. After Sun's acquisition by Oracle in 2010, it was again renamed Oracle Solaris, and the OpenSolaris project was discontinued. However, the community has forked and maintained the illumos project, which underpins UNIX distributions such as OpenIndiana. To this day Oracle Solaris is developed, maintained and sold by Oracle, while illumos is an active project in the community.

Source code

Source code is proprietary (except for OpenSolaris).

Download the system (install in a virtual machine or use in an emulator)

Specifications, books, papers, documentation, manuals and historical material

Wikipedia content


illumos (OpenSolaris and OpenIndiana)

After Sun's acquisition by Oracle in 2010, the OpenSolaris project was discontinued. However, the community has forked and maintained the illumos project, which underpins UNIX distributions such as OpenIndiana. To this day Oracle Solaris is developed, maintained and sold by Oracle, while illumos is an active project in the community. illumos, as well as its distributions, are the only UNIX systems released as free software.

Source code

Download the system (install in a virtual machine or use in an emulator)

Specifications, books, papers, documentation, manuals and historical material

Wikipedia content


Mach kernel based OSes - NeXTSTEP, OpenStep, Darwin (macOS, iOS...) and DEC OSF/1


MINIX

MINIX (derived from the name Mini Unix) is an operating system first developed by Andrew Stuart Tanenbaum, an American computer scientist of German origin, while a professor at the Vrije Universiteit Amsterdam in the Netherlands. MINIX was developed for educational purposes, being initially released in 1987, with source code initially released to Universities and courses focused on research in operating systems. It was developed to demonstrate the concepts available in Tanenbaum's book, Operating Systems: Design and Implementation (1987). Version 1.0 of MINIX had 12,000 lines of code in C, distributed in the kernel, memory manager and file system. In that release, MINIX relied on Version 7 UNIX-compatible system calls. This first version was only compatible with the IBM PC and the IBM PC/AT with an Intel 8088 processor. In its version 1.5, released in 1991, MINIX had already been ported to the Motorola 68000 (m68k) and SPARC processors, being capable of run on Apple Macintosh computers, the Atari ST, Amiga computers, and Sun SPARCstation workstations. An unofficial port was also made for the Intel i386, running the system in protected mode (32-bit). Version 2.0, released in 1997, only supported the x86 and SPARC architectures, and came with the second edition of Tanenbaum's book. A variant, developed by researchers at the University, called MINIX-vmd, added virtual memory and the ability to run graphical environments through the X Window System, already used in UNIX and BSD systems. Starting with version 2.0.3, released in May 2021, MINIX has been licensed under a BSD-3-Clause license, applied retroactively to all previous versions. Previously, the license was already relatively liberal, but it was paid (a value of $69) in order to allow students access to the system. The last released stable version, 3, came to the world on October 24, 2005, along with a new edition of the book. MINIX 3 only supports the x86 and ARM architectures and can be used both by installation and by LiveCD. On April 18, 2006, MINIX 3.1.2 underwent relicensing, with the addition of a fourth clause to the already used BSD license. Version 3.1.5, from 2006, has X11, emacs, vi, gcc, perl, python, bash, zsh and other tools common to the UNIX world. MINIX is a system built on a microkernel. This characteristic contrasts with the kernel architecture of UNIX and BSD systems, which are monolithic kernels (albeit with dynamic loading of modules, in some versions), approaching concepts launched by the Mach kernel (used in DEC OSF-1, NEXTSTEP, OpenStep and finally in Apple systems that use the Darwin operating system as a base, such as macOS, iOS and iPadOS). An interesting point in the history of MINIX is that this system influenced Linus Torvalds to develop Linux. Its creator used MINIX, including to encode and compile Linux in its first versions, which made Linux inherit several of its characteristics in the beginning, such as the file system used. However, Linux was designed and built as a monolithic kernel, which led to a debate between Tanenbaum and Torvalds about the advantages and disadvantages of each implementation model. When free, license-free operating systems for the x86 architecture became more popular and attractive, such as Linux and 386BSD, in the early 1990s, many of the volunteers who were actively involved in the development of MINIX migrated to these projects, the which may have led to the new, more permissive and free licensing model in 2000. Today, MINIX is still used by students and enthusiasts.

Source code

Download the system (install in a virtual machine or use in an emulator)

Specifications, books, papers, documentation, manuals and historical material

Wikipedia content


Linux (kernel)

During the golden age of UNIX, in the 1970s, 80s and 90s, UNIX influenced the creation of a series of clones by several companies and developers in the world. As UNIX was a commercial system, from a certain point, and always with a paid license, several free software initiatives emerged, including BSD distributions under free license. In 1983, Richard Stallman started the GNU Project, which aimed to create an operating system compatible with UNIX, but composed only of free software and with free distribution. In the early 1990s, many components of an operating system were already written, such as libraries, compilers, the graphical environment and editors, except for the kernel, the core of the operating system. This kernel is based on the Mach microkernel, which was undergoing slow development with few developers interested. Meanwhile, a student at the University of Helsinki started a UNIX course and was exposed to Ultrix and Andrew S. Tanenbaum's book Operating Systems: Design and Implementation. In this course, he also had contact with MINIX. In 1991, he became interested in operating system development. At the time, there was a serious legal battle between the UNIX rights holders and 386BSD, which caused developers to lose interest in working with BSD for fear of legal problems. This also encouraged Linus to write his own kernel as a hobby. According to him, if the GNU Hurd or 386BSD had been available without technical or legal complications, he would not have started Linux. After the announcement of Linux development on the comp.os.minix list, several developers became interested in the project and Linux began to grow, becoming popular and being ported to different processor architectures and device types. Currently, Linux runs on all 500 of the most powerful computers in the world. It is worth mentioning that Linux is just a kernel, not an operating system. An operating system is made up of the kernel and other components such as a shell, utilities and libraries. As Linux grew, many of the GNU project's utilities were ported over to Linux, eventually resulting in a complete operating system called GNU/Linux (although there are arguments over whether or not to employ the name GNU/Linux). From that moment on, several distributions began to emerge, with companies and independent developers starting to customize the components that would come above the kernel, including custom graphical interfaces, as well as specific utilities for each type of use. Currently, there are several Linux distributions, ranging from servers to embedded systems. For personal computers, we have popular distributions like Ubuntu, Debian, Fedora, Arch, Gentoo, Manjaro, Linux Mint, Pop!_OS and ChromeOS, among others. Linux is also present in the mobile world, being used as the Android kernel, as well as other mobile operating systems such as MeeGo (Nokia N9), Firefox OS, Sailfish OS (Jolla), Maemo (Nokia), Tizen (Samsung), HarmonyOS (Huawei) among others. In addition, it has been ported to numerous architectures, from x86 (original architecture), to SPARC, Alpha, Itanium, amd64, PowerPC, PowerPC64, POWER, ARM, RISC-V, among others. We cannot think today of a world without Linux. In addition to being responsible for controlling all the largest and most powerful computers in the world, Linux is important in embedded applications, such as sensors, in mathematical and scientific applications (being used, for example, in obtaining and analyzing data from the particle accelerator of the CERN), on smart TVs, cell phones, tablets, video games, smart watches, satellites, weather and traffic control systems, cars, smart homes, among other diverse applications on a multitude of devices. Linux remains one of the most successful free software projects in the world, being widely developed. In addition, its architecture, combined with the ability to be easily audited by any interested party, due to its widely available code, makes Linux a safe alternative against Windows. In addition, its huge and active community is able to quickly identify and fix security flaws, in addition to implementing support for new peripherals. A curiosity is that, before buying NeXT and its Unix-like operating system NEXTSTEP (Openstep) and transforming it into Mac OS X (today macOS and its derivatives, such as iOS), Apple invested in a project called mkLinux, which aimed to create an operating system based on a fusion of the Linux kernel with Mach, enabling an initial port of Linux to the PowerPC architecture. If the project went ahead, today Apple could use Linux as the basis of its systems. Can you imagine this? Currently, several companies, such as Microsoft, have become allies of the system. Windows started to come with the Windows Subsystem for Linux, running the Linux kernel in a virtualized environment, allowing the use of tools and utilities in text and graphical mode directly in Windows, without having to create a virtual machine or resort to a dualboot environment. Each Linux-based operating system can use a different graphical environment (or none at all, using only a text-based environment). These environments are quite diverse and customizable, such as GNOME (as in the image above, based on Ubuntu Linux), KDE, Unity, XFCE, WindowMaker, etc. When thinking about Android, the interfaces are even more varied, varying from manufacturer to manufacturer.

Source code

Download the system (install in a virtual machine or use in an emulator)

Since Linux is a kernel and comprises a number of distributions (operating systems), the download list includes a number of distributions.

Specifications, books, papers, documentation, manuals and historical material

Courses


Classic Mac OS

Under construction!

Wikipedia content


DEC VMS

Under construction!

Source code

Source code is proprietary.

Download the system (install in a virtual machine or use in an emulator)


CP/M

CP/M (Control Program/Monitor and later, Control Program for Microcomputers) was an operating system developed by Gary Kildall at Digital Research in 1974. This operating system was initially developed for microcomputers based on 8-bit processors (such as the Intel 8080 and 8085) and 64 kbytes of RAM. Initially, it was a single-task, single-user operating system. The use of CP/M became the standard in the emerging microprocessor market, dominating the market in the late 1970s through the mid-1980s. CP/M was heavily influenced by TOPS-10, an operating system for the DECsystem-10 mainframe. For $90, anyone could get a copy and install it on their device. With the increase in demand, Digital Research increased the licensing fee considerably. In 1979, MP/M was released, a multi-user version derived from CP/M. In this version, several users could connect to a computer using other terminals. There were 8 and 16 bit versions. Version 3 was the last 8-bit version, but it allowed the use of memory banks, allowing the use of more than 64 kbytes of memory. Several famous devices of the time, such as the Commodore 128, used CP/M in its third version. In November 1981, CP/M-86 was released, the first version of the system capable of running on devices with 8086 processors. To avoid confusion, the original CP/M was renamed CP/M-80. With an expensive $240 license, it competed with IBM PC DOS ($40 license). A 16-bit version was also released for Motorola 68000 processors (CP/M-68K). This version was written in Pascal and was later rewritten in C. Other ports were made, such as the Zilog Z8000, called CP/M-8000. In 1980, IBM was developing the IBM PC, which revolutionized home computing. On that occasion, he approached Digital Research (at the suggestion of Microsoft, which already supplied BASIC to several manufacturers) to close an agreement to supply CP/M-80 for these devices. With a failed deal, IBM turned to Microsoft for an alternative. Microsoft, in turn, contacted SCP (Seattle Computer Products) and licensed a newly developed system for the Intel 8086, called 86-DOS (previously known internally as QDOS - Quick and Dirty Operating System). This system was heavily influenced by the CP/M API, although it did not copy code from it. This similarity has been the subject of lawsuits between Digital Research and Microsoft over the years. Microsoft then bought 86-DOS and modified it, along with its creator, hired by Microsoft, Tim Paterson, renamed it MS-DOS. Furthermore, MS-DOS was licensed by IBM and sold as IBM PC DOS. CP/M-86 continued to evolve, giving rise to other derivatives, such as DOS Plus, which eventually gave rise to DR-DOS. DR-DOS began to try to be compatible with and compete with MS-DOS for the personal computing market in the 1990s, including being included in a series of other products, such as the DOS merge, from UnixWare (UNIX System Laboratories and Novell).

Source code

Download the system (install in a virtual machine or use in an emulator)

Specifications, books, papers, documentation, manuals and historical material

Wikipedia content


DOS (Disk Operating System)


OS/2

Under construction!

Source code

Source code is proprietary.

Download the system (install in a virtual machine or use in an emulator)


Windows

Under construction!

Source code

Source code is proprietary.

Download the system (install in a virtual machine or use in an emulator)

Specifications, books, papers, documentation, manuals and historical material

Wikipedia content


BeOS

Under construction!

Source code

Source code is proprietary.

Download the system (install in a virtual machine or use in an emulator)

Under construction!

Wikipedia content


Interesting new operating systems

FreeDOS


Fuchsia (Google)

Fuchsia is an operating system that has been developed by Google and was found in a git repository in August 2016, although, at the time, no announcement was made by the company. Since then, the project has reached maturity and shown itself to be a possible alternative to the operating systems used for computers and mobile devices, such as Windows, Linux, macOS, Android or ChromeOS. At the time, it was based on a new microkernel called Magenta, which was later renamed Zircon. Fuchsia is based on the LK (Little Kernel) kernel, developed by Travis Geiselbrecht, who also developed the NewOS kernel, used by the Haiku project. LK is also used in the Android boot process on certain devices. Zircon, which adds a series of new functions, multitasking and security on top of lk, is written in C++, with parts in C and Assembly, and supports the x86_64, arm64 and RISC-V architecture. Fuchsia is an operating system heavily inspired by UNIX, but incorporates some different features. In addition to not supporting classic UNIX signals and Unix-like systems, it implements an event-driven pattern. Additionally, resources are represented as objects, not files. In addition to having an emulation layer that allows Fuchsia and Zircon to run Linux applications (called Starnix), Fuchsia already has a port of the Chromium browser, Vulkan support and application development in Flutter, in addition to having an graphical interface with a graphics server completely different from those used in the Linux world. In 2021, Fuchsia replaced CastOS (based on Linux) on Google Nest Hub devices. In 2023, it replaced CastOS in the second generation of the device. Despite having a very different architecture, no visual changes were observed in the devices. There are rumors that Fuchsia could one day replace Android and ChromeOS in Google's ecosystem, being an operating system that will run on a range of different devices and form factors, from smart watches to desktop computers. Remember that Fuchsia is free software. Although its support is restricted to specific devices, you can run an emulator/virtualizer with a system image and test Fuchsia. To do this, read more about FImage, provided by the dahliaOS project, below.

Source code

Fuchsia Portable Emulator (FImage)

Wikipedia content


Haiku

Under construction!

Source code

Wikipedia content


ReactOS

Under construction!

Source code

Wikipedia content



Topics in hardware, system administration, applications and software licenses

In this section you will find theoretical material on the following topics:

  • Hardware and architectures;
  • Systems administration tools and techniques;
  • Applications available for legacy systems and useful for project development;
  • Software licenses.

Click on one of the categories below to continue.

Hardware

Systems administration

Unix-like (general)


Applications

Unix-like (general)


Software licenses

Here you can get more information about the main free licenses to apply in your project, or understand your rights and duties when using free software.

Wikipedia content

Exemples

License Software
BSD FreeBSD, NetBSD, Hexagonix, BareMetal, Chromium
Apache Android, Clang, Fuchsia OS, Kotlin
APSL XNU, Darwin
CC -
CDDL OpenSolaris, illumos
GPL Linux Kernel, Audacity, Gedit, Git
LGPL PulseAudio, FreeCAD, Qt, Wine, VLC
MIT .NET, Laravel, X11
ISC Hw.sensors (OpenBSD), OpenBSD (ISC modified)
MPL Mozilla Firefox, LibreOffice
Unlicense youtube-dl


OSDev material: books, papers and tutorials

In this session you will find text or video tutorials for operating system development and administration. The tutorials are separated by architecture (in case of development) and target (in case of administration).

Create a Linux From Scratch (LFS) distribuition

Linux from Scratch (LFS) is a project that aims to facilitate the creation of Linux distributions entirely from source code. This project consists of detailed tutorials that teach how to compile the kernel, basic utilities and other packages (such as a graphical interface) completely from scratch, allowing great customization of the final operating system. Following this tutorial gives the user a much deeper insight into the organization of a Linux operating system, as well as the relationship between the various components that make it up. You won't come out of this experience the same, and you will be more ready for any adversity, even when using a commercial system, such as Ubuntu, Fedora, Arch or OpenSUSE. LFS can also help you if you want to become more experienced and then venture into distributions like Arch or Gentoo (either you come from them and want something more customizable or you want to learn more, doing everything from scratch).

Creating a operating system

Creating a x86 operating system

In this topic, you will find guides and tutorials for developing simple and small operating systems for the x86 architecture. Additionally, there are guides for developing bootloaders and other components.


Creating an ARM operating system

In this topic, there are guides and tutorials for building simple operating systems for the ARM architecture.


Creating a RISC-V operating system

In this topic, there are guides and tutorials for building simple operating systems for the RISC-V architecture.


General OSDev

Tutorials

Linux tutorials

Video tutorials

Consolidated projects for learning

Courses


Websites and other resources

In this section you will find useful websites for more material on operating system development and administration.


Test historical OSes via SSH

You can use a variety of historic operating systems kept running by the Living Computers Museum. For this, you only need to have access to the terminal (Unix systems) or command prompt (Windows) and the SSH utility, to make a remote connection.

To do this, use in the terminal:

You will be able to select from several systems such as UNIX (including Ancient UNIX, BSD UNIX, IRIX, HP-UX, SunOS and OSF/1), Multics, TOPS-10, TOPS-20 and OpenVMS.

About

A list of reference material to operating system development and administration and operating system history

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages