Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Quark (kernel)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{More citations needed|date=July 2009}} {{Use dmy dates|date=May 2021}} {{Infobox OS | name = Quark | logo = <!-- Filename only: no wikilink, Image: or File: --> | logo size = | logo caption = | logo alt = | screenshot = | caption = | developer = Ralph Schmidt, Teemu Suikki | family = [[AmigaOS]] | working state = Current | source model = | released = <!-- {{Start date and age|201y}} If known, add |mm|dd|df=yes --> | discontinued = | latest release version = | latest release date = <!-- {{Start date and age|2021|mm|dd|df=yes}} --> | repo = <!-- {{URL|https://www.example.org}} --> | marketing target = [[Amiga]] | programmed in = [[C (programming language)|C]], [[assembly language]] | language = English | update model = Compile from [[source code]] | supported platforms = [[Motorola 68000 series]] (MC680x0, 68k),<br/>[[PowerPC]] (PPC) | kernel type = [[Microkernel]] | userland = | ui = [[Command-line interface]] | license = | preceded by = [[AmigaOS]] | succeeded by = | website = <!-- {{URL|www.example.edu}} --> }} In [[computing]], '''Quark''' is an [[operating system]] [[Kernel (operating system)|kernel]] used in [[MorphOS]]. It is a [[microkernel]] designed to run fully [[Virtualization|virtualized]] computers, called ''boxes'' (see [[Sandbox (computer security)|sandbox]]). {{As of|2020}}, only one ''box'' is available, the ''ABox'', that lets users run extant [[AmigaOS]] software compiled for [[Motorola 68000 series]] (MC680x0 or 68k) and [[PowerPC]] [[central processing unit]]s (CPUs). ==Design goals== The Quark microkernel is not a member of the [[L4 microkernel family]], but borrows concepts from it, including: the ''clan'' (group of tasks), ID concept, and recursive address mapping. Quark also has an asynchronous/synchronous message interface similar to [[Amiga]]'s [[Exec (Amiga)|Exec]] kernel but adapted to an environment with [[memory protection]]. Other Quark features include: * High super/usermode switch speed * Low interrupt latency * [[Interrupt]] [[Thread (computing)|threads]] (IntThreads) and Int [[P-code machine|P-code]] abstraction * [[Symmetric multiprocessing]] (SMP) * Models task/thread and clan/chief * [[Resource tracking]] * [[Virtual memory]] (optional) * [[Distributed computing]] * No access to [[Kernel (operating system)|kernel]] structures * Clean design with an elegant application programming interface ([[API]]) * Micro/pico kernel mix For this new kernel, a [[hardware abstraction layer]] is used which provides the needed hardware resource information like scanning all [[Amiga Zorro II]] bus boards, [[Peripheral Component Interconnect]] (PCI) boards, and local hardware resources.<ref name="WhatsThat">{{Cite news |title=MorphOS? What's that, then? |work=AmigActive |pages=14–17 |date=July 2000}}</ref><ref>{{cite web |url=http://www.ggsdata.se/Pegasos/Bilder/morphos_reference.pdf |title=MorphOS Full Features List |last=Gerber |first=David |year=2002 |access-date=2010-07-28}}</ref> ==Functions== {{Div col}} * SYS_AddLinkMessage * SYS_AttemptSemaphore * SYS_AttemptSemaphoreShared * SYS_CopyCPUHalConfig * SYS_CreateMemList * SYS_CreateTask * SYS_DeletePort * SYS_DeleteSemaphore * SYS_DumpMemHeader * SYS_FindFreeMemArea * SYS_FindSkipSize * SYS_GetLinkMessage * SYS_GetMessageAttr * SYS_GetNextCPU * SYS_Init * SYS_InsideClan * SYS_IsClanMember * SYS_MMUAddPage * SYS_MMUGetEntry * SYS_MoveRomModuleToMemoryEnd * SYS_ObtainPort * SYS_ObtainSemaphore * SYS_ObtainSemaphoreShared * SYS_ReleaseSemaphore * SYS_ReplyMessage * SYS_SendMessage * SYS_SetMessageAttr * SYS_SetupPageTable * SYS_ShowExceptionThreads * SYS_ShowForbidThreads * SYS_ShowIntThreads * SYS_ShowQuarkState * SYS_ShowReadyThreads * SYS_ShowRunThreads * SYS_ShowThreads * SYS_ShowWaitIntThreads * SYS_ShowWaitThreads * SYS_Start * SYS_StartNextThread * SYS_StartThread * SYS_WaitPort {{Div col end}} ==Trance JIT== ''[[Trance JIT]]'' is a [[MorphOS]] [[Just-in-time compilation|just-in-time]] (JIT) [[compiler]], or code translator, for running 68k applications within the MorphOS environment. It has been part of the MorphOS operating system since MorphOS 1.4.<ref>{{cite web |url=http://www.ann.lu/comments2.cgi?view=1060418084&category=files |title=MorphOS 1.4 available |date=9 August 2003 |access-date=2010-07-28}}</ref> MorphOS has a fully integrated 68k emulator to run many Amiga applications, which were almost exclusively compiled for the 68k processor, though MorphOS runs on [[PowerPC]]. Trance supplements this function by adding JIT compiling, increasing the speed of the emulation. It does not interfere with the full integration of 68k and PowerPC tasks MorphOS provides.<ref name="WhatsThat"/> Trance exists in the form of an executable, run during boot, and a shared library. Although it is not technically part of the kernel, and MorphOS can be run without it, Trance is considered a fundamental part of MorphOS and one of its most powerful features. Compatibility of Trance is considered to be very high and there are few to no 68k instruction sequences or applications which cause it any problems. It is also considered to be very fast, with users noticing few differences between 68k programs and native PowerPC code.<ref> {{cite web |url=http://www.amiga.org/forums/archive/index.php/t-3501.html |title=How fast is MorphOS? |date=8 February 2003 |access-date=2010-07-28}}</ref><ref>{{cite web |url=http://www.ann.lu/comments2.cgi?show=1036326848&category=forum&23 |title=MorphOS 68k speed |date=3 November 2002 |access-date=2010-07-28}}</ref><ref>{{cite web |url=http://obligement.free.fr/articles/amigaos41_vs_morphos23.php |title=Comparatif: performances entre AmigaOS 4.1 et MorphOS 2.3 sur Pegasos II |date=September 2009 |language=Fr |access-date=2010-07-28}}</ref> Trance was developed by Ralph Schmidt and Teemu Suikki, with minor support from other MorphOS team members, Mark Olsen, Sigbjørn Skjæret, and Harry Sintonen. ==ABox== Under the Quark kernel, a [[PowerPC]] native reimplementation of the OS known from the [[Commodore International]] A1000, A500(+), A600, A2000, A1200, A3000(T), and A4000(T) systems runs as a mix of a virtual emulation and a [[Driver (software)|driver]]. This OS driver is called an ABox. The 68k emulation is written in [[C (programming language)|C]] and uses [[GNU Compiler Collection]] (GCC) [[assembly language]] macros where needed to speed up some complex instructions. A JIT engine named [[Trance JIT|Trance]] is also available for MorphOS, to speed up old 68k programs beyond the current state of the traditional emulation. The PPC native Exec supports the PowerPC register model which means there is no difference for this 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 ABox kernel 68k code runs as subroutines inside PowerPC tasks. For 68k or PowerPC applications it's fully transparent if some library, hook, interrupt is still 68k or already using PowerPC code.<ref>{{cite web |url=http://polarboing.com/div/morphos/morphos-full-features-list.txt |title=MorphOS Full Features List |date=11 December 2002 |access-date=2010-07-28}}</ref> ==References== {{Reflist}} {{MorphOS}} {{Microkernel}} [[Category:Microkernels]] [[Category:MorphOS]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:As of
(
edit
)
Template:Cite news
(
edit
)
Template:Cite web
(
edit
)
Template:Div col
(
edit
)
Template:Div col end
(
edit
)
Template:Infobox OS
(
edit
)
Template:Microkernel
(
edit
)
Template:More citations needed
(
edit
)
Template:MorphOS
(
edit
)
Template:Reflist
(
edit
)
Template:Use dmy dates
(
edit
)