Hobbyist operating system development

This article may lack focus or may be about more than one topic. Please help improve this article, possibly by splitting the article and/or by introducing a disambiguation page, or discuss this issue on the talk page. (August 2016)

|

Hobbyist operating system development 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. [1] 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.

## Contents

* 1 Development
* 2 User interface
* 3 Use of BIOS
* 4 See also
* 5 References
* 6 External links

## 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.

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 Z-80, or in systems with a lack of available resources because of its small output size and low-level efficiency.[2]

## User interface

Most hobby operating systems use a command-line interface 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 was a hobby operating system with a graphical interface written entirely by one programmer.

## Use of BIOS

This section is predominantly x86 oriented.

The term BIOS (Basic Input/Output System) refers to firmware that initialises computer hardware and has provisions to load an operating system.[3] 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.[4]

## See also

* List of hobbyist operating systems
* Computer architecture
* Operating System

## References

1. ↑ "Discussion of "My OS is less hobby than yours"". Osnews. December 5, 2012. http://www.osnews.com/comments/22638.
2. ↑ Uses of assembly language
3. ↑ About BIOS
4. ↑ OSDev - Use of BIOS in protected or long mode

## 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
* A step by step tutorial
* #OsDev connect on Freenode \- An IRC channel for OSDev enthusiasts
* Operating System Resource Center \- Information and resources on various OSDev topics (both software and hardware)

* v
* t
* e

Operating systems

General|

* Advocacy
* Comparison
* Forensic engineering
* History
* Hobbyist development
* List
* Timeline
* Usage share

Kernel|

| Architectures|

* Exokernel
* Hybrid
* Microkernel
* Monolithic
* vkernel
* Rump kernel
* Unikernel

|

Components|

* Device driver
* Loadable kernel module
* Microkernel
* User space

Process management|

| Concepts|

* Context switch
* Interrupt
* IPC
* Process
* Process control block
* Real-time
* Thread
* Time-sharing

|

Scheduling
algorithms|

* Computer multitasking
* Fixed-priority preemptive
* Multilevel feedback queue
* Preemptive
* Round-robin
* Shortest job next

Memory management and
resource protection|

* Bus error
* General protection fault
* Memory protection
* Paging
* Protection ring
* Segmentation fault
* Virtual memory

Storage access and
file systems|

* Boot loader
* Defragmentation
* Device file
* File attribute
* Inode
* Journal
* Partition
* Virtual file system
* Virtual tape library

List|

* Acorn
* Arthur
* ARX
* MOS
* RISC iX
* RISC OS
* Amiga Inc.
* AmigaOS
* AmigaOS 1.0-3.9 (Motorola 68000)
* AmigaOS 4 (PowerPC)
* Amiga Unix, a.k.a. Amix
* Amstrad
* AMSDOS
* Contiki
* SymbOS
* Android
* Apple Inc.
* Apple II family
* Apple III
* Apple DOS
* Apple Lisa
* Apple SOS
* Apple Pascal
* ProDOS
* GS/OS
* GNO/ME
* Contiki
* Apple Macintosh
* Classic Mac OS
* A/UX
* Copland
* MkLinux
* Pink
* Rhapsody
* macOS (formerly Mac OS X and OS X)
* macOS Server (formerly Mac OS X Server and OS X Server)
* Apple Network Server
* Apple MessagePad
* Newton OS
* iPhone and iPod Touch
* iOS (formerly iPhone OS)
* iPad
* iPadOS
* Apple Watch
* watchOS
* Apple TV
* tvOS
* Darwin
* iPod
* iPod software (unnamed embedded OS)
* A/ROSE
* Apollo Computer
* Domain/OS
* Atari
* Atari DOS
* Atari TOS
* Atari MultiTOS
* BAE Systems XTS-400
* Be Inc.
* BeOS
* BeIA
* BeOS r5.1d0
* Bell Labs Non-Unix
* BESYS
* Plan 9 from Bell Labs
* Inferno)
* Burroughs Corporation
* Burroughs MCP
* BSD
* Control Data Corporation
* Chippewa Operating System
* Kronos
* NOS (Network Operating System)
* SCOPE)
* Convergent Technologies Operating System
* Cosmos
* Cromemco
* Cromemco DOS
* Cromix
* Data General
* AOS (for 16-bit)
* DG/UX
* RDOS (Real-time DOS)
* Datapoint (CTOS for Z-80)
* DDC-I Inc.
* HeartOS
* Digital Research, Inc.
* CP/M
* CP/M Plus
* CP/M-68K
* CP/M-8000
* CP/M-86
* CP/M-86 Plus
* Concurrent CP/M
* Concurrent CP/M-86
* Concurrent CP/M 8-16
* Concurrent CP/M-68K
* Concurrent DOS
* Concurrent PC DOS
* Concurrent DOS 8-16
* Concurrent DOS 286
* Concurrent DOS XM
* Concurrent DOS 386
* Concurrent DOS 386/MGE
* Concurrent DOS 68K
* DR-DOS
* FlexOS
* FlexOS 186
* FlexOS 286
* FlexOS 68K
* Multiuser DOS
* Datapac Multiuser DOS
* Datapac System Manager, a derivative of Datapac Multiuser DOS
* IMS Multiuser DOS
* MP/M
* MP/M II
* MP/M-86
* MP/M 8-16
* PalmDOS 1.0
* Personal CP/M
* Digital Equipment Corporation
* Batch-11/DOS-11
* OS/8
* RSTS/E
* RSX-11
* RT-11
* TOPS-10
* TOPS-20
* TENEX
* Digital UNIX
* Ultrix
* VMS
* WAITS
* DOS
* ENEA AB OSE
* Fujitsu Towns OS
* General Electric, Honeywell, Bull
* Real-Time Multiprogramming Operating System
* GCOS
* Multics
* Genode
* GNU
* Google
* Android
* Chromium OS
* Chrome OS
* Goobuntu
* Fuchsia)
* Green Hills Software
* INTEGRITY
* INTEGRITY-178B
* µ-velOSity
* Haiku
* Harmony
* Heathkit, Zenith Data Systems
* HDOS
* HT-11
* Hewlett-Packare
* HP-UX
* Multi-Programming Executive
* Honeywell CP-6
* Huawei Harmony OS
* Intel Corporation
* ISIS
* IBM
* Pre-360
* BESYS
* CTSS
* GM OS & GM-NAA I/O
* IBSYS
* SHARE Operating System
* University of Michigan Executive System (UMES)
* OS/360 and successors
* OS/360 and successors
* MVS
* OS/390
* Phoenix/MVS
* z/OS)
* DOS
* DOS/360 and successors on IBM S/360, S/370, and successor mainframes
* BOS/360
* TOS/360
* DOS/VS
* DOS/VSE
* VSE/SP
* VSE/ESA
* z/VSE)
* VM/CMS
* CP/CMS
* CP-40
* CP-67
* VM/370
* VM/XA
* VM/ESA Virtual Machine
* z/VM)
* TPF line
* Airline Control Program ACP
* Transaction Processing Facility)
* Unix-like
* AIX
* UTS (Mainframe UNIX)
* Linux on z Systems
* Others on IBM S/360, S/370, and successor mainframes
* TSS/360
* MUSIC/SP
* ORVYL and WYLBUR
* IBM PC
* PC DOS
* OS/2
* OS/2 Warp
* eComStation)
* Other hardware
* IBM Series 1
* EDX
* RPS
* CPS
* IBM 1130 DM2
* IBM 1800 MPX & TSX
* IBM 8100
* DPCX
* DPPX)
* System 3 DMS
* IBM System 34, 36, 38
* OS/400
* illumos
* IncludeOS
* iOS
* audioOS
* iPadOS
* tvOS
* Linux
* MINIX
* MorphOS
* MUSIC/SP
* Nemesis
* NeXTSTEP
* NOS
* ORVYL
* OS/2
* OS-9
* OSv
* Pick
* QNX
* ReactOS
* RISC OS
* Solaris
* Tandem
* NonStop
* TPF
* TRIPOS
* Unix
* Visi On
* VS/9
* webOS
* Windows
* Xerox 500 series (530 RTB, 560)
* Xinu
* z/OS

Miscellaneous concepts|

* API
* Computer network
* HAL
* Live CD
* Live USB
* OS shell
* CLI
* GUI
* NUI
* TUI
* VUI
* ZUI
* PXE

sr:Osdev

0.00

(0 votes)

|

Retrieved from "https://handwiki.org/wiki/index.php?title=Hobbyist_operating_system_development&oldid=202035"
*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template