Advanced Namespace Tools blog

12 December 2016

Now that I have caught up to the current 9front version, I need to prioritize the next things I want to do.

Rationalize the build system

The ANTS build process is controlled by giant-ball-of-mud shell script which builds and installs many different versions of the kernel and tools. Bell Labs and 9front are both supported, as well as special purpose configurations for vultr hosting. There is a lot of special purpose namespace manipulation, inconsistent use of temporary ramdisks, the build script calling itself recursively, and large chunks of copy-pasted code within it.

It is probably time to split the Bell Labs and 9front versions, and separate the purposes of compiling and configuring/installing.

Careful thought needs to be given to how to handle 9front versioning. Perhaps improved engineering (using patch files rather than patched files) can improve the end-user experience.

Overhaul the documentation and website

Some of the ANTS documentation goes back to the earlier evolutionary stages of the "rootlessboot" kernel, and the question of what applies to Bell Labs and what applies to 9front is not well separated. A lot of the web documentation is focused on things like 2013 Qemu demonstration vm images. There is no simple linear pathway into what ANTS is and how to use it if you wish.

Improve handling of vac scores

An optional componenet of ANTS is fossil snapshotting and venti replication. This works fine, but there is no way to give names to given snapshots and select them that way. For a human-usable interface, you want to be able to give names to different snapshots and instantiate and enter them by name.

Decruft scripts and workflows

ANTS includes a collection of namespace manipulation scripts, some of which are old and crufty. Assessing the usability of "addwrroot" and others and making any needed improvements is another task.