[mkroot] aboriginal / mkroot as a basis for a container?

Rob Landley rob at landley.net
Sat May 20 12:36:36 PDT 2017


On 05/19/2017 10:41 PM, scsijon wrote:
> If you want to play with containers, (he may hate me for this) but

At LCA I attended a tutorial on how container technology is implemented
under the covers, the git repo of which is:

  https://github.com/fewbytes/rubber-docker

I have a todo item to build better container technology into toybox
based on that, but Android already has minijail...

> BarryK has been playing with that and called his build Easy Linux,
> http://barryk.org/easy/how-easy-works.htm may be of assistance and it
> can be downloaded from
> http://distro.ibiblio.org/quirky/quirky6/amd64/releases/easy-0.2/. It's
> a couple of build types back though, he's gone on to other ideas since.

I'm not annoyed, just amused. :)

Everybody who works through Linux From Scratch creates a build script to
automate it, then turns it into a distro briefly, then loses interest
unless they can figure out something more to do with it.

I have literally seen over a _hundred_ of these since I first did it
myself in 2001, and my direction that kept me going through multiple
reboots (http://landley.net/aboriginal/history.html) was replacing all
the gnu packages with busybox (starting about 13 years ago):

  http://lists.busybox.net/pipermail/busybox/2004-May/045630.html

My goal was to see how _simple_ I could get the result (and disentangle
the FSF's inappropriate claims from Linux). And then after that worked
(whenever aboriginal linux's 1.0 release was, 2013-ish I think) the
toybox/android stuff started to build on top of that work.

Others had their own angles, from http://www.staticramlinux.com/ to
https://github.com/sabotage-linux/sabotage which still weren't enough to
sustain them.

The point of mkroot is that by adding musl-cross-make as a dependency I
figured out how to jettison 80% of the complexity of Aboriginal Linux
while still accomplishing that project's goals (from
https://landley.net/aboriginal/about.html), and this forms a _much_
better basis for both a toybox test environment (you need an emulator
with a known canned system to properly test ifconfig, ps, insmod...) and
to eventually take apart the Android Open Source Project and rebuild it
as a series of orthogonal layers. Layer 0 would be the Android NDK,
layer 1 would be mkroot (once busybox is cleaned out and it's pure
toybox), then build Android's init in that. I.E. I have goals I'm
working towards.

I also plan it to exemplify https://www.youtube.com/watch?v=Sk9TatW9ino
when I'm done. (I'm aware that's maybe 1/3 of the proper tutorial on
that topic; I need to make it a podcast series or something).

My 2008 presentation had a warning about accidentally creating your own
distribution, starting at slide 78:

https://speakerdeck.com/landley/developing-for-non-x86-targets-using-qemu?slide=78

If you're _going_ to create a distro, you need to understand the scope
of the resulting responsibilities (package management is a red queen's
race that _will_ eat multiple developers' full time just to stay in
place), and have a purpose your distro serves which isn't already better
fulfilled by existing distros. Otherwise it'll be abandoned after a year
or two and join the pile.

Rob


More information about the mkroot mailing list