Categories
design

Restricting Power’s Reach

Why did the Governor of New Jersey’s office have the power to retaliate for political purposes by creating a massive traffic jam? Is that the sort of government we can accept: one in which such power exists, only to be checked after-the-fact through whistleblowing and journalism?

These are the same basic question: can you give power, or to use the security term, can you give access to a capability while still restraining the capability? Or will we forever rely on having good people who cannot be corrupted, cannot have a momentary lapse of reason, in power? And given that we cannot rely on that, mainly because psychology shows that’s a fantasy, are we always one cross man away from ruin?

The founders of the U.S.A. did not believe so. They took pains in constructing the Constitution of the United States to have so-called separation of powers. Meant to give the capability to act to the three branches, but with specific limitations meant to forestall any runaway branch from sinking the ship.

Now we are faced with not the challenge of electing good men, but restraining any who sit in the seats of power from abusing their position. One of the ways to accomplish that is to fragment the power, but we can also make it mandatory that the power be used in the light of day.

If the New Jersey Port Authority had been required to publish, in real time, their reason for the closure of the lanes, would that have been sufficient? More importantly, maybe, would have been a notice requirement. “Ten days from today we will be closing these lanes…” People would have planned around it, and reporters would have preemptively asked questions.

We can all imagine emergency scenarios for breaching this sort of protocol, and we can also imagine requiring, in the aftermath, a full debriefing for emergency executions.

But we face another problem: there does not seem to be the least clamoring for actual reforms such as these. Nobody seems to think anything was wrong other than the hearts of men in this scenario. Just a few bad apples, bad actors, bad bad bad. They were bad, no dessert for them, coal in their stockings, no T.V., you’re in big trouble mister.

The nation was founded by those who saw through this sort of foolish adherence to consequentialism. Maximal liberty was promised to the citizens, not the leaders. The leaders invariably give up some liberty in assuming their positions. That is not to say that abuse of the public trust is to go unchecked when it does occur, but it is to say that we have no reason to leave the keys in the lock.

We ought to, in every area we find vulnerability, examine and apply the same basic principles that our Constitution holds up, to restrain the powerful from abusing their positions. Not just for our sakes, either. For theirs too, for the positions of power are obviously prone to abuse, and giving them the restrictions gives an excuse to a power-mad executive: “Sorry, Dave. I’m afraid I can’t do that.”

Categories
linux

Debian’s init Options

The Debian Project will choose a new default init system for its next major release (codename Jessie). The debate details (Debian Wiki: Debates: initsystem) include the following proposals:

  1. sysvinit (status quo)
  2. systemd
  3. upstart
  4. openrc
  5. One of the above for Linux, other(s) on non-Linux
  6. Multiple on Linux, at least one for every other kernel

The chief goal in switching? Bring modern boot functionality (speed and lower resource use). Others include lowering the bar for packaging and maintenance, and taking advantage of newer kernel features.

The matter of choosing an init system mainly deals with the amount of work and amount of benefit available. Unfortunately, some aspects of this debate must focus on other things.

The main contenders, systemd and upstart, both have at least one strike against them:

  • systemd looks technologically superior, but that superiority makes it a non-option for at least some non-Linux kernels (owing to using Linux-specific features), and support for other kernels would require much effort. It also takes a different approach to being pid 1, namely rolling in some functionality that has long been outside of init‘s domain.
  • upstart can be supported more readily, but similar if slightly less effort would be required for non-Linux. Worse, Ubuntu’s stewardship of upstart hampers it with the Canonical Contributor License Agreement problem.

A Contributor License Agreement basically states that by signing it, you grant rights of your contributions to the project maintainer. But the Canonical CLA goes a step beyond, in claiming for Canonical the right to relicense the contributions in a non-free manner.

In the Free/Open Source world that makes it as attractive as poison ivy. Also important, some who contribute as part of their work may actively be barred from participation. A company that sees benefit in open source will probably see hostility in their employee’s work being tied into a CLA of this sort (or any sort).

It all adds up to one difficult decision. The fact that both major contenders do not reduce Debian’s workload means the decision will boil down to technical merits. That makes systemd more likely.

What of non-Linux, then? openrc or sticking with sysvinit both seem plausible. Debian likely will not abandon their work with other kernels, so they will likely bite their tongues. Debian will put up with the extra work of dual systems for now. That will also mean that their Linux decision will remain a technical hybrid for the time being.

But not forever. Post-Jessie, I expect Debian will re-evaluate and hopefully find a more useful option to shed some of the extra weight they will take on in the short-term, whether that means configuration conversion tools, or something else.

The main reason that upstart seems unlikely, Ubuntu and Canonical never took the time to lead the way on non-Linux and while some Debian packages might have easier times adopting upstart configurations, the feature set of systemd seems to be a bit more powerful.