The kernel docs and man pages this subsystem encodes. Cite specific sections in the source when interpretation is non-obvious.

Man pages

  • mount(2) — the canonical reference for the mount syscall. Flag semantics, valid combinations, the data argument format.
  • umount(2) / umount2(2) — the two-flavor unmount API; we wrap umount2. MNT_FORCE / MNT_DETACH / MNT_EXPIRE / UMOUNT_NOFOLLOW semantics.
  • pivot_root(2) — the rootfs-swap syscall. Critically: lists the four constraints new_root and put_old must satisfy (mount points, no shared propagation, etc.).
  • proc(5) — the mountinfo format. Section "/proc/[pid]/mountinfo" documents the 11-field shape plus the optional-fields section terminated by -.
  • mount_namespaces(7) — how mounts behave across the :mount namespace. Propagation types, what "shared" / "slave" / "private" / "unbindable" mean.

Kernel documentation

Adjacent man pages (background)

  • namespaces(7) — overview. The relationship between clone(CLONE_NEWNS), setns(CLONE_NEWNS), and the mount namespace.
  • nsenter(1) — the userspace tool that does, essentially, what our :in option does. The semantics our cross-namespace mounts match.

In-repo cross-references

Out of scope — pointers for future work