129 lines
3.5 KiB
Plaintext
129 lines
3.5 KiB
Plaintext
|
|
Services that provide base BF functionality
|
|
(base bf functionality is: capabilities, communication, skb)
|
|
- bind
|
|
- capability management
|
|
- group_comm
|
|
- mem alloc
|
|
- routing
|
|
- skb
|
|
|
|
Services that provide general OS functionality
|
|
- devices
|
|
- environment
|
|
- VMem
|
|
- VMachine
|
|
- naming?
|
|
- network stack
|
|
- shell
|
|
- terminal
|
|
- processes
|
|
- threading?
|
|
- debugging
|
|
- power mgmt
|
|
- storage mgmt
|
|
- resource mgmt?
|
|
- tracing?
|
|
|
|
Base:
|
|
- capability management (at user space) (creation, deletion, bookkeeping)
|
|
- capability transfer
|
|
- memory allocation (manage physical memory page pool)
|
|
- basic communication (UMP, LMP mechanisms - not binding, waiting, etc.)
|
|
|
|
Virtual Mem Management:
|
|
- address space management (creation, deletion, extension)
|
|
- protection management (shmem)
|
|
- device memory access
|
|
|
|
skb:
|
|
- knowledge databse (store, query)
|
|
- constraint solving engine
|
|
|
|
Communication:
|
|
- basic communication (mechanisms for performing IDC - LMP, UMP)
|
|
- binding (binding, waitsets) (can this be separated from basic comm?)
|
|
- stubs
|
|
- group communication
|
|
- routing
|
|
- name service
|
|
|
|
Process management
|
|
- dispatchers (basic dispatcher functionality)
|
|
- scheduling dispatchers
|
|
- threading within a dispatcher (scheduling)
|
|
- thread management (pthreads-like functionality)
|
|
- process management (start, stop, create, spawn, span, list)
|
|
- process accounting
|
|
- process environment
|
|
|
|
Synchronisation
|
|
- kernel mechanisms?
|
|
- lock server - mutual exclusion
|
|
- signalling mechnisms
|
|
- thread mechanisms?
|
|
|
|
Devices
|
|
- interrupt handling
|
|
- device access framework (registers, memory)
|
|
- DMA management
|
|
- device driver framework (if any?)
|
|
- device drivers
|
|
- bus management (bus scanning, device enumeration, etc.)
|
|
- device database (tracking devices abvailable, tracking device details (addresses, IRQs, busses, etc. - also skb functionality)
|
|
- device management (starting device drivers, stopping device drivers, initialising device drivers with proper device data)
|
|
- pluggable device management
|
|
- timer services (time of day, start timer, stop timer, alarm)
|
|
|
|
Resource management and accounting
|
|
- monitor resource use
|
|
- database of historic resource use
|
|
- resource accounting (who is using what resources, when)
|
|
- resource access management (give access to resources, remove access to resources) (who to give access to? processes, threads? drivers? users? apps? domains?)
|
|
- what are 'resources'?
|
|
+ basic resources: CPU, memory, IRQs, device memory, registers?, coprocessors?
|
|
+ OS resources: devices, drivers, cpu time, files, network bandwidth
|
|
- scheduling?
|
|
- power management
|
|
+ monitor power usage
|
|
+ power management mechanisms
|
|
+ power management policies
|
|
- paging (virtual memory)
|
|
- hardware counters (cycle counters, etc.)
|
|
|
|
Protection and Security
|
|
- principals (users, processes, domains, dispatchers, applications, ...?)
|
|
- objects (endpoints, processes, dispatchers, domains, apps, files, devices, network, terminals, ...?) (basic resources, OS resources, higehr level concepts?)
|
|
- access control mechanisms
|
|
- access control policies
|
|
|
|
Interaction and IO
|
|
- storage management (eg filesystem)
|
|
- network stack
|
|
- terminal
|
|
- audio input framework
|
|
- audio output
|
|
- input framework
|
|
- GUI/window framework
|
|
- other IO frameworks
|
|
- other system-wide frameworks (eg pub/sub, system events, etc.)
|
|
|
|
Shell
|
|
- command interpreter
|
|
|
|
Applications
|
|
- various apps that are not considered part of the OS
|
|
|
|
Virtualisation
|
|
- VMM
|
|
|
|
Tracing and debugging
|
|
- trace collector
|
|
- trace database
|
|
- access to kernel internals
|
|
- access to communication internals
|
|
- access to dispatcher internals
|
|
- access to process internals
|
|
- access to thread internals
|
|
- access to memory
|