Are there other operating systems?

Developers keep making operating systems (OSs) to call their own. Maybe out of pure vanity, they take pride of their programs and/or set of connected programs as an OS. To make the development of latter more interesting, there are groups and manuals how to write OSs in different languages especially assembler, which I do not speak (understand).

As a matter of fact, the development of hobby OSs has caught my attention and has started my curiosity of learning assembler (asm), but I have no idea which assembler dialect would be best (easiest) for me.

For the time being, I need to point out that these OSs come in all forms and for every taste, size and hardware from the easiest to understand to most difficult to use. The following list of hobby and/or dedicated OS including microkernels (µkernels) is in alphabetical order — both vintage and cutting-edge, most of which I have fully tested.

Monolithic kernels vs. µkernels:

When referring to OSs, a kernel is smallest section of code that is considered the OS itself — its brain that manages system calls, process management, concurrency (running multiple threads of a job without asynhronously), memory management, file system and device (hardware) drivers. Kernels are loaded completely to RAM and need to run throughout the whole session. There are two distincts groups of kernels depending how much control the kernel really has.

  • Monolithic kernels have full control of system, processes, threads, RAM and device driver management. All functions take place inside the kernel. A good example is the Linux kernel, which is the OS itself. Linux distributions (distros) are built on top of the kernel.
  • Microkernels (µkernels) have the least amount of control possible. Usually of file system, device drivers and other aspects of the OS are handled outside the kernel. A good example include any real-time operating system (RTOS) currently in the market, which are small enough to use the least amount of RAM — for example, in microcontrollers and robotics.

Images: discs and floppies

Note that some of OSs covered on the list below are available in images small enough to fit in a 1.44 MB floppy (usually .FLP). These OSs hardly ever come with an installer to write the image to a hard drive.

  • As such, you can burn the image to a floppy using the dd command in Linux or Cygwin or a third-party application like UNetbootin for Windows or Linux.
                  dd if=floppy_image.flp of=/dev/fd0
  • You can mount the .FLP image to a virtual floppy drive using VirtualBox, Bochs or similar product — what I have done. Depending on the vendor and the version of the product, the instructions at this point will vary. You would need to refer to the vendor's documentation for detailed instructions.
  • You can burn the .ISO (if available) to a USB drive and boot your computer from it. Depending on the computer manufacturer and/or the BIOS developer, the procedure to boot to the USB drive will vary. You would need to refer to the manufacturer's documentation for detailed instructions.
                  dd if=disc_image.iso of=/dev/sdb1
  • Of course, you can also mount the read-only .ISO image (if available) using VirtualBox, Bochs or similar product if you have no intention of saving any data that you may write to RAM while testing the OS.

Portable Operating System Interface (POSIX):

POSIX stands for Portable Operating System Interface (IEEE 1003, ISO/IEC 9945). POSIX is not an OS, but rather a collection of standards for compatibility between OSs — communication usually related to Unix-based OSs including FreeBSD and Linux). POSIX is managed by the IEEE Computer Society. Note that IEEE stands for Institute of Electrical and Electronics Engineers.

Short List of Other Operating Systems: