SymbOS

This article is about the computer system. For the obsolete caprine genus Symbos, see Bootherium.

Not to be confused with Symbian OS.

This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these messages)

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "SymbOS" – news · newspapers · books · scholar · JSTOR (September 2012) (Learn how and when to remove this message)

|

This article may contain excessive or inappropriate references to self-published sources. Please help improve it by removing references to unreliable sources where they are used inappropriately. (September 2012) (Learn how and when to remove this message)

|

The topic of this article may not meet Wikipedia's general notability guideline. Please help to demonstrate the notability of the topic by citing reliable secondary sources that are independent of the topic and provide significant coverage of it beyond a mere trivial mention. If notability cannot be shown, the article is likely to be merged, redirected, or deleted.
Find sources: "SymbOS" – news · newspapers · books · scholar · JSTOR (September 2012) (Learn how and when to remove this message)

|

(Learn how and when to remove this message)

Operating system

SymbOS

Screenshot of the SymbOS desktop on the Amstrad CPC

Developer| SymbiosiS
Written in| Assembly language (Zilog Z80)
Working state| Current
Source model| Freeware
Initial release| 1 May 2006; 19 years ago (2006-05-01)
Latest release| 4.0 / 31 January 2025; 6 months ago (2025-01-31)
Available in| English
Supported platforms| Amstrad CPC, MSX, Amstrad PCW, Amstrad NC100, Amstrad NC200, Enterprise 64/128, ZX Spectrum Next, Virtual Machine
Kernel type| Microkernel
Default
user interface| Graphical user interface
Official website| www.symbos.de

SYmbiosis Multitasking Based Operating System (SymbOS) is a multitasking operating system for Zilog Z80-based 8-bit computer systems.

Unlike early 8-bit operating systems, SymbOS is based on a microkernel, which provides preemptive and priority-oriented multitasking and manages random-access memory (RAM) with a size of up to 1024 KB. It has a Windows-like graphical user interface (GUI), supports hard disks with a capacity of up to 128 GB and can already be booted on an unexpanded Amstrad CPC-6128, a 128K-MSX2 and an Amstrad PCW.

As of January 31, 2025, it is available for the Amstrad CPC, Amstrad PCW models, Amstrad NC series of computers, Enterprise 64/128, the ZX Spectrum Next, all MSX models starting from the MSX2 standard, MSX with V9990 graphics chip, CPC-TREX, C-ONE and as a Virtual Machine for running on modern hardware.[1]

## Motivation and rationale

[edit]

SymbOS was originally started as an experiment to find out to what extent it is possible to implement a multitasking operating system with a windowed GUI on an 8-bit computer from 1985. GEOS contributed to the motivation, but the structure and features of SymbOS aren't similar to that system. The release in 2006 proved that such a "mini windows" system is possible on a then 20-year-old home computer with only quantitative limitations. SymbOS is one of the largest retro computing software projects of recent years. One of the goals of the project is to allow these old machines to be used like a modern PC, using hardware extensions.[2]

Although only an 8-bit CPU, the Z80 can run a preemptive multitasking operating system. Features such as memory protection, which the Z80 lacks, are not essential in such an OS. For example, AmigaOS also lacks memory protection. The MP/M OS proved that multitasking on the Z80 CPU was possible. Yet, it was generally unavailable for home computers.

While the MOS Technology 6502 cannot move the stack pointer, the Z80 can freely relocate it to any position in memory, which makes it easier to implement preemptive multitasking. The existence of an alternative register set accelerates context switching between tasks dramatically. The restriction of Z80 system to a 64 KB address space can be solved with bank switching. In this way, computers like the Amstrad CPC and PCW, MSX, Enterprise or SAM Coupé can access hundreds or thousands of kilobytes of memory.

## Design

[edit]

SymbOS includes a microkernel, which can perform task management, memory management and inter-process communication.[3]

### Task management

[edit]

For task management, a combination of preemptive and cooperative multitasking was chosen, which makes different task priorities possible. Preemptive means that tasks are interrupted after a certain amount of time by the operating system, in order to share the CPU time with other tasks. Cooperatively means that a task stops using CPU time by itself. It does that, if it's finished with its current job or waiting for a certain event. Because of this combination it is possible to assign priorities. Tasks with low priority get CPU time only if all tasks with higher priorities are not then working.

### Memory and banking management

[edit]

Main article: bank switching

Memory management divides the entire RAM into small 256 byte blocks, which can be assigned dynamically. Applications are always running in a secondary 64 KB RAM bank, where no memory space is occupied by the operating system or the video memory. That makes it possible to reserve up to 63 KB in one piece.

Banking management ensures that the system can administer memory with a size of up to one megabyte, even though the Z80 CPU has only a 16-bit address bus. It makes transparent access to memory and functions placed in other 64 KB banks possible.

### Interprocess communication

[edit]

Communication between different tasks and the operating system usually does not take place via calls, but is done via messages. This is necessary inside a multitasking environment to avoid organization problems with the stack, global variables and shared system resources. The SymbOS kernel supports synchronous and asynchronous IPC.

### File system management

[edit]

SymbOS supports the file systems CP/M, AMSDOS, and File Allocation Table (FAT) 12-16-32, on all platforms. For the latter, SymbOS can address mass storage devices with a capacity of up to 128 GB. Also, the ability to administer files with a size of up to 2 GB is uncommon for an 8-bit system. FAT support allows easy data exchange with other computers, as most 32 and 64 bit operating systems support the three FAT file systems.

## Interface

[edit]

Screenshot of the MSX version of SymbOS

The graphical user interface (GUI) of SymbOS works in a fully object-oriented manner. The look and feel mimics that of Microsoft Windows. It contains the well-known task bar with the clock and the "start" menu and can open up to 32 windows that can be moved, resized and scrolled. The whole system is written in optimized assembly language, meaning that the GUI runs as fast as the host machine supports.

Content of a window is defined with "controls" that are primitive GUI elements such as sliders, check boxes, text lines, buttons or graphics. The background or invisible areas of a window don't need to be saved in a separate bitmap buffer. If an area needs to be restored on the display, its contents will be redrawn instead.

## Applications

[edit]

There are several standard applications available for SymbOS, which are designed to resemble similar software available on other operating systems. Examples include Notepad, SymCommander (similar to Norton Commander), SymShell (cmd.exe), SymZilla (Mozilla Firefox), SymPlay (QuickTime), SymAmp (Winamp) and Minesweeper.[4]

Applications can be written for SymbOS in Z80 Assembler or Ansi C (using a native compiler) and can be assisted with the Quigs development IDE[5]

### Commands

[edit]

The following list of commands is supported by SymShell.[6]

* ATTRIB
* CD
* CLS
* COLOR
* COPY
* DATE
* DEL
* DIR
* ECHO
* EXIT
* FULL
* HELP
* MD
* MOVE
* PAUSE
* RD
* REM
* REN
* SIZE
* TIME
* TYPE
* VER

## Development and release

[edit]

SymbOS was originally developed for the Amstrad CPC. Its modular structure, with strict separation of general and hardware components, makes porting to other Z80-based systems with sufficient memory possible.

Release 1.0 (May 2006) was the initial release and supported the Amstrad CPC.

Release 1.1 (December 2006) added support for MSX2 computers.

Release 2.0 (August 2007) added a port for the Amstrad PCW.

Release 2.1 (August 2014) saw the support for additional MSX computers.

Release 3.0 (August 2017) added support for Enterprise 64/128.

Release 3.1 (December 2021) added additional hardware support for the platforms for video and mass storage.

Release 4.0 (January 2025) saw the addition of Amstrad NC series, ZX Spectrum Next and the Virtual Machine edition.

Versions for the SAM Coupé and such clones of ZX Spectrum as ATM-turbo 2+ and ZX-Evolution/BaseConf are possible, too, as they fulfill the requirements for SymbOS.

By keeping a basic condition for an operating system, the strict separation of hardware and application software by an intermediate layer, SymbOS applications run platform-independently on each computer and doesn't need to be adapted for different systems, with the obvious exception of applications that directly access particular hardware.

## See also

[edit]

* Contiki
* MSX-DOS
* OS-9

## References

[edit]

1. ^ "SymbOS Platforms". SymbOS. Retrieved 19 February 2025.
2. ^ symbos.de http://symbos.de/facts.htm. Retrieved 2025-02-19. `{{cite web}}`: Missing or empty `|title=` (help)
3. ^ "Micro-Kernel". SymbOS. Archived from the original on 2020-08-07. Retrieved 4 December 2022.
4. ^ "SymbOS Apply Preview". CPC Rulez. Archived from the original on 2021-03-01. Retrieved 4 December 2022.
5. ^ symbos.de http://symbos.de/quigs.htm. Retrieved 2025-02-19. `{{cite web}}`: Missing or empty `|title=` (help)
6. ^ "SymShell". SymbOS. Archived from the original on 2022-04-07. Retrieved 4 December 2022.

## External links

[edit]

* Official website
* SymbOS installation help file
* SymbOS mailing list
* Page at the CPCWiki
* SymbOS demo video running on a real MSX turboR GT with MP3MSX cartridge

* v
* t
* e

Hobbyist operating systems

* AROS
* BareMetal
* EmuTOS
* FiwixOS
* GeckOS
* HelenOS
* KolibriOS
* MenuetOS
* Phantom OS
* Redox
* SerenityOS
* SharpOS
* SkyOS
* Syllable Desktop
* SymbOS
* TempleOS
* ToaruOS

* Category
* List

*[v]: View this template
*[t]: Discuss this template
*[e]: Edit this template