gnu/linux, ubuntu, debian, gNewSenseFebruary 20, 2007 1:37 pm

A gNewSense of a choice: Ubuntu or Debian

In a comment left for the interview with gNewSense founders Paul O’Malley & Brian Brazil, it was asked why they had chosen to base the distribution on Ubuntu rather than Debian. The argument was made that Ubuntu "…adds more restricted firmware and uses more binary blobs then debian. So rather that using a base that adds that type of software in and then removing it again, why not just start with debian…"

I don’t really know whether Ubuntu adds more of these things, other than those in Restricted (which I would exclude from my Ubuntu install anyway). However, for the sake of argument, we’ll say that it’s true and look some of the reasons Ubuntu may have been chosen in spite of this.

Debian

From Wikipedia:

The Debian distribution was first announced on August 16, 1993 by Ian Murdock, then a student at Purdue University. Murdock initially called his system the "Debian Linux Release".[1] In the Debian Manifesto he had called for the creation of a GNU/Linux distribution to be maintained in an open manner, in the spirit of Linux and GNU. He formed the name "Debian" by combining the first name of his girlfriend (now wife) Debra with his own first name.

Debian has been one of the foremost examples of a Free Software GNU/Linux distribution. The Debian Free Software Guidelines (DFSG) were considered a most stringent list of the requirements for software to be considered Free. Their original exclusion of KDE was testament to these values, and was instrumental in Trolltech’s decision to re-license QT under the GPL (KDE requires QT, which was the source of licensing problems). They did maintain a "non-free" repository of packages for which the functionality was not duplicated by Free Software, but these were not in the default install.

Their position has been tempered by their inclusion of binary drivers in the Linux kernel, but their are few distributions that match their commitment to software freedom. This is a good argument for gNewSense to choose Debian as their base.

However, Debian also suffers from the volunteer status of its developers.

Unlike most GNU/Linux distributions, Debian is not supported by a commercial entity. This removes many distractions, and allows them to concentrate on their moral commitments. They do not have the same pressure to release often and gain revenue from CD sales, or to release with the latest software versions. Instead, they release when the software has been very thoroughly tested, and on multiple platforms. This has given a reputation of rock-solid stability, sometimes with the only downtime being for a kernel upgrade.

Unfortunately, this also leads to stagnation. There were long periods between releases, and by the time they arrived, the software was out of date. Users want the latest stuff, and they go elsewhere. There has always been a ‘testing’ version of the distribution, which most developers will run, that provides more of the latest software. This gives the developers even less motivation to release, because they’re already using the newer applications. Debian also had a reputation for being difficult to use (although I liked hacking the text file configurations), again because the developers had no commercial motivation to make it usable for non-developers.

Debian was suffering from these effects, and Redhat gained in popularity. Debian’s superior package format, the "deb" (don’t remember if it had a proper name), even came under great pressure from Redhat’s rpm format. Then came the derivative distributions. These were generally based on the ‘testing’ version of Debian, which was still comparatively stable. The first of these, Corel Linux and Storm Linux, had limited success, but they share the same motivations as Ubuntu and other Debian-derivatives. They wanted to tap into the power and stability of Debian, but provide more recent software versions and greater usability.

These derivatives breathed new life into Debian, and the ‘deb’ package format. It gained a great deal of influence.

Ubuntu

Ubuntu has surpassed its siblings and become very successful. This may be because the other distributions were perceived as too commercial, with a lax attitude towards software freedom. Ubuntu seemed to share Debian’s values, while succeeding in its other objectives.

Ubuntu seemed to have the same devotion to Free Software, but fixed the problems inherent in a volunteer-run distribution.

It is backed by a commercial entity, Canonical, so it has the motivation to deal with Debian’s issues. They include up-to-date software, with a brisk six-monthly release cycle, and they have created one of the most user-friendly GNU/Linux distributions out there.

That’s why I chose it. I thought I was getting the best of both worlds. A commitment to Free Software, and a user-friendly, up-to-date Debian.

I actually think that’s what the Ubuntu community want. They showed great support for Debian with their position on Firefox (see "Fire and Ice"), even though Canonical let them down by ignoring the issues. Ubuntu are also famous for using a non-free distribution management system ("Launchpad").

Why Choose Ubuntu?

It would seem that Ubuntu’s weakened commitment to Free Software would be a good reason to choose Debian. However, you would then have to deal with the problems listed above.

If you take Ubuntu as your base, you have a user-friendly, up-to-date distribution, that inherits Debian’s stability. Most of Ubuntu is Free, so they’ve done a lot of the hard work for you.

In fact, even though Ubuntu includes recent software, it isn’t just a reproduction of the Debian ‘testing’ version. They’ve done a lot of work to make the distribution stable with these software versions.

A big consideration is the fact that Ubuntu is just one CD, whereas Debian takes up 15 CDs. For a project with few resources, this is a significant factor.

Ubuntu is also a very popular distribution. The effectiveness of piggy-backing on this popularity should not be underestimated.


I hope this post has been useful in understanding the reasons that gNewSense have for choosing Ubuntu as their base distribution.

Because of this choice, we have a user-friendly, up-to-date GNU/Linux distribution that is completely Free. I’ve now got what I was looking for - the best of both worlds.

Disclaimer: These are my opinions. I haven’t asked the gNewSense guys why they chose Ubuntu. These ideas just seemed logical to me.

Related posts:

Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linux, gNewSenseFebruary 2, 2007 1:05 pm

A new gNewSense (1.1)

On a pretty impressive schedule, Paul O’Malley and Brian Brazil have released version 1.1 of gNewSense, just two months and twenty days after version 1.0.

This new version is still based on Ubuntu Dapper, so there’s no new kernel and the other software versions haven’t changed much either.

New stuff 

So what has changed?

The highlights:

  • A KDE version.
  • A host of new Builder stuff.
  • Rebranded Firefox.
  • New artwork.
  • Bugfixes.

KDE 

There is now a KDE LiveCD. I’m sure this will have been eagerly awaited by many. I find that I’m rather indecisive about the two desktop environments, tending to switch every so often. I’ll stick to Gnome for now, but I do like the visual appeal of KDE.

Builder 

As you will have seen from the interview with Paul and Brian, Builder is very important to them. They are devoted to the idea that anyone should have the freedom to make their own GNU/Linux distribution, the way they want it. They have given us Builder to achieve this. Currently it’s quite specific to gNewSense, but they are working to make it more flexible. This release features a much updated Builder, and has been generated using this version.

Firefox 

gNewSense have restated their commitment to Free Software by rebranding Firefox, to deal with the artwork issue (see "Fire and Ice"), and disabled the automatic links to non-free plugins.


gNewSense have few resources, but their achievements are prodigious. I will be very interested to see when they bring out a new major version. It seems reasonable to expect it shortly after the next LTS Ubuntu release. If they can do so, it should bode well for their future.

Builder is an asset to the Free Software community. The gNewSense team (especially Brian) can be proud of a very real achievement.

Related posts:

Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linux, gNewSense, interviewsJanuary 19, 2007 12:06 pm

An interview with gNewSense founders Paul O’Malley and Brian Brazil

The co-founders of gNewSense, Paul O’Malley & Brian Brazil, very kindly agreed to give an interview. As usual, it was conducted by email.

It’s great to have their two differing perspectives. Between them, they provide a balance that is probably responsible for the success of gNewSense. Their passion is also quite evident.

They tell us what gNewSense is about, where it’s going, and why their distribution maintenance tool, "Builder", is so invaluable. 

Can you describe your backgrounds?

POM: Currently working as an IT Manager for what we call a SME company here (Small Medium Enterprise). I started using Free Software in 1994, I stopped using a popular desktop as my personal desktop at that time.

BB: I’m currently working as a Systems Administrator.

I graduated recently (2006) with a degree in Computer Science. 

Can you tell us what gNewSense is?

POM: A Free as in Freedom GNU/Linux Distribution.

BB: A project to produce a fully free version of Ubuntu, and to allow others to do the same. 

Why did you start gNewSense?

POM: In Nov ‘05 Richard Stallman and Mark Shuttleworth were in Tunis. They both spoke of gnubuntu, however both meant something that the other could not mean. As a Ubuntu member, I thought, hang on a sec that is a great idea. I nearly dropped the idea but one particular person in Texas kept prodding me.

I asked Brian for help, he kindly agreed and so began an adventure. As the idea developed, it became obvious to us that to make the distro "FSF Acceptable" several steps had to be taken. Not pointing at none Free Software, not using non free tools and, very important on the list, we needed a punny name.

BB: I was interested in the idea of providing what at the time was ubuntu-libre as I always want all the source available to me. Creating a distribution is also a black art, and I hoped to partially fix that by documenting and scripting all the steps. 

Where does the name come from?

POM: People using NU for New and GNU it was too much of a pun to miss. GNU - Sense

It came from a chat Brian and I had about gpg keys and RMS’s one came into the conversation.

BB: The name originated as Gnusiance as a reference to RMS’s GPG key, but was later changed to gNewSense to also capture the New Sense of the distribution and as a pun on GNU. 

At what point did the Free Software Foundation get involved?

BB: A few days after the 0.85 release, they contacted us. Sometime after that they provided hardware and hosting. 

What exactly is the FSF’s involvement? Do they pay you, as individuals, to work on gNewSense?

POM: No.

BB: We’re not paid by the FSF. They provide hardware, hosting and related support. 

Can you tell us how many gNewSense downloads there have been?

BB: As a very conservative estimate, 6000. However this doesn’t include mirrors.

Can you explain why binary blob Linux drivers are an issue?

POM: They rob users of their freedom to interact with the hardware fully, they may contain bugs that are not fixed for months. I believe that in some really extreme cases outside of the GNU/Linux field you can not get any source for the code that people run on their systems.

I think Free Software has a window of opportunity there.

BB: They are code which the manufacturer can change, but I can’t.

Do you think that user-complacency has contributed to the problem?

POM: User complacency and in some cases a lack of knowledge. When it comes to complacency, those users should say to themselves, just because one person puts their hand in the fire should they be copied.

BB: Yes.

How much hardware is affected by the removal of binary blobs?

POM: At this point if I may, I wish to give into what is said to be a national trait, that of answering a question with a question. So I wish to turn the thinking in the question on its head, and say if your hardware reacts badly to gNewSense,  is it time for you to examine what the vendor is doing to you? If they offer some piece of hardware in exchange for your freedom and then they don’t trust you to run that hardware correctly. They don’t trust you, why should you trust them? As you don’t have the specifications could it be the case that they are pretending that commodity is really something luxurious? How can you know that?

BB: http://svn.gnewsense.svnhopper.net/gnewsense/builder/trunk/firmware/firmware-removed

Mostly network cards (wired and wireless), some SCSI controllers and sound cards. We have many reports of gNewSense working perfectly, including on some laptops. 

Why did you choose to base gNewSense on Ubuntu?

POM: The bug fixing that went into its release and the Long Term Support format, which gives us room to be slow on the take up.

BB: Ubuntu LTS is a good base with an active community, and is also very user friendly. 

Is gNewSense likely to move away from Ubuntu, as a base?

POM: Not in the short term, and it would depend on the size of the community and their energy. If it was it would most likely head off in
its own direction, with the same goals.

BB: This might happen in the distant future when the project is bigger. It’s more likely that we’d become a seperate distribution at that point rather than switching to Debian. 

You state that your goal is to create a fully Free distribution. Is there a lot of software, other than the kernel, on which you are having to work to achieve this goal?

POM: No, as we don’t include software that is None Free intentionally. The layout of the repositories upstream help here.

BB: Our changes are documented at, although many are rebranding:

The kernel is the hardest part, but certain aspects of software such as Firefox also cause issues. 

What is your position on software that is designed to work with MP3, and other similarly patented formats, that has traditionally been excluded by the likes of Debian?

POM: We leave it out. In some places to include those materials would be illegal, so easier to not do it from the start. We have no right to compromise any user, or ask any user to compromise themselves.

BB: While we agree that software patents are bad, we specifcally take no stance on the mp3 issue. 

What sort of release schedule are we likely to see?

POM: Depends but a point release on something like a four month basis might be reasonable. This is the view from where we stand today. It is a good vista, unlike some vistas we could mention.

BB: We currently release when there have been changes to Builder that significantly improve things. There’s currently no set schedule, but once a quarter seems likely. 

Is there likely to be a KDE version of gNewSense?

POM: Yes, thanks to the tremendous work of Chris Fernandez.

BB: There will be a KDE variant with the next release.

Do you hope to include the Upstart sysvinit replacement in one of the next few releases?

POM: No for the reasons Brian states.

BB: No, we’re currently sticking to Dapper so this doesn’t affect us.

You have a very distinctive login screen. One of the most attractive in GNU/Linux distributions. Do you plan to create a
similarly distinctive look throughout the distribution?

POM: We would like to. If people would do what we asked on the list we might manage to get something good together.

BB: This depends on what artwork the community provides to us. It’d certianly be a great thing, but is not related to the main aims of the distro which is the issue of freedom.

We have announced a photo contest for the images for the next release. 

What do you think is the best way to persuade hardware manufacturers to either provide Free Software drivers, or the appropriate documentation to create our own?

POM: The most practical thing people can do is put pressure on the retail end of the market. They are closest to the purchaser.

To do this, tell the supplier what you want, and WHY!

What do you expect for gNewSense in 2007?

POM: Growth, but that is not hard given where we were last year.

BB: New releases, multiarch support and the rise of several distributions that use Builder. 

Sun has talked about releasing OpenSolaris under the GPL. What effect do you think this could have on the Linux kernel? Could it help with the driver situation?

POM: It would lead to a very interesting situation. It would be more interesting if it was done after the release of GPLv3, and it was GPLv3 or later. This would make one of the Sun stacks so attractive to Free Software people it would be unreal. In addition anything that has "GPLv2 or later" could be used on an OpenSolaris system. How is that for low hanging fruit?

What has been the most difficult thing in creating and maintaining gNewSense?

POM: Finding Brian, and then "what he says".  ;-)

BB: Tracking down what’s causing weird failures. For instance the installer will crash out if the restricted kernel modules aren’t available, and weird undocumented things happen if /etc/ls.so.nohwcap exists. 

What has been the most enjoyable?

POM: Working with people on it, seeing it getting attention.

Of which gNewSense achievement are you most proud?

POM: The idea of steps repeatable documented and to be available to others was the most important aspect in the design. To accomplish this we have Builder.

BB: Builder, as this gives anyone the ability to produce a distribution and automatically maintain it. 

What is the best way for people to help gNewSense?

POM: Join us, on IRC or our mailing list, do some documentation on the wiki, fix a bug, help if you have hardware with AMD64 or PPC. Explain to those who do not know what the dangers of none Free Software are.

BB: Our biggest need is for developers and documentation. We need to add more features such as multiarch, and make sure our users can get the help they need from our website.


I’d like to thank Paul and Brian for their excellent answers, and for their work in creating a truly Free GNU/Linux. I’m looking forward to seeing its development.

Related Posts:

Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linux, programmingDecember 4, 2006 12:37 pm

Three-ing Java: Sun looking at GPL3 Java?

Sun’s Simon Phipps talks about their decision to release Java under "’GPL v2 only’ rather than ‘GPLv2 or any later version’", and the possiblity of moving to GPL3 (once it’s finalised), over at his blog.

…My personal view is that the GPL v3 process has been extraordinary and effective so far in taking a somewhat partisan initial draft and evolving it into a solid license…

…The reason we did not choose to use the GPL v3 for the Java platform yet is because the GPL v3 is not ready to be used…

…Sun could not in good faith commit to using a license sight-unseen for such an important code-base…

…We are certainly not opposed to it, and it would be a huge mistake to read our use of the GPL v2 that way….

It makes for interesting reading, and Simon makes his point eloquently.

The patent and DRM aspects of GPL3 seem more relevant than ever, given the recent deal between Novell and Microsoft. Time will tell whether the expertise being used to shape it will pay off. These issues are important enough to hope that it does.

Related posts:

Links:
GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linux, programming, interviewsNovember 27, 2006 1:09 pm

GPL Java: An interview with lead Kaffe developer Dalibor Topic

Dalibor Topic, lead Kaffe developer and Classpath contributor, kindly agreed to take part in an interview, conducted by email. He uses his insight and expertise to give us the inside on Sun’s GPL’d Java.

He talks about OpenJDK’s effect on Kaffe, Classpath, etc., his views on Mono, his opinion of the Sun code, and more…

Could you describe your involvement with the Kaffe and Classpath projects?

DT: I contributed my first few patches to Kaffe back in 2000, after hearing about a free VM.

I really joined the project in earnest in early 2002, helping Jim Pick bring back a slightly dormant Kaffe project back into action, and stayed around since, taking over the duties of a co-maintainer.

Since Kaffe users wanted to use it to run current versions of applications like XML processors, and Kaffe’s class library had not seen much maintenance work for a while, I looked at GNU Classpath as a class library implementation provider with interesting parts to integrate into Kaffe’s own class library to make such applications work.

Thanks to the Classpath team working quickly on implementing more and more of the standard class libraries, soon there was a strong incentive for Kaffe to start merging its own class library with Classpath’s, and that’s how I really got involved with Classpath. We migrated Kaffe gradually over to Classpath’s class library. In the course of that work, several Kaffe developers started working on Classpath directly, and the rest is history.

I’ve got to particularly point out the work done by Mark Wielaard, the GNU Classpath maintainer, and Tom Tromey, the gcj maintainer, that made it so straightforward for Kaffe to become a part of the GNU Classpath community.

Could you describe any other Free Software projects with which you are involved?

DT: In general, I’ve tried to make sure that whatever patches came up in the context of Kaffe porting and development went upstream to the projects we use code from, so you can probably find my name on bug reports and the occasional patch going into GNU Libtool, GNU Gettext, etc.

In my other life, I work on a Free Software theorem prover, SPASS, from the Max Planck Institute for Computer Science in Germany.

What was your first reaction when you heard about Sun releasing Java under the GPL?

DT: I was very happy, and excited that the rumors turned out to be true.

We have won the "struggle to liberate Java" in the finest possible way: with Sun deciding to come with flying colors in support of setting Java free, and taking the leading position in that movement that they deserve, as the creators of the platform.

I’m very pleased with Sun’s execution of it all so far. For example, they’ve been very responsive to resolve questions about the licensing model from Java community members, who may not be familiar with the way the GPL or the Classpath exception works. They’ve done a great job on the FAQ for the OpenJDK project.

Now that there has been some time to think about things, and look at the detail, how has that reaction changed, if at all?

DT: The reaction has not changed, I’m still very happy and excited!

Have you had a look at any of the released code?

DT: Yes, I’ve played around with building HotSpot and javac.

I’ve found a handfull of small compiler warnings to fix, and ran pscan on the code to look for the simpler issues to fix. I’ll fax in my contributor agreement to get my first patches applied upstream.

What did you think of it, and how does it compare with the Kaffe/Classpath code?

DT: I looked at the small C portion of the HotSpot code, where I found the warnings I wanted to fix, and I like it. It’s reasonably easy to find one’s way around it, in particular using the new OpenGrok interface to the code at http://opengrok.neojava.org/hotspot

I’m pretty impressed by how warning-free the code builds on my system. There is a bunch of nice batches of code I’ll have to look at reusing inside Kaffe eventually, though since Kaffe is written in C and HotSpot is written in C++ that’s not necessarily going to be trivial.

It’s hard to compare HotSpot or javac code with Classpath, since they implement different things. On the other hand, compared to Kaffe, HotSpot code shows a lot more maintenance and implementation work going into it, and looks better documented. It is without doubt a great, unique contribution to Free Software.

If Sun hadn’t done this, how long do you think it would have taken the Free Software community to create a full Java implementation and VM?

DT: I think we would have been able to finish implementing 1.5 support in GNU Classpath next year, and many VMs using GNU Classpath already support the features introduced in 1.5.

But by then Sun would have released 1.6 already, and we’d have had to play catch up with the reference implementation of Java again. So, I’m happy the way things turned out, that we can work on Java 1.7 together.

In addition, there are many other interesting problems in the Java space, like deployment and modularity where being able to work together on Free Software solutions should help get the kind of input that helps improve the results for everyone.

Which of the Free Software implementations do you think held the most promise?

DT: It’s hard to pick a single one, since Cacao, gcj, IKVM, JamVM and JikesRVM, for example, all have a lot of good work going into them, partly because some of them are very promising research platforms, and partly since they have a very dedicated community behind them.

Kaffe is noticeably absent on this list, not since I don’t think it has a lot of promise, but since I think it’s more important to bring the projects we work together and share code with into the limelight. A lot of people have heard about Kaffe, and I think they should know about all these other nice Free Software runtimes as well. No single runtime can fit all sizes, and I regularly recommend that people check out those other projects as well. They may find a better solution for their specific problems.

As a Kaffe co-maintainer, I’ve been more focused on encouraging innovation to happen outside the Kaffe project, and bringing code from other projects into Kaffe, rather than trying to position the Kaffe project as the place where things need to happen.

My idea has always been that a diverse community of free VMs is the healthiest one, so I’m glad we’ve achieved that around GNU Classpath.

What is the most valuable aspect of Java for the Free Software community?

DT: There is a huge amount of Free Software written in Java that’s now going to be more readily accessible to users and Free Software developers. That means being able to package more software written in the Java programming language into GNU/Linux distributions, for example.

Do you think that we are more likely to see all Free Java development now focused on Sun’s version; or will we see Kaffe, GCJ, and others thriving because of the released code?

DT: I think we’ll see a bit of both. I hope that Sun will see some good contributions coming from this step, and will continue to build up an enthusiastic and passionate community around the code, like they’ve started with project Peabody, which encouraged community contributions.

I expect that Sun will see most contributions starting to pour in once the class library code is released, as most Java developers will be more familiar with Java, than with C++, or C.

Nevertheless, the way Sun is doing it, starting with the VM and the compiler, allows them to establish the necessary structures, and make sure everything is in place when the rush begins. ;)

I also think that Kaffe, GCJ, etc. will thrive along with OpenJDK, moving toward more unique niches, while at the same time looking at ways to share code with Sun’s implementation; in particular class library code, but probably more bits and pieces over time as well.

We’ve always had a strong culture of giving back to where we take from around GNU Classpath, so I think it will all work out well.

Do you think much of the code and innovation from Kaffe, Classpath, GCJ, etc. will make its way in to Sun Java?

DT: I don’t think that will happen instantly, since Sun’s implementation, being the reference implementation, will very likely be maintained in a much more conservative fashion, than the more experimental free runtime projects.

But, since some of Sun’s class library may have encumbrances from third parties, I hope we’ll see the community outside Sun step in to help write replacements for that code. Some of the current work on GNU Classpath done by Roman Kennke and the rest of the team may help with that, for example.

That being said, I’d expect that new technologies coming from outside Sun, which the Java developer community desires to see in the JDK, will continue to go through the JCP and then into the JDK, eventually.

Have you ever looked at Mono/C#? If so, what did you think of it?

DT: Yes! I’ve actually seen Miguel de Icaza talk a few times, he has a great way of presenting his ideas, so I naturally went and checked out Mono a little bit.

Mono is a fun project. Miguel and the team had looked at Kaffe, and decided to try to write a better system, and afaict have done a very good job on making Mono into a nice, feature-rich runtime. Some of the ideas in Mono would make sense to introduce in Kaffe as well, like using glib for solving some of the standard problems when writing portable C code.

But one of the most impressive things about Mono is not the code, IMHO, it’s the dedicated community of developers trying to turn Mono into a better platform for development of Free Software on the GNOME stack then the alternatives.

What, to your knowledge, have Sun released under the GPL now; and how useful is that to the Free Software Community?

DT: They have released the JavaME reference implementation as PhoneME, the test harness for it as jtreg, the javac compiler, the HotSpot VM, and the Java Help library. In addition, Sun also added the GPL with the Classpath exception as a licensing option for the JavaEE reference implementation, project Glassfish.

In terms of ‘is there a full Free Software Java implementation from Sun’ the answer is now a clear yes for the ME and EE standards, with a significant part of the reference implementation of the JavaSE standard being released through HotSpot and javac. Until the class library arrives as Free Software in Q1 2007, that leaves some time to experiment with hooking HotSpot and javac into GNU Classpath, for example, and that’s what some developers have set out to do.

On the other hand, the ME and EE implementations are useful immediately. The Ubuntu GNU/Linux distribution is working on packaging the EE implementation for the next release, afaik, and I’ve already seen a build of PhoneME for OpenEmbedded’s port to the Zaurus PDA device.

Java Help and javac also play a role regarding packaging efforts around Sun’s Free Software IDE NetBeans, since NetBeans depends on those projects.

How useable is what they’ve released now? They describe it as an "early
build" of 1.7. Is it a very unstable version?

DT: I can’t judge the stability of the builds, as I’ve mostly just played around with the source code, rather than the binaries. I know that GNU Classpath developers have made Sun’s javac work on GNU Classpath, and used it to find a bug in GNU Classpath’s regular expression handling code, so that was quite usable. I’ve also seen someone post a build of the PhoneME JavaME implementation for OpenEmbedded on the Sharp Zaurus PDA, so I guess that’s quite usable as well.

Sun say that they will release a "JDK based nearly entirely on open-source code". For those of us who will exclude the resulting non-free parts, do you think the JDK will still be useful?

DT: Definitely. It is not clear at this point how much encumbered code, if any will be left over by the time the class libraries are released. If there are any such parts left over, we’ll have to write Free Software replacements for them, or improve the existing ones until they are good enough to replace the encumbered parts.

But for a lot of Free Software written in the Java programming language, those encumbered parts may not be necessary to use it, so the unencumbered parts will be a very useful contribution on their own for users of such software.

Sun say they are going to make the source for JDK 6 available once they’ve released a full JDK 7 as Free Software. Do you know whether the JDK 6 code will also be under the GPL?

DT: I don’t know. I guess it will be, if any possible, since the differences between JDK6 and early JDK 7 won’t be very large.

I could imagine distributions having an interest in taking the freed JDK 7 code and filling in whatever gaps were left over in a GPLd JDK 6 source code release, and then certifying their builds of that as Java(TM) 1.6 compatible, for example. 

Do you think Free Software developers will embrace the JDK, and implement the parts that Sun have been unable to Free?

DT: That’s already happening in the context of GNU Classpath, to some degree. Sun has explained in the FAQs that the problematic encumbered portions of code lay in the areas of graphics and font rasterizers, and that’s where the commit activity seems to be happening in the last days. GNU Classpath could always use more volunteers for work on the class library, of course!

I think Free Software developers will embrace the JDK as a strong Free Software platform. The wealth of Free Software commons available on the Java platform shows that many Free Software developers have enjoyed working with the platform despite the drawback of having to rely on non-free software until suitable Free Software implementations around GNU Classpath became viable. Now that Java is being liberated, I’d expect it to be used by even more Free Software developers than before, as "the Java Trap" is a thing of the past.

In particular, I’d expect more Free Software developers to look into re-using libraries written in the Java programming language in their own projects, be they Java-based, or not. Java 7 should bring a push towards making the JVM a ubiquitous platform for all sorts of programming languages that need some kind of a runtime, and Sun has hired the JRuby lead developers to help bridge the gap between Ruby and Java using the JVM as the middle ground.

How much of a worry is the trademark on the name "Java"? Do you think Sun will cause problems and be over zealous with their control?

DT: In order to maintain compatibility, Sun only lets implementations that pass the certification process use the Java brand. That has not been a problem for the existing Free Software runtimes, since they avoided using Sun’s trademarks.

I don’t think that’s going to be a problem in the future, either. Sun has created a way for independent implementors to certify their implementations as compatible, and I’d expect those Free Software implementations that want to tap into the marketing power of the Java(TM) brand to certify. Apache Harmony, for example, is an implementation that’s been created with the explicit goal of getting an independent open source implementation Java(TM) certified.

There are certainly things I can imagine happening that would make the life easier for distributions wanting to certify their own builds as Java(TM) compatible, for example, like making the compatibility test suite, the TCK, readily available to such users, so that they can walk through the actual scholarship process faster. That’s probably going to be an interesting subject of discussion once the full JDK has been released.

But, given Sun’s very good execution so far, and the desire of all people involved in liberating Java on Sun’s side to do the right things the right way, I am not afraid of Sun being overzealous at all. They’ve been just plain great since we started talking on how to make this happen.

Of which Kaffe/Classpath achievement are you most proud?

DT: It’s the tightly knit community of Free Software developers around GNU Classpath, for sure. There is even a scientific paper describing the "permeable development" model we’re using to help each other benefit as much as possible from sharing.

That, and showing that there is a demand for Free Software runtimes for the Java programming language, and creating the circumstances which led to cooperation between ASF and FSF to address license compatibility issues in GPLv3, and connecting people worldwide working on liberating Java behind a common backbone in form of GNU Classpath, and many other things that only became possible because of that tightly knit community around the project …

But it’s really the people behind it all that I’m most proud of having the opportunity to work with. GNU Classpath is a really special project in that respect, I think.

***

I would like to thank Dalibor for taking time out to answer these questions. His position gives him a unique insight, and it was generous of him to give us the benefit of his expertise.

Related posts:

Other Interviews:

Links:

Wikipedia pages on the Free Java projects:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linuxNovember 23, 2006 6:36 pm

Bruce Perens: Petition against Microsoft-Novell patent agreement

I haven’t posted about the Microsoft-Novell deal before now, because I wanted the dust to settle and to try to make sense of it. The dust has settled, but it still makes little sense.

One thing seems clear, though; that any hope of some good from it, is in vain.

Bruce Perens has written an open letter to Novell’s CEO Ron Hovsepian, and has invited anyone, who feels the deal is a bad thing, to add their name in protest. There are a lot of names already, and the list is growing quickly.

From that page:

Novell and Microsoft’s software patent agreement betrays the rest of the Free Software community, including the very people who wrote Novell’s own system, for Novell’s sole financial benefit. Join Bruce Perens in signing an open letter to Novell’s CEO Ron Hovsepian.

The deal

Novell have signed an agreement with Microsoft that excludes Novell’s customers from any legal action brought as a result of patent-infringement. Said patent-infringement would allegedly occur through their use of GNU/Linux.

Surely that’s a good thing? Aren’t they just looking after their customers?

The issue is that Microsoft are obviously trying to legitimise their claim that GNU/Linux infringes their patents, and Novell’s action seems to do this. Whether it would have any affect in a legal case remains to be seen.

Money

Novell’s reasons for this are simple. Money.

The agreement means that Microsoft will pay Novell $348 million upfront. Novell, in turn, agrees to pay Microsoft at least $40 million, over the 5 year term of the agreement, on a percentage of its revenue from open source products, ‘for use of Microsoft’s patents’.

The agreement also requires Microsoft to spend $12 million a year to market GNU/Linux’s interoperability with Windows (that’s all we need).

You don’t need a calculator to work out who, in the short term, benefits financially from this deal.

You could excuse Novell’s behaviour by pointing out the fact that they have a new CEO who’s only been in the job for five months, and that he just doesn’t understand the situation, but this is a mighty big mistake to make for a rookie.

The simple fact is that Novell have been losing money, and they’ve decided to sell their souls to get out of their predicament. Ironically, SUSE Linux was the part of their business that was making money, and that is the market they have just alienated.

Microsoft’s reasons

Novell have since publicly stated, much to Microsoft’s ire, that in making this deal, they have not agreed that GNU/Linux infringes Microsoft’s patents. However, it remains that Microsoft have been using this deal to add weight to their patent claim, and said that other GNU/Linux vendors may face legal action.

Microsoft have seen the threat from GNU/Linux, and are now seeking to kill or control it. Their normal tactic of buying their competitors doesn’t work with GNU/Linux, and they’re now flailing round trying to find a way to make it property (intellectual or otherwise); to make it something for sale.

*** 

I hope that the EU are watching this very closely, as they look at software patent laws.

Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linux, programmingNovember 20, 2006 6:56 pm

Java now Free Software (GPL) - part 2 (reality check)

Duke, the Java mascot, in a contemplative poseOk, the smoke from the party-poppers has cleared; the haze from the cheap punch has faded; so let’s have a look at the detail of Sun’s move in the cold light of day.

This follows on from Java now Free Software (GPL).

The video announcement

[EDIT: This paragraph corrected, as a result of Dalibar Topic’s comment below]

This is a bit of a niggle. When you go to the announcement page, the video of the announcement (almost an hour’s worth) is presented in a proprietary format. Sun didn’t seem to get the irony of this at first, but Dalibar Topic, who is a developer on Kaffe, Classpath, and others, did some excellent work in transcoding it to OGG Theora. Sun now have a link to it on their page, and have been good enough to provide it under a Creative Commons license. Read about how he transcoded it using Free Software here. There is a DivX/XviD version here, but that’s a much bigger file.

What exactly is being GPL’d?

This is the big question; and is often the killer with this sort of announcement. I really hoped that it was going to be simple - that is was just going to be what it said on the tin - but, of course, it isn’t.

Now, as I mentioned in the last post, I’m not as familiar with Java as some of you might be; so I’m trying to keep track of which parts mean what. You’ll have to bear with me.

From the more detailed page of the Sun announcement:

  • Open-Source Java SE: Today Sun is releasing the source code for the Java HotSpot virtual machine, the Java programming language compiler (javac), and JavaHelp online help software. Release of a fully buildable Java SE Development Kit (JDK) based nearly entirely on open-source code is expected in the first half of 2007.
  • Open-Source Java ME: Sun is first releasing the source code for Sun’s Java ME Feature Phone implementation based on Connected Limited Device Configuration (CLDC), which currently enables rich mobile data services in more than 1.5 billion handsets, and the source code for the Java ME testing and compatibility kit (TCK) framework. Later this year, Sun will release additional source code for the Advanced Operating System Phone implementation for based on the Connected Device Configuration (CDC) specification and the framework for the Java Device Test Suite.

That should mean that we have a Free Software Java VM now. And a JDK "in the first have of 2007".

You will notice that they say they will release a "JDK based nearly entirely on open-source code". Quite what this means, we’ll have to wait and see. I have heard that they are working to free problem parts, or reimplement those they cannot. Presumably, these are parts that involve license agreements with other companies. I sincerely hope they can make a fully functional JDK with just Free Software, otherwise things could be rather soured, especially when it comes to inclusion in GNU/Linux distributions.

It’s interesting to hear that the Playstation 3 runs Java ME. It’s possible that may provide an inroad for Free Software to interoperate with Blue-Ray drives.

Sun say will also GPL Project Glassfish, an implementation of Java Enterprise Edition (EE), in the first half of 2007

Sun have talked a lot about freeing Java, but what version?

The version released as Free Software is version 7. The current release is version 5.

Now, Sun’s FAQ is a little vague on the matter, but there may be some good news:

"We’re open-sourcing these components from a very early build of JDK 7. In order to prepare these components to be open sourced, we not only changed the license text but we also simplified the build process in order to make these components more easily buildable outside of the full JDK source tree. JDK 6, is nearly finished, hence we’re releasing these components from the JDK 7 tree. The only other differences between the JDK 6 and 7 versions of these components are minor bug fixes and enhancements that have already been integrated into the JDK 7 tree. When we open-source the full JDK we’ll make the sources for both JDK 6 and JDK 7 available. The community will have both a stable release - JDK 6 - on which to focus quality improvements, and JDK 7, the next feature release where all the action will be for innovation and new capabilities."

It says that once JDK 6 is released, the source code will be made available. It does not say that it will be GPL’d, but it is sort of implied. It also seems to say that JDK 7 is virtually the same as JDK 6, apart from "minor bug fixes and enhancements". That may mean that the code they have released can build into a usable JDK. I hope that my interpretation is correct.

Trademarks

Sun, of course, own the Java trademark. That’s why Free Software implementations, such as Kaffe, have been careful to avoid the word altogether.

The way I understand it is that, unless a VM is an official release from Sun, it can’t be called a "Java VM". This is a shame, but, again, is understandable. I just hope that this won’t lead to a situation like the one between Mozilla and Debian, where Debian can’t call the Firefox in their distribution "Firefox" because they exclude non-free artwork and make some minor patches, and has led to the GNU IceWeasel fork.

Interestingly, Sun have also released the Java mascot, "Duke" (who you can see at the top right of this post), under the Open Source BSD license. This means that the likes of Debian would not be put in the same position of having to exclude non-free artwork. "Duke" is still trademarked, but it neatly sidesteps the Mozilla/Debian issue. I would really like to know whether they did that in response to the Mozilla/Debian situation. If so, it would show how much they’ve been listening and want to get this right.

Even in the Free Software world, when modifications are made to a piece of software, they are normally contributed back to the main project. Forking is unusual, but is also a good thing. It’s what you do if you want to take a programme in a different direction. But you generally give it a new name, even if it holds a part of the original name, to show its heritage; and this is enforced by the GPL. I wish companies involved with Free Software would pursue name issues using the GPL, and not with trademark legislation. I hope Sun are listening.

The license

Why the GPL? Surely the LGPL would have made more sense.

The released applications are licensed under the GPL, but the libraries also use the Classpath Exception. This allows you to "link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice…" This choice cleverly sidesteps the poorer reputation of the LGPL, while actually being friendlier to proprietary software companies. Given Java’s position in the market-place, and its commercial use, I don’t think we could ever have expected it to be straight GPL’d.

Classpath, GCJ, Kaffe

Jonathan Schwartz (Sun CEO), in the video announcement above, said, with reference to Classpath, GCJ, Kaffe, and similar projects:

"Now’s the time for us to get together and try to figure out how do we do the right balancing equation. Because we don’t want to do any redundant work with you, and we don’t want you doing any redundant work with us. And we’re more than happy to put all of our efforts together."

This attitude is reflected, in a much more qualified way, by some developers in these projects. When talking to Newsforge, as quoted on Linux.com, Mark Wielaard of Classpath, GCJ, and Eclipse says:

"There are lots of issues that we will have to look at. Can we combine GNU Classpath, GCJ, Kaffe, Cacao, JamVM, IKVM, etc. with the liberated Sun code immediately in such a way that we have an even better free platform really soon? How does the platform coverage compare between Hotspot and other [runtime environments]? What kinds of innovations can we carry over or must be kept separate? And how do we move the whole research field and GNU Classpath community projects (20+ now) forward without needing to rebase everything on some new code base?"

It would be nice to see these projects, including Sun Java, working together to take the best from each, and giving us the best platform possible. There is an argument for Sun taking the time to learn a great deal from these projects. Free software generally contains far less code than its proprietary counterparts. This makes it easier to maintain and debug. Sun may have an opportunity to learn how to take out some of the bloat.

Conclusion

I started this follow-on post expecting it to be quite negative. I had read rumours about some of the details, and thought there were going to be some serious downers. But having done my own research, I’m still quite positive about what Sun have done. There is some doubt about how complete the JDK will be, but they seem to be working to free as much as they can. It’s a shame we have to wait for some large chunks to be release, but to get as far as they have this quickly is actually quite an achievement.

Jonathan Schwartz seems genuinely enthusiastic, and that gives me some hope that there isn’t going to be too much of an anti-climax next year. His hounding of Rich Green, about whether he would GPL OpenSolaris, was interesting, even though it looked rehearsed.

I am cautiously optimistic. Actually, perhaps against my better judgement, I’m more optimistic than cautious. I shall be watching developments closely.

Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linux, programmingNovember 17, 2006 12:19 pm

Java now Free Software (GPL)

Duke, the Java mascotOn Monday (November 13th, 2006), Sun announce that it is releasing Java under the terms of the GPL2 license.

This is a few days old now, but I wanted to take the time to look at it and think about the implications. Being a programmer, this is significant news for me. I’ve concluded, however, that the effects may be too far-reaching to predict.

This post will concentrate more on the positive. The next post will talk about some of the finer details of the licensing, and exactly what is being released and when. I would recommend reading that one too, to get a balanced reaction. This post, then, reflects my hopes of what all this means.

Java and GNU/Linux

Distribution

The obvious effect is that it will be possible to include Java in GNU/Linux distributions.

This is a frustrating gap that has existed for many years now. There have been a number of projects try to fill it, but with limited success. Most are worthy of acknowledgement for their achievements, but have fallen short of providing a full implementation of the Java standard. What will be interesting to see is whether their achievements are significant enough to make it into the Sun Java codebase, as an improvement to the existing product.

Cross-platform

It will be possible for GNU/Linux to participate in the wealth of ‘run anywhere‘ Java software. As I said, some projects tried to provide a Java run-time for GNU/Linux, but they were unable to create a complete implementation. You could never rely on them to run a Java programme without problems. With a full implentation, any Java programmes that do not feature OS-specific code will run quite happily.

Developers

The Java platform now gains a great number of GNU/Linux developers; with their expertise and bug-squashing determination.

These developers may also decide that Java is a poweful language in which to write their configuration tools. It could lead to a more feature-complete GNU HURD OS, if appropriate cross-platform tools are written.

Java and .NET

I think it is reasonably obvious that Sun has made this move in order to compete with .NET.

Microsoft developed .NET in response to Java’s success and ingenuity, but with their marketing power and platform dominance they have seen fast adoption of the technology.

Sun have gained a good market-share with the GPL’d OpenOffice.org, and I think they want to hold on to their Java market-share by using the same tactic.

Also, .NET has been finding its way into the Free Software world by way of Mono. A number of applications, that run on Mono, have found their way onto the GNOME desktop and into GNU/Linux distributions (Tomboy, Beagle). It seems ironic that software using a technology invented by Microsoft could be used with Free Software, but software using technology from the company who own the most successful Free Software office suite could not.

[EDIT: The following paragraph was changed because of an inaccuracy pointed out by Joe Shaw. See the comments below.] 

One of the reasons for this was Microsoft’s decision to create an open ECMA standard, with which the core .NET framework would comply. There is now some doubt over the long-term viability of Mono, given Novell’s (the owners of Mono) decision to sign an agreement with Microsoft that excludes their customers from prosecution for software-patent infringement, due to their use of GNU/Linux. If only because it makes Novell less popular in the Free Software community.

I am a C# (.NET) programmer (it pays my wage until I find a career in Free Software). I like the technology. Microsoft have done a good job in designing and implementing it. I’m not going say that isn’t the case, just because it’s Microsoft. But, of course, I want to use and develop Free Software, so my focus was on Mono.

Sun’s move changes that, and especially because of their courage in making that move. I have programmed in Java, briefly, before. I liked Java as well; but for different reasons. Java is more mature, and more flexible. .NET is subject to Microsoft’s hand-holding mentality. That does often make things a lot quicker and simpler to do, but it is also very frustrating; especially for a capable programmer who wants to do something his way, but is subject to Microsoft’s preferences. There is a huge volume of Java knowledge out there, much of which is made available by the Free Software community, and Java gives you the flexibility to use it.

I think what I’m saying is that I’m now much more drawn to Java. I liked it before, but I couldn’t write Java for Free Software operating systems. I can now, and I have a great deal of respect for Sun’s decision - I think they deserve a good response from Free Software programmers. I shall be looking at it closely, and will probably try to use that platform for Free Software that I write.

To be continued…

This post is starting to get quite long. I shall talk about the "Classpath Exception", the current status, and some possible pitfalls in my next blog.

I’ll leave you with a quote from Richard Stallman, a video of which was featured in Sun’s announcement. I realise I’m doing their marketing job for them, but they’ve pulled off quite a coup by getting something like this out of him:

"I think Sun has… well, with this contribution… have contributed more than any other company to the Free Software community… in the form of software. It shows leadership. It’s an example I hope others will follow."

Links:
GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linux, ubuntu, gNewSenseNovember 7, 2006 12:29 pm

An Ubuntu gNewSense

gNewSense LogoIt’s amazing how much I’ve learned since starting this blog.

Last week I talked, in the "Fire and Ice" post, about how Firefox is not wholly Free Software. In that post, I detailed the attempts by Debian and Ubuntu to exclude the non-free parts of the package, so that they had a Free Software distribution. This week I have learned about a new GNU/Linux distribution, sponsored by the "Free Software Foundation", that aims to only include 100% Free Software. That project is gNewSense, which released version 1.0 on November 2nd, and it removes the non-free parts of Ubuntu.

Why?

I have been quite shocked to find out that the standard Linux kernel contains binary-only "blobs", to enable the use of certain hardware. This seems clearly to be in violation of the GPL, and is unquestionably not Free.

gNewSense have created a distribution based on Ubuntu, but they have removed these blobs from the kernel. They have also removed the restricted repositories, and they do not use Canonical’s proprietary Launchpad system for bugtracking, translation, etc. It should be noted that Canonical state that they intend to release Launcpad as Free Software in the future.

This is important for those of us who believe in software Freedom, and who use GNU/Linux because of that Freedom and not because of the price. I am really quite concerned that I hadn’t heard about these "blobs" before now, and it seems that they are tolerated for the sake of popularity. Popularity, of course, is important to increase the clout of Free Software, but sacrificing Freedom in the process is hypocritical and does not encourage hardware manufacturers to participate in that Freedom.

Problems

Of course, if you remove those blobs, then some hardware won’t work. It becomes necessary to research a purchase before you make it. Wireless cards seem to be the most problematic. However, this has been an issue with GNU/Linux for years. I always research hardware compatibility before buying. Of course, this has improved in recent years, but I’m disapointed to find out these blobs are why.

If you would like some resources to research compatibility, have a look at the links at the end of this post.

Why Ubuntu?

  • Ubuntu is Debian-based. Debian was probably the closest to being a 100% Free GNU/Linux distribution.
  • Ubuntu addresses many of the criticisms directed towards Debian. It is desktop-oriented, easy to use (even for new users), and is released often, with the latest software versions. In fact, Ubuntu could possibly be criticised for sticking too rigidly to their frequent release schedule.
  • Debian is renowned for being one of the most stable operating systems in existence, and Ubuntu inherits a lot of that stability.
  • Ubuntu is very popular, which should lead to rapid recognition of gNewSense.

Current Status

The newly released gNewSense 1.0 is based on Ubuntu 6.06. It’s a shame that it’s behind, but it’s understandable considering it’s basically been a two-man band. I like Ubuntu 6.10, especially Upstart, and I hope they can release gNewSense based on that version soon. In future, I hope they can work in Ubuntu unstable until the Ubuntu release, which should reduce the lag.

I have read that Debian plan to address the issue of the Linux blobs, and that should filter through to Ubuntu. It remains to be seen what role gNewSense would have at that stage.

gNewSense is sponsored by the "Free Software Foundation", which is not only an endorsement of their aims, but a boost to their chances of success.

– 

I hope that gNewSense is a resounding success, and I certainly intend to move to it from Ubuntu. Hopefully it will stir people into action, experience heavy development, influence the removal of the Linux blobs, and prove the power of Free Software.

Links:

Hardware Compatibility Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
gnu/linux, ubuntuNovember 3, 2006 5:04 pm

Young Upstart

As promised this will be the first in a series of posts about Ubuntu 6.10.Ubuntu logo

Probably the most talked about feature of the new Ubuntu is Upstart. This is an event-based, asynchronous sysvinit replacement. Most users will just notice that their computer boot and shuts down faster (significantly faster in my case).

Upstart is being developed by an Ubuntu developer, Scott James Remnant, but it’s hoped that most other distributions will also use it in future.

Oldskool init

From Wikipedia:

init (short for "initialization") is the program on Unix and Unix-like systems which spawns all other processes. It runs as a daemon and typically has PID 1.

The functionality diverged considerably between BSD and System V. The usage on most Linux distributions is compatible with System V, but some distributions, such as Slackware, use a BSD-style and others, such as Gentoo Linux, have their own customized version.

Given that Upstart was largely designed to replace sysvinit, and retain compatiblity, I shall cover it briefly here.

Runlevels

sysvinit uses "runlevels". The initialisation process involves starting services and performing tasks required for each runlevel, before moving on the next. Most machines will continue until reaching the multiuser runlevel, which on Debian and Ubuntu happens to be 2.

Order

This process requires that things are done in a predefined order, and relies on hardware being in a suitable state before things can move on.

Upstart

Upstart was designed to solve two main problems. Boot/shutdown speed, and modern hardware flexibility. It also aims to do this in a compatible manner, allowing affected programmes to run unchanged.

Speed

This problem is solved by making Upstart asynchronous. That is, it will perform number of tasks at once, rather than doing everything in a linear fashion. The difference is quite noticeable.

Flexibility

When System V was written, you could rely on hardware being available at specific times during the boot process, and that disks were always there. Today’s computers are far more flexible. You may want your home directory to be mounted on an external USB hard disk; your network card may be a wireless USB dongle; a network drive may only be available when you are within range of a Wireless Access Point.

Upstart tackles this issue by being event-based. When certain hardware is available, or a subsystem is running, then it will perform appropriate tasks - such as mounting the external drive as /home when the USB subsystem is up.

This should mean that unnecessary services are not started, which should mean a reduced memory footprint, and improved performance. Also, Upstart restarts services if they crash, reducing the need for reboots.

Compatibility

One ingenious aspect of Upstart is that it has been designed to be compatible with sysvinit. This means that it’s almost a drop-in replacement, but still gives the increased performance and flexibility.

Upstart has its own format for tasks, but achieves the compatibility by also supporting sysvinit scripts.

Future

Ubuntu also hopes that Upstart can replace cron, atd, and inetd.

Cutting Edge?

Is Upstart cutting edge?

Upstart uses a very different approach for the initialisation process. It also surpasses other attempted replacements, such as Initng, in features, ingenuity, and success.

Yes, I would say that Upstart is cutting edge. 

I look forward to seeing the further developments of Upstart, and its adoption by other distributions.

Links:


GNU Free Documentation License

Copyright (c) 2006-2007 Michael J Kaye.

Permission is granted to copy, distribute and/or modify the content of this blog post under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.