On 28/09/2013 22:58, Alon Bar-Lev wrote:
> As far as I read, the problem is with bluetooth keyboards? and some
> other devices and locales, which are minor for this decision of
> removing supportability. Especially for servers and for most of
> workstations. Most sane configuration can be supported with separate
> /.
> 
> And of course there is the hidden systemd agenda, which is what I
> suspect had more impact.

No, the problem is not bluetooth keyboards per se. That just happens to
be a convenient example of the kind of problem anticipated. There is a
tendency to use it as the only example, which reinforces the idea that
BT keyboards are problem to be solved.

The actual problem is better stated something like this:

In the early stages of user-land setup (around the time when udev is
getting it's act together), arbitrary code can run and that code can be
in any arbitrary place, but there is no guarantee that that code is even
accessible at the point when it is needed. The actual cause of this mess
is the lack of standards on where to put stuff on Linux systems, and it
forms a classic bootstrap problem.

There has only ever been one way around that problem - define an exact
entry point that is guaranteed to be in a specific state. For current
userland this effectively means that everything that has traditionally
been in bin, sbin and lib in / and /usr must be available as step 1.
Technically, you could include /var/lib/ and maybe even /opt in there.
but we can safely exclude those at this time as only a brain-dead moron
would ever put init-critical code there.

It's a fact of history that Linux packager and package devs have never
managed to make up their minds where to put stuff. Just have a look at
coreutils binaries - why are 60% of them in /usr? It's coreutils! And
core isn't in the name because of a whim.

So you have two choices: enforce a decent separation so that the problem
doesn't happen, or enforce that all binaries are in one place where we
can call it "the system". Every major OS out there does the latter, it's
only Linux that tolerates this free for all wild wild west approach of
stick anything anywhere and still expect it to work. Hint: it doesn't
work. Duct-tape and bubblegum don't actually hold stuff together, no
matter how much we try convince ourselves it does.

This should actually have been done when MAKEDEV was phased out in
favour of the now-defunct devfs, but it's never too late to fix design
flaws that date back 30 years or more.

So this brings us back to the essential technical problem that still
needs to be solved on your machines:

/usr needs to be available (and not only for BT keyboards) at the
earliest possible opportunity - this is a technical constraint. To
guarantee that, you need to either merge /usr with /, or use an
initramfs to guarantee that /usr is available before anything else
happens in userland.

It *really* is that simple. If you have a better solution than my last
two choices, then I am all ears.


-- 
Alan McKinnon
alan.mckin...@gmail.com


Reply via email to