Quark (kernel)
From Wikipedia, the free encyclopedia
The Quark kernel used in MorphOS is a microkernel designed to run totally virtualized computers, called "boxes" (see sandbox). Currently only one "Box" is available, the ABox, that lets users run old AmigaOS software compiled for MC680x0 processors.
MorphOS/Quark has the following basic design goals:
- High Super/Usermode switch speed
- Low interrupt latency
- IntThreads and Int PCode abstraction
- Memory protection
- Symmetrical multi processing (SMP)
- Task/Thread and Clan/Chief model
- Resource tracking
- Asynchronous message system
- Virtual memory (optional)
- Recursive Memory Management
- Distributed computing
- No access to Kernel structures
- Clean design with an elegant API
- Micro/pico kernel mixture
For this new kernel a hardware abstraction layer is used which provides the necessary hardware resource information like scanning all zorro boards, pci boards and local hardware resources.
Under the Quark kernel a PowerPC native reimplementation of the OS we know from the Commodore A1000, A500, A2000, A1200, A3000(T) and A4000(T) systems runs as a mixture of a virtual emulation and a driver. We call this OS driver from now on the A-Box.
The 68k emulation is written in C and uses gcc assembler macros where necessary to speed up certain complex instructions. Even though the emulation is written in C, its structure is on a level where handcoded assembler isn't significantly faster.
A JIT (Just In Time) engine for MorphOS to speed up old 68k programs beyond the current state of the traditional emulation is also available.
The new native PPC Exec supports the PowerPC register model which means there's no difference for this new Exec if it runs 68k or PowerPC code. PowerPC code does not block multitasking inside the OS box like in emulations where the 68k code is just emulated in some host system's task (then every access outside this environment would stop the multitasking in the emulated environment).
For applications running under this new PowerPC A-Box kernel 68k code runs as subroutines inside PowerPC tasks. For 68k or PowerPC applications it's completely transparent if some library, hook, interrupt is still 68k or already using PowerPC code.
Early in its development, there was a relatively common misconception that the Quark Microkernel in MorphOS is related to or borrowed from the QNX operating system. This is entirely false.
This operating system-related article is a stub. You can help Wikipedia by expanding it |