m³OS docs GitHub

Component explorer

IPC Engine

The IPC engine is the microkernel core: it turns isolated tasks into cooperating services through message passing.

Responsibilities

  • Move messages between isolated tasks.
  • Represent communication rights through explicit capabilities.
  • Wake and block tasks around rendezvous points.

The ipc engine is introduced in IPC Core and later touched by 10 phase(s).

Key files

  • kernel/src/ipc/endpoint.rs — cross-table move — see transfer_cap in kernel/src/ipc/endpoint.rs and
  • kernel-core/src/ipc/buffer.rs — validate_user_buffer(addr, len) (defined in kernel-core/src/ipc/buffer.rs),
  • kernel/src/ipc/mod.rs — kernel/src/ipc/mod.rs — module overview and syscall dispatcher
  • kernel/src/ipc/notification.rs — kernel/src/ipc/notification.rs — async notification objects
  • kernel/src/ipc/capability.rs — kernel/src/ipc/capability.rs — per-task capability table
  • kernel-core/src/ipc/capability.rs — CapabilityTable::grant, Capability::Grant variant
  • kernel-core/src/ipc/message.rs — Message.cap field, updated constructors
  • kernel-core/src/ipc/registry.rs — Owner-tracked registry, replace_service, capacity 16