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 | \end{frame}
|
---|
267 |
|
---|
268 | \begin{frame}
|
---|
269 | \frametitle{VirtualBox Guest}
|
---|
270 | My favourite - easy and powerful
|
---|
271 | \begin{itemize}[<+->]
|
---|
272 | \item Guest additions for OS/2
|
---|
273 | \item OS/2 is fast anyway, will work very snappy
|
---|
274 | \item Could run it fullscreen on any kernel underneath
|
---|
275 | \item Virtual hardware, very easy to maintain
|
---|
276 | \item Would be possible to do some fancy stuff (i.e. 3D)
|
---|
277 | \item Mensys could provide VDI images as alternative download
|
---|
278 | \item Might attract former OS/2 users
|
---|
279 | \end{itemize}
|
---|
280 | I will play do it anyway :)
|
---|
281 | \end{frame}
|
---|
282 |
|
---|
283 | \begin{frame}
|
---|
284 | \frametitle{OS/2 OS Personality}
|
---|
285 | To get a minimal OS/2 personality to work we would have to implement:
|
---|
286 | \begin{itemize}[<+->]
|
---|
287 | \item \texttt{DOS*}, \texttt{MOU*}, \texttt{KBD*} and \texttt{VIO*} API's
|
---|
288 | \item LX loader (Knuts kLoader)
|
---|
289 | \item GRADD driver for OpenGL backend
|
---|
290 | \item Some other things
|
---|
291 | \end{itemize}
|
---|
292 | There are still ongoing efforts in that direction, namely by Antony T. Curtis.
|
---|
293 | Problem: It is far away from being usable.
|
---|
294 | \end{frame}
|
---|
295 |
|
---|
296 | \subsection{License}
|
---|
297 |
|
---|
298 | \begin{frame}
|
---|
299 | \frametitle{Voyager License}
|
---|
300 | We do not want to use GPL for our own code for various reasons:
|
---|
301 | \begin{itemize}[<+->]
|
---|
302 | \item NOM allows (and encourages) binary code, GPL does not allow
|
---|
303 | that (see endless Linux device driver discussion)
|
---|
304 | \item GPL forces developers to release linked source
|
---|
305 | \item No commercial plugins/extensions possible (see KDE, Joomla)
|
---|
306 | \item However, we might want to use (L)GPLed code!
|
---|
307 | \end{itemize}
|
---|
308 | \end{frame}
|
---|
309 | \begin{frame}
|
---|
310 | \frametitle{Voyager License Conclusion}
|
---|
311 | Conclusion:
|
---|
312 | \begin{itemize}[<+->]
|
---|
313 | \item LGPL/CDDL dual license for Voyager core
|
---|
314 | \item APL for sample applications (very liberal license)
|
---|
315 | \end{itemize}
|
---|
316 | The license discussion is thus over :-)
|
---|
317 | \end{frame}
|
---|
318 |
|
---|
319 | \section{Roadmap}
|
---|
320 | \subsection{Work in Progress}
|
---|
321 |
|
---|
322 | \begin{frame}[allowframebreaks]
|
---|
323 | \frametitle{Timeline}
|
---|
324 | \begin{itemize}
|
---|
325 | \item First source code is online \& available in SVN. Developers only so far
|
---|
326 | \begin{itemize}
|
---|
327 | \item Triton
|
---|
328 | \item Netlabs Object Model
|
---|
329 | \end{itemize}
|
---|
330 | \item Platforms for Voyager
|
---|
331 | \begin{itemize}
|
---|
332 | \item eCS: Initial setup in SVN, no native GTK+ yet (Everblue)
|
---|
333 | \item Windows: Interest of developer, minimal Windows XP ready :)
|
---|
334 | \item BSD/Linux: Developers wanted!
|
---|
335 | \end{itemize}
|
---|
336 | \end{itemize}
|
---|
337 | \end{frame}
|
---|
338 |
|
---|
339 | \begin{frame}
|
---|
340 | \frametitle{netlabs.org Backend}
|
---|
341 | \begin{itemize}[<+->]
|
---|
342 | \item More content on netlabs.org
|
---|
343 | \begin{itemize}[<+->]
|
---|
344 | \item finish CMS, project managers can work again
|
---|
345 | \item user management, new users can register easily
|
---|
346 | \item finish LDAP migration, convenient for users (SSO)
|
---|
347 | \item developers can upload files again
|
---|
348 | \item release management
|
---|
349 | \end{itemize}
|
---|
350 | \item Wiki Cleanup
|
---|
351 | \item EDM2 articles about Voyager
|
---|
352 | \end{itemize}
|
---|
353 | \end{frame}
|
---|
354 |
|
---|
355 | \begin{frame}
|
---|
356 | \frametitle{Design of Voyager}
|
---|
357 | \begin{itemize}[<+->]
|
---|
358 | \item Update NOM and Triton section
|
---|
359 | \item Kernel discussions, outcome of presentation at DWS 2007?
|
---|
360 | \item Make it easily buildable on eCS (contact with DocBook/2 crew)
|
---|
361 | \item Cleanup PDF generation
|
---|
362 | \item Goal: Frequent updates!
|
---|
363 | \item Contributions by community needed!
|
---|
364 | \end{itemize}
|
---|
365 | \end{frame}
|
---|
366 |
|
---|
367 | \begin{frame}
|
---|
368 | \frametitle{Developer Stuff}
|
---|
369 | Release management:
|
---|
370 | \begin{itemize}[<+->]
|
---|
371 | \item integrate with TRAC/SVN
|
---|
372 | \item integrate with CMS
|
---|
373 | \item integrate with newsletter
|
---|
374 | \end{itemize}
|
---|
375 | Build environments
|
---|
376 | \begin{itemize}[<+->]
|
---|
377 | \item Gentoo portage for OS/2!
|
---|
378 | \item \textit{Knut is my hero!}
|
---|
379 | \item integrate netlabs.org stuff in portage
|
---|
380 | \end{itemize}
|
---|
381 | \end{frame}
|
---|
382 |
|
---|
383 | \subsection{Future}
|
---|
384 | \begin{frame}
|
---|
385 | \frametitle{Public Relations}
|
---|
386 | \begin{itemize}[<+->]
|
---|
387 | \item We need more contributors
|
---|
388 | \item We need publicity
|
---|
389 | \item We need money
|
---|
390 | \item (order doesn't matter ;)
|
---|
391 | \end{itemize}
|
---|
392 | \end{frame}
|
---|
393 |
|
---|
394 | \begin{frame}
|
---|
395 | \frametitle{Internationalization}
|
---|
396 | \begin{itemize}[<+->]
|
---|
397 | \item Future in Asia \& Eastern Europe
|
---|
398 | \item Localisation a requirement
|
---|
399 | \item Clever framework needed (see presentation of Christian Langanke)
|
---|
400 | \item Webbased resource management for the core
|
---|
401 | \item Might be done with some clever DHTML coding
|
---|
402 | \item eCS translation team got experience, use it
|
---|
403 | \end{itemize}
|
---|
404 | \end{frame}
|
---|
405 |
|
---|
406 | \begin{frame}
|
---|
407 | \frametitle{More contributors}
|
---|
408 | \begin{itemize}[<+->]
|
---|
409 | \item Attract former OS/2 developers, mainly WPS guys
|
---|
410 | \item Students are easy to impress with OO desktop
|
---|
411 | \item We need WPS showcases (Movies on Youtube \& co)
|
---|
412 | \item Local guerrilla groups (Usergroups, TeamOS/2 like)
|
---|
413 | \item Do presentations in your town/University\ldots
|
---|
414 | \end{itemize}
|
---|
415 | \end{frame}
|
---|
416 |
|
---|
417 | \begin{frame}
|
---|
418 | \frametitle{Publicity}
|
---|
419 | \begin{itemize}[<+->]
|
---|
420 | \item Going public after summer break
|
---|
421 | \item Supported by OS/2 World
|
---|
422 | \item Good contacts to the press with OS/2 source story
|
---|
423 | \item Articles in other magazines (freeX\ldots)
|
---|
424 | \item netlabs.org newsletter (Thanks a lot Jan \& Robert!)
|
---|
425 | \item More ideas?
|
---|
426 | \end{itemize}
|
---|
427 | \end{frame}
|
---|
428 |
|
---|
429 | \begin{frame}
|
---|
430 | \frametitle{Money}
|
---|
431 | \begin{itemize}[<+->]
|
---|
432 | \item We need to hire people -> much faster progress
|
---|
433 | \item License is liberal, can be commercialy used
|
---|
434 | \item Goal: We are interesting enough for companies like Google
|
---|
435 | \item Goal: netlabs.org cannot be bought, Mozilla Foundation like
|
---|
436 | \item Goal: Contributors can profit too (cash ;)
|
---|
437 | \end{itemize}
|
---|
438 | \end{frame}
|
---|
439 |
|
---|
440 | \begin{frame}
|
---|
441 | \frametitle{Join the Project}
|
---|
442 | \begin{itemize}[<+->]
|
---|
443 | \item Go to \texttt{http://voyager.netlabs.org}
|
---|
444 | \item Check the Voyager Wiki and FAQ
|
---|
445 | \item Join the Voyager Mailinglist at
|
---|
446 | \item Join the \texttt{\#netlabs} IRC channel (see
|
---|
447 | \texttt{http://www.ecomstation.com/chat.phtml})
|
---|
448 | \item Contribute to \textit{The Design of Voyager}
|
---|
449 | \item Contribute to NOM, Triton, compatibility layer etc.
|
---|
450 | \item Translate as soon as first text is available
|
---|
451 | \item Support us with money
|
---|
452 | \end{itemize}
|
---|
453 | \end{frame}
|
---|
454 |
|
---|
455 | \begin{frame}
|
---|
456 | \frametitle{Where Are We Now?}
|
---|
457 | Not far enough yet - but we are working on it :)
|
---|
458 | \end{frame}
|
---|
459 |
|
---|
460 | \begin{frame}
|
---|
461 | \frametitle{Q\&A}
|
---|
462 | Questions?
|
---|
463 | \end{frame}
|
---|
464 |
|
---|
465 | \end{document}
|
---|