Today we host an interview with Kristian “Vanders” Van Der Vliet, project leader of the open source OS Syllable. Syllable was born from the ashes of AtheOS just about a year ago and today has evolved to version 0.4.4, released just a few days ago. Read more for the interview and 5 screenshots of the latest version of the promising OS.
1. What are the main obstacles today in the development of Syllable? Participation, tools, something else?
Kristian Van Der Vliet: Time and organisation. I spend about 20 to 25 hours a week on average working on Syllable and it just isn’t enough. Just answering email and questions on the forums can take an hour each evening. Coding then takes up as much time as I have spare. I’m lucky to have that amount of time, the other guys working on Syllable tend to have even less time to spare. Rick has just completed his freshman year; thats a lot of work on its own, but he’s doing an excelent job with the desktop too.
The knock on effect of not having much time is that I cannot keep track of everything that is happening. People often mention on the mailing list that they are working on a peice of code, a driver for example. I’ve usually forgotten who they are and what they were working on after a day or two! I’m also pretty good at saying that I’ll do one thing, and then going off on a tangent and doing something else. The ATA driver was a tangent, for example.
2. You recently introduced an ATAPI driver and booting from the CDROM. How successful this was so far? Does the code works with most cd devices, did it push more users to try out Syllable?
Kristian Van Der Vliet: It has not only brought new users to Syllable, it brought back a lot of old hands, too. Before we released 0.4.4 you only had to spend a day or two on the mailing list before it became very clear that people really, really needed to use their CD-ROM drives. People had been asking for it since the very earliest days of AtheOS. Hopefully it will attract a lot more users and developers. Any OSS project always needs more developers!
The driver itself is working just about well enough, and we have work arounds for a lot of common problems. For a first pass at a driver, it is working a lot better than I had hoped! ATA drivers are usually the most problematic peice of code in any operating system. If you look at the Linux or FreeBSD ATA drivers they change very, very often when compared to something like a NIC driver. There is always a bug or a new chipset to support or some other advancement in hard drive technology that means you’re kept on your toes.
3. Comparing your project to other hobby OSes, like SkyOS, MenuetOS and TriangleOS, where do you feel that your project excels and where does it lack?
Kristian Van Der Vliet: I should make it clear that I have never used any of these OS’s so I can’t really compare Syllable to them!
What we excel at though is that we are always designing Syllable with an eye towards the end user. The mantra is that it has to be easy, it has to be comfortable and it has to be robust. I think we all have an eye for detail. I find myself criticising the look and feel of an application more than anything else. I can only speak for myself here I am fed up with systems like Linux, where nothing quite works the way you would like and as soon as you attempt to fix the problem you create two more. I’ve been put off upgrading Linux here for the past year because I know that I’ll spend the next month re-installing and reconfiguring applications that have become
Then again it isn’t always as good as should be in Syllable. We’re still planing and developing infastructure that will enable us to do a lot of the
things we would like to do, but in the meantime we have to use stopgaps or people invent their own solutions. There are also things that should work but don’t, for example “man” has never worked in any Syllable release, and there are some bugs with the ATA driver in this release. We are very poor at testing before we release things, partly because I don’t stick to a proper release schedule and partly because by the time I get around to building the release I’m very tired and people are screaming for a new version and I just want to get it out there and be done with it.
I’ll admit that this is odd as I spent the past two and half years working as a QA Tester and I should know better. If my old manager knew I was releasing untested builds, I’m sure she would shoot me 🙂
4. In your opinion, which OS features today missing from the OS that make the porting of POSIX apps difficult? What kind of apps are in generally missing from Syllable that users usually asking for?
Kristian Van Der Vliet: Syllable is amazingly close to Linux when it comes to the development and runtime enviroments. We use the same GNU toolchain and Glibc, so very few applications fail to build properly. A lot of GNU and Linux stuff can usually be built with a simple ./configure && make. Where it does fall down is building shared libraries and the sockets API.
We don’t have a proper port of libtool nor any libdl yet so generally libraries are built as static (.a) files. It is possible to build shared
libraries on Syllable of course, its just not portable and no GNU tools know how to do it. That is currently not too much of a problem and we intend to fix this during development of 0.5.x
The sockets API is incomplete, which can cause problems. The fairly major call setsockopt() is incomplete and buggy, and getsockopt() isn’t implemented at all! Along with some general bugs in the IP stack itself it means that some stuff just doesn’t work; the Samba deamons or curl for example.
Of course we don’t have form of X either! Porting X toolkit based applications usually means having to re-write the entire GUI, so it’s usually
a major effort. We’ve known this all along of course, and have no plans on changing that. A little extra work in porting results in a much better application at the end of it. The majority of people on the mailing list are usually pretty fierce about any suggestion that we should port X or an X
toolkit in fact.
I think the one major application that a lot of people miss is a debugger. Gdb would be useful to a lot of people but the prevailing wisdom is that it would be a heck of a lot of work to port it. Being more of a printf() debugger myself I’d love to see a port of OpenOffice.org, but we’re not ready
for that just yet 🙂
5. What would you advise other developers out there that might want to write/participate in an OS project? What technical and other challenges are lying ahead for these young devs?
Kristian Van Der Vliet: Have a clear idea of what you want to do before you start, and be prepared to embark on a never ending journey. There is always something else to be done, or something that needs to be improved. When you’re writing an entire Operating System you have the opourtunity to cover everything, but at the same time it can be overwhelming and you can burn youself out. Don’t be afraid to admit you don’t know something and put it to one side. When the time comes you’ll know it and you’ll be able to spend the time on the problem that it needs.
Buy good books and read them often. Spend as much time as you can thinking about how you’re going to do something. I spend 25 hours a week coding, but a good 30 hours a week just thinking and visualising problems. You can usually come up with some very elegent solutions and designs that way.
If you decide to make your work public, be prepared to criticism and bugs. There is always a bug. There is always someone who needs feature xyz. Never let that get you down!
Technically I think the barriers to entry are a lot higher now then they were two years ago, and they’ll be higher still in another two years. Writing an OS that boots from a floppy is fairly easy for most people, but a lot of PC’s don’t have floppy drives any more so they have to deal with ATA drivers and CD-ROMs. Hardware is getting more complex. If IA-64 wins against x86-64 then I think that will kill a lot of hobby OS’s; how many people can write EPIC IA-64 assembly by hand? Even today a lot of simple legacy hardware standards are disapearing fast. It used to be a fair bet that a computer had two serial ports and two PS/2 ports, both of which are simple to interface to at the OS level. These days you’re more likely to find a USB controller and various HIDs connected via. a USB hub. Writing drivers for that sort of hardware is an order of magnitude harder. In a few years time that will be the only way to do it. Even the BIOS is due to be phased out. Then we have
things such as Palidium and TCPA..
6. What new features are we to expect for version 0.4.5 and what new features for the future in general?
Kristian Van Der Vliet: Syllable 0.4.5 is officially the “Fix things” release. We’re all running around spending a few hours here and there fixing outstanding bugs and implementing unimplemented features. Not only are a lot of small bugs irritating but the hope is that we’ll have something fairly stable for people to use when we start breaking things during the development of 0.5.x! From the things I’ve seen being worked on outside of the main Syllable developers there are also going to be some nice new features in 0.4.5, and hopefully some more drivers too. We’re also currently trying to put together a proper roadmap towards Syllable 1.0.