Gofsmux

The Gofsmux project is aimed at creation of a non-privileged applications container providing a root filesystem with per-group file namespaces of Plan 9 flavor. It is desired to keep only files and directories as filesystem objects, again in the Plan 9 spirit.

Gofsmux started as sub-project inside zabUdka Linux, but currently is evolving as a standalone project.

Types of Paths

Gofsmux deals with three types of file paths:

  • Physical paths: never seen to applications, represent the host filesystem paths. Inside Gofsmux physical paths are handled as pairs of root (internal mount point) path and offset within root. The full physical path can be obtained by concatenation of the root and the offset.
  • Kernel paths: similarly to Plan9 Gofsmux maintains an alternative root where all "devices" originate. Kernel paths always start with '#' and are visible to applications. Changes in the namespace never affect kernel paths, and binding directly onto kernel paths is not allowed.
  • Virtual paths: paths visible to applications and originating at the currently bound virtual root. The initial root filesystem is always accessible by kernel paths starting with '#~/', so however the virtual rooot is bound, no files may come out of visibility totally.

namespace_basic.png

Gofsmux (last edited 2014-08-17 15:59:37 by mail)