# Functions
NamespaceTypeIndexByName maps the specified namespace type name (in abbreviated form, such as “mnt” and “net”) to its namespace type index.
NewAllNamespaces returns a fully initialized [model.AllNamespaces] object, ready to be filled with funny namespaces, such as “Kevin” and “Chantal”.
NewProcess returns a [model.Process] object describing certain properties of the Linux process with the specified PID.
NewProcessInProcfs implements [model.NewProcess] and additionally allows for testing on fake /proc "filesystems".
NewProcessTable returns the currently available processes (as usual, without tasks/threads).
NewProcessTableFromProcfs implements [model.NewProcessTable] and allows for testing on fake /proc "filesystems".
NewProcessTableWithTasks returns not only the currently available tasks, but optionally also the tasks/threads.
SortProcessByAgeThenPIDDistance sorts processes first by their “age” (starttime) and then by their PIDs, taking PID number wrap-arounds into consideration.
SortProcessByPID sorts processes by increasing PID numbers (no interval arithmetics though).
Tasks returns an iterator over all tasks of the process identified by PID.
TasksRecursive returns an iterator over all tasks of the process identified by PID, as well as all tasks of children, grandchildren, et cetera.
TypeIndex returns the [model.AllNamespaces] array index corresponding with the specified Linux' kernel clone() syscall namespace constant.
# Constants
array index for cgroup namespaces map.
array index for IPC namespaces map.
array index for mount namespaces map.
number of namespace types.
array index for net namespaces map.
array index for PID namespaces map.
array index for time namespaces map.
array index for user namespaces map.
array index for UTS namespaces map.
# Variables
TypeIndexLexicalOrder contains [NamespaceTypeIndex] type indices in lexical order.
TypesByIndex maps [model.Allnamespaces] array indices to their corresponding Linux' kernel namespace clone() syscall constants.
# Structs
Container is a deliberately limited and simplified view on "alive" containers (where alive containers always have at least an initial process, so are never process-less).
ContainerEngine describes a single specific instance of a container engine.
Group groups a set of containers by a particular criterium as identified by the Type/Flavor of this group.
NamespacedPID is a PID valid only in the context of its PID namespace.
Process represents our very limited view and even more limited interest in a specific Linux process.
ProTaskCommon defines the fields we're interested in that are common to both [Process] and [Task] objects.
Task represents our very, very limited view and interest in a particular Linux task (including the main task that represents the whole process).
# Interfaces
Hierarchy informs about the parent-child relationships of PID and user namespaces.
Namespace represents a Linux kernel namespace in terms of its unique identifier, type, owning user namespace, joined (leader) processes, and some more.
NamespaceStringer describes a namespace either in its descriptive form when using the well-known [fmt.Stringer.String] method, or in a terse format when going for [model.NamespaceStringer.TypeIDString], which only describes the type and identifier of a namespace.
Ownership informs about the owning user ID, as well as the namespaces owned by a specific user namespace.
PIDMapper translates PIDs ([model.PIDType]) from one PID namespace to another.
# Type aliases
AllNamespaces contains separate [model.NamespaceMaps] for all types of Linux kernel namespaces.
Containers is a slice of Container, offering some convenience functions, such as finding a container by name.
Labels are labels as key=value pairs assigned to a container.
NamespacedPIDs is a list of PIDs for the same single process, but in different PID namespaces.
NamespaceMap indexes a bunch of [model.Namespaces] by their identifiers.
NamespaceRef is a filesystem reference to a namespace.
NamespacesSet contains a [model.Namespace] reference of each type exactly once.
NamespaceTypeIndex is an array index type for Linux kernel namespace types.
PIDType expresses things more clearly.
ProcessTable maps PIDs to their [model.Process] descriptions, allowing for quick lookups.