iRMX 86 was the best OS I ever developed on
It had concept of levels
1. Nucleus
- task scheduling
- jobs
- segments
- mailboxes - my favorites
- semaphores
- regions
- interrupt response
- object directories
This is where hard realtime programming lived.
2. Executive
Built on nucleus objects.
Adds:
- richer process control
- naming/cataloging
- system object organization
- higher-level synchronization
Application system programmers usually worked here.
3. BIOS (Basic I/O System)
Low-level async I/O abstraction:
- device-independent queues
- driver framework
- request packets
- interrupt-driven completion
4. EIOS (Extended I/O System)
Adds filesystem:
- hierarchical files
- logical names
- buffering
- synchronous operations
- pathname lookup
Possibly std also need “levels”
And one important point - you can write your application on every level, depends on functionality