Module shadow_rs::host

source ·
Expand description

Process management and emulation of Linux behaviour.

This module contains the code responsible for starting the managed processes in a way that allows Shadow to intercept their syscalls. It also contains the emulation of Linux hosts, threads, processes, syscalls, files, network interfaces, etc.

Modules§

  • This module provides several Context structs, intended to bundle together current relevant objects in the hierarchy. These are meant to replace worker_getActiveThread, etc. Passing around the current context explicitly instead of putting them in globals both allows us to avoid interior mutability (and its associated runtime cost and fallibility), and lets us keep a hierarchical object structure (e.g. allow holding a mutable Process and a mutable Thread belonging to that process simultaneously).
  • Linux file descriptors and file descriptions (equivalent to Linux struct files).
  • An emulated Linux system.
  • A thread of a managed process.
  • Access and manage memory of a plugin process.
  • An emulated Linux process.
  • Compatibility wrappers for C-style event listeners.
  • An emulated Linux thread.