Jump to content

Voyager: Difference between revisions

From NikiWiki
Line 17: Line 17:
* [http://people.freedesktop.org/~ajax/ddc2005.pdf X on GL] states very clearly, what has still to be done
* [http://people.freedesktop.org/~ajax/ddc2005.pdf X on GL] states very clearly, what has still to be done
* [http://www.directfb.org DirectFB] with [http://www.directfb.org/index.php?path=Development/Projects/XDirectFB rootless XServer], [http://www.directfb.org/index.php?path=Development/Projects/DirectFBGL hardware accelerated OpenGL], [http://www.directfb.org/index.php?path=Development/Projects/GTK%2B GTK+ backend], [http://www.directfb.org/index.php/viewcvs.cgi/cairodfb an experimental Cairo backend], Qt backend, DirectVNC, SDL backend
* [http://www.directfb.org DirectFB] with [http://www.directfb.org/index.php?path=Development/Projects/XDirectFB rootless XServer], [http://www.directfb.org/index.php?path=Development/Projects/DirectFBGL hardware accelerated OpenGL], [http://www.directfb.org/index.php?path=Development/Projects/GTK%2B GTK+ backend], [http://www.directfb.org/index.php/viewcvs.cgi/cairodfb an experimental Cairo backend], Qt backend, DirectVNC, SDL backend
*[http://enlightenment.org/Main/Home/index.html enlightenment] and the contained support libs
* [http://www.gnustep.org/ GNUstep.org]
* [http://www.gnustep.org/ GNUstep.org]



Revision as of 00:10, 30 October 2005

Documentation

IBM Redbooks

  • SG24-4630-00 OS/2 Warp (PowerPC Edition) A First Look
  • SG24-4639-00 OS/2 Warp (PowerPC Edition) Graphical Subsystem

We do have the first one digitaly, but not the second one. In case anyone finds that, let us know.

Darwin Documentation

There is plenty of documentation available about Darwin, a good start is Kernel Programming, which gives a nice overview about the design of the kernel.

Technologies to study

Design Decisions

Creating a binary compatible OS/2 clone may be tempting but is not strictly necessary. Important is the user experience. Which toolkit should be used for primary development?

2D API

  • Cairo. Cairo has a PDF-like engine which seems to be inspired by Quartz of MacOS X.
  • Cairo runs on almost everything, including OS/2 and X but also directly on OpenGL hardware with Glitz. So one could use it as a complete GPI replacement without the need of X one day.
  • To make things easier 24Bit screens should be the primary target. Hell it's 2005 today...

MM

  • The concept of IO procedures should be retained at least for file IO and format converting.

Toolkits

  • GTK+
  • GnuStep (look at Apples programs to see what's possible. Yes I know Apple uses Cocoa not Gnustep)
  • other?

SOM

Dropping SOM for something better? Creating a poor mans SOM kernel isn't too difficult (Cinc: there's already a working prototype for the basic funtionality).

WPS

  • The WPS should be designed with REXX scriptability in mind (like WPS-wizard addon)

REXX

  • REXX should be implemented like AppleScript so controlling of applications from other apps is possible (commands not tied to one process).
  • Regina may be used as an interpreter.

Backward Compatibility

The question about backward compatibility is indeed a good one, it's risky to break with the current OS/2 API for religious reasons but one should have a look at that more from a technical point of view. The OS/2 API is not really modern anymore, programming directly on PM is much more work than using a modern toolkit like GTK+.

At the moment it's unfortunately unlikely that PM and WPS source get released by IBM.

Options:

  • implement parts of PM and GPI on top of the new 2D API and try to integrate it with the toolkit choosen (same look & feel, clipboard support, D&D, etc. That's a lot of work, the question is if this is really necessary. We would have to do the same for supporting other toolkits like qt (which is a requirement).
  • Use a VM and run OS/2 or eCS inside the VM. There are very promising opensource VMs like

XEN seems to be the most promising one at the moment because it will support dual core CPUs in the future so one can run the guest OS on a separate CPU core. So far one had to alter the guest OS in sourcecode but that changes at the moment because they integrate parts of QEMU sourcecode inside XEN to emulate those parts (memory allocation and such stuff).

Questions

  • the Xegl diagram mentioned above only shows the path of the graphics; the path of e.g. mouse and keyboard input is missing; that's not as trivial as it sounds (it has been missing in Xegl, when that was stopped); will we use OS/2-like driver model or wait for x.org 7.0 (currently RC1!) and take out the input system from there? Other sources (hotplug, ...)?
  • one good thing about OS/2 are the fast interactions when you click somewhere, like opening a folder or getting the focus on a window. Why is that like this? We should try to keep that stuff fast.
  • do we want the traditional window manager<->application scheme? With the Gnome/KDE interfaces? Then we are deep in X again ...
    • the question is if we can incooperate the WM functionality in GTK somehow. As far as I remember Fresco implemented GTK API as well so one might have a look at that.
    • IMO GTK runs on top of a WM. The WM just gives GTK a surface to work with but manages where on screen this surface will be painted. Even OS/2 has something like a WM managing the windows for us.