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 Process management may refer to:
* Business process management
** Business Process Management Journal
** Dynamic business process management
** International Conference on Business Process Management
** Social business process management
* Manag ...
and
scheduling
**
Device driver
In computing, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabling operating systems and ot ...
management
**
Program API
*
External programs
*
User interface
The
C programming language
''The C Programming Language'' (sometimes termed ''K&R'', after its authors' initials) is a computer programming book written by Brian Kernighan and Dennis Ritchie, the latter of whom originally designed and implemented the language, as well as ...
is frequently used for hobby operating system programming, as well as
assembly language
In computer programming, assembly language (or assembler language, or symbolic machine code), often referred to simply as Assembly and commonly abbreviated as ASM or asm, is any low-level programming language with a very strong correspondence be ...
, though other languages can be used as well.
The use of assembly language is common with small systems, especially those based on eight bit microprocessors such as the
MOS Technology 6502 family or the
Zilog Z80, or in systems with a lack of available resources because of its small output size and low-level efficiency.
User interface
Most hobby operating systems use a
command-line interface
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
or a simple
text user interface due to ease of development. More advanced hobby operating systems may have a
graphical user interface. For example,
AtheOS
Syllable Desktop is a discontinued free and open-source operating system for Pentium and compatible processors. Its purpose is to create an easy-to-use desktop operating system for the home and small office user. It was forked from the stagnant ...
was a hobby operating system with a graphical interface written entirely by one programmer.
Examples
Icaros131.jpg, AROS
DexOS GUI.PNG, DexOS
EmuTOS 1.0.png, EmuTOS
GeckOS 20.png, GeckOS
Ghost 0.5.3 Screenshot.png, Ghost
A ghost is the soul or spirit of a dead person or animal that is believed to be able to appear to the living. In ghostlore, descriptions of ghosts vary widely from an invisible presence to translucent or barely visible wispy shapes, to rea ...
Helenos-0.11.1-gui.png, HelenOS
KolibriOS nightly build desktop.png, KolibriOS
LUnix.png, LUnix
LUnix, short for "Little Unix", is a Unix-like multi-tasking operating system designed to run natively on the Commodore 64 and Commodore 128
Menuet.png, MenuetOS
Phantom screen 17.10.2019.png, Phantom OS
Redox running Orbital.png, Redox
Serenityos-example.png, SerenityOS
Syllable-0.6.5-pl.png, Syllable Desktop
Syllable Desktop is a discontinued free and open-source operating system for Pentium and compatible processors. Its purpose is to create an easy-to-use desktop operating system for the home and small office user. It was forked from the stagnant A ...
symbos-cpc.png, SymbOS
SYmbiosis Multitasking Based Operating System (SymbOS) is a multitasking operating system for Zilog Z80-based 8-bit computer systems.
Contrary to early 8-bit operating systems it is based on a microkernel, which provides preemptive and prior ...
VirtualBox TempleOS x64 27 02 2021 20 43 48.png, TempleOS
Use of BIOS
This section is predominantly
x86 oriented.
The term
BIOS
In computing, BIOS (, ; Basic Input/Output System, also known as the System BIOS, ROM BIOS, BIOS ROM or PC BIOS) is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the ...
(Basic Input/Output System) refers to
firmware
In computing, firmware is a specific class of computer software that provides the low-level control for a device's specific hardware. Firmware, such as the BIOS of a personal computer, may contain basic functions of a device, and may provide h ...
that initialises computer hardware and has provisions to load an
operating system. The BIOS also sets up a standard interface for several low-level device drivers at boot time. BIOS resources are often used by hobbyist operating systems, especially those written on 16-bit x86 machines, as many hobby operating systems developers lack the time to write complex low level drivers themselves or they simply want to get into writing software for the system as soon as possible.
The most commonly used BIOS functions are
VideoBIOS and
Disk services. These are used because video cards and disk drives vary significantly on different machines and specialised drivers are often difficult to write.
The use of the BIOS is uncommon in operating systems that operate in
Protected mode
In computing, protected mode, also called protected virtual address mode, is an operational mode of x86-compatible central processing units (CPUs). It allows system software to use features such as virtual memory, paging and safe multi-tasking d ...
or
Long mode
In the x86-64 computer architecture, long mode is the mode where a 64-bit operating system can access 64-bit instructions and registers. 64-bit programs are run in a sub-mode called 64-bit mode, while 32-bit programs and 16-bit protected mode pr ...
, because the system must switch back to
real mode
Real mode, also called real address mode, is an operating mode of all x86-compatible CPUs. The mode gets its name from the fact that addresses in real mode always correspond to real locations in memory. Real mode is characterized by a 20-bit seg ...
which BIOS drivers run in.
OSDev - Use of BIOS in protected or long mode
/ref>
See also
* List of hobbyist operating systems
* Computer architecture
References
External links
OSDev.org
- A hobby OSDev community
Independent Software
- Set of tutorials on boot loader development and entering protected mode
The little book about OS development
- This book is a practical guide to writing your own x86 operating system
Kernel 101 – Let’s write a Kernel
aodfaq
- OS development FAQ
Bona Fide OS Development
- Store of OS development tutorials and other documents
Operating System Resource Center
- Information and resources on various OSDev topics (both software and hardware)
{{Operating systems
Operating system technology