Hacker News new | ask | show | jobs
by ParadigmComplex 4632 days ago
Hi, I'm the founder and lead dev. We don't have a good document up about how it works because the under-the-hood because it has been changing quite a bit from release to release. However, it is finally starting to stabilize - I plan to have a whitepaper up (and maybe a video presentation) explaining how it works around January with the next release.

A quick explanation: Bedrock utilizes a number of virtual-filesystem manipulation techniques (chroot(), bind-mounts, a number of our own home-grown virtual filesystems such as a specialized union filesystem) to redirect filesystem calls that could potentially conflict. If two packages need different versions of a given library and they both go to read the library with the same path, they'll be transparently redirected to different files. However, Bedrock doesn't "contain" things as one would typically expect with something like chroot(); the packages can all interact like they typically would. Things which need to be the same for different packages to interact are the same. You can, for example, have an RSS feed reader from one distro launch a web browser from another distro to download a PDF which is opened in a PDF reader from yet a third distro, if you'd like. You can have the majority of the system's packages be from a very stable distro like Debian or RHEL but still get cutting-edge packages from something like Arch or Debian Sid, and have portage compile packages from Gentoo, and still get library compatibility with binary blobs aimed at Ubuntu.

This all works - I'm running it now as my main system and have been long before it ever went public - but it still has a lot of rough edges.

Hope that clears things up.

1 comments

Thank you for the explanation. It sounds to me that even if I want to use a package from a stable release like debian, there's another layer possible bugs. That said, I really like the idea. Wish you guys the best of luck and I'll be keeping a close eye on the progress.