Linux Fu: Atomic Power [Hackaday]

View Article on Hackaday

People are well aware of the power of virtual machines. If you want to do something dangerous — say, hack on the kernel — you can create a virtual machine, snapshot it, screw it up a few times, restore it, and your main computer never misses a beat. But sometimes you need just a little shift in perspective, not an entire make belive computer. For example, you are building a new boot disk and you want to pretend it is the real boot disk and make some updates. For that there is chroot, a Linux command that lets you temporarily open processes that think the root of the filesystem is in a different place than the real root. The problem is, it is hard to manage a bunch of chroot environments which is why they created Atoms.

The system works with several common distributions and you install it via Flatpak. That means you can launch, for example, a shell that thinks it is running Gentoo or Centos Linux under Ubuntu.

Creating an atom is easy

Using the tool is easy enough.  A simple screen lets you choose a few options. The first time you use a particular image it will take a few minutes to download everything.

Eventually, you’ll wind up with a list of all your chroot environments. Selecting one of them (initially, the only one) will give you a screen where you can browse files, expose a few mount points, change the chroot’s name, or wipe it out. You can also open a console into the selected environment directly.

You can perform many actions on an atom from the GUI

From the main screen there is a “hamburger” menu that allows you to do a few global things like set preferences. You can move where things are stored, for example. You can also delete images you aren’t planning to use again.

Is this something you can’t do from the command line? Of course, not. But it is a nice way to keep a lot of chroot environments for specific distributions nicely organized.

We were hoping you could create custom chroot atoms for yourself easily but if that’s there, we didn’t see it. Of course, the whole thing is on GitHub, so you can probably figure out how to do that if you were really motivated. We also noted that you do not have control over how most of the underlying host file system is mapped to the atom, other than a few simple choices. There are cases where you might want other things mapped and it wasn’t clear how you could accomplish that.

If you need more isolation, consider containers. If you want quick development docker images, we talked about that, too.