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.
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.