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 Developers Workshop 2007
|
---|
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 | {Where Are We Now?}
|
---|
34 |
|
---|
35 | \author[Adrian Gschwend]
|
---|
36 | {Adrian~Gschwend}
|
---|
37 |
|
---|
38 | \institute[netlabs.org]
|
---|
39 | {
|
---|
40 | netlabs.org - Open Source Software
|
---|
41 | }
|
---|
42 |
|
---|
43 | \date[07.07.2007]
|
---|
44 | {Developers Workshop 2007, Amsterdam, Netherlands}
|
---|
45 |
|
---|
46 | \subject{OS/2 and eCS development}
|
---|
47 | \keywords{OS/2 eCS eComStation Voyager}
|
---|
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}
|
---|
66 | \tableofcontents[hideallsubsections]
|
---|
67 | \end{frame}
|
---|
68 |
|
---|
69 | \section{History}
|
---|
70 |
|
---|
71 | \subsection{The Journey}
|
---|
72 | \begin{frame}[allowframebreaks=0.6]
|
---|
73 | \frametitle{The Idea}
|
---|
74 | The Story so Far\ldots
|
---|
75 | \begin{itemize}
|
---|
76 | \item Long process of thinking about the future for several years
|
---|
77 | \item First idea with Kernel of MacOS X in Summer 2004
|
---|
78 | \item First presentation of that idea at Developers Workshop 2005 in Dresden
|
---|
79 | \item Reconsideration of this idea because it doesn't solve the main problem: Desktop
|
---|
80 | \item New idea with OpenGL based Desktop with well known toolkits, developed at SYSTEMS fair in Munich
|
---|
81 | \item Talks to various people and first presentation of that idea at
|
---|
82 | Warpstock Europe 2005 in Dresden
|
---|
83 | \item Presentation of first concept and design studies at Developers
|
---|
84 | Workshop 2006 in Biel, Switzerland
|
---|
85 | \item License decision during Summer 2006
|
---|
86 | \item First 0.1 release of \textit{The Design of Voyager} released to the
|
---|
87 | public for Warpstock Canada 2006
|
---|
88 | \item Coding from various site, namely Chris Wohlgemuth on NOM
|
---|
89 | \item Design studies for GTK+ on OS/2 by Dmitry
|
---|
90 | \item Happy Hacking in Wintercamp 2007
|
---|
91 | \item No more progress on the DOV document because Adrian was in long holidays\ldots
|
---|
92 | \item but, progress on the projects itself, thanks to everyone!
|
---|
93 | \end{itemize}
|
---|
94 | \end{frame}
|
---|
95 |
|
---|
96 | \begin{frame}
|
---|
97 | \frametitle{Voyager (R)evolution}
|
---|
98 | \begin{itemize}[<+->]
|
---|
99 | \item Development of Voyager should be possible on many platforms, starting on
|
---|
100 | eCS
|
---|
101 | \item Support for the most popular Unix-like systems is required
|
---|
102 | \item Support for Windows is a must
|
---|
103 | \item eCS developers should be motivated to use SOM for new ideas because
|
---|
104 | code can be partially reused
|
---|
105 | \item Users can continue to use eCS as we know it today and still get new features
|
---|
106 | \item Part-by-part replacement for smooth migration
|
---|
107 | \end{itemize}
|
---|
108 | \end{frame}
|
---|
109 |
|
---|
110 | \begin{frame}
|
---|
111 | \frametitle{The Vision}
|
---|
112 | There is more to do\ldots
|
---|
113 | \begin{itemize}[<+->]
|
---|
114 | \item A team of interested developers might start working on an OS/2 compatibility layer for Unix-like systems
|
---|
115 | \item In long term we need a new kernel (discussion is open, see kernel
|
---|
116 | presentation at DWS 07)
|
---|
117 | \item Most of the OS/2 coders don't like the Linux design so other options are preferred
|
---|
118 | \item Final goal: our own distribution based on existing and new software
|
---|
119 | \end{itemize}
|
---|
120 | \end{frame}
|
---|
121 |
|
---|
122 | \section{The Voyager Project}
|
---|
123 | \subsection{Introduction}
|
---|
124 |
|
---|
125 | \subsection{Design of Voyager}
|
---|
126 | \begin{frame}
|
---|
127 | \frametitle{Voyager Components, now}
|
---|
128 | \begin{itemize}[<+->]
|
---|
129 | \item Netlabs Object Model (SOM)
|
---|
130 | \item Voyager Desktop (WPS)
|
---|
131 | \item Cairo (GPI/GDI)
|
---|
132 | \item GTK+ (GUI Toolkit, PM)
|
---|
133 | \item Triton (Multimedia Subsystem, MMPM/MMOS2)
|
---|
134 | \end{itemize}
|
---|
135 | \end{frame}
|
---|
136 |
|
---|
137 | \begin{frame}
|
---|
138 | \frametitle{Voyager Components, next steps}
|
---|
139 | \begin{itemize}[<+->]
|
---|
140 | \item Proper security concept
|
---|
141 | \item Neptune (Window Manager for Cairo and Xlib)
|
---|
142 | \item OpenGL based Cairo backend
|
---|
143 | \item Xorg OpenGL device drivers (no Xlib necessary in mid-term)
|
---|
144 | \end{itemize}
|
---|
145 | \end{frame}
|
---|
146 |
|
---|
147 | \section{Voyager Components}
|
---|
148 | \subsection{Under Development}
|
---|
149 |
|
---|
150 | \begin{frame}
|
---|
151 | \frametitle{Netlabs Object Model}
|
---|
152 | \begin{itemize}[<+->]
|
---|
153 | \item SOM is a binary compatible object model, no need to recompile objects (unlike on GNOME for example)
|
---|
154 | \item There are some design documents from IBM itself (published in ACM)
|
---|
155 | \item There is quite some documentation available written by former IBM employees
|
---|
156 | \item Chris Wohlgemuth started to re-implement the concepts under the name NOM
|
---|
157 | \item This is the base for a WPS like desktop
|
---|
158 | \end{itemize}
|
---|
159 | \end{frame}
|
---|
160 |
|
---|
161 | \begin{frame}
|
---|
162 | \frametitle{NOM Design}
|
---|
163 | %\begin{columns}
|
---|
164 | %\column[T]{5cm}
|
---|
165 | \includegraphics[width=8cm]{images/SOMClassMgrObject-layout.pdf}
|
---|
166 | %\column{5cm}
|
---|
167 | %Simplified design of the Xorg OpenGL backend (taken from official docs), Xlib stripped out
|
---|
168 | %\end{columns}
|
---|
169 |
|
---|
170 | \end{frame}
|
---|
171 |
|
---|
172 | \begin{frame}
|
---|
173 | \frametitle{Netlabs Object Model}
|
---|
174 | Things that work right now:
|
---|
175 | \begin{itemize}[<+->]
|
---|
176 | \item Binding files creation (IDL compiler)
|
---|
177 | \item Class creation from IDL files
|
---|
178 | \item Subclassing
|
---|
179 | \item Method overriding
|
---|
180 | \end{itemize}
|
---|
181 | \end{frame}
|
---|
182 |
|
---|
183 | \begin{frame}
|
---|
184 | \frametitle{Netlabs Object Model}
|
---|
185 | Thinks that do not work yet:
|
---|
186 | \begin{itemize}[<+->]
|
---|
187 | \item Class replacement, almost done
|
---|
188 | \item Dynamical loading of classes, in development
|
---|
189 | \item \ldots
|
---|
190 | \end{itemize}
|
---|
191 | Difference to SOM:
|
---|
192 | \begin{itemize}[<+->]
|
---|
193 | \item Use of an environment pointer in each method call (CORBA exception
|
---|
194 | handling)
|
---|
195 | \item SOM specific IDL extensions are not supported
|
---|
196 | \item No distributed SOM
|
---|
197 | \item Object pointer check
|
---|
198 | \item \ldots
|
---|
199 | \end{itemize}
|
---|
200 | \end{frame}
|
---|
201 |
|
---|
202 | \begin{frame}
|
---|
203 | \frametitle{Voyager Desktop}
|
---|
204 | \begin{itemize}[<+->]
|
---|
205 | \item WPS classes in development now
|
---|
206 | \item Subversion available, code checked in
|
---|
207 | \item Roadmap needed, discussion open! Target: 1.0 release
|
---|
208 | \end{itemize}
|
---|
209 | Summary: There is quite a lot of code available for Voyager - no vaporware :-)
|
---|
210 | \end{frame}
|
---|
211 |
|
---|
212 | \begin{frame}
|
---|
213 | \frametitle{Cairo}
|
---|
214 | \begin{itemize}[<+->]
|
---|
215 | \item modern, open source, cross-platform 2D API
|
---|
216 | \item PDF/PS-like 2D API (hint: MacOS X Quartz)
|
---|
217 | \item multiple output systems (screen, printer)
|
---|
218 | \item OS/2 port exists, not accelerated so far
|
---|
219 | \item OpenGL based backend exists, called Glitz (hint: MacOS X Quartz :)
|
---|
220 | \end{itemize}
|
---|
221 | \end{frame}
|
---|
222 |
|
---|
223 | \begin{frame}
|
---|
224 | \frametitle{GTK+ Toolkit}
|
---|
225 | \begin{itemize}[<+->]
|
---|
226 | \item Most used toolkit on Unix-like systems nowadays
|
---|
227 | \item LGPL license (binary linking possible, unlike qt)
|
---|
228 | \item Abstraction layer called GLIB
|
---|
229 | \item Ongoing development (well, somewhat)
|
---|
230 | \item wxWidgets and SWT are implemented on top of it
|
---|
231 | \item Not yet available on eCS, PM port is evaluated right now
|
---|
232 | \item We might need to enhance it in mid-term
|
---|
233 | \end{itemize}
|
---|
234 | \end{frame}
|
---|
235 |
|
---|
236 | \begin{frame}
|
---|
237 | \frametitle{Triton}
|
---|
238 | \begin{itemize}[<+->]
|
---|
239 | \item Well-defined subsystem
|
---|
240 | \item Core library
|
---|
241 | \item Easy-to-use API for the application developers to visualize and control multimedia contents
|
---|
242 | \item Easy-to-use API for the plugin developers to be able to extend the system with support of new multimedia formats
|
---|
243 | \end{itemize}
|
---|
244 | \end{frame}
|
---|
245 |
|
---|
246 | \begin{frame}
|
---|
247 | \frametitle{Triton Status}
|
---|
248 | \begin{itemize}[<+->]
|
---|
249 | \item First audio codec implemented: MP3 (April 2006)
|
---|
250 | \item First image codecs implemented: GBM module support
|
---|
251 | \item First video codec implemented: (can't remember which one ;)
|
---|
252 | \end{itemize}
|
---|
253 | \end{frame}
|
---|
254 |
|
---|
255 | \subsection{Next Steps}
|
---|
256 |
|
---|
257 | \subsection{OS/2 and eCS Compatibility}
|
---|
258 | \begin{frame}
|
---|
259 | \frametitle{Some Ideas}
|
---|
260 | People do ask for binary compatibility. We see the following options:
|
---|
261 | \begin{itemize}[<+->]
|
---|
262 | \item Use a pure VM based solution - easy and will work well
|
---|
263 | \item Rewrite the whole OS as proposed by some people - unrealistic, waste of resources
|
---|
264 | \item Implement a minimal OS/2 personality on top of an existing kernel and get binary compatibility to work
|
---|
265 | \end{itemize}
|
---|
266 | My favourite: Innotek VirtualBox, see VirtualBox presentation.
|
---|
267 | \end{frame}
|
---|
268 |
|
---|
269 | \begin{frame}
|
---|
270 | \frametitle{OS/2 OS Personality}
|
---|
271 | To get a minimal OS/2 personality to work we would have to implement:
|
---|
272 | \begin{itemize}[<+->]
|
---|
273 | \item \texttt{DOS*}, \texttt{MOU*}, \texttt{KBD*} and \texttt{VIO*} API's
|
---|
274 | \item LX loader (Knuts kLoader)
|
---|
275 | \item GRADD driver for OpenGL backend
|
---|
276 | \item Some other things
|
---|
277 | \end{itemize}
|
---|
278 | There are still ongoing efforts in that direction, namely by Antony T. Curtis.
|
---|
279 | Problem: It is far away from beeing usable.
|
---|
280 | \end{frame}
|
---|
281 |
|
---|
282 | \subsection{License}
|
---|
283 |
|
---|
284 | \begin{frame}
|
---|
285 | \frametitle{Voyager License}
|
---|
286 | We do not want to use GPL for our own code for various reasons:
|
---|
287 | \begin{itemize}[<+->]
|
---|
288 | \item NOM allows (and encourages) binary code, GPL does not allow
|
---|
289 | that (see endless Linux device driver discussion)
|
---|
290 | \item GPL forces developers to release linked source
|
---|
291 | \item No commercial plugins/extensions possible (see KDE, Joomla)
|
---|
292 | \item However, we might want to use (L)GPLed code!
|
---|
293 | \end{itemize}
|
---|
294 | \end{frame}
|
---|
295 | \begin{frame}
|
---|
296 | \frametitle{Voyager License Conclusion}
|
---|
297 | Conclusion:
|
---|
298 | \begin{itemize}[<+->]
|
---|
299 | \item LGPL/CDDL dual license for Voyager core
|
---|
300 | \item APL for sample applications (very liberal license)
|
---|
301 | \end{itemize}
|
---|
302 | The license discussion is thus over :-)
|
---|
303 | \end{frame}
|
---|
304 |
|
---|
305 | \section{Roadmap}
|
---|
306 | \subsection{Work in Progress}
|
---|
307 |
|
---|
308 | \begin{frame}[allowframebreaks]
|
---|
309 | \frametitle{Timeline}
|
---|
310 | \begin{itemize}
|
---|
311 | \item First source code is online & available in SVN. Developers only so far
|
---|
312 | \begin{itemize}
|
---|
313 | \item Triton
|
---|
314 | \item Netlabs Object Model
|
---|
315 | \end{itemize}
|
---|
316 | \item Platforms for Voyager
|
---|
317 | \begin{itemize}
|
---|
318 | \item eCS: Initial setup in SVN, no native GTK+ yet (Everblue)
|
---|
319 | \item Windows: Interest of developer, minimal Windows XP ready :)
|
---|
320 | \item BSD/Linux: Developers wanted!
|
---|
321 | \end{itemize}
|
---|
322 | \end{itemize}
|
---|
323 | \end{frame}
|
---|
324 |
|
---|
325 | \begin{frame}
|
---|
326 | \frametitle{netlabs.org Backend}
|
---|
327 | \begin{itemize}[<+->]
|
---|
328 | \item More content on netlabs.org
|
---|
329 | \begin{itemize}[<+->]
|
---|
330 | \item finish CMS, project managers can work again
|
---|
331 | \item user management, new users can register easily
|
---|
332 | \item finish LDAP migration, convenient for users (SSO)
|
---|
333 | \item developers can upload files again
|
---|
334 | \item release management
|
---|
335 | \end{itemize}
|
---|
336 | \item Wiki Cleanup
|
---|
337 | \item EDM2 articles about Voyager
|
---|
338 | \end{itemize}
|
---|
339 | \end{frame}
|
---|
340 |
|
---|
341 | \begin{frame}
|
---|
342 | \frametitle{Design of Voyager}
|
---|
343 | \begin{itemize}[<+->]
|
---|
344 | \item Update NOM and Triton section
|
---|
345 | \item Kernel discussions, outcome of presentation at DWS 2007?
|
---|
346 | \item Make it easily buildable on eCS (contact with DocBook/2 crew)
|
---|
347 | \item Cleanup PDF generation
|
---|
348 | \item Goal: Frequent updates!
|
---|
349 | \item Contributions by community needed!
|
---|
350 | \end{itemize}
|
---|
351 | \end{frame}
|
---|
352 |
|
---|
353 | \subsection{Future}
|
---|
354 | \begin{frame}
|
---|
355 | \frametitle{Public Relations}
|
---|
356 | \begin{itemize}[<+->]
|
---|
357 | \item We need more contributors
|
---|
358 | \item We need publicity
|
---|
359 | \item We need money
|
---|
360 | \item (order doesn't matter ;)
|
---|
361 | \end{itemize}
|
---|
362 | \end{frame}
|
---|
363 |
|
---|
364 | \begin{frame}
|
---|
365 | \frametitle{Internationalization}
|
---|
366 | \begin{itemize}[<+->]
|
---|
367 | \item Future in Asia \& Eastern Europe
|
---|
368 | \item Localisation a requirement
|
---|
369 | \item Clever framework needed (see presentation of Christian Langanke)
|
---|
370 | \item Webbased ressource management for the core
|
---|
371 | \item Might be done with some clever DHTML coding
|
---|
372 | \item eCS translation team got experience, use it
|
---|
373 | \end{itemize}
|
---|
374 | \end{frame}
|
---|
375 |
|
---|
376 | \begin{frame}
|
---|
377 | \frametitle{More contributors}
|
---|
378 | \begin{itemize}[<+->]
|
---|
379 | \item Attract former OS/2 developers, mainly WPS guys
|
---|
380 | \item Students are easy to impress with OO desktop
|
---|
381 | \item We need WPS showcases (Movies on Youtube \& co)
|
---|
382 | \item Local guerilla groups (Usergroups, TeamOS/2 like)
|
---|
383 | \item Do presentations in your town/University\ldots
|
---|
384 | \end{itemize}
|
---|
385 | \end{frame}
|
---|
386 |
|
---|
387 | \begin{frame}
|
---|
388 | \frametitle{Publicity}
|
---|
389 | \begin{itemize}[<+->]
|
---|
390 | \item Going public after summer break
|
---|
391 | \item Supported by OS/2 World
|
---|
392 | \item Good contacts to the press with OS/2 source story
|
---|
393 | \item Articles in other magazines (freeX\ldots)
|
---|
394 | \item netlabs.org newsletter (Thanks a lot Jan \& Robert!)
|
---|
395 | \item More ideas?
|
---|
396 | \end{itemize}
|
---|
397 | \end{frame}
|
---|
398 |
|
---|
399 | \begin{frame}
|
---|
400 | \frametitle{Money}
|
---|
401 | \begin{itemize}[<+->]
|
---|
402 | \item We need to hire people -> much faster progress
|
---|
403 | \item License is liberal, can be commercialy used
|
---|
404 | \item Goal: We are interesting enough for companies like Google
|
---|
405 | \item Goal: netlabs.org cannot be bought, Mozilla Foundation like
|
---|
406 | \item Goal: Contributors can profit too (cash ;)
|
---|
407 | \end{itemize}
|
---|
408 | \end{frame}
|
---|
409 |
|
---|
410 | \begin{frame}
|
---|
411 | \frametitle{Join the Project}
|
---|
412 | \begin{itemize}[<+->]
|
---|
413 | \item Go to \texttt{http://voyager.netlabs.org}
|
---|
414 | \item Check the Voyager Wiki and FAQ
|
---|
415 | \item Join the Voyager Mailinglist at
|
---|
416 | \item Join the \texttt{\#netlabs} IRC channel (see
|
---|
417 | \texttt{http://www.ecomstation.com/chat.phtml})
|
---|
418 | \item Contribute to \textit{The Design of Voyager}
|
---|
419 | \item Contribute to NOM, Triton, compatibility layer etc.
|
---|
420 | \item Translate as soon as first text is available
|
---|
421 | \item Support us with money
|
---|
422 | \end{itemize}
|
---|
423 | \end{frame}
|
---|
424 |
|
---|
425 | \begin{frame}
|
---|
426 | \frametitle{Where Are We Now?}
|
---|
427 | Not far enough yet - but we are working on it :)
|
---|
428 | \end{frame}
|
---|
429 |
|
---|
430 | \begin{frame}
|
---|
431 | \frametitle{Q\&A}
|
---|
432 | Questions?
|
---|
433 | \end{frame}
|
---|
434 |
|
---|
435 | \end{document}
|
---|