Changeset 87 for presentations
- Timestamp:
- Nov 18, 2006, 11:09:38 AM (19 years ago)
- Location:
- presentations/wse06
- Files:
-
- 1 added
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
presentations/wse06/wse06.tex
r86 r87 63 63 64 64 \begin{frame} 65 \frametitle{Outline - Voyager} 66 \tableofcontents[part=1,hideallsubsections] 67 \end{frame} 68 69 \part{Voyager} 65 \frametitle{Outline} 66 \tableofcontents[hideallsubsections] 67 \end{frame} 68 70 69 \section{History} 71 70 … … 74 73 This is not a very technical presentation! 75 74 76 (Please don't walk outnow ;-)75 (Please don't leave the room now ;-) 77 76 \end{alertblock} 78 77 \end{frame} … … 142 141 \begin{frame}[allowframebreaks=0.6] 143 142 \frametitle{The Idea} 144 Wind of change 145 \begin{itemize} [<+->]143 The Story so Far\ldots 144 \begin{itemize} 146 145 \item Long process of thinking about the future for several years 147 146 \item First idea with Kernel of MacOS X in Summer 2004 … … 159 158 \end{frame} 160 159 161 \subsection{The Goal} 160 \begin{frame} 161 \frametitle{What Voyager \textit{is not}} 162 \begin{itemize} 163 \item Voyager is \textbf{not} the OS/2 and eCS killer! 164 \item netlabs.org will \textbf{not} stop development for eCS software 165 \item Voyager is not something you can use right now (yet) 166 \item It is not vapoware 167 \end{itemize} 168 \end{frame} 169 162 170 \begin{frame} 163 171 \frametitle{The Goal} 164 172 There are many free desktop environments available, like KDE and GNOME. Our focus is different: 165 \begin{itemize} 166 \item SOM like object model, binary compatible (unlike everything else out there on Unix)167 \item provide a WPS like desktop environment (OS/2 "Feeling")168 \item well integrated applications (drag and drop, CUA, etc)169 \item focus on localization right from the beginning (Unicode/UTF-8)170 \item keep unique ideas like IOProcs and reimplement them171 \item use as much existing code/apps as possible (as long as it makes sense), don't reinvent the wheel172 \end{itemize} 173 \end{frame} 174 175 \ subsection{The middle-term Goal}176 \ begin{frame}177 \frametitle{The middle-term Goal} 178 Software takes time to grow, usually more than one thinks. So it is important 179 to have a middle-term strategy as well: 180 \begin{itemize} 181 \item the development of this project should be possible on many platforms, including eCS182 \item in parallel, we should provide support for the most popular Unix-like systems at the moment183 \item eCS developers should be motivated to use SOM for new ideas because code can be reused184 \item users can continue to use eCS as we know it today and still get new features185 \item in middle-term we can start a smooth migration to the new desktop186 \end{itemize} 187 \end{frame} 188 189 190 \subsection{The long-term Goal} 191 \begin{frame} 192 \frametitle{The long-term Goal}193 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: 194 \begin{itemize} 195 \item a team of interested developers might start working on an OS/2 compatibility layer for Unixlike systems196 \item in long term we need a new kernel, that discussion is absolutely open right now197 \item most of the OS/2 coders don't like the Linux Design so other options are preferred198 \item if you can help out on that project, you are very welcome :)199 \item final goal: our own distribution based on existing and new software200 \item and finally: world domination (aka \it{Stage 3})173 \begin{itemize}[<+->] 174 \item SOM like object model, binary compatible (unlike everything else out 175 there on Unix-like systems) 176 \item Provide a WPS like desktop environment (\textit{OS/2 Feeling}) 177 \item Well integrated applications (drag \& drop, CUA, etc) 178 \item Focus on localization right from the beginning (Unicode/UTF-8/16/32) 179 \item Keep unique ideas like IOProcs and reimplement them 180 \item Use as much existing code/apps as possible (as long as it makes sense), 181 don't reinvent the wheel 182 \item Document what we do! 183 \end{itemize} 184 \end{frame} 185 186 \begin{frame} 187 \frametitle{Development Path} 188 \begin{itemize}[<+->] 189 \item Development of Voyager should be possible on many platforms, starting on 190 eCS 191 \item Support for the most popular Unix-like systems is required 192 \item eCS developers should be motivated to use SOM for new ideas because 193 code can be partially reused 194 \item Users can continue to use eCS as we know it today and still get new features 195 \item Part-by-part replacement for smooth migration 196 \end{itemize} 197 \end{frame} 198 199 \begin{frame} 200 \frametitle{The Vision} 201 There is more to do\ldots 202 \begin{itemize}[<+->] 203 \item A team of interested developers might start working on an OS/2 compatibility layer for Unix-like systems 204 \item In long term we need a new kernel (discussion is open) 205 \item Most of the OS/2 coders don't like the Linux design so other options are preferred 206 \item If you can help out on that project, you are very welcome :) 207 \item Final goal: our own distribution based on existing and new software 208 \item And finally: \textit{Phase 3} (aka \textit{World Domination\texttrademark}) 201 209 \end{itemize} 202 210 \end{frame} 203 211 204 212 \section{The Voyager Project} 205 \subsection{Voyager Components} 206 \begin{frame} 207 \frametitle{Voyager Components} 208 \begin{itemize} 209 \item Voyager Object Model 210 \item Window Manager (for Cairo and Xlib) 211 \item Cairo as GPI replacement (opinions?) 213 \subsection{Introduction} 214 \begin{frame} 215 \frametitle{The Codename} 216 Why \textit{The Voyager Project}? 217 \begin{itemize}[<+->] 218 \item Fits into OS/2 codenames (Star Trek) 219 \item NASA Spacecraft: Probe since 1977, longest-lasting mission of NASA, 220 visited Jupiter and Saturn and provided detailed images of them 221 \item It is really just a codename, not a definitive name for a product. 222 \end{itemize} 223 \end{frame} 224 225 \subsection{Design of Voyager} 226 \begin{frame} 227 \frametitle{Voyager Components, now} 228 \begin{itemize}[<+->] 229 \item Netlabs Object Model (SOM) 230 \item Voyager Desktop (WPS) 231 \item Cairo (GPI/GDI, what Peter loves ;) 232 \item GTK+ (GUI Toolkit, PM) 233 \item Triton (Multimedia Subsystem, MMPM/MMOS2) 234 \end{itemize} 235 \end{frame} 236 237 \begin{frame} 238 \frametitle{Voyager Components, next steps} 239 \begin{itemize}[<+->] 240 \item Proper security concept 241 \item Neptune (Window Manager for Cairo and Xlib) 212 242 \item OpenGL based Cairo backend 213 243 \item Xorg OpenGL device drivers (no Xlib necessary in mid-term) 214 \item Xlib - see Everblue presentation 215 \item open question: Input Handling - who can help? 216 \item anything missing? 217 \end{itemize} 218 \end{frame} 219 220 \subsection{Voyager Object Model} 221 \begin{frame} 222 \frametitle{Voyager Object Model} 223 \begin{itemize} 244 \end{itemize} 245 \end{frame} 246 247 \section{Voyager Components} 248 \subsection{Under Development} 249 250 \begin{frame} 251 \frametitle{Netlabs Object Model} 252 \begin{itemize}[<+->] 224 253 \item SOM is a binary compatible object model, no need to recompile objects (unlike on GNOME for example) 225 \item there are some design documents from IBM itself (published in ACM) 226 \item there is quite some documentation available written by former IBM employees 227 \item Chris Wohlgemuth started to reimplement SOM from scratch, see Voyager Object Model presentation 228 \item drawback: not many people know SOM - but we are used to that fact as OS/2 users ;-) 229 \end{itemize} 230 \end{frame} 231 232 \subsection{Cairo} 254 \item There are some design documents from IBM itself (published in ACM) 255 \item There is quite some documentation available written by former IBM employees 256 \item Chris Wohlgemuth started to reimplement the concepts under the name NOM 257 \item This is the base for a WPS like desktop 258 \item Chris: Status? :-) 259 \end{itemize} 260 \end{frame} 261 262 \begin{frame} 263 \frametitle{NOM Design} 264 Rather complex design ;-) 265 FIXME 266 \end{frame} 267 268 \begin{frame} 269 \frametitle{Voyager Desktop} 270 \begin{itemize}[<+->] 271 \item FIXME 272 \end{itemize} 273 \end{frame} 274 233 275 \begin{frame} 234 276 \frametitle{Cairo} 235 \begin{itemize} 277 \begin{itemize}[<+->] 236 278 \item modern, open source, cross-platform 2D API 237 279 \item PDF/PS-like 2D API (hint: MacOS X Quartz) … … 242 284 \end{frame} 243 285 244 \subsection{Voyager Security} 245 \begin{frame} 246 \frametitle{Voyager Security} 247 Most desktops nowadays do have security problems, we try to do it better: 248 \begin{itemize} 249 \item each developer should think about the consequences of his code in terms of security 250 \item peer-reviews of sourcecode by other developers 251 \item there are many papers available regarding security, many are already linked in the Voyager wiki 252 \item a binary object model doesn't make it easier, Apple had to learn that as well 253 \item use existing research work know how (like DOpE - http://os.inf.tu-dresden.de/dope/) 254 \end{itemize} 255 \end{frame} 256 257 258 \subsection{Toolkit} 259 \begin{frame} 260 \frametitle{Toolkit} 261 \begin{itemize} 262 \item modern toolkits are much simpler to use than PM 263 \item GTK+ or qt are the options for existing ones, main toolkit will be GTK+ 264 \begin{itemize} 265 \item GTK+ is C, wrappers for all kind of languages 266 \begin{itemize} 267 \item SWT for GTK+ 268 \item wxWidgets on top of GTK+ 269 \item Firefox \& Thunderbird are using GTK+ 270 \end{itemize} 271 \item qt is C++ only, one should support it 272 \end{itemize} 273 \item We don't need yet another toolkit \texttrademark 274 \end{itemize} 275 \end{frame} 276 277 \subsection{Window Manager} 278 \begin{frame} 279 \frametitle{Window Manager} 280 \begin{itemize} 286 \begin{frame} 287 \frametitle{GTK+ Toolkit} 288 \begin{itemize}[<+->] 289 \item Most used toolkit on Unix-like systems nowadays 290 \item LGPL license (binary linking possible, unlike qt) 291 \item Abstraction layer called GLIB 292 \item Ongoing development 293 \item wxWidgets and SWT are implemented on top of it 294 \item Not yet available on eCS, PM port is evaluated right now 295 \end{itemize} 296 \end{frame} 297 298 \begin{frame} 299 \frametitle{Triton} 300 The OS/2 way to abstract codecs and such stuff is quite unique 301 \begin{itemize}[<+->] 302 \item FIXME 303 \end{itemize} 304 \end{frame} 305 306 \subsection{Next Steps} 307 308 \begin{frame} 309 \frametitle{Neptune Window Manager} 310 A WM has to take care of 311 \begin{itemize}[<+->] 281 312 \item the open client windows 282 313 \item the client stacking order … … 287 318 \item ... 288 319 \end{itemize} 289 \end{frame} 290 291 \subsection{IOProc Replacement} 292 \begin{frame} 293 \frametitle{IOProc Replacement} 294 The OS/2 way to abstract codecs and such stuff is quite unique 295 \begin{itemize} 296 \item see \it{IOProc Replacement} presentation 297 \end{itemize} 298 \end{frame} 299 300 \section{OpenGL Backend} 301 302 \subsection{Motivation} 303 \begin{frame} 304 \frametitle{Motivation} 305 \begin{itemize} 320 Status: Prototype done, developer is very busy with other things. Sourcecode 321 of prototype available soon. 322 \end{frame} 323 324 \begin{frame} 325 \frametitle{OpenGL Backend} 326 \begin{itemize}[<+->] 306 327 \item OpenGL is the standard nowadays, only MS is doing their own game mit DirectX 307 328 \item OpenGL allows fancy stuff like blending and 3D effects, no fun on 2D Hardware … … 311 332 \end{frame} 312 333 313 \subsection{Options Today}314 \begin{frame}315 \frametitle{Options Today}316 \begin{itemize}317 \item DirectX based Device Drivers - proprietary, binary only and not OpenGL318 \item Xorg device driver backend, open source and used on most Unix platforms, supports OpenGL for new cards (ATI and Nvidia)319 \item SNAP does not have OpenGL and we don't see that changing in the near future320 \end{itemize}321 Our choice should be Xorg Device Driver backend322 \end{frame}323 324 \subsection{Xorg OpenGL Design}325 334 \begin{frame} 326 335 \frametitle{Xorg OpenGL Design} 327 336 \begin{columns} 328 337 \column[T]{5cm} 329 % \includegraphics[width=3cm]{ogl-backend.pdf}338 \includegraphics[width=3.5cm]{ogl-backend.pdf} 330 339 \column{5cm} 331 340 Simplified design of the Xorg OpenGL backend (taken from official docs), Xlib stripped out … … 333 342 \end{frame} 334 343 335 \section{OS/2 and eCS Compatiblity} 336 \subsection{Some Ideas} 344 \subsection{OS/2 and eCS Compatiblity} 337 345 \begin{frame} 338 346 \frametitle{Some Ideas} 339 People do ask for binary compatibility. We see the following option: 340 \begin{itemize} 341 \item use a pure VM based solution - easy and will work well, already possible 342 \item rewrite the whole OS as proposed by some people - unrealistic, waste of ressources 343 \item implement a minimal OS/2 personality on top of an existing kernel and get binary compatibility to work 344 \end{itemize} 345 \end{frame} 346 347 \subsection{OS/2 OS Personality} 347 People do ask for binary compatibility. We see the following options: 348 \begin{itemize}[<+->] 349 \item Use a pure VM based solution - easy and will work well, already possible 350 \item Rewrite the whole OS as proposed by some people - unrealistic, waste of ressources 351 \item Implement a minimal OS/2 personality on top of an existing kernel and get binary compatibility to work 352 \end{itemize} 353 \end{frame} 354 348 355 \begin{frame} 349 356 \frametitle{OS/2 OS Personality} 350 357 To get a minimal OS/2 personality to work we would have to implement: 351 \begin{itemize} 352 \item DOS*, MOU*, KBD* and VIO*API's353 \item LX loader 358 \begin{itemize}[<+->] 359 \item \texttt{DOS*}, \texttt{MOU*}, \texttt{KBD*} and \texttt{VIO*} API's 360 \item LX loader (Knuts kLoader) 354 361 \item GRADD driver for OpenGL backend 355 \item what is missing?356 \end{itemize} 357 Some things exist, like JdeBP - unfortunately not open source 358 \end{frame} 359 360 \subsection{GRADD on OpenGL} 362 \item Some other things 363 \end{itemize} 364 Some things exist, like JdeBP - unfortunately not open source. Work on some 365 parts started, much work left. 366 \end{frame} 367 361 368 \begin{frame} 362 369 \frametitle{GRADD on OpenGL} 363 370 \begin{columns} 364 371 \column{3cm} 365 %\includegraphics[scale=0.3]{ogl-gradd.pdf}372 \includegraphics[scale=0.3]{ogl-gradd.pdf} 366 373 \column{6cm} 367 \begin{itemize} 374 \begin{itemize}[<+->] 368 375 \item OpenGL GRADD driver could be used on OS/2 already, Xorg should work (with some effort) 369 \item As soon as a OS/2 personality would work, one could migrate to the new kernel 376 \item As soon as a OS/2 personality would work, one could migrate to the new 377 kernel 378 \item This might become an important project for eCS anyway 370 379 \end{itemize} 371 380 \end{columns} 372 381 \end{frame} 373 382 374 375 376 \section{Project Management}377 \subsection{Documentation}378 \begin{frame}379 \frametitle{Documentation}380 Many developers complain about the quality of documentation of some open source projects381 \begin{itemize}382 \item Apple provides very good API docs \& tutorials for Darwin383 \item we must provide that as well, right from the beginning384 \item it should be very easy for new people to get an overview of the projects385 \item see How to organize netlabs.org Software Projects presentation386 \end{itemize}387 \end{frame}388 389 \subsection{Coding Guidelines}390 \begin{frame}391 \frametitle{Coding Guidelines}392 \begin{itemize}393 \item CUA, see http://en.wikipedia.org/wiki/Common\_User\_Access394 \item consistent class \& method names (see Darwin Kernel Programming Guide)395 \item Subversion for sourcecode management396 \item TRAC for milestones, bugs, ToDos, source browsing397 \item see http://svn.netlabs.org/libc as an example398 \item goal: make it easy for new developers to join the projects399 \end{itemize}400 \end{frame}401 402 383 \subsection{License} 403 \begin{frame} 404 \frametitle{License} 405 \begin{itemize} 406 \item we do not want to use (L)GPL for our own code, APL or MPL are candidates 384 385 \begin{frame} 386 \frametitle{Voyager License} 387 \begin{itemize}[<+->] 388 \item we do not want to use GPL for our own code for various reasons 407 389 \item the object model allows binary code, GPL would make that difficult 408 390 \item we might use (L)GPLed code for parts when it makes sense to do that 409 \item goal: make the project attractive for commercial vendors right from the beginning 410 \end{itemize} 411 \end{frame} 412 413 \section{What's Next?} 414 \subsection{Next Steps} 415 \begin{frame} 416 \frametitle{Next Steps} 417 We try to attract developers at this stage already: 418 \begin{itemize} 419 \item build environment on OS/2 420 \item GTK+ for OS/2 (via Everblue) 421 \item build environment on Linux 422 \item more? FreeBSD, MacOS X, Solaris etc volunteers needed :) 423 \item mailinglist for discussions 424 \item The Design of Voyager - online design document 425 \end{itemize} 426 http://wiki.netlabs.org/index.php/Voyager has more information! 427 \end{frame} 428 429 \subsection{Timeline} 391 \item LGPL/CDDL dual license for Voyager core 392 \item APL for sample applications 393 \end{itemize} 394 \end{frame} 395 396 \section{Roadmap} 397 \subsection{Work in Progress} 398 430 399 \begin{frame} 431 400 \frametitle{Timeline} 432 \begin{itemize} 433 \item first sourcecode online in a few weeks (hopefully) 434 \item first version of the design document to be released before Q3/06 435 \item new server for netlabs.org, new CMS with dedicated Voyager pages (work in progress) 436 \item goal: provide development environments for at least two platforms before end of 2006 437 \end{itemize} 438 \end{frame} 439 440 \subsection{Join the Project} 401 \begin{itemize}[<+->] 402 \item First sourcecode is online! 403 \begin{itemize}[<+->] 404 \item Triton 405 \item Netlabs Object Model 406 \end{itemize} 407 \item First version of \textit{The Design of Voyager} got released in October 2006 408 \item New server for netlabs.org, new CMS with dedicated Voyager pages (work in progress) 409 \item Goal: provide development environments for at least two platforms ASAP 410 \end{itemize} 411 \end{frame} 412 441 413 \begin{frame} 442 414 \frametitle{Join the Project} 443 \begin{itemize} 444 \item check the Voyager Wiki and FAQ, monitor netlabs.org pages 445 \item join the Voyager Mailinglist at 446 \item join the \#netlabs IRC channel (see http://www.ecomstation.com/chat.phtml) 447 \end{itemize} 448 \end{frame} 415 \begin{itemize}[<+->] 416 \item Go to \texttt{http://voyager.netlabs.org} 417 \item Check the Voyager Wiki and FAQ 418 \item Join the Voyager Mailinglist at 419 \item join the \texttt{\#netlabs} IRC channel (see 420 \texttt{http://www.ecomstation.com/chat.phtml}) 421 \item Contribute to \textit{The Design of Voyager} 422 \item Contribute to NOM, Triton, compatibility layer etc. 423 \item Translate as soon as first text is available 424 \item Support us with money 425 \end{itemize} 426 \end{frame} 427 428 \begin{frame} 429 \frametitle{Voyager?} 430 We talked about what Voyager is not, so what is it then? 431 \begin{itemize}[<+->] 432 \item It is a great motivation to go on with eCS 433 \item It is a ambizioniertes FIXME project 434 \item It is a great challenge 435 \item It will become a great piece of software 436 \item The first step to \textit{World Domination\texttrademark} 437 \end{itemize} 438 \end{frame} 439 440 441 \begin{frame} 442 \frametitle{Q\&A} 443 Questions? 444 \end{frame} 445 446 % \begin{frame} 447 % \frametitle{About this Presentation} 448 % This presentation was done using the \LaTeX beamer class 449 % (\texttt{http://latex-beamer.sourceforge.net}). \texttt{pdflatex} was used to 450 % convert it to a PDF file. 451 % 452 % \LaTeX source of the file is available in the Voyager Subversion repository at 453 % \texttt{http://svn.netlabs.org/v_doc} 454 % \end{frame} 449 455 450 456 \end{document}
Note:
See TracChangeset
for help on using the changeset viewer.