PRESSURE VESSEL
Linux Format|October 2020
PRESSURE VESSEL
Jonni Bidwell gets on the video chat to   talk video games and message buses  with D-Bus guru Simon McVittie
Jonni Bidwell

Simon McVittie is a Debian developer and a consultant for Cambridge/Canada-based open-source-users Collabora. Last year he was awarded a UK Open Source Award for outstanding contributions to FOSS.

Simon’s in charge of D-Bus which is, among other things, how all the different bits of your desktop talk to one another. He’s also been working with Valve Software on an exciting project named Pressure Vessel that aims to have Steam leverage the magic of containers, to make for a smoother cross-distro experience. And to alleviate the Steam runtime’s current dependency on libraries from eight years ago.

Locked-down Jonni Bidwell took a break from the endless trips between the computer and the snack cupboard (that for nearly four months have been his life), to talk to Simon about interprocess communication mechanisms, gaming and Wine. And also to yabber on about his ancient Eee PC that, despite conventional reasoning, to this day remains alive and well. There’s an allegory about print media here, but let’s not go there and instead listen to Simon’s wisdom and erudition…

Linux Format: I’m told you won a prestigious award at the UK Open Source awards. Bravo. Your colleague Mark Filion told me you were shy about this, but that this recognition is well-deserved. Can you tell me a little bit about the awards?

Simon McVittie: The awards are to recognise companies that are doing good in the open-source space – particularly for major projects like LibreOffice – and individual developers. In the case of the latter, people who have established themselves for a while, such as myself, and also students and upcoming developers.

LXF: You’re a Debian contributor, and have been for a while. Can you tell us how that journey started?

SM: I started using Linux back at sixth form, so aged 16 or 17. I started using Debian not long after I got to university. I can’t remember when exactly I started contributing to it – 2002 or 2003 probably. My first job out of university was for a company that was using a lot of Linux stuff for their product, without actually doing any open source themselves. So they were taking a Linux stack and building proprietary software on top of it. While I was there I met one of the founders of Collabora, who jumped ship to found his own consultancy. A year or so later I was getting fed up with that job, so I decided to join him.

LXF: Did you study computer science?

SM: No, Mathematics. I describe myself as a recovering mathematician.

LXF: Me too. High five. One day I hope to be free of the group theory nightmares.

SM: The way of thinking is very useful for programming: being able to think through all the possible results of something, and making sure all the cases are enumerated rather than just saying “it’ll probably be fine”. The actual mathematics I’ve probably only used once since getting my degree. That was to audit someone’s implementation of Shamir’s (the S in RSA cryptography) secret sharing, and to ensure it had the security properties that it claimed.

LXF: Mercifully, I haven’t had cause to use group theory for many years now. There are some really exciting developments connected to algebra and cryptography, but they’re far too complicated for me.

You’re the main developer for the D-Bus subsystem, which is something that casual Linux users may not have heard of, but which nonetheless holds lots of bits of their desktops together. Let’s pretend I’ve done my homework and am not just reading from your company’s website. “This essential piece of Linux infrastructure connects everything from chat clients to the Nautilus file manager, the Common Unix Printing System, and music players”. That seems like no mean feat.

SM: The way I like to think of it is as the interprocess communication (IPC) mechanism for when you don’t have fancy requirements. It’s not the fastest, both in terms of latency and throughput, it’s not the most expressive and it’s not even the easiest. But it’s among all those factors that it’s a decent compromise, absenting any elaborate requirements. That’s kind of not a bad reflection of what I do in software. I’ve become the generalist that has become mistaken for a specialist, by people who know less about things than I do. So when people come to me and say, “I’ve been trying to do this obscure thing with D-Bus” or “why is it not faster?” or “why does it not have this obscure feature?” or that kind of thing, my answer is often “Are you sure you want to be using D-Bus?”. Because it’s general purpose and does a lot of things, people want to assume it does all the things, and does them fast. But the price of being a jack of all trades is being master of none. And D-Bus is very much that.

LXF: I guess my first experience of it, and all these other desktop things we take for granted, was when I got my beloved Eee PC back in 2008. By necessity I got into lightweight desktops and discovered all the luxuries you lose when you just run a barebones window manager, all the bits you have to wire together yourself.

D-Bus definitely figured in there somewhere, I guess for notifications maybe, and I also remember all kinds of fun with ConsoleKit and Udisks. I’m glad I don’t have to worry about that stuff anymore, to be honest.

SM: I’m always slightly ambivalent about lightweight desktop environments. On the one hand lightweight software, minimum requirements, yeah great, why would you not want this?

Then you look at a full-fat desktop like Gnome or KDE, and everything in there is there for a reason. And most of those reasons are pretty good engineering. Obviously some of it is historical inertia that we wish we didn’t have. But the vast majority of it, if you don’t have it already, then you’re going to end up reinventing it in a lightweight setting. And if you don’t understand some of what’s missing then you’re probably going to reinvent it badly.

A lot of the freedesktop.org stuff around things like D-Bus, but not exclusively D-Bus, is providing a level playing field for all the different desktops. Having a baseline for doing certain things in a desktop-agnostic way. And if you’re writing applications you can pretty much rely on all the desktop environments having this stuff. And if you’re writing a desktop environment then you really better have this stuff otherwise it’ll be considered deficient. And having D-Bus as a sort of lowest common denominator IPC is a big part of that.

We have .desktop files, which were originally KDE’s answer to Windows 95’s shortcuts, but over time have expanded into something we can do a lot of stuff with. They’ve more or less turned into an application registry effectively. Just before this call I was answering a mailing list thread about how to figure out which terminal emulator to use to launch TUI applications, which are .desktop files. Which is a really hard problem.

articleRead

You can read up to 3 premium stories before you subscribe to Magzter GOLD

Log in, if you are already a subscriber

GoldLogo

Get unlimited access to thousands of curated premium stories, newspapers and 5,000+ magazines

READ THE ENTIRE ISSUE

October 2020