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
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
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
Development or developing may refer to:
Arts
*Development hell, when a project is stuck in development
*Filmmaking, development phase, including finance and budgeting
*Development (music), the process thematic material is reshaped
*Photographi ...
can begin from existing resources like a
kernel
Kernel may refer to:
Computing
* Kernel (operating system), the central component of most operating systems
* Kernel (image processing), a matrix used for image convolution
* Compute kernel, in GPGPU programming
* Kernel method, in machine lea ...
, an
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
, or a
bootloader
A bootloader, also spelled as boot loader or called boot manager and bootstrap loader, is a computer program that is responsible for booting a computer.
When a computer is turned off, its softwareincluding operating systems, application code, an ...
, 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
Kernel may refer to:
Computing
* Kernel (operating system), the central component of most operating systems
* Kernel (image processing), a matrix used for image convolution
* Compute kernel, in GPGPU programming
* Kernel method, in machine lea ...
:
**
Bootstrapping
In general, bootstrapping usually refers to a self-starting process that is supposed to continue or grow without external input.
Etymology
Tall boots may have a tab, loop or handle at the top known as a bootstrap, allowing one to use fingers ...
**
Memory management
Memory management is a form of resource management applied to computer memory. The essential requirement of memory management is to provide ways to dynamically allocate portions of memory to programs at their request, and free it for reuse when ...
**
Process management and
scheduling
A schedule or a timetable, as a basic time-management tool, consists of a list of times at which possible tasks, events, or actions are intended to take place, or of a sequence of events in the chronological order in which such things are i ...
**
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 o ...
management
**
Program API
*
External programs
*
User interface
In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
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, 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
The Z80 is an 8-bit computing, 8-bit microprocessor introduced by Zilog as the startup company's first product. The Z80 was conceived by Federico Faggin in late 1974 and developed by him and his 11 employees starting in early 1975. The first wor ...
, 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 or a simple
text user interface
In computing, text-based user interfaces (TUI) (alternately terminal user interfaces, to reflect a dependence upon the properties of computer terminals and not just text), is a retronym describing a type of user interface (UI) common as an ear ...
due to ease of development. More advanced hobby operating systems may have a
graphical user interface
The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows User (computing), users to Human–computer interaction, interact with electronic devices through graphical icon (comp ...
. 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 Aros may refer to:
* Aros (Middle-earth), a river in J. R. R. Tolkien's Middle-earth legendarium
* Aros, Mull, the location of Aros Castle, a ruined 13th-century castle on the Isle of Mull, Scotland
*AROS Research Operating System, a free software ...
DexOS GUI.PNG, DexOS
EmuTOS 1.0.png, EmuTOS
EmuTOS is a replacement for TOS (the operating system of the Atari ST and its successors), released as free software. It is mainly intended to be used with Atari emulators and clones, such as Hatari or FireBee. EmuTOS provides support for more ...
GeckOS 20.png, GeckOS
Geckos are small, mostly carnivorous lizards that have a wide distribution, found on every continent except Antarctica. Belonging to the infraorder Gekkota, geckos are found in warm climates throughout the world. They range from .
Geckos ...
Ghost 0.5.3 Screenshot.png, Ghost
A ghost is the soul (spirit), soul or spirit of a dead Human, 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 visibl ...
Helenos-0.11.1-gui.png, HelenOS
HelenOS is an operating system based on a multiserver microkernel design. The source code of HelenOS is written in C and published under the BSD-3-Clause license.
The system is described as a “research development open-source operating sys ...
KolibriOS nightly build desktop.png, KolibriOS
KolibriOS, or Kolibri, is a small, open-source x86 operating system written completely in assembly. It was forked from MenuetOS in 2004 and has run under independent development since.
In a 2009 review piece on alternative operating systems, ' ...
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
MenuetOS is an operating system with a monolithic preemptive, real-time kernel written in FASM assembly language. The system also includes video drivers. It runs on 64-bit and 32-bit x86 architecture computers. Its author is Ville M. Turja ...
Phantom screen 17.10.2019.png, Phantom OS
Phantom OS is an operating system (OS) made by mostly Russian programmers (with help of some Uzbeks). It is based on a concept of persistent virtual memory, and uses a virtual machine, managed code, and bytecodes. It is one of a few OSes not ba ...
Redox running Orbital.png, Redox
Redox (reduction–oxidation, , ) is a type of chemical reaction in which the oxidation states of substrate (chemistry), substrate change. Oxidation is the loss of Electron, electrons or an increase in the oxidation state, while reduction ...
Serenityos-example.png, SerenityOS
SerenityOS is a free and open source desktop operating system that has been in continuous development since 2018. Initially the one-man project of Swedish programmer Andreas Kling, SerenityOS is now developed by a community of hobbyists. The s ...
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
TempleOS (formerly J Operating System, LoseThos, and SparrowOS) is a biblical-themed lightweight operating system (OS) designed to be the Third Temple prophesied in the Bible. It was created by American programmer Terry A. Davis, who developed ...
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 ...
that initialises computer hardware and has provisions to load an
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
. 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-taskin ...
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 p ...
, 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 s ...
which BIOS drivers run in.
OSDev - Use of BIOS in protected or long mode
/ref>
See also
* List of hobbyist operating systems
* Computer architecture
In computer engineering, computer architecture is a description of the structure of a computer system made from component parts. It can sometimes be a high-level description that ignores details of the implementation. At a more detailed level, the ...
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