SymbOS

Last updated
SymbOS
Symbos-cpc.png
Screenshot of the SymbOS desktop on the Amstrad CPC
Developer SymbiosiS
Written in Assembly language (Zilog Z80)
Working stateCurrent
Source model Freeware
Initial release1 May 2006;18 years ago (2006-05-01)
Latest release 3.1 / 30 December 2021;2 years ago (2021-12-30)
Available in English
Platforms Amstrad CPC, MSX, Amstrad PCW, Enterprise 64/128
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.

Contents

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 August 30, 2017 it is available for the Amstrad CPC series of computers, all MSX models starting from the MSX2 standard, MSX with V9990 graphics chip, all Amstrad PCW models, CPC-TREX, C-ONE and the Enterprise 64/128 computers. [1]

Motivation and rationale

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.

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

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

Task management

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

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

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

SymbOS supports the file systems CP/M, AMSDOS, and File Allocation Table (FAT) 12-16-32, on all platforms. With the last one, 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. Because of the FAT support data exchange with other computers is quite easy, as most 32 and 64 bit operating systems do support the three FAT file systems.

Interface

Screenshot of the MSX version of SymbOS Symbos-msx2.gif
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. This makes SymbOS GUI much more memory-friendly compared to most other 8-bit GUIs.

Applications

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. [3]

Commands

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

Development and release

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 comparatively easy.

The MSX computers starting with the MSX2 standard have been supported since summer 2006. The Amstrad PCW port has been available since August 2007. Versions for the Enterprise 128, the SAM Coupé and such clones of ZXSpectrum 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

Related Research Articles

<span class="mw-page-title-main">Amstrad CPC</span> Home computers produced by Amstrad

The Amstrad CPC is a series of 8-bit home computers produced by Amstrad between 1984 and 1990. It was designed to compete in the mid-1980s home computer market dominated by the Commodore 64 and the ZX Spectrum, where it successfully established itself primarily in the United Kingdom, France, Spain, and the German-speaking parts of Europe.

<span class="mw-page-title-main">Computer multitasking</span> Concurrent execution of multiple processes

In computing, multitasking is the concurrent execution of multiple tasks over a certain period of time. New tasks can interrupt already started ones before they finish, instead of waiting for them to end. As a result, a computer executes segments of multiple tasks in an interleaved manner, while the tasks share common processing resources such as central processing units (CPUs) and main memory. Multitasking automatically interrupts the running program, saving its state and loading the saved state of another program and transferring control to it. This "context switch" may be initiated at fixed time intervals, or the running program may be coded to signal to the supervisory software when it can be interrupted.

A real-time operating system (RTOS) is an operating system (OS) for real-time computing applications that processes data and events that have critically defined time constraints. An RTOS is distinct from a time-sharing operating system, such as Unix, which manages the sharing of system resources with a scheduler, data buffers, or fixed task prioritization in a multitasking or multiprogramming environments. Processing time requirements need to be fully understood and bound rather than just kept as a minimum. All processing must occur within the defined constraints. Real-time operating systems are event-driven and preemptive, meaning the OS can monitor the relevant priority of competing tasks, and make changes to the task priority. Event-driven systems switch between tasks based on their priorities, while time-sharing systems switch the task based on clock interrupts.

<span class="mw-page-title-main">Amstrad</span> British electronics company

Amstrad was a British consumer electronics company, founded in 1968 by Alan Sugar. During the 1980s, the company was known for its home computers beginning with the Amstrad CPC and later also the ZX Spectrum range after the Sinclair deal, which led it to have a substantial share of the PC market in Britain. In the following decade it shifted focus towards communication technologies, and its main business during the 2000s was the manufacture of satellite television set-top boxes for Sky, which Amstrad had started in 1989 as the then sole supplier of the emerging Sky TV service.

OS-9 is a family of real-time, process-based, multitasking, multi-user operating systems, developed in the 1980s, originally by Microware Systems Corporation for the Motorola 6809 microprocessor. It was purchased by Radisys Corp in 2001, and was purchased again in 2013 by its current owner Microware LP.

<span class="mw-page-title-main">Process (computing)</span> Particular execution of a computer program

In computing, a process is the instance of a computer program that is being executed by one or many threads. There are many different process models, some of which are light weight, but almost all processes are rooted in an operating system (OS) process which comprises the program code, assigned system resources, physical and logical access permissions, and data structures to initiate, control and coordinate execution activity. Depending on the OS, a process may be made up of multiple threads of execution that execute instructions concurrently.

<span class="mw-page-title-main">MSX</span> Family of standardized home computer architectures released between 1983 and 1992

MSX is a standardized home computer architecture, announced by ASCII Corporation on June 16, 1983. It was initially conceived by Microsoft as a product for the Eastern sector, and jointly marketed by Kazuhiko Nishi, the director at ASCII Corporation. Microsoft and Nishi conceived the project as an attempt to create unified standards among various home computing system manufacturers of the period, in the same fashion as the VHS standard for home video tape machines. The first MSX computer sold to the public was a Mitsubishi ML-8000, released on October 21, 1983, thus marking its official release date.

<span class="mw-page-title-main">Amstrad PCW</span>

The Amstrad PCW series is a range of personal computers produced by British company Amstrad from 1985 to 1998, and also sold under licence in Europe as the "Joyce" by the German electronics company Schneider in the early years of the series' life. The PCW, short for Personal Computer Word-processor, was targeted at the word processing and home office markets. When it was launched the cost of a PCW system was under 25% of the cost of almost all IBM-compatible PC systems in the UK, and as a result the machine was very popular both in the UK and in Europe, persuading many technophobes to venture into using computers. The series is reported to have sold 8 million units. However the last two models, introduced in the mid-1990s, were commercial failures, being squeezed out of the market by the falling prices, greater capabilities and wider range of software for IBM-compatible PCs.

In computing, scheduling is the action of assigning resources to perform tasks. The resources may be processors, network links or expansion cards. The tasks may be threads, processes or data flows.

<span class="mw-page-title-main">Locomotive BASIC</span>

Locomotive Basic is a proprietary dialect of the BASIC programming language written by Locomotive Software on the Amstrad CPC and the later Locomotive BASIC-2 as a GEM application on the Amstrad PC1512 and 1640. It was the main descendant of Mallard BASIC, the interpreter for CP/M supplied with the Amstrad PCW.

MultiFinder is an extension for the Apple Macintosh's classic Mac OS, introduced on August 11, 1987 and included with System Software 5. It adds cooperative multitasking of several applications at once – a great improvement over the previous Macintosh systems, which can only run one application at a time. With the advent of System 7, MultiFinder became a standard integrated part of the operating system and remained so until the introduction of Mac OS X.

<span class="mw-page-title-main">Enterprise (computer)</span> Zilog Z80-based home computer

The Enterprise is a Zilog Z80-based home computer announced in 1983, but due to a series of delays, was not commercially available until 1985. It was developed by British company Intelligent Software and marketed by Enterprise Computers.

<span class="mw-page-title-main">IBM TopView</span> Former front-end to DOS

TopView is the first object-oriented, multitasking, and windowing, personal computer operating environment for PC DOS developed by IBM, announced in August 1984 and shipped in March 1985. TopView provided a text-mode operating environment that allowed users to run more than one application at the same time on a PC. IBM demonstrated an early version of the product to key customers before making it generally available, around the time they shipped their new PC AT computer.

Micro-Controller Operating Systems is a real-time operating system (RTOS) designed by Jean J. Labrosse in 1991. It is a priority-based preemptive real-time kernel for microprocessors, written mostly in the programming language C. It is intended for use in embedded systems.

In computing, preemption is the act of temporarily interrupting an executing task, with the intention of resuming it at a later time. This interrupt is done by an external scheduler with no assistance or cooperation from the task. This preemptive scheduler usually runs in the most privileged protection ring, meaning that interruption and then resumption are considered highly secure actions. Such changes to the currently executing task of a processor are known as context switching.

MSX-DOS is a discontinued disk operating system developed by Microsoft's Japan subsidiary for the 8-bit home computer standard MSX, and is a cross between MS-DOS v1.25 and CP/M-80 v2.2.

An MSX-ENGINE chip is a specially developed integrated circuit for home computers that are built according to the MSX specifications. Generally, such a chip combines the functions of many separate, older/simpler chips into one. This is done to reduce required circuit board space, power consumption, and production costs for complete systems.

<span class="mw-page-title-main">Home computer</span> Class of microcomputers

Home computers were a class of microcomputers that entered the market in 1977 and became common during the 1980s. They were marketed to consumers as affordable and accessible computers that, for the first time, were intended for the use of a single, non-technical user. These computers were a distinct market segment that typically cost much less than business, scientific, or engineering-oriented computers of the time, such as those running CP/M or the IBM PC, and were generally less powerful in terms of memory and expandability. However, a home computer often had better graphics and sound than contemporary business computers. Their most common uses were word processing, playing video games, and programming.

References

  1. "Facts about SymbOS". SymbOS. Archived from the original on 2022-09-06. Retrieved 4 December 2022.
  2. "Micro-Kernel". SymbOS. Archived from the original on 2020-08-07. Retrieved 4 December 2022.
  3. "SymbOS Apply Preview". CPC Rulez. Archived from the original on 2021-03-01. Retrieved 4 December 2022.
  4. "SymShell". SymbOS. Archived from the original on 2022-04-07. Retrieved 4 December 2022.