Archive for April, 2011

Response to “Why systemd?”

Friday, April 29th, 2011

So I read Lennart’s blog post entitled Why systemd?. In it, he makes a number of comparisons between systemd and the two other Linux init systems that are still in widespread use (this being the third init system some distributions have adopted within the last few years). Overall, he makes a good argument that systemd has many nice and exciting features, and I’m sure they are of interest to various people who want their init system to be SYSV on steroids. Here are some of them:

  • Interfacing via D-BUS
  • Shell-free bootup
  • Modular C coded early boot services included
  • Socket-based Activation
  • Socket-based Activation: inetd compatibility
  • Mount handling
  • fsck handling
  • Quota handling
  • Automount handling
  • Swap handling
  • Encrypted hard disk handling (LUKS)
  • Infrastructure for creating, removing, cleaning up of temporary and volatile files
  • Save/restore random seed
  • Static loading of kernel modules

These are all things I don’t want built into my init system. To me, there are many good reasons that they have been traditionally handled using simple, easy to edit and modify scripts, and that’s where I personally feel they should belong. In my mind, some don’t even make sense to build directly into the init system itself, such as automounting and the like (that belongs in autofs and friends). There’s more, but the main point I want to make here is that when you come up with a list of comparisons, that list should not really be an inverted list of features of the replacement (which obviously may not be in what is being replaced). A better comparison would be user experience. If I’m an admin, all of the new features are nice, but do I need to change my workflow for the new tool? And at the end of the day, what am I winning overall in terms of experience?

I’m not one of those who actually wanted YAIS (Yet Another Init System). No offence particularly to systemd, but I preferred good old fashioned sysvinit. It worked for longer time than many people have been using Linux (or UNIX), it was well understood, and well documented. It was far from perfect, but it got system services started. I can’t remember ever yelling at SYSV init and saying “wow, if only you weren’t so crappy, if only you started every service when I connected to it”. In fact, it was a mature tool that did everything I needed it to. It took a little longer to boot my system than it might, but then like most real users, I use suspend and other features that mean I boot from scratch infrequently, or I run servers where I really don’t care at all. I wouldn’t have cared if it took 10 minutes to boot my laptop, or an hour to boot my server…well, I exaggerate, but you get the point. And inetd? Or xinetd? Automount? Good enough for my uses as separate tools.


On desktop re-invention

Sunday, April 24th, 2011

If you live in, or you’ve visited the United States, you might be struck by how product packaging and design changes little over the years (or perhaps you’re so familiar with this, you haven’t seen it). That bar of candy? It probably has a very similar label to the one it had twenty or more years ago. That top loading washing machine design? Still in widespread use today because it was the design that first gained market traction.

Europeans don’t always understand this, but Americans are generally very conservative in their adoption of iterations of existing technologies. It’s not just Americans, but let’s take this example for the moment. When a new technology first comes along, it’s open reign – do whatever you like – but as it gains widespread adoption, the market resists more than a certain level of change. People become familiar and comfortable with a certain mode of operation and expect that to remain consistent from one year (or decade) to the next, until the Next Big Thing. We saw this with the introduction of every big technology over the last 50-100 years.

In the technology space, we can observe how the PC has become a very popular, well established platform. This hasn’t happened only because Microsoft are somehow “evil”. It’s happened through consistency and standardization (even if it’s not an Open standard, it’s still a de facto standard). You can learn how to use a Windows or Mac system once, and apply the same concepts from one year (or decade) to the next. With the advent of tablets, and smartphones, there’s an opportunity to start afresh, but neither Apple nor Google are going to massively change the fundamentals of the user experience in their mobile platforms at this point. That’s not to say they can’t innovate, but they can’t break suddenly with the established customer expectations.

Like it or not, you get one chance to do this right before traction sets in and certain expectations are created. Ignore this at your own cost. Microsoft might love to fix all of the problems with the Windows experience (they are actually not entirely stupid), but they can’t do that now without alienating their established user base in the process.

My opinion is that GNOME 3 made a fundamental mistake in breaking with tradition. Innovation on that scale should target new less well established platforms, such as netbooks, tablets, and the like. Places where there’s still opportunity to define the Next Big Thing. Innovate with the new, don’t break with decades of established user experience on the old.

Thus concludes consumer behavior 101. You don’t have to like it, but you do have to live with it. And though you can certainly flame me for saying this, the reality is that this is the reason next year will be “the year of the Linux desktop”, and the year after, and the year after…repeat until the wheel re-invention exercise stops.