source: presentations/dws06/dws06.tex@ 4

Last change on this file since 4 was 4, checked in by ktk, 19 years ago

Import of DWS06 presentation

File size: 12.4 KB
Line 
1%% LaTeX Beamer presentation template (requires beamer package)
2%% see http://latex-beamer.sourceforge.net/
3%% idea contributed by H. Turgut Uyar
4%% template based on a template by Till Tantau
5%% this template is still evolving - it might differ in future releases!
6
7% Voyager presentation for Developer Workshop 2006
8% Adrian Gschwend
9
10%\documentclass{beamer}
11% Handout:
12\documentclass[handout]{beamer}
13
14\mode<presentation>
15{
16 \usetheme{Warsaw}
17 \setbeamercovered{transparent}
18}
19
20\usepackage{amsmath,amssymb}
21\usepackage[latin1]{inputenc}
22\usepackage{times}
23\usepackage[T1]{fontenc}
24
25\beamertemplatetransparentcovereddynamic
26
27\logo{\includegraphics[height=0.5cm]{dws06.png}}
28
29\title[netlabs.org - The Voyager Project]
30{netlabs.org - The Voyager Project}
31
32\subtitle
33{A Workplace for the 21th Century}
34
35\author[Adrian Gschwend]
36{Adrian~Gschwend}
37
38\institute[netlabs.org]
39{
40 netlabs.org - Open Source Software for OS/2 and eCS
41}
42
43\date[8.4.2006]
44{DWS 2006, Biel, Switzerland}
45
46\subject{OS/2 and eCS development}
47\keywords{OS/2 eCS eComStation}
48
49% \AtBeginSubsection[]
50% {
51 % \begin{frame}<beamer>
52 % \frametitle{Overview}
53 % \tableofcontents[part-1]
54 % \end{frame}
55% }
56
57
58\begin{document}
59
60\begin{frame}
61 \titlepage
62\end{frame}
63
64\begin{frame}
65 \frametitle{Outline - Voyager}
66 \tableofcontents[part=1,hideallsubsections]
67\end{frame}
68
69\part{Voyager}
70\section{History}
71\subsection{The Idea}
72\begin{frame}
73\frametitle{The Idea}
74\begin{itemize}
75 \item long process of thinking about the future for several years
76 \item first concrete idea with Kernel of MacOS X in Summer 2004
77 \item first presentation of that idea at Developers Workshop 2005 in Dresden
78 \item reconsideration of this idea because it doesn't solve the main problem: Desktop
79 \item new idea with OpenGL based Desktop with well known toolkits, developed at SYSTEMS fair in Munich
80 \item talks to various people and first presentation of that idea at Warpstock Europe 2005 in Dresden
81 \end{itemize}
82\end{frame}
83
84\subsection{The Goal}
85\begin{frame}
86\frametitle{The Goal}
87 There are many free desktop environments available, like KDE and GNOME. Our focus is different:
88 \begin{itemize}
89 \item SOM like object model, binary compatible (unlike everything else out there on Unix)
90 \item provide a WPS like desktop environment (OS/2 "Feeling")
91 \item well integrated applications (drag and drop, CUA, etc)
92 \item focus on localization right from the beginning (Unicode/UTF-8)
93 \item keep unique ideas like IOProcs and reimplement them
94 \item use as much existing code/apps as possible (as long as it makes sense), don't reinvent the wheel
95 \end{itemize}
96\end{frame}
97
98\subsection{The middle-term Goal}
99\begin{frame}
100\frametitle{The middle-term Goal}
101 Software takes time to grow, usually more than one thinks. So it is important to have a middle-term strategy as well:
102 \begin{itemize}
103 \item the development of this project should be possible on many platforms, including eCS
104 \item in parallel, we should provide support for the most popular Unix-like systems at the moment
105 \item eCS developers should be motivated to use SOM for new ideas because code can be reused
106 \item users can continue to use eCS as we know it today and still get new features
107 \item in middle-term we can start a smooth migration to the new desktop
108 \end{itemize}
109\end{frame}
110
111
112\subsection{The long-term Goal}
113\begin{frame}
114\frametitle{The long-term Goal}
115 While eCS is a platform that works fine nowadays we won't have any more support from IBM for new hardware, so in long-term we need something else:
116 \begin{itemize}
117 \item a team of interested developers might start working on an OS/2 compatibility layer for Unix like systems
118 \item in long term we need a new kernel, that discussion is absolutely open right now
119 \item most of the OS/2 coders don't like the Linux Design so other options are preferred
120 \item if you can help out on that project, you are very welcome :)
121 \item final goal: our own distribution based on existing and new software
122 \item and finally: world domination (aka \it{Stage 3})
123 \end{itemize}
124\end{frame}
125
126\section{The Voyager Project}
127\subsection{Voyager Components}
128\begin{frame}
129\frametitle{Voyager Components}
130 \begin{itemize}
131 \item Voyager Object Model
132 \item Window Manager (for Cairo and Xlib)
133 \item Cairo as GPI replacement (opinions?)
134 \item OpenGL based Cairo backend
135 \item Xorg OpenGL device drivers (no Xlib necessary in mid-term)
136 \item Xlib - see Everblue presentation
137 \item open question: Input Handling - who can help?
138 \item anything missing?
139 \end{itemize}
140\end{frame}
141
142\subsection{Voyager Object Model}
143\begin{frame}
144\frametitle{Voyager Object Model}
145 \begin{itemize}
146 \item SOM is a binary compatible object model, no need to recompile objects (unlike on GNOME for example)
147 \item there are some design documents from IBM itself (published in ACM)
148 \item there is quite some documentation available written by former IBM employees
149 \item Chris Wohlgemuth started to reimplement SOM from scratch, see Voyager Object Model presentation
150 \item drawback: not many people know SOM - but we are used to that fact as OS/2 users ;-)
151 \end{itemize}
152\end{frame}
153
154\subsection{Voyager Security}
155\begin{frame}
156\frametitle{Voyager Security}
157 Most desktops nowadays do have security problems, we try to do it better:
158 \begin{itemize}
159 \item each developer should think about the consequences of his code in terms of security
160 \item peer-reviews of sourcecode by other developers
161 \item there are many papers available regarding security, many are already linked in the Voyager wiki
162 \item a binary object model doesn't make it easier, Apple had to learn that as well
163 \item use existing research work know how (like DOpE - http://os.inf.tu-dresden.de/dope/)
164 \end{itemize}
165\end{frame}
166
167
168\subsection{Cairo}
169\begin{frame}
170\frametitle{Cairo}
171 \begin{itemize}
172 \item modern, open source, cross-platform 2D API
173 \item PDF/PS-like 2D API (hint: MacOS X Quartz)
174 \item multiple output systems (screen, printer)
175 \item OS/2 port exists, not accelerated so far
176 \item OpenGL based backend exists, called Glitz (hint: MacOS X Quartz :)
177 \end{itemize}
178\end{frame}
179
180\subsection{Toolkit}
181\begin{frame}
182\frametitle{Toolkit}
183 \begin{itemize}
184 \item modern toolkits are much simpler to use than PM
185 \item GTK+ or qt are the options for existing ones, main toolkit will be GTK+
186 \begin{itemize}
187 \item GTK+ is C, wrappers for all kind of languages
188 \begin{itemize}
189 \item SWT for GTK+
190 \item wxWidgets on top of GTK+
191 \item Firefox \& Thunderbird are using GTK+
192 \end{itemize}
193 \item qt is C++ only, one should support it
194 \end{itemize}
195 \item We don't need yet another toolkit \texttrademark
196 \end{itemize}
197\end{frame}
198
199\subsection{Window Manager}
200\begin{frame}
201\frametitle{Window Manager}
202 \begin{itemize}
203 \item the open client windows
204 \item the client stacking order
205 \item the client to virtual desktop assignment
206 \item the session
207 \item multiple screens
208 \item client decorations
209 \item ...
210 \end{itemize}
211\end{frame}
212
213\subsection{IOProc Replacement}
214\begin{frame}
215\frametitle{IOProc Replacement}
216 The OS/2 way to abstract codecs and such stuff is quite unique
217 \begin{itemize}
218 \item see \it{IOProc Replacement} presentation
219 \end{itemize}
220\end{frame}
221
222\section{OpenGL Backend}
223
224\subsection{Motivation}
225\begin{frame}
226\frametitle{Motivation}
227 \begin{itemize}
228 \item OpenGL is the standard nowadays, only MS is doing their own game mit DirectX
229 \item OpenGL allows fancy stuff like blending and 3D effects, no fun on 2D Hardware
230 \item powerful API
231 \item MacOS X is using it as backend, Xorg Project is moving towards OpenGL as well
232 \end{itemize}
233\end{frame}
234
235\subsection{Options Today}
236\begin{frame}
237\frametitle{Options Today}
238 \begin{itemize}
239 \item DirectX based Device Drivers - proprietary, binary only and not OpenGL
240 \item Xorg device driver backend, open source and used on most Unix platforms, supports OpenGL for new cards (ATI and Nvidia)
241 \item SNAP does not have OpenGL and we don't see that changing in the near future
242 \end{itemize}
243 Our choice should be Xorg Device Driver backend
244\end{frame}
245
246\subsection{Xorg OpenGL Design}
247\begin{frame}
248\frametitle{Xorg OpenGL Design}
249 \begin{columns}[t]
250 \column[T]{5cm}
251 \includegraphics[width=3cm]{ogl-backend.pdf}
252 \column{5cm}
253 Simplified design of the Xorg OpenGL backend (taken from official docs), Xlib stripped out
254 \end{columns}
255\end{frame}
256
257\section{OS/2 and eCS Compatiblity}
258\subsection{Some Ideas}
259\begin{frame}
260\frametitle{Some Ideas}
261 People do ask for binary compatibility. We see the following option:
262 \begin{itemize}
263 \item use a pure VM based solution - easy and will work well, already possible
264 \item rewrite the whole OS as proposed by some people - unrealistic, waste of ressources
265 \item implement a minimal OS/2 personality on top of an existing kernel and get binary compatibility to work
266 \end{itemize}
267\end{frame}
268
269\subsection{OS/2 OS Personality}
270\begin{frame}
271\frametitle{OS/2 OS Personality}
272 To get a minimal OS/2 personality to work we would have to implement:
273 \begin{itemize}
274 \item DOS*, MOU*, KBD* and VIO* API's
275 \item LX loader
276 \item GRADD driver for OpenGL backend
277 \item what is missing?
278 \end{itemize}
279 Some things exist, like JdeBP - unfortunately not open source
280\end{frame}
281
282\subsection{GRADD on OpenGL}
283\begin{frame}
284\frametitle{GRADD on OpenGL}
285 \begin{columns}
286 \column{3cm}
287 \includegraphics[scale=0.3]{ogl-gradd.pdf}
288 \column{6cm}
289 \begin{itemize}
290 \item OpenGL GRADD driver could be used on OS/2 already, Xorg should work (with some effort)
291 \item As soon as a OS/2 personality would work, one could migrate to the new kernel
292 \end{itemize}
293 \end{columns}
294\end{frame}
295
296
297
298\section{Project Management}
299\subsection{Documentation}
300\begin{frame}
301\frametitle{Documentation}
302 Many developers complain about the quality of documentation of some open source projects
303 \begin{itemize}
304 \item Apple provides very good API docs \& tutorials for Darwin
305 \item we must provide that as well, right from the beginning
306 \item it should be very easy for new people to get an overview of the projects
307 \item see How to organize netlabs.org Software Projects presentation
308 \end{itemize}
309\end{frame}
310
311\subsection{Coding Guidelines}
312\begin{frame}
313\frametitle{Coding Guidelines}
314 \begin{itemize}
315 \item CUA, see http://en.wikipedia.org/wiki/Common\_User\_Access
316 \item consistent class \& method names (see Darwin Kernel Programming Guide)
317 \item Subversion for sourcecode management
318 \item TRAC for milestones, bugs, ToDos, source browsing
319 \item see http://svn.netlabs.org/libc as an example
320 \item goal: make it easy for new developers to join the projects
321 \end{itemize}
322\end{frame}
323
324\subsection{License}
325\begin{frame}
326\frametitle{License}
327 \begin{itemize}
328 \item we do not want to use (L)GPL for our own code, APL or MPL are candidates
329 \item the object model allows binary code, GPL would make that difficult
330 \item we might use (L)GPLed code for parts when it makes sense to do that
331 \item goal: make the project attractive for commercial vendors right from the beginning
332 \end{itemize}
333\end{frame}
334
335\section{What's Next?}
336\subsection{Next Steps}
337\begin{frame}
338\frametitle{Next Steps}
339 We try to attract developers at this stage already:
340 \begin{itemize}
341 \item build environment on OS/2
342 \item GTK+ for OS/2 (via Everblue)
343 \item build environment on Linux
344 \item more? FreeBSD, MacOS X, Solaris etc volunteers needed :)
345 \item mailinglist for discussions
346 \item The Design of Voyager - online design document
347 \end{itemize}
348 http://wiki.netlabs.org/index.php/Voyager has more information!
349\end{frame}
350
351\subsection{Timeline}
352\begin{frame}
353\frametitle{Timeline}
354\begin{itemize}
355 \item first sourcecode online in a few weeks (hopefully)
356 \item first version of the design document to be released before Q3/06
357 \item new server for netlabs.org, new CMS with dedicated Voyager pages (work in progress)
358 \item goal: provide development environments for at least two platforms before end of 2006
359\end{itemize}
360\end{frame}
361
362\subsection{Join the Project}
363\begin{frame}
364\frametitle{Join the Project}
365\begin{itemize}
366 \item check the Voyager Wiki & FAQ, monitor netlabs.org pages
367 \item join the Voyager Mailinglist at
368 \item join the #netlabs IRC channel (see http://www.ecomstation.com/chat.phtml)
369\end{itemize}
370\end{frame}
371
372\end{document}
Note: See TracBrowser for help on using the repository browser.