Net/System is a operating system with networking support and a collection of system software.
Net/Exec is a minimal executive with networking support. NetExec's API is loosely based on the Amiga Executive, but with major changes, including greatly improved synchronization.
NetExec supports doubly linked lists and queues, like the Amiga.
NetExec supports tasks with atomic value comparison based blocking, unlike the Amiga, as well as Amiga-like signal based blocking.
NetExec supports semaphores, mutexes, and Forbid/Permit.
NetExec supports pointer based message passing, like the Amiga.
On IBM PC compatible platforms, the BIOS Data Area (BDA) is used to determine the presence and I/O port numbers for the serial and parallel ports. Example compat strings include:
On IBM PC compatible platforms, PCI is used to detect all sorts of devices.
The Hardware Abstraction Layer (HAL) implements a standard set of platform specific functions that allow the Executive to interact with the base hardware. This hardware consists of an interrupt controller, a timer, and an output only port for debug communication. It also implements context switching, helper code for task creation, and hardware detection/enumeration.
Detects are definitions of devices detected to be present on the system. They are used by device drivers do determine the presence and resources of each unit. Resources include regions (memory and I/O ranges) and IRQ numbers.
Architectures like x86 have a port address space in addition to a memory address space. In order that drivers written for the PC platform can be reused, the address space must be specified. This allows nsserial, originally written for the pcmultiboot platform using port I/O with addresses sourced from the BIOS Data Area, to be used on Raspberry Pi or even on x86 when using MMIO (e.g. with PCI). The amount of overhead this introduces in minimal. However, it does mean driver writers must keep track of both the address and what address space is used. Detect regions also specify address space. This also means that I2C devices can be specified in address spaces as long as it is clear what address spaces other than AS_IO and AS_MEM mean in the HAL implementation.
| Date | Name |
|---|---|
| 12/30/25 | Hardware IDs |
| 12/28/25 | Amiga Exec Doubly Linked Priority Queue Explained |