Operating system development
   HOME

TheInfoList



OR:

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 services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
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 * Photograph ...
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 learn ...
, an
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
, 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 learn ...
: **
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 ...
** Device driver 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 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 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 working samples were ...
, 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 users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inst ...
. For example, AtheOS 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 i ...
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 ar ...
Ghost 0.5.3 Screenshot.png, Ghost 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 syste ...
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 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. Turjanma ...
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 bas ...
Redox running Orbital.png,
Redox Redox (reduction–oxidation, , ) is a type of chemical reaction in which the oxidation states of substrate change. Oxidation is the loss of electrons or an increase in the oxidation state, while reduction is the gain of electrons or a ...
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 syst ...
Syllable-0.6.5-pl.png, Syllable Desktop symbos-cpc.png, SymbOS 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 develope ...


Use of BIOS

This section is predominantly
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was intr ...
oriented. The term BIOS (Basic Input/Output System) refers to firmware 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 services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
. 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 or Long mode, because the system must switch back to real mode 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