Operating System
Kernel Objects
OS600 manages a number of different object types. They are implemented in class listed under backend class. All objects are kept in kernel memory, and to user space only unique object id is passed. To make things easier for programmer, those object ids are actually asigned to user classes, which are just wrappers around some SWI calls operating on given object type.
| ID | Name | Backend class | User class |
|---|---|---|---|
| 0 | kObjectPort | TPort | TUPort |
| 1 | kObjectTask | TTask | TUTask |
| 2 | kObjectEnvironment | TEnvironment | TUEnvironment |
| 3 | kObjectDomain | TKDomain | TUDomain |
| 4 | kObjectSemList | TSemaphoreOpList | TUSemaphoreOpList |
| 5 | kObjectSemGroup | TSemaphoreGroup | TUSemaphoreGroup |
| 6 | kObjectSharedMem | TSharedMem | TUSharedMem |
| 7 | kObjectSharedMemMsg | TSharedMemMsg | TUSharedMemMsg |
| 8 | kObjectMonitor | TMonitor | TUMonitor |
| 9 | kObjectPhys | TPhys | TUPhys |
Port
Ports are used to exchange messages between tasks.
Task
Tasks are executed paralelly by operating system. Tasks can be assigned an Environment. Each object could be owned by a task. Tasks see "local" object ids.
Environment
Environment groups a number of Domains and can be assigned to a number of tasks.
Domain
Each page in MMU can belong to one of 16 domains, and access rights can be set based on active domains. Each domain can have designated Fault Monitor, which handles all MMU faults.
Semaphore OpList
TBD
Semaphore Group
TBD
Shared Memory
TBD
Shared Memory Message
TBD
Monitor
Monitors are used to guarantee that only single task executes function passed to monitor constructor.
Phys
This is representation of physical memory page (or subpage).

