Specify kernel API surface #2

Open
opened 2019-03-11 09:31:35 +00:00 by berkus · 0 comments
Owner
  • Low-level calls

  • Kernel object types

  • Capability-based calls

  • IPC

  • Cap management

  • AddressSpace management

  • Thread TCB management

Basic IPC is done via syscalls:

  • Send
    • send to a capability
  • Non-blocking Send
    • non-blocking send to a capability
  • Call
    • call a capability (send followed by recv?)
  • Recv
    • receive from an endpoint
  • Non-blocking Recv
    • receive but don't block if nothing to receive
  • Reply
    • send to a one-off reply capability
  • Reply-then-Recv
    • send reply atomically followed by a recv

^ These are performed on capabilities.

  • Yield
    • the only non-capabiility syscall that yields cpu slice to the thread with the same or lower priority.

Kernel makes use of the following primitive types:

  • Capability Nodes
  • Thread Control Blocks
  • Low-level interrupt support: IRQControl, IRQHandlers
  • Protection domain: Space
  • Raw memory: Untyped

Note:
seL4_UntypedObject,
seL4_TCBObject,
seL4_EndpointObject,
seL4_NotificationObject,
seL4_CapTableObject,

non-arch-specific objects in seL4

* Low-level calls * Kernel object types * Capability-based calls * IPC * Cap management * AddressSpace management * Thread TCB management Basic IPC is done via syscalls: * Send * send to a capability * Non-blocking Send * non-blocking send to a capability * Call * call a capability (send followed by recv?) * Recv * receive from an endpoint * Non-blocking Recv * receive but don't block if nothing to receive * Reply * send to a one-off reply capability * Reply-then-Recv * send reply atomically followed by a recv ^ These are performed on capabilities. * Yield * the only non-capabiility syscall that yields cpu slice to the thread with the same or lower priority. Kernel makes use of the following primitive types: * Capability Nodes * Thread Control Blocks * Low-level interrupt support: IRQControl, IRQHandlers * Protection domain: Space * Raw memory: Untyped Note: seL4_UntypedObject, seL4_TCBObject, seL4_EndpointObject, seL4_NotificationObject, seL4_CapTableObject, non-arch-specific objects in seL4
berkus added this to the Exokernel milestone 2019-03-11 09:31:35 +00:00
berkus self-assigned this 2019-03-11 09:31:35 +00:00
Sign in to join this conversation.
No Milestone
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: metta-systems/vesper#2
No description provided.