prism

A kernel filesystem that gives every program exactly the libraries it asks for — from one shared store, with no version conflicts.

On a conventional Linux system every application shares one set of libraries in /usr/lib. Two programs that need different versions of the same library collide, and the distribution has to referee. DivisionOS takes that argument off the table.

One place for every library

Every shared .so on the system is an object in one folder, /objects, named for exactly what it is: its name, its build and its hash. A program's folder holds its bundle, its data and its config — never a shared library. That keeps one copy of each object, with every version available at once.

Composed per program, on open

prism is a filesystem module in the kernel. When a program runs, it is shown a view in which each library it depends on resolves to the exact version it was built against, pulled from the shared store and assembled for that process alone. Two programs can need incompatible versions of the same library and neither ever learns the other exists.

  • No global library set to keep in lock-step.
  • No conflicts — each program sees its own resolved view.
  • No duplication — one copy of each object, shared by everything that needs it.

Why it belongs in the kernel

Resolving at the filesystem layer means it happens for every program, transparently, with no wrapper script and no patched loader per application. The program links the way it always would; prism is what makes those paths land on the right files.

$ list /objects libssl.so.3 libGL.so.1 libxkbcommon.so.0 … one folder, every version

No symlinks

Because prism can redirect a path directly, the system has no symbolic links at all. A path that used to be a link is an entry in the map instead — which means a file's location is a fact the filesystem knows, not a chain you have to follow.