Kristian Van Der Vliet - interview
From LXF Wiki
A new start
An open source desktop OS that isn't yet another Linux distro? Linux Format speaks to Kristian Van Der Vliet, the man behind an intriguing project to take free software to the masses...
Syllable is an attempt to bring an open source OS to the home desktop without using the Linux kernel. From the start its developers have aimed to do without the remnants of the seventies' Unix and developer-centric design that has arguably stifled Linux's growth. The Syllable team (www.syllable.org) are working on their own kernel, user interface and applications, all designed to run lightning fast on old hardware.
Bristol-based Kristian Van Der Vliet is the man in charge of Syllable development, coordinating a team of hackers around the world and setting the overall direction of the project. He's not slow to criticise Linux, nor does he think Syllable will change the world tomorrow but he has a vision for open source on the desktop and the plan to make it happen. Mike Saunders invited him to Bath for some old-fashioned Somerset hospitality.
Linux Format: Tell us; what is Syllable, and how is it special?
Kristian Van Der Vliet: It's designed as a desktop operating system, and we specifically say that it's targeted at the small office and home office user. And it has been built from the ground up to suit those users. So it has its own kernel, its own driver architecture, and its own GUI and libraries. It also has its own application framework you'll be able to read a file from HTTP just as if it were on your hard drive.
LXF: In a similar fashion to KDE's ioslaves?
KVDV: Yes. We try to make the API as orthogonal as possible for developers writing software; we have something called `streamable I/O classes' which is an abstract class that you can read and write on, whether it's connected to a file, an HTTP stream or an FTP connection. It's transparent to the application.
LXF: Many would argue that Linux is starting to serve the role of small/home office operating system. What makes Syllable different?
KVDV: There's no such operating system as `Linux' there are different distributions, and those distributions use Linux as the kernel. It's a collection of different components from all over the place: you've got the Linux kernel, the GNU userland, glibc, X.org, various toolkits, GTK, Qt, and the desktop on top. And then you have third-party components and applications coming in from all over the place.
With Syllable, everything happens together, and because it's an entire OS we have everything from the applications to the kernel. If we decide something needs to be done right throughout the OS, we don't need to ask lots of different groups. As an example, in the last release, Arno Klenke [prolific Syllable contributor] added back-buffered rendering to the GUI essentially the same as EXA, the new hotness in X.org. Adding that kind of feature to Linux would mean having to rewrite the driver architecture, and specifically deal with that in the X server. In Syllable, we just added it.
LXF: How does this development style manifest itself for end users?
KVDV: It's easier to get a consensus between the developers. We don't have to go to a separate group of developers and plead with them to let us change how the kernel works. If we need a new system call in the kernel, we can just do it. It's easier to know what everyone's doing, and there's no danger of stepping on anyone's toes.
LXF: Do you think that even with efforts like FreeDesktop.org and Tango icons, Linux will always remain a scattering of projects?
KVDV: Yes, that's the mentality, and you can't change that. There's no authority figure over the whole OS, so if someone tries to make a decision, there'll always be someone who doesn't like it. If someone doesn't like what you're doing, fork!
LXF: What if Syllable were to fork?
KVDV: With Syllable, the situation is different in that it's a whole OS, rather than being made up of separate modules. If you decide to fork Syllable, you'll still be using the same app server [GUI], and the same filesystem. It's not like with Linux where you can fork another distro and replace the desktop with whatever's around Syllable is a vertically integrated platform. We're not trying to hide low-level libraries with even more libraries. There's the HAL layer in Linux, which attempts to abstract hardware from the desktops, but we don't have to do that in Syllable because you're only ever going to run the Syllable desktop on Syllable. We don't have to worry about C library versions, kernel versions and so on.
LXF: With that in mind, how do you resolve the fact that Syllable makes use of `outside' projects such as glibc and the GNU tool chain?
KVDV: Let's take a recent example with CUPS, where I've been trying to implement printing in Syllable. I've ported CUPS, Gutenprint drivers and Ghostscript. It turns out that it's all glued together with Foomatic, which is essentially a big Perl script that tries to hide the spooler, whether it's CUPS or the older LPD. On Syllable that's completely redundant we don't need it. But you need a PPD configuration file to drive your printer, and all these PPD files are geared towards using Foomatic.
So occasionally we come across these problems that assume everyone's working the same way Linux is working, and it's a bit of a roadblock. Other projects tend to assume things that aren't necessarily the same in non-Linux OSes like Syllable.
LXF: On the engineering of the system, what is it about Syllable's kernel that makes driver installation easier than in Linux?
KVDV: The Syllable kernel has a very specific feature: it has the ELF [binary file] loader in the kernel, which is the equivalent of ld.so in Linux. So it means we don't need a separate userspace loader for executables the kernel does it! Drivers on Syllable are ELF shared objects, loaded directly, and we have a stable ABI [application binary interface].
LXF: Under Linux, if you're using third-party drivers and upgrade your kernel, you need to rebuild those third-party drivers it gets complicated.
KVDV: We're a little bit more pragmatic. Linus has said that he doesn't want a stable driver ABI, because he doesn't want to encourage closed-source drivers. And that's a very noble goal, and makes sense from certain angle. But for users and developers it's a problem: hardware makers don't always want to make open source drivers, especially with video cards and wireless hardware, because it exposes IP. If a user's choice is between using Windows, with 90% closed source but a handful of open source apps, and Linux, where almost everything is open source but their hardware won't work, they're going to choose the closed source solution, and that's not good. So although the goal of many Linux developers is to try and get people to use open source, they've actually driven many people to a closed source OS, which is the worst possible outcome. But I'm never going to ship closed-source drivers with Syllable. If Syllable ever gets big enough that companies like Nvidia or Broadcom decide they want to create closed drivers for it, that's fine with me. We have a stable ABI, and a driver is a single file, so you copy that into the right place, maybe reboot, and that's it. It's part of the whole ease-of-use thing.
LXF: What about applications?
KVDV: You unpack the archive into the Applications folder, and that's it. It's a design goal. Geeks like to play with their computers; users just want to get on with it. They don't want to muck about trying to install stuff, spending hours getting something to work. Why should they have to upgrade half their system to install, say, the latest version of GnuCash?
LXF: But what happens when people develop Syllable software that's not just dependent on the Syllable libraries, but other bits and bobs? Won't you have the dependency hell of Linux?
KVDV: We actually try to take a completely different angle for dependencies. We don't do any dependency management at all. People hear that and they recoil in horror, but we encourage things like static linking. Far too often an open source developer will take a small piece of code and create a shared library from it, and it really doesn't need to be a shared library unless it's going to be used in more than five or so projects. So on Syllable we ask developers, will you ever really be upgrading that library independently of the application? Also in Syllable, resources like icons are packaged in the application itself, rather than having them spread all over directories somewhere.
LXF: How did you get into programming?
KVDV: I started on the Commodore 16, which most people have never seen or even heard of. It was like the C64's poor cousin, except it had a better Basic interpreter, oddly enough. Then I had a Spectrum +2A, which I used to program in Basic (badly), and then I had an Amiga 500, which I didn't program at all. I look at it now, and I wish I had learned Assembler back in the days, wish I had picked it up a bit quicker. It wasn't until I was at least 18 that I started dabbling in C. I started a college course, and realised that I had to own a PC. It broke my heart! I remember standing in Waterstones, looking at all these books, and realising that I had to have a PC. I still have that PC to this day well, the motherboard and processor.
LXF: Do you think the fact that you'd used different operating systems affected the way you developed Syllable?
KVDV: Yes when I got this PC, it came with Windows 95, and I'd used Windows 3.1, NT, and all that before. Anyone who'd used an Amiga, or other operating systems than Windows, could tell you that Windows 95 was rubbish. Amiga Format carried NetBSD 0.9 on the coverdisc at one point, with a tutorial series, and I installed it on an A1200 I had. I was impressed, but because I hadn't been exposed to Unix at that point I didn't know how to use it! And then I had an Amiga 4000, and installed Red Hat 5.1 on it. So I had used Linux and was quite impressed by it before I got my PC, and on my PC I installed Red Hat 5.2 it was then a natural progression to learn C.
LXF: AtheOS was the original code base of Syllable, so to speak, and was eventually left aside by the core developer so that Syllable spun off from it. At what point did you become interested in AtheOS?
KVDV: I'd installed Windows 95 and was unhappy, and I'd installed Red Hat 5.2. But it was rough this was back in the days when you had to write your own CHAP scripts to connect to the internet! To get my soundcard working, I had to pay for the drivers because the open source ones didn't work. Linux clearly had potential, but it was very rough, and coming from the Amiga background, [I thought] it was clearly inferior. Saying that is going to upset some people, but back in '96 or '97, it was inferior.
I thought, Linux is still better than Windows, it's free, I can program on it. But as it progressed over a couple of years, it began to annoy me, grate on my nerves. You'd try to upgrade something and it'd break an application you rely on. RPM dependencies there was no Yum or Up2date. You'd have to figure out dependencies on your own. I remember trying to get X to work, and everyday use brought little things that would bug the hell out of me.
LXF: You must have been absolutely livid. Not many people are irritated enough to write their own OS!
KVDV: There was a guy on IRC who said, "I'm going to write my own operating system." I liked the sound of that, and I started to design one too for myself, with the original name of FreeOS. The design was a cross between Linux and AmigaOS, and I wrote plans for how I should handle libraries, filesystems, drivers and things like that. It was very Amiga-centric, but with the best bits of Linux. Then a guy on IRC said, "Have you seen AtheOS?" I downloaded and ran it, and was absolutely blown away by how well put together this operating system was how far Kurt Skauen [lead AtheOS developer] had come. It was 0.1.3, but it was so close to the design of an OS I already had, like he had read my mind.
At that time, two or three people were actively involved in AtheOS. Kurt had an odd setup: he'd chosen to use the GPL, but he had control over the entire code. Which is fair enough, it was his operating system and his rules up to him. The few of us who got involved on the mailing list contributed a driver here and there, and I wrote AEdit 0.1.
LXF: And the rest is history... How do you think Syllable compares with other small OS projects out there, such as ReactOS and Haiku?
KVDV: At the moment, Syllable is definitely what most people would class as a hobbyist operating system, but it also has a large community. It's at a fairly mature stage of its development, and the system is usable on the majority of computers. It implements real-world features accelerated rendering, device drivers for lots of hardware, printing, multimedia playback... So it's on the cusp of moving from hobbyist to a more professional operating system, maybe in the way that Linux moved in '94 or '95.
LXF: What would it take for that to happen?
KVDV: We'd need commercial backing. There has to be someone who's willing to stand behind Syllable, be the guys to talk to. At the moment, if you use Syllable and come across a bug, I can try to fix it. But I can't give you any guarantees, and perhaps I'm working on something else and don't have time to look into the bugs you've found. Perhaps the core developers don't have time to implement the feature you need. So users have to feel comfortable and secure using Syllable, and that means having support, someone guaranteeing the next two years of development.
For the foreseeable future, I have no intentions of doing anything but hacking on Syllable I love it, and I'm absolutely dedicated to making it the best OS I can. But at the moment, if I suggested using Syllable professionally, I'd be laughed out of the room. We need to be able to provide the security and guarantee of commercial support.
LXF: The Haiku project [see HotPicks, LXF78], which is making an open source clone of BeOS, recently managed to hire a developer Axel D rfler to work full time on the OS for a few months. Does Syllable have the resources to do this?
KVDV: I wish! At the moment that's a medium-term goal, to find someone who's willing to back Syllable. I'm firmly convinced that if we had one or two developers, say myself and Arno, working full-time on Syllable, we'd have 1.0 ready within the next 18 months. At the moment, Arno and I have enough spare time to do a lot of work on Syllable, but still not full time.
LXF: And which applications do you want to see first?
KVDV: Everything! [Laughs] Syllable's a young operating system, and there aren't many applications available for it at present. We've concentrated on a few core areas: internet, so we've got things like the ABrowse web browser and Chat Jabber client; and multimedia, where we have video and audio players. There are gaps, in that we don't have a graphical FTP client for example, but those are the areas we've concentrated on. We don't have anything on the office front apart from a port of XPDF. We have ports of things like Vim and Emacs, but they're not native applications.
LXF: Can Syllable and Linux coexist? Five years from now, can they both be here, going strong?
KVDV: Absolutely. I've always said that Linux's strength is on the server, and Syllable should complement that on the desktop. I just think it's futile to try to get Linux working as a desktop operating system, when Syllable could do a better and more tightly-focused job. LXF