Syllable OS developer interview: Building a better operating system
- 30 August, 2011 09:20
Image credit: http://web.syllable.org/
Creating an operating system is an ambitious project. Even putting together an OS based on Linux or BSD takes an enormous amount of effort (and talent!) But creating an OS from scratch — especially one that disregards some of what may loosely be termed 'conventional wisdom' — is probably not something most developers would attempt.
That's not to say it doesn't happen — the creators MenuetOS, for example, wrote an operating system entirely in assembly language. Like Menuet, Syllable is an attempt to do make very different to the thousands of varieties of Linux and BSDs available.
While Menuet is almost a kind of programming-as-art — skilled assembly language programmers are relatively rare these days, and the system's architecture means it's super-fast and super-compact — Syllable is an attempt to strip away much of the detritus that accompanies desktop operating systems.
"Coffee machines and other special-purpose devices usually succeed in doing what you want, but many people can't escape the feeling that their personal computers are often working against them," notes Syllable's website. "Yet they are based on the same technology as the little computers that are helpful all during the day. Personal computers are far more powerful machines, so they should also be far more helpful, shouldn't they? Well, sometimes they are, but often they are not."
Techworld Australia caught up with lead Syllable developer Kaj de Vos to talk about the project and its philosophy.
Syllable began as a fork of AtheOS. De Vos explains that after that project died — not an uncommon end for many ambitious open source projects — Syllable in effect became its successor;
"The stated goal of AtheOS was to be a hobby OS, where development was for its own sake," de Vos explains. "The main reason for starting Syllable, apart from saving the project in the first place, was to make it a serious attempt at a usable system, because it had the potential to be [such a system]."
There are currently two flavours of Syllable. The original version is 'Syllable Desktop'; an end-user OS intended to offer "best practices in desktop system design". "It is meant to improve on mainstream user oriented systems, that we feel are failing to meet these goals," de Vos says.
The desktop edition of the OS is very compact and has very low minimum specifications: A Pentium processor, 32MB of RAM and 250MB of hard drive space.
There is also Syllable Server; however, unlike the desktop version it is a Linux-based system. "Part of the reason for the creation of the desktop system is our criticisms of user-oriented Linux systems, but Linux server systems are often superior to others."
Despite this difference between the two versions, there is some synergy: "We routinely develop a component first on Syllable Server, because third-party projects already make sure it works on Linux. When that integration work is done, we can continue by making it work on Syllable Desktop, which is often a greater challenge due to its unique characteristics."
"Both Syllable Desktop and Syllable Server can run on much smaller machines than other modern operating systems," de Vos argues. "They start faster, often perform faster and use less memory and disk space."
Although Syllable is a project to create an entirely new OS, the developers try to stick to generally accepted operating system standards and employ other open source projects where possible; the project's site notes that the "low-level system is highly POSIX compatible."
Although the project relies on volunteer programmers, most of whom consider working on the OS to be a hobby, the core developers take a more serious approach. However, de Vos adds: "It may eventually turn out to have been a hobby, but then it was at least a very serious hobby!"
Syllable takes a lot of inspiration from the Amiga's operating system. De Vos explains that what initially attracted people to the Amiga was its hardware — but later on, particularly when it began to be used for tasks other than games, "people discovered that the operating system was equally brilliant".
The developers feel that modern operating systems have headed off track; in part because of the lack of modularity imposed by commercial interests.
"Early systems used to be structured around functional capabilities, such as the tradition of modular command-line programs on Unix-like systems (which Syllable also supports)," he says.
However, "More recent systems are structured around marketable units. As an example, you take a picture. To import it in your computer, you often need programs supplied by the manufacturer of your camera. If you are lucky, you can circumvent these, but why should this be necessary? The software is not even available for any but the most mainstream systems.
"On indoor pictures, you want to remove the 'red eye effect' caused by the flash. On outdoor pictures, you notice the horizon isn't straight and you would like to correct that.
"These are common, but technically complicated manipulations on pictures. The correction of red eyes may be offered by multiple applications on your system. The straightening of horizons may require you to buy yet another image manipulation application.
"Why can't you plug in the camera, have its icon appear on your desktop without extra software and click on it, then click on a picture and be offered one option to correct red eyes and one option to straighten a horizon?
"Because commercial interests like to sell you these basic abilities over and over again in different, overly complex collections called applications."
By way of contrast, he points to the Amiga: "Similar to modular Unix command-line programs, many graphical Amiga programs had standardised interfaces that opened up their capabilities as building blocks that could be mixed and matched.
"Besides greatly increasing flexibility and potential, such frameworks greatly reduce complexity by standardising on shared infrastructure.
"Sadly, even though open source arose from the tradition of Unix building blocks, it has largely failed to develop this ability on user-oriented graphical systems.
"It does exist to some extent in network systems, often because it was already there by building them on the modular Unix system…
"Graphical open source programs tend to mimic the commercial programs they are trying to replace, and have grown equally complex."
The original AtheOS project was begun over a decade ago, and de Vos argues that at the time it was superior to Windows and the desktop Linux offerings.
However, he adds, no matter how "crappy the software on those systems was, there was a lot more of it, and people needed it". Users "cannot use a new system until it supports much of the old software, so you are forced to implement all those legacy features that you wanted to get rid of. This chicken-or-egg problem comes in several well-known forms, such as the need to match hardware drivers and programming languages that competing systems have.
"In other words, when we started the project, the reasons for it were clear. Everyone and their dog were complaining they wanted better operating systems. Based on that, we had hoped for more support than we ended up getting."
The 'applications gap' is still an issue for the project, but it's a problem developers are looking at creative solutions to. For example, using the cross-platform REBOL — Relative Expression Based Object Language — class of programming languages. "REBOL was invented by Carl Sassenrath, who was previously the chief designer of the influential Amiga Operating System. The language was designed to match and improve operating system development."
Syllable's developers are helping with the development of Red: An open source, REBOL-inspired language that lends itself to portable development and cross-compilation.
Red will enable developers to "cross-develop without any of the setup required by other, complex cross-compilation systems". Although it's early days for the language, "it already allows Syllable Server to compile command-line programs for Windows and other supported platforms by merely setting a compilation switch".
One of the strengths of Syllable cited by de Vos is the leanness of the OS. He notes that many people around the world still do not have internet access. Although consumer-level hardware continues to become more powerful, not everyone has access to cutting-edge PCs.
In promoting the benefits of an operating system like Syllable, with its minimal hardware requirements, he cites the One Laptop Per Child project. "The [OLPC] project was delayed and had to double its projected price point and its hardware specifications because the Linux operating system they developed could not support them. This would not be necessary when using Syllable."
"In the Western world, it is often assumed that software efficiency does not matter, because improving hardware will compensate for it," he says
"Yet during the lifetime of the project we have seen the introduction of small mobile systems such as netbooks and smartphones, which have effectively turned back the clock for hardware performance that software needs to support half a decade.
"This has wreaked havoc on the development plans of many platform vendors, forcing them to develop entirely new systems. Syllable, however, is already efficient enough to support such systems with one platform."
The complementary nature of the desktop and server editions is also cited as a plus by the developer. Finally, he adds, "Another goal of Syllable is to be easier to use. Improved integration and reduced complexity help with that.
"A system that is easier to use is more pleasant to use. It increases motivation, removes hurdles, and leads to saving time and money."
Follow Rohan Pearce on Twitter: @rohan_p
Follow Techworld Australia on Twitter: @techworld_au