Overview
The development of a hobbyist operating system is one of the more involved and technical options for a computer hobbyist.
The definition of a hobby operating system can sometimes be vague. It can be from the developer's view, where the developers do it just for fun or learning; it can also be seen from the user's view, where the users are only using it as a toy; or it can be defined as an operating system which doesn't have a very big user base.
Development can begin from existing resources like a kernel, an operating system, or a bootloader, or it can also be made completely from scratch. The development platform could be a bare hardware machine, which is the nature of an operating system, but it could also be developed and tested on a virtual machine.
Since the hobbyist must claim more ownership for adapting a complex system to the ever-changing needs of the technical terrain, much enthusiasm is common amongst the many different groups attracted to operating system development.
Development
Elements of operating system development include:
Kernel:
Bootstrapping
Memory management
Process management and scheduling
Device driver management
Program API
External programs
User interface
The C programming language is frequently used for hobby operating system programming, as well as assembly language, though other languages can be used as well.
From Wikipedia (CC BY-SA 4.0).