Exec is the
kernel of
AmigaOS
AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions ...
. It is a 13
KB multitasking microkernel
In computer science, a microkernel (often abbreviated as μ-kernel) is the near-minimum amount of software that can provide the mechanisms needed to implement an operating system (OS). These mechanisms include low-level address space management, ...
which enabled
pre-emptive multitasking in as little as 256 KB of memory (as supplied with the first
Amiga 1000s). Exec provided functions for multitasking,
memory management
Memory management (also dynamic memory management, dynamic storage allocation, or dynamic memory allocation) is a form of Resource management (computing), resource management applied to computer memory. The essential requirement of memory manag ...
, and handling of
interrupt
In digital computers, an interrupt (sometimes referred to as a trap) is a request for the processor to ''interrupt'' currently executing code (when permitted), so that the event can be processed in a timely manner. If the request is accepted ...
s and
dynamic shared libraries.
It acts as a
scheduler for tasks running on the system, providing pre-emptive multitasking with prioritized
round-robin scheduling. Exec also provides access to other
libraries and high-level
inter-process communication
In computer science, interprocess communication (IPC) is the sharing of data between running Process (computing), processes in a computer system. Mechanisms for IPC may be provided by an operating system. Applications which use IPC are often cat ...
via
message passing
In computer science, message passing is a technique for invoking behavior (i.e., running a program) on a computer. The invoking program sends a message to a process (which may be an actor or object) and relies on that process and its supporting ...
. Other comparable microkernels have had performance problems because of the need to copy messages between
address spaces. Since the Amiga has only one address space, Exec message passing is quite efficient. The only fixed memory address in the Amiga software (address 4) is a pointer to
exec.library
, which can then be used to access other libraries. Exec was designed and implemented by
Carl Sassenrath.
Exec
Unlike newer modern
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
s, the exec kernel does not run "privileged". Contemporary operating systems for the
Motorola 68000, such as
Atari TOS and
SunOS
SunOS is a Unix-branded operating system developed by Sun Microsystems for their workstation and server computer systems from 1982 until the mid-1990s. The ''SunOS'' name is usually only used to refer to versions 1.0 to 4.1.4, which were based ...
used
trap instructions to invoke kernel functions. This made the kernel functions run in the 68000's ''supervisor mode'', while user software ran in the unprivileged ''user mode''. By contrast, exec function calls are made with the library jump table, and the kernel code normally executes in user mode. Whenever supervisor mode is needed, either by the kernel or user programs, the library functions
Supervisor()
or
SuperState()
are used.
One limit of the Exec kernel was that an uncooperative program could disable multitasking for a long time, or indefinitely, by invoking Exec's calls
Forbid()
or
Disable()
, with no later invocation of corresponding
Permit()
or
Enable()
, causing the environment to run as one task. Multitasking could also be disabled by programs which, by software bug or intent, modify Exec's data structures or the code stored in
random-access memory
Random-access memory (RAM; ) is a form of Computer memory, electronic computer memory that can be read and changed in any order, typically used to store working Data (computing), data and machine code. A random-access memory device allows ...
(RAM), possibly due to lack of
memory management unit
A memory management unit (MMU), sometimes called paged memory management unit (PMMU), is a computer hardware unit that examines all references to computer memory, memory, and translates the memory addresses being referenced, known as virtual mem ...
(MMU) support.
Even with such limits, Exec satisfies the definition of preemptive scheduling algorithm, using a preemptive scheduling routine and basing its interrupt intervals on a clock.
Linux kernel
The Linux kernel is a Free and open-source software, free and open source Unix-like kernel (operating system), kernel that is used in many computer systems worldwide. The kernel was created by Linus Torvalds in 1991 and was soon adopted as the k ...
developer
Linus Torvalds
Linus Benedict Torvalds ( , ; born 28 December 1969) is a Finnish software engineer who is the creator and lead developer of the Linux kernel. He also created the distributed version control system Git.
He was honored, along with Shinya Yam ...
once described the Amiga design as cooperative,
even though it uses a preemptive scheduling policy. The reason for that, he argued, was because the lack of
protection">emoryprotection between tasks, meant a task could hinder the system from operating preemptively. As tasks would need to choose not to stop the preemptive mechanism this would reduce to a kind of inverted cooperative system. This kind of conflation between protection and scheduler policy is nonstandard.
ExecSG
ExecSG (Second Generation) is the kernel used by
AmigaOS 4
AmigaOS 4 (abbreviated as OS4 or AOS4) is a line of Amiga operating systems which runs on PowerPC microprocessors. It is mainly based on AmigaOS 3.1 source code developed by Commodore International, Commodore, and partially on version 3.9 develop ...
. This kernel was licensed by
Hyperion Entertainment from Thomas Frieden and Hans-Jörg Frieden.
It exposes the same functions and structures as the Amiga Exec kernel but runs on
PowerPC
PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
processors only. The ultimate origin of ExecSG is unspecified.
References
External links
Amiga Exec
{{Microkernel
Microkernels
Amiga APIs
CBM software
Operating system kernels