Voyager FAQ

=Voyager Frequently Asked Questions= Assembled by:
 * Adrian Gschwend, aka ktk
 * Cinc

Motivation
 * OS/2: Everything is an object [tm]
 * MacOS X: Not everything is an object
 * Gnome: We once tried objects
 * Windows: What is an object?

What is Voyager?
Voyager is the codename for the idea of having a replacement OS/2 on top of modern technology. This idea is the result of around 1.5 years of thinking a lot about what we can do in the future as current OS/2 and eComStation users. Note that it's absolutely impossible to convey what we plan to do in a few sentences. I made a speech on it at Warpstock Europe 2005 that, by itself, took 1.5 hours so you get the point :)

Before you continue you should probably consult:


 * My presentation at Warpstock Europe 2005. Get the ALL06 PDF.
 * My presentation as DivX (part 1, current situation (360 MB),part 2, outlook & Voyager (366 MB)) or MP3 (available soon). Use WarpVision or VLC 0.8.4a to play (VLC 0.8.2 won't work).
 * The Voyager page in this Wiki and...
 * The Voyager mailinglist at gmane.org

Note that our path is firmly set and long past the point of discussion. As a potential contributor, know from the onset, that acceptance of this path is a must. Take it or leave it, it's our choice and we have our reasons.

How is this releated to OS/2 and eCS?
A lot and not much ;) Voyager is basically a re-implementation of a lot of ideas already implemented in the WPS, the Workplace Shell of OS/2, the multimedia subsystem (like IO procedures) and other areas which make OS/2 unique. As mentioned in the ALL06 PDF, the WPS has still unique concepts that are not implemented in any of the free and well-known desktops like Gnome or KDE. Our goal is to get the "WPS and OS/2 feeling" on top of new, (and existing), open source technologies, in a way that's more or less independent of the kernel used.

One of the main concerns of current OS/2 and eCS users is good backward compatiblity. This is addressed below.

How is this related to MacOS X?
I talk a lot about the MacOS X in my presentation for various reasons:
 * The MacOS X Desktop does have a lot in common with the WPS. We're going to limit our talk to some of the ideas and concepts here. The reasons for the similarity are quite simple: Apple, IBM and HP had a company called Taligent in the 90s which worked on an object oriented OS. The project was cancelled in 1995, but some of the conceptual ideas survived. Some of these made it into the MacOS X which has also been influenced by NeXT which also has some ideas in common with OS/2s WPS.
 * MacOS X provides a powerful 2D engine called Quartz Extreme, we think this is the way to go today and Voyager has planned something like this utilizing Cairo as the 2D engine.
 * MacOS X provides an X implementation for compatiblity with Unix applications. Netlabs.org will provide something similar with Everblue.
 * Apple has already solved quite a few problems that we have now with OS/2 and eCS, (no real multiuser system, no real security concept etc). If you want to know more about our plans to deal with this read the Kernel Programming Guide at apple.com. It is always a good idea to learn from others as there's no point in re-inventing the wheel.

Is Voyager yet another Linux distribution?
No! Voyager is more than just repackaged linux stuff with a pretty desktop (in fact it is more likely BSD stuff...). We will kill some sacred cows of the *nix camp like X as the graphics foundation or so called choice. You won't have ten editors for your config files, you won't have several window managers but one, you won't have a dozen file systems to choose from but only one or two. You get the picture... Since there's no decision for the kernel yet the rumours Voyager would use the linux kernel are just - rumours. Voyager won't require you do recompile your kernel every few weeks or hunt down package dependency when installing new apps by providing a standard set of base libs.

I heard Voyager uses the Linux kernel
Read the answer to the previous question! For your convenience I highlighted the sentence which may interest you.

I type this very slowly so every OS/2 zealot going berzerk may understand it: There is no decision about which kernel to use, yet. There's no decision about using the Linux kernel, there's not even a discussion about using the Linux kernel. Whenever somebody is telling you Voyager is using the Linux kernel just ignore that.

Will netlabs.org stop providing software for OS/2 and eCS now?
Definitely not! We will continue to provide essential software for OS/2 the next years. Voyager is in our opinion a great option for the future but we know very well that it will take some time until you can use that as full replacement for what you use now.

The best choice you can do at the moment is to work with eComStation, version 2 of eCS will provide some essential enhancements, many of the ideas are planned for Voyager as well. So one could say that Voyager could become something like eComStation 3.0 once.

How can I support Voyager?
There are several possibilities:
 * We definitely need skilled developers. We have a wide range of tasks available, please consult the Voyager page to get an impression and join the mailinglist if you can contribute in some form.
 * Motivate skilled coders to help on the project. We think that the idea is very tempting and unique and we already successfully motivated developers outside of the OS/2 and eCS community. This is essential for this project.
 * Buy eComStation. netlabs.org is working closely with SSI and Mensys to provide new software on eCS. Supporting eCS is thus an exellent way to also fund development of Voyager indirectly.
 * Buy netlabs.org sponsoring units in the Mensys shop, we get 100% of the amount you donate there!
 * Present Voyager at your local usergroup. We need to spread the word to motivate people to contribute in any form. For sure you are welcome to show the DivX of the presentation as well.
 * Help out with the documentation of Voyager

Will Voyager support my OS/2 and eCS applications?
That's a question we can't answer that easy at the moment. For sure it would be nice if we reach that state one day but that depends on quite a lot of things. There are several options:
 * use a virtual machine like XEN to run OS/2 or eCS in there. Will definitely work but is not a soft migration
 * implement the OS/2 base API on an existing Kernel to provide API compatibility. This could even be extended to binary compatibility if we work hard on it.
 * osFree has something in mind, see here as well.
 * There is a project at Sourceforge which provides a base OS/2 API already on Linux, written by an IBM employee. This library is not complete yet but provides a base to work on
 * implement at least parts of GPI and PM on top of an existing 2D engine like Cairo for PM compatibility. This is a very big task and we are not sure if it is worth doing that but if a group of people volunteers to write that, get in contact with us on the Voyager mailinglist. Note that such a project should definitely integrate well with our idea, otherwise it will not help at all.

Another possiblity might come up with the design of Voyager, at the moment the most likely Glitz backend will be xorg OpenGL drivers, so we would get drivers from the HW-vendors. This opens a new interesting approach for backward compatibility, that would involve the following steps:
 * compile Xorg on OS/2 with Innotek LIBC
 * get the binary only drivers to work (should work somehow in theory)
 * compile Glitz using xorg backend
 * recompile GTK2 & all libraries used with Innotek LIBC
 * write a GRADD driver that renders using OpenGL, which means it would render into the OpenGL driver of Xorg. Like this it should even be possible to have a windowed PM in Glitz.

The benefit would be that we would also get HW acceleration in the current OS/2 or eCS.

In short one can say that binary compatibility is technically possible up to a certain point at least. One can debate about if this is useful or not.

Why something new? There is Gnome, KDE...
If you think KDE, GNOME... fit your needs, that's fine, just move on because you have found a solution for your personal computing needs. The people involved with Voyager so far don't think desktops other than the WPS which are available today fit their needs. Different people, different preferences.

Or to quote Larry Wall: "There's More Than One Way to Do It".

Short answer
Voyager is a desktop OS. We don't see any need for opening a window on a machine located somewhere in China when your monitor is only 50cm away from you.

And, we don't like X. Period.

Long answer
We talk about X in terms of Xlib here, a library which was designed about 20 years ago when networks were slow, terminals common and processors did all the GFX (rendering) work. Now we have fast networks, fast computers, some graphic cards cost more than the CPU and remote access can be done with modern protocols like RDP or NX.

Since Apple started introducing eye candies in MacOS X everyone wants fancy 3D effects on his desktop too, no matter how useless they actually are. So one needs to get direct access to the hardware in X too, a concept that got introduced in form of the Direct Rendering Interface (DRI) mainly for 3D games. New desktop extensions like Xgl or Aiglx are using such techniques as well to get direct access to the hardware, without messing around with Xlib.

The two most popular toolkits GTK and Qt started moving their rendering to new engines as well like Cairo or Arthur. Depending on the backend of those rendering engines they also bypass Xlib and thus don't need it anymore except for things like window and input handling. Our point of view is that it would make more sense to replace those parts (window & input handling and other missing stuff) by a window manager on top of those rendering engines like Cairo instead. There was a prototype of this idea presented at Developers Workshop 2006, the project is called Neptune.

There are people working on alternatives for Xlib as we know it right now. One of them is XCB, a project at freedesktop.org. This project can solve some of the problems we have with Xlib nowadays but it doesn't kill it completely.

This project is too big, you will fail
Maybe. But honestly without trying you won't know...

Under what license is Voyager released?
The source is dual licensed. It is covered by the CDDL and the LGPL.

Where can I download sourcecode?
The source can be found in a subversion tree on netlabs.org. Trac provides a web interface for browsing. Currently you find the following.


 * Documentation.
 * Netlabs Object Model.
 * Desktop.
 * Multimedia subsystem.

Information how to download the source will follow.

Should I still work on OS/2 and eCS applications?
Sure! OS/2 and eCS will be around for a very long time and Voyager will need quite some time to be mature enough to be usable. But if you intend to support the Voyager approach any time you should try to code in a portable way. Instead of using the OS/2-API use a portable runtime instead e.g. GLib, NPL or APL. Consider using a cross platform toolkit for the UI like DynamicWindows, GTK, XUL. Use only standard WPS methods without PM-specific tricks.

If you don't like the Voyager approach anyway, why do you ask in the first place ;)?

Whats next with Voyager - where are we?
Ask the oracle :-)

We definitely can't give any assumptions about when we will be ready for a public release. One lesson we definitely learned in the past years with netlabs.org and other software projects is that release plans never work as announced :)

There are some very rough plans at the moment:
 * we would like to present some first prototypes of various components at Developer Workshop 2006 in Biel/Bienne. Those components are more or less technology studies for interested developers.
 * till Warpstock Europe 2006 we hope to present a basic development setup which makes it easy for other developers to join the project on various platforms. This means you should be able to contribute on OS/2 & eCS, Linux, BSD and probably even MacOS X.