Changeset 70
Legend:
- Unmodified
- Added
- Removed
-
DOV/ch00.xml
r56 r70 12 12 2000</attribution> 13 13 14 <para>OS/2 -this is an IBM product, correct?</para>14 <para>OS/2âthis is an IBM product, correct?</para> 15 15 16 16 </blockquote> … … 22 22 <title>Audience</title> 23 23 24 <para>This book is thoughtfor everyone who loves good software25 design -and it is for OS/2 and the users of it.</para>24 <para>This book is intended for everyone who loves good software 25 designâand it is for OS/2 and the users of it.</para> 26 26 27 27 <para>One can write a lot about IBM but the design of OS/2 was 28 28 definitely good, unlike many other software out there. The team 29 29 working on OS/2 implemented some concepts that are still unique in 30 itsway, for example the WPS (Workplace Shell). Designed in the30 their way, for example the WPS (Workplace Shell). Designed in the 31 31 early 90's it shows concepts of object orientation that do not 32 exist like this in any other desktop until now. Projects like Gnome33 claimed to use the WPS as a reference but they still do not reach34 the same object orientation as the WPS did many years before. The35 WPS itself was built on top of PM, the Presentation Manager. While36 no one would use an API as complicated as PM for writing user37 interfaces anymore, it still provides components that can not be38 found in other systems, like GDI/GPI (Graphic Device39 Interface/Graphic Programming Interface). Its matrix based backend40 allows one to write complex software like CAD or DTP applications41 by design, one does not have to implement all the mathematical42 functions on its own.</para>32 exist like this in any other desktop until today. Projects like 33 Gnome claimed to use the WPS as a reference but they still 34 haven't reached the same degree of object orientation that the 35 WPS did many years before. The WPS itself was built on top of PM, 36 the Presentation Manager. While no one would use an API as 37 complicated as PM for writing user interfaces anymore, it still 38 provides components that cannot be found in other systems, like 39 GDI/GPI (Graphic Device Interface/Graphic Programming Interface). 40 Its matrix-based backend allows one to write complex software like 41 CAD or DTP applications by design, it does not have to implement 42 all the mathematical functions on its own.</para> 43 43 44 44 <para>So where is the link to good software design? It is mainly … … 46 46 writing it. Our group of programmers and users has years of 47 47 experience with both open source and commercial software, in both 48 using and implementing themand one of the main complaints is the48 using and implementing it, and one of the main complaints is the 49 49 lack of quality and documentation in both source code and usage of 50 50 the program. Voyager tries to implement many things that can be 51 found in OS/2 as open source software, parts of it rewritten from 52 scratch. We use and program for the WPS and its object oriented 53 concept for many years, we know the API, we know the power of it 54 and we also know the pitfalls. So what we gonna do should be done 55 right from the beginning - simply because we know what works and 56 what does not work in this object oriented concept.</para> 51 found in OS/2 as open source software, parts of them rewritten from 52 scratch. We have been using and programming for the WPS and its 53 object-oriented concept for many years, we know the API, we know 54 the power of it, and we also know the pitfalls. So what we are 55 going to do should be done right from the beginningâsimply because 56 we know what works and what does not work in this object-oriented 57 concept.</para> 57 58 58 <para>If you do not know OS/2 nor its concepts so far, do not59 worry. We will explain what the technology is about, why it is done60 that way and even more important, we will give you examples about61 how to use it. That is after allthe main idea of this book.</para>59 <para>If you do not know OS/2 nor its concepts yet, do not worry. 60 We will explain what the technology is about, why it is done that 61 way and, even more important, we will give you examples of how to 62 use it. That is, after all, the main idea of this book.</para> 62 63 63 64 </section> … … 68 69 69 70 <para>So far credits go out to all the users and especially 70 developers of OS/2, eComStation and everything related to it. We71 reached a lot the past 8 years with netlabs.org and all related72 projects and we are looking forward to a fascinating new chapter of73 object orientation on the desktop!</para>71 developers of OS/2, eComStation, and everything related to them. We 72 have reached a lot in the past 8 years with netlabs.org and all 73 related projects and we are looking forward to a fascinating new 74 chapter of object orientation on the desktop!</para> 74 75 75 76 </section> -
DOV/ch01.xml
r69 r70 6 6 7 7 <para>Every user of eComStation or OS/2 knows that: When people see 8 our desktop, they usually ask what kind of Linux you are running. If9 you explain t hem that thishas nothing to do with Linux and that the8 your desktop, they usually ask what kind of Linux you are running. If 9 you explain to them that it has nothing to do with Linux and that the 10 10 original system was done by IBM and they called it OS/2, we either 11 11 end up with a big question mark on their face or with a statement 12 12 like <quote>Oh, I used to work with that as well, it was good but I 13 didn't ha d any software/drivers/whatever for it</quote>.People14 who worked with it a bit more explain that it was the best thing to15 administrate their fileservers, if they were even more skilled they16 start telling stories about how they did interact with the desktop17 and you can still see a twinkle in their eyes if they talk about it.18 The authors of this book are still using OS/2 or its official19 successor eComStation every day. We work on it, we write software for20 it, we extend it. But we are realistic. We know, that one day there21 will not be any more hardware to run it on, at least not in native22 mode. We know, that we have to invest already nowadays a lot of time,23 money and energy to get things like ACPI done, and to port de-facto24 standards like OpenOffice and the Mozilla suite to it. We also know,25 that we will never get the source code of the system by IBM, the26 thing we would need desperately to fix some very annoying bugs and27 limitations in it.</para>28 29 <para>So we have to think about the options we have. Some of us did30 that the past years and some of us came up with more or less detailed31 ideas, about how this could be done. Some of the ideas were simply32 not realistic but we finally think, that we found a good concept by33 now. A concept that provides all the things we love about OS/2, PM34 and the WPS but also a concept that solves the limitations and35 restrictions of our current system, a concept that has a future. This36 is what this book is about.</para>13 didn't have any software/drivers/whatever for it.</quote> People 14 who have worked with it a bit more explain that it was the best thing 15 to administrate their fileservers, if they were even more skilled 16 they start telling stories about how they did interact with the 17 desktop and you can still see a twinkle in their eyes when they talk 18 about it. The authors of this book are still using OS/2 or its 19 official successor eComStation every day. We work on it, we write 20 software for it, we extend it. But we are realistic. We know that one 21 day there will not be any more hardware to run it on, at least not in 22 native mode. We know that already nowadays we have to invest a lot of 23 time, money, and energy to get things like ACPI done, and to port 24 de-facto standards like OpenOffice and the Mozilla suite to it. We 25 also know that we will never get the source code of the system by 26 IBM, the thing we would desperately need to fix some very annoying 27 bugs and limitations it has.</para> 28 29 <para>So we have to think about the options we have. Some of us have 30 done that over the past years and some of us came up with more or 31 less detailed ideas of how this could be done. Some of the ideas were 32 simply not realistic but we finally think that we have found a good 33 concept by now. A concept that provides all the things we love about 34 OS/2, PM, and the WPS but also a concept that solves the limitations 35 and restrictions of our current system, a concept that has a future. 36 This is what this book is about.</para> 37 37 38 38 <section> … … 41 41 42 42 <para>In <xref linkend="dov.overview.tvp.h"/> we explain the 43 history of the Voyager project, including some details about what44 IBM planned to do with OS/2 years ago. As we all know, it came45 different , OS/2 never got the success it deserved from a technical46 point of view, the world is still dominated by Microsoft and47 Windows.</para>43 history of the Voyager project, including some details of what IBM 44 planned to do with OS/2 years ago. As we all know, things went 45 differently. OS/2 never met the success it deserved from a 46 technical point of view and the world is still dominated by 47 Microsoft and Windows.</para> 48 48 49 49 <para>After the first presentation of Voyager to the public at 50 Warpstock Europe 2006 we got a lot of feedback about the idea, both51 positive and negative. There were people thatgot the idea of50 Warpstock Europe 2006, we got a lot of feedback about the idea, 51 both positive and negative. There were people who got the idea of 52 52 Voyager right from the beginning, they understood that we do not 53 want to take away OS/2from anyone, nor give up development of new53 want to take OS/2 away from anyone, nor give up development of new 54 54 features for eComStation or anything. But still, the negative 55 55 feedback was there, some people absolutely didn't want to … … 57 57 time into it. So before we go into the glory details let me explain 58 58 why we think Voyager is necessary from our point of view. To 59 explain that we go more that 10 years back , and we get a bit more60 personal than in the other chapters.</para>59 explain that we go more that 10 years back in time, and we get a 60 bit more personal than in the other chapters.</para> 61 61 62 62 <section> … … 64 64 <title>The Reason for OS/2</title> 65 65 66 <para>The author of th ose lines was using Windows 3.1 until67 sometime in 1994. After a lot of system breakdowns on a rainy68 Saturday evening I decided that it can not go on like this66 <para>The author of these lines was using Windows 3.1 until some 67 time in 1994. After a lot of system breakdowns on a rainy 68 Saturday evening, I decided that it could not go on like that 69 69 anymore. I went to my neighbour who was working at IBM and I told 70 him <quote> get me this operating system from IBM</quote>.I70 him <quote>Get me this operating system from IBM.</quote> I 71 71 didn't know the name and I didn't know what it was 72 about, I just heard that it was more stable than Windows and that 73 was tempting enough for me. A few weeks later I got a brand new 74 box of OS/2 Warp 3, went home and installed it. I started the 75 destkop and shut down the system shortly afterwards, I had no 76 idea what I am supposed to do with that system now.</para> 77 78 <para>It took me a few weeks to get used to it, I got software 79 for the new system from German magazines with a lot of shareware 80 and freeware on it, OS/2 was pretty popular in Germany back then 81 so there was a market for that. I never used the Windows support 82 in it a lot, the only application I wanted to run did not work 83 because it was a MIDI sequencer which required support for sound 84 cards that were not supported on OS/2. But I still liked it, it 85 was stable, it was innovative, it was different. And I learned 86 that from a technical point of view it was far superior than any 87 Windows, including the upcoming Windows 95.</para> 88 89 <para>The follwoing years I had my advocacy period where I tried 90 to explain everyone why I am using OS/2, why 91 <emphasis>they</emphasis> should use OS/2 and why Windows sucks 92 and Microsoft is evil. I didn't had much success, for most 93 friends it was more important to be able to play the latest games 94 and get drivers for about every hardware they could buy for 95 money. They lived with the fact that the system was not stable or 96 that they had to reinstall it every few months from scratch. 97 Recently one of those friends told me that they were very jealous 98 back then when I took my OS/2 machine to a demoscene event 99 because I was the only one in there who could play Quake and burn 100 a CD at the same time without the system crashing. So at least 101 for a little moment I had my fame with OS/2.</para> 102 103 <para>My advocacy time is over for a long time, meanwhile I 104 started a project called netlabs.org and I've met a lot of 105 great people all over the world with the same spirit: The idea 106 that there is more out there than Windows, MacOS, Linux or any of 107 the other operating systems. The knowledge that IBM 108 <emphasis>did</emphasis> do some things right, even if it was not 109 marketing nor the technical implementation of some of the 110 concepts they designed. I still use OS/2 every day, even if I 111 work with many Unix-like operating systems out there every day to 112 earn my living.</para> 72 about, I had just heard that it was more stable than Windows and 73 that was tempting enough for me. A few weeks later I got a brand 74 new box of OS/2 Warp 3, went home, and installed it. I started 75 the desktop and shut down the system shortly afterwards. I had no 76 idea what I was supposed to do with that system at that 77 point.</para> 78 79 <para>It took me a few weeks to get used to it. I got software 80 for the new system from German magazines which came with a lot of 81 shareware and freeware. OS/2 was pretty popular in Germany back 82 then, so there was a market for that. I never used the included 83 Windows support a lot, the only application I wanted to run did 84 not work because it was a MIDI sequencer which required support 85 for sound cards that were not supported on OS/2. But I still 86 liked it. It was stable, it was innovative, it was different. And 87 I learned that, from a technical point of view, it was far 88 superior to any Windows, including the upcoming Windows 95.</para> 89 90 <para>The following years I went through my advocacy phase where 91 I tried to explain why I was using OS/2 to everyone, why 92 <emphasis>they</emphasis> should use OS/2, and why Windows sucked 93 and Microsoft was evil. I didn't have much success because 94 for most friends it was more important to be able to play the 95 latest games and get drivers for about every hardware they could 96 buy for money. They lived with the fact that the system was not 97 stable or that they had to reinstall it from scratch every few 98 months. Recently, one of those friends told me that they were 99 very jealous back then when I took my OS/2 machine to a demoscene 100 event because I was the only one in there who could play Quake 101 and burn a CD at the same time without the system crashing. So, 102 at least for a little moment, I had my fame with OS/2.</para> 103 104 <para>My advocacy phase has been over for a long time, meanwhile 105 I've started a project called netlabs.org and I've met 106 a lot of great people from all over the world with the same 107 spirit: The idea that there is more out there than Windows, 108 MacOS, Linux, or any of the other operating systems. The 109 knowledge that IBM <emphasis>did</emphasis> do some things right, 110 even if that neither included marketing nor the technical 111 implementation of some of the concepts they designed. I still use 112 OS/2 every day, even if I work with many of the Unix-like 113 operating systems out there every day to earn my living.</para> 113 114 114 115 <tip> … … 118 119 <para>netlabs.org was founded in 1997 with the goal of creating 119 120 a center for free Open Source Software for OS/2 and also 120 eComStation (eCS). Today netlabs.org is one of the largest121 eComStation (eCS). Today, netlabs.org is one of the largest 121 122 developers of OS/2 software outside of IBM itself.</para> 122 123 … … 147 148 International (SSI) managed to get a license from IBM to 148 149 distribute the core of OS/2 under a new name and extend it with 149 new software. The final product is now called eComStation and it150 is by now the only legal way to get an OS/2 like operating151 system, especially since IBM stopped selling OS/2 in January152 2006.</para>150 new software. The final product is now called eComStation and by 151 now it has become the only legal way to get an OS/2-like 152 operating system, especially since IBM stopped selling OS/2 in 153 January 2006.</para> 153 154 154 155 <para>When eComStation 1.0 got released in 2001 IBM was still 155 156 selling OS/2 but many OS/2 users switched to eComStation. The 156 157 reason was pretty simple: eCS included a lot of things in the 157 default installation users of OS/2 installed anyway -and much158 default installation that users of OS/2 installed anywayâand much 158 159 more. It was no longer necessary to patch a freshly installed 159 system right away with the latest fixpacksand install software160 system with the latest fixpacks right away and install software 160 161 like <application>WarpIN</application>, <application> 161 XWorkplace</application>, <application>Mozilla</application> and162 XWorkplace</application>, <application>Mozilla</application>, and 162 163 all the other applications.</para> 163 164 … … 166 167 get much more with it. SSI is currently working on eComStation 167 168 2.0, which will add more important features and which also shows 168 a clear trend: Use industry standards whichare available as open169 a clear trend: Use industry standards that are available as open 169 170 source software and integrate them into the WPS. Examples of this 170 171 are <application>OpenOffice.org 2.0</application>, <application> 171 Samba</application>, <application>CDRecord</application> and much172 m ore.</para>172 Samba</application>, <application>CDRecord</application>, and 173 much more.</para> 173 174 174 175 </section> … … 178 179 <title>The Reason for Voyager</title> 179 180 180 <para>As described above, eComStatio made it for the first time 181 possible to add things to our operating system IBM refused to 182 include all the years before. This is a great thing because it is 183 now possible to extend and adjust the system to our needs.</para> 184 185 <para>However, it became also clear the past months that the 181 <para>As described above, eComStation made it possible for the 182 first time to add things to our operating system that IBM had 183 refused to include all the years before. This is a great thing 184 because it is now possible to extend and adjust the system to our 185 needs.</para> 186 187 <para>However, over the past months it also became clear that the 186 188 current kernel of eComStation will reach its design limits one 187 189 day. While we still can get it to work on recent hardware due to … … 197 199 trying to circumvent limitations in the current kernel to get 198 200 something to work. This is very boring work and it does not lead 199 anywhere ,because new hardware is released every day. So instead201 anywhere because new hardware is released every day. So instead 200 202 of focusing on interesting work like integrating applications 201 203 into the Workplace Shell, we lose time on moving targets.</para> … … 219 221 </tip> 220 222 221 <para>The same issue comes up for GUIbased applications like223 <para>The same issue exists with GUI-based applications like 222 224 <application>Mozilla</application> and <application> 223 OpenOffice.org</application>. They always rely on a GUI Toolkit ,224 popular toolkits nowadays are GTK+, qt, wxWidgetsand SWT. We225 OpenOffice.org</application>. They always rely on a GUI Toolkit. 226 Popular toolkits nowadays are GTK+, qt, wxWidgets, and SWT. We 225 227 spent and still spend quite some time on getting those toolkits 226 to work on OS/2 PM , this is also a neverending work because they228 to work on OS/2 PM. This also is a never-ending work because they 227 229 get extended on a regular base as well. Again, we loose time on 228 things that do not bring a directbenefit, they are just required229 to get the application itself to OS/2. This costs a lot of time230 and also a lot of money, because we have to pay developers to231 port those toolkits, otherwise they get never finished in a232 reasonabletime.</para>230 things that are of no immediate benefit, they are just required 231 to get the application itself to OS/2. This costs both a lot of 232 time and money, because we have to pay developers to port those 233 toolkits. Otherwise they never would get finished in a reasonable 234 time.</para> 233 235 234 236 <para>Earlier in the book we asked you about your motivation to 235 237 use OS/2 back then. We hope you could remember the motivation and 236 we also hope that it ha ssomething to do with the technical238 we also hope that it had something to do with the technical 237 239 benefits of OS/2. If you are sceptic against the idea of Voyager 238 240 answer yourself the following questions:</para> … … 242 244 <listitem> 243 245 244 <para>Are the arguments for OS/2 still valid nowadays ina246 <para>Are the arguments for OS/2 still valid nowadays from a 245 247 technical point of view?</para> 246 248 … … 256 258 </itemizedlist> 257 259 258 <para>For sure there is more inOS/2 and eCS than just the WPS,260 <para>For sure there is more to OS/2 and eCS than just the WPS, 259 261 we will talk about that later. But in our opinion those concepts 260 262 are not necessarily bound to OS/2 as a kernel and operating … … 274 276 would not make sense to clone the current OS as a whole. The 275 277 community could never do that and even if we could, it 276 wouldn't solve the problems we suffer from nowadays.</para> 278 wouldn't solve the problems we are suffering from 279 nowadays.</para> 277 280 278 281 <para>Based on the arguments mentioned before we can come up with a … … 313 316 <listitem> 314 317 315 <para>Our programmers implement a WPS 318 <para>Our programmers implement a WPS-like environment on top 316 319 of this system.</para> 317 320 … … 320 323 <listitem> 321 324 322 <para>Applications are perfectly integrated into this WPS 325 <para>Applications are perfectly integrated into this WPS-like 323 326 desktop.</para> 324 327 … … 335 338 336 339 <para>A project like Voyager needs to focus on its main idea, 337 everything that distracts from that goal should be reconsidered and 338 if possible be replaced by something existing. We will explain in 339 detail in the next chapters which core components need to be 340 written by ourself and which components can be taken from other 341 projects. We believe that this approach makes it possible to make 342 Voyager a real piece of software instead of vapoware or a nice 343 design study, as it is at the time writing.</para> 344 345 <para>It would not make sense to give any statement about how fast 340 everything that distracts from that goal should be reconsidered 341 and, if possible, be replaced by something existing. In the next 342 chapters, we will explain in detail in the next chapters which core 343 components need to be written by ourself and which components can 344 be taken from other projects. We believe that this approach makes 345 it possible to make Voyager a real piece of software instead of 346 vaporware or a nice design study as it is at the time 347 writing.</para> 348 349 <para>It would not make sense to make any statement about how fast 346 350 this can be implemented and about how many of the mentioned things 347 351 will be reached within the next months and years. But if we do not -
DOV/ch02.xml
r69 r70 27 27 implement an OS/2 personality on top of a Mach 3 Kernel and they 28 28 called the project <emphasis>OS/2 Warp (PowerPC 29 Edition)</emphasis>. For various reasons the project got canceled30 later but before that happenedIBM released the book29 Edition)</emphasis>. For various reasons the project got 30 cancelled later but before that happened, IBM released the book 31 31 <citetitle>OS/2 Warp (PowerPC Edition) A First Look</citetitle> 32 32 <citation>SG24-4630</citation>, which documented the basic design … … 34 34 35 35 <para>In 1996 IBM released the last real release of OS/2 with 36 significant changes in it, named OS/2 Warp 4. They back-ported37 some ofthe things designed for the PowerPC version like GRADD36 significant changes, named OS/2 Warp 4. They back-ported some of 37 the things designed for the PowerPC version like GRADD 38 38 <citation>SG24-4639</citation> to the <quote>old</quote> OS/2 39 39 kernel, but the microkernel project itself was dead. After Warp 4 40 40 IBM just released some updated releases for servers, the end-user 41 market was a t this time already dead inside IBM. The only part41 market was already dead inside IBM at this time. The only part 42 42 that still got extended was the OS/2 Kernel, development on that 43 43 stopped end of 2005.</para> … … 46 46 47 47 <para>A more detailed history of OS/2 is available in the 48 Internet. Michal Necasek did a very detailed overview aboutthe48 Internet. Michal Necasek did a very detailed overview of the 49 49 different releases. URL: 50 50 <ulink url="http://pages.prodigy.net/michaln/history/"/></para> … … 53 53 54 54 <para>For several years people in the OS/2 community were 55 thinking about options we have in mid-termto work with our55 thinking about the mid-term options we had to work with our 56 56 beloved operating system. Most of the ideas were focusing on 57 57 rewriting large parts of OS/2, with the goal to have an open 58 source clone of OS/2. Projects like OSFree started , but they did59 not reach much attention so far and there is not much outcome by60 the time writing.</para>58 source clone of OS/2. Projects like OSFree started but they 59 haven't reached much attention so far and there is not much 60 outcome by the time writing.</para> 61 61 62 62 <para>Bigger projects like netlabs.org never actively joined or … … 67 67 people joining the community. It is also a fact that the design 68 68 of OS/2 in general (with some notable exceptions) is no longer 69 state of the art. IBM addressed that back thenwith the69 state of the art. Back then, IBM addressed that with the 70 70 microkernel concept but as mentioned before it was neither 71 71 released nor finished.</para> 72 72 73 <para>With or without IBM, there was always a hard core of73 <para>With or without IBM, there always was a hard core of 74 74 programmers and users using and enhancing OS/2. With Warpstock 75 USA 1996 OS/2 users started to meet each other once a year, one75 USA 1996 OS/2 users started to meet each other once a year, three 76 76 year later the European community started to do that as well, 77 77 followed by East-European users a few years later. At around the … … 89 89 Mach 3 microkernel with a FreeBSD and MacOS X personality on top 90 90 of it. For that reason some people at netlabs.org started to get 91 interest in that project, because of the obvious relations to the92 microkernel project of IBM.</para>93 94 <para>At Developers Workshop 2005 in Dresden Adrian Gschwend of95 netlabs.org presented the first thoughts about the perspective of96 the OS/2 community. The presentation showed that in mid-term the97 community has to move on because we will not be able to support98 OS/2 forever on recent hardware. Also, we cannot expect any more99 enhancements from IBM. It was also shown that there are things100 and concepts worth keeping in OS/2 which should be kept for the101 f uture. Inspired by Darwin, the main statement from a technical102 point of view was to create an OS/2 personality on top of Darwin103 and implement PM and WPS on top of it.</para>91 interested in that project, because of the obvious relations to 92 the microkernel project of IBM.</para> 93 94 <para>At the Developers Workshop 2005 in Dresden Adrian Gschwend 95 of netlabs.org presented the first thoughts about the perspective 96 of the OS/2 community. The presentation showed that, in mid-term, 97 the community will have to move on because we will not be able to 98 support OS/2 forever on recent hardware. Also, we cannot expect 99 any more enhancements from IBM. It was also shown that there are 100 things and concepts worth keeping in OS/2 which should be kept 101 for the future. Inspired by Darwin, the main statement from a 102 technical point of view was to create an OS/2 personality on top 103 of Darwin and implement PM and WPS on top of it.</para> 104 104 105 105 <para>The presentation showed some interesting thoughts but it 106 106 missed the main point: It would not solve any of the issues we 107 have nowadays with PM or WPS because both of them are not108 available in source code. During summer 2005 Bart Van Leeuwen and109 Adrian Gschwend pushed the idea further which lead to a radical110 change of the focus: One has to think about the desktop first and111 then address the system underneath of it.</para>107 nowadays have with PM or WPS because neither of them is available 108 in source code. During summer 2005 Bart Van Leeuwen and Adrian 109 Gschwend pushed the idea further which lead to a radical change 110 of the focus: One has to think about the desktop first and then 111 address the system underneath.</para> 112 112 113 113 <para>In November 2005 the new conclusion was presented at … … 117 117 as many existing technologies as possible and implement something 118 118 like a WPS on top of it and make sure we just write the minimum 119 needed to get there. There were also ideas presented about how a120 backward compatibility to OS/2 applications could be done. An121 important statement was also that the kernel does not really play122 an important role at the moment and that netlabs.org will most123 probably not focus on that until there is more work done on the124 desktop part.</para>119 needed to get there. There were also ideas presented about how 120 backward compatibility to OS/2 applications could be done. 121 Another important statement was that the kernel did not really 122 play an important role at that moment and that netlabs.org would 123 most probably not focus on that until more work had been done on 124 the desktop part.</para> 125 125 126 126 <tip> … … 130 130 <para>eComStation 1.2R is the currently available version of 131 131 this operating system. It is based on IBM personal computer 132 operating system technology ,and includes many UI enhancements,132 operating system technology and includes many UI enhancements, 133 133 a reorganisation of the desktop to reflect today's 134 Internet-cent red computing world, additional networking134 Internet-centered computing world, additional networking 135 135 technology to allow connecting to the latest broadband Internet 136 connections such as Cable, ISDN and xDSL, and the further137 improved installation routine makes installing easier than ever138 on both cutting-edge and legacy hardware.</para>136 connections such as Cable, ISDN, and xDSL, and the further 137 improved installation routine makes installing on both 138 cutting-edge and legacy hardware easier than ever.</para> 139 139 140 140 <para>eComStation installs directly from CD on modern hardware 141 141 like AMD Athlon64 based computers, large IDE and SATA 142 harddrives and supports a host of network -, sound- and143 videocards out of the box</para>142 harddrives and supports a host of network, sound, and video 143 cards out of the box</para> 144 144 145 145 <para>For more info on availability, pricing and support 146 options please go to <ulink url="http://www.ecomstation.com/"> http://www.ecomstation.com/</ulink>147 </para>146 options please go to <ulink url="http://www.ecomstation.com/"> 147 http://www.ecomstation.com/</ulink></para> 148 148 149 149 </tip> … … 151 151 <para>A year after the first presentation of Voyager the next 152 152 Developers Workshop 2006 took place in April 2006 in Biel, 153 Switzerland. People like Chris Wohlgemuth, Peter Kocsis and153 Switzerland. People like Chris Wohlgemuth, Peter Kocsis, and 154 154 Harald Studer presented first concepts and prototypes of core 155 155 components of Voyager, including an object model, a multimedia 156 subsystem and an OpenGL based window manager. Adrian Gschwend and157 Bart Van Leeuwen talked about the next steps the project has to158 t ake and they also clearly showed that eComStation is the current159 way to go for the mid-term future. There were also students from160 the Berne University of Applied Sciences joining the161 presentations which did not know OS/2 and its concepts at all. It162 was great to see that those concepts are indeed unique and that163 most students liked the idea of Voyager a lot and talked about164 joining the project as soon as there are prototypes available.165 This is an important step for community itself!</para>156 subsystem, and an OpenGL based window manager. Adrian Gschwend 157 and Bart Van Leeuwen talked about the next steps the project has 158 to take and they also clearly showed that eComStation is the 159 current way to go for the mid-term future. There were also 160 students from the Berne University of Applied Sciences joining 161 the presentations who did not know OS/2 and its concepts at all. 162 It was great to see that those concepts are indeed unique and 163 that most students liked the idea of Voyager a lot and talked 164 about joining the project as soon as there are prototypes 165 available. This is an important step for community itself!</para> 166 166 167 167 <para>The release of this book is hopefully the next milestone 168 for Voyager , as you can see it is far away from being complete168 for Voyager. As you can see it is far away from being complete 169 169 but we still think it is an important next step and we look 170 170 forward to contributions from all over the world.</para> … … 179 179 codename for what we discuss in this book. It is a reference to 180 180 the <trademark>Star Trek</trademark> related history of codenames 181 used by IBM in OS/2 development. The codenames were already used182 for a long time at IBM but the marketing department decided to183 use the codename <emphasis>Warp</emphasis> as a name for the181 used by IBM in OS/2 development. The codenames had already been 182 used for a long time at IBM but the marketing department decided 183 to use the codename <emphasis>Warp</emphasis> as a name for the 184 184 public as well with OS/2 Version 3.0 so it became <trademark>OS/2 185 185 Warp 3</trademark>.</para> … … 189 189 <ulink url="http://en.wikipedia.org/wiki/Voyager_1"/>), an 190 190 815-kilogram unmanned probe of the outer solar system and beyond, 191 launched September 5, 1977, and is currently operational, making192 itNASA's longest-lasting mission. It visited Jupiter and191 launched September 5, 1977, and still operational, making it 192 NASA's longest-lasting mission. It visited Jupiter and 193 193 Saturn and was the first probe to provide detailed images of the 194 194 moons of these planets.</para> 195 195 196 196 <para>Many programmers contributing to the project decided to 197 pick up related names as well, like Neptune, the eight and197 pick up related names as well, like Neptune, the eighth and 198 198 outermost planet of our solar system which got visited by the 199 199 Voyager 2 project and Triton, the biggest moon of Neptune.</para> … … 211 211 212 212 <para>So far most attempts to <quote>save</quote> OS/2 were to come 213 up with a group of people wh ich started working on a kernel that214 has an OS/2like API (<filename>DOS*</filename>, <filename>213 up with a group of people who started working on a kernel that has 214 an OS/2-like API (<filename>DOS*</filename>, <filename> 215 215 MOU*</filename>, <filename>VIO*</filename>, <filename> 216 216 KBD*</filename>, ...). There are some essential miss-concepts in … … 231 231 232 232 <para>The OS/2 Kernel was ahead of its time in the early 90ies 233 but meanwhile even Microsoft did their job and made the Windows234 kernel much more stable than it used to be. There are some235 things that are still great in the OS/2 kernel like a stable236 API, a working ABI and clearly separated parts which do not237 mess with each other. The OS/2 kernel is history nowadays, as238 porting to new hardware like 64bit processors is impossible to239 do.</para>240 241 </listitem> 242 243 <listitem> 244 245 <para>Even if the OS/2 API was stable and great one day no one233 but meanwhile even Microsoft has done its job and made the 234 Windows kernel much more stable than it used to be. There are 235 some things that are still great in the OS/2 kernel like a 236 stable API, a working ABI, and clearly separated parts which do 237 not mess with each other. The OS/2 kernel is history nowadays, 238 as porting to new hardware like 64 bit processors is impossible 239 to do.</para> 240 241 </listitem> 242 243 <listitem> 244 245 <para>Even if the OS/2 API was stable and great one day, no one 246 246 will code like this anymore nowadays. PM programming will scare 247 away every student thatgrew up with Java or another high-level248 language like C++ and (RAD) toolkits like wxWidgets, qt and247 away every student who grew up with Java or another high-level 248 language like C++ and (RAD) toolkits like wxWidgets, qt, and 249 249 GTK2. The OS/2 PM API is definitely dead and a big 250 250 <emphasis>don't</emphasis> for the future. There are … … 259 259 drivers and software. Instead of focusing on real stuff like 260 260 WPS integration most time spent on projects is stupid and 261 boring porting work. This did not bring us further at all, just262 a few things were done the OS/2 way.</para>261 boring porting work. This did not advance us further at all, 262 just a few things were done the OS/2 way.</para> 263 263 264 264 </listitem> … … 281 281 282 282 <para>So what are those components we talk about? While we can 283 define some parts pretty detailed it is not that easy yetfor other284 parts , simply because we need to do some more work first. We talked285 about things like the WPS, that is what about most OS/2 users would286 define as the <quote>OS/2 feeling</quote>. And it is actually also287 what we, the current developers of Voyager, appreciate most about288 OS/2. So it was obvious that we will start with an object model289 first - this is the base needed to implement a WPS like desktop.290 Another developer has a lot of know how in the multimedia field, so291 he started to work on a multimedia subsystem replacement. We will292 show more than those two parts but you will see that there is not293 much work done on that right now. The reason is simple: We do not294 have any developers yet for those parts. We hope that this will295 change soon, also because we release this book to the public.296 Contributions are very welcome, please see <xref /> to get an297 overview about how you can join the projects!</para>283 define some parts pretty detailed it is not that easy for other 284 parts yet, simply because we need to do some more work first. We 285 talked about things like the WPS, that is what about most OS/2 286 users would define as the <quote>OS/2 feeling</quote>. And, 287 actually, it also is what we, the current developers of Voyager, 288 appreciate most about OS/2. So it was obvious that we would start 289 with an object model firstâthis is the base needed to implement a 290 WPS-like desktop. Another developer has a lot of know-how in the 291 multimedia field, so he started to work on a multimedia subsystem 292 replacement. We will show more than those two parts but you will 293 see that there is not much work done on that right now. The reason 294 is simple: We do not have any developers yet for those parts. We 295 hope that this will change soon, also because we release this book 296 to the public. Contributions are very welcome, please see <xref /> 297 to get an overview about how you can join the projects!</para> 298 298 299 299 <section> … … 301 301 <title>Voyager Object Model</title> 302 302 303 <para>The WPS is a fully object 303 <para>The WPS is a fully object-oriented desktop, instead of 304 304 <emphasis>everything is a file</emphasis> the credo is 305 305 <emphasis>everything is an object</emphasis>. This opens a whole … … 308 308 object model itself in this introduction, a more detailed example 309 309 is covered in <xref linkend="dov.vom"/>. If you don't know 310 the WPS at all you might want to download the eComStation Demo310 the WPS at all, you might want to download the eComStation Demo 311 311 CD, which is available for free at 312 312 <ulink url="http://www.ecomstation.com"/>.</para> … … 330 330 an object oriented fashion of C.</para> 331 331 332 <para>The development of the new Voyager Object Model is done on333 OS/2 so far. However, the code is very portable and should334 compile on other platforms as well.</para>332 <para>The development of the new Voyager Object Model has been 333 done on OS/2 so far. However, the code is very portable and 334 should compile on other platforms as well.</para> 335 335 336 336 </section> … … 345 345 <firstterm>GPI/GDI</firstterm> (Graphic Programming 346 346 Interface/Graphic Device Interface). The PM is responsible for 347 drawing common controls, window handling, input handling and348 more, while GPI/GDI provides a powerful matrix 347 drawing common controls, window handling, input handling, and 348 more, while GPI/GDI provides a powerful matrix-based subsystem 349 349 which can be used to draw about everything one might need. 350 350 Applications like Maul Publisher on OS/2 show how powerful the … … 355 355 means they cannot be extended and we cannot fix known bugs in it. 356 356 So it was important to look for alternatives and it was clear 357 from the beginning that we w illnot rewrite something as complex357 from the beginning that we would not rewrite something as complex 358 358 as GPI by ourself.</para> 359 359 360 <para> To finda replacement for PM was not that difficult: Almost360 <para>Finding a replacement for PM was not that difficult: Almost 361 361 all big applications or toolkits on Unix-like systems like 362 OpenOffice.org, Mozilla, SWT and wxWidgets are based on GTK+. The363 second option would be the qt-toolkit which is also quite popular364 among developers. The problem of the qt-toolkit is its license:365 It is dual-licensed as GPL or a commercial license. GPL actually366 forces the developer to release everything under the GPL license367 as well, which is absolutely not the intention of Voyager. GTK+368 however is licensed under the LGPL license, which does not have369 that strict restriction, it does not force the developer to370 release the source code of his application. That is for example371 also the reason why commercial products like Acrobat Reader on372 Linux are using GTK+. GTK+ is also a very modern and powerful373 toolkit which is well maintained. The only drawback is its quite374 rudimentary documentation but this is unfortunately a general375 problem of many open source software and toolkits376 available.</para>377 378 <para> To finda replacement for GPI was tricky. For quite some362 OpenOffice.org, Mozilla, SWT, and wxWidgets are based on GTK+. 363 The second option would be the qt-toolkit which is also quite 364 popular among developers. The problem of the qt-toolkit is its 365 license: It is dual-licensed as GPL or a commercial license. GPL 366 actually forces the developer to release everything under the GPL 367 license as well, which is absolutely not the intention of 368 Voyager. GTK+ however is licensed under the LGPL license, which 369 does not have that strict restriction and does not force the 370 developer to release the source code of his application. That is, 371 for instance, also the reason why commercial products like 372 Acrobat Reader on Linux are using GTK+. GTK+ is also a very 373 modern and powerful toolkit which is well maintained. The only 374 drawback is its quite rudimentary documentation but unfortunately 375 this is a general problem of the many open source software and 376 toolkits available.</para> 377 378 <para>Finding a replacement for GPI was tricky. For quite some 379 379 time we did not know what to choose as a replacement for that. 380 But during 2005 there was a newcomer in this area gettinga lot380 But in 2005 there was a newcomer in this area that received a lot 381 381 of attention: Cairo Graphics Library ( 382 382 <ulink url="http://www.cairographics.org"/>). Cairo basically 383 383 provides everything one might ask for as GPI programmer, like 384 FIXME. And developers start using it , the Mozilla foundation385 announced that the Geko rendering engine w illmove its rendering386 to Cairo, OpenOffice.org also wants to use it for its rendering 384 FIXME. And developers start using it: The Mozilla foundation 385 announced that the Geko rendering engine would move its rendering 386 to Cairo, OpenOffice.org also wants to use it for its rendering, 387 387 and the GTK+ team moves a lot of drawing functions to Cairo as 388 388 well. So it looks like the perfect choice as a GPI replacement 389 and the first feedback from OS/2 developers thatknow GPI well389 and the first feedback from OS/2 developers who know GPI well 390 390 seems to prove that.</para> 391 391 392 <para>While Cairo is already ported to OS/2 we still work on393 getting GTK+ to work as well. We hope to reach that point soon392 <para>While Cairo has already been ported to OS/2 we still work 393 on getting GTK+ to work as well. We hope to reach that point soon 394 394 with the support of Everblue (Xlib-Layer for OS/2: 395 395 <ulink url="http://everblue.netlabs.org"/>).</para> … … 402 402 403 403 <para>OS/2 introduced a modern multimedia subsystem in 1994. It 404 provided the abstraction of codecs and transports, which ma deit404 provided the abstraction of codecs and transports, which makes it 405 405 possible that even a media player from 1994 can play new codecs 406 406 like FLAC and Ogg Vorbis, simply because the system knows the 407 codec for it. Also, it does n tomatter if the stream is coming407 codec for it. Also, it does not matter if the stream is coming 408 408 from a local harddisk or if it is provided by an Internet radio 409 station using the httpprotocol. Any application using this409 station using the HTTP protocol. Any application using this 410 410 interface can handle any protocol and codec supported by the 411 411 system, without the need to implement that for each one of them … … 417 417 similar concept from scratch. This is also necessary nowadays, 418 418 back when MMPM in OS/2 got designed no one talked about things 419 like HDTV, Satellite TV and DivX yetso it does have its420 limitations for today s requirements.</para>419 like HDTV, Satellite TV, and DivX, so it does have its 420 limitations for today's requirements.</para> 421 421 422 422 <para>We think it is important that developers get a modern 423 multimedia subsystem right from the beginning, like thiswe can423 multimedia subsystem right from the beginning, so we can 424 424 integrate the applications according to it and integrate them 425 425 even better into the desktop. More information about Triton can … … 432 432 <title>Neptune</title> 433 433 434 <para>On Unix-like systems the desktop is usually running inside435 an X-session, the most known implementation of that is called436 Xorg . Xorgimplements Xlib and provides an interface for graphics437 device drivers. This interface can be binary 438 players nowadays, Nvidia and ATI, both provide just binary 434 <para>On Unix-like systems the desktop usually runs inside an 435 X-session, the most known implementation of that is called Xorg. 436 Xorg implements Xlib and provides an interface for graphics 437 device drivers. This interface can be binary-only and the two big 438 players nowadays, Nvidia and ATI, both provide just binary-only 439 439 drivers.</para> 440 440 441 <para>Desktops like KDE, Gnome and Xfce are no longer implemented442 on Xlib itself, instead they use high-level toolkits like GTK+ or443 qt. For historical reasons it seems to be impossible right now to444 get rid of Xlib itself, which does not make sense anymore because445 no (properly written) application nowadays is using Xlib for446 drawing. This is all done by the toolkit itself, on GTK+ for447 example this is now done using Cairo Library. qt is using his own448 rendering engine called Arthur.</para>441 <para>Desktops like KDE, Gnome, and Xfce are no longer 442 implemented on Xlib itself, instead they use high-level toolkits 443 like GTK+ or qt. For historical reasons it seems to be impossible 444 right now to get rid of Xlib itself, which does not make sense 445 anymore because no (properly written) application nowadays is 446 using Xlib for drawing. This is all done by the toolkit itself. 447 On GTK+ this is now done using the Cairo Library, for instance. 448 qt is uses its own rendering engine called Arthur.</para> 449 449 450 450 <para>Unfortunately there were no successful attempts so far to … … 454 454 beside this, most users never use that feature anyway. But the 455 455 current trend on Unix-like systems finally goes into the 456 direction of using OpenGL 456 direction of using OpenGL-accelerated backends and doing the 457 457 whole rendering in it. This is exactly where Neptune comes 458 458 in.</para> … … 460 460 <para>Neptune will provide a window manager for both Xlib and 461 461 Cario, where Cairo is using the Glitz backend for OpenGL 462 accelerated rendering. Unlike PM on OS/2 Xlib is not providing462 accelerated rendering. Unlike PM on OS/2, Xlib is not providing 463 463 any methods for window management so we need a 3rd party 464 464 application doing that and this is the job of so called window … … 474 474 first.</para> 475 475 476 <para>Note that Neptune is not critical for Voyager , even if it476 <para>Note that Neptune is not critical for Voyager. Even if it 477 477 would be <emphasis>nice to have</emphasis>, Voyager can and will 478 478 run on a normal Xlib based Xorg with any window manager.</para> … … 486 486 <para>Many OS/2 users adore the OS/2 kernel for various reasons. 487 487 It is pretty stable, it provides a stable ABI for device drivers, 488 the multitasking is still excellent and it is fast. Most probably489 it will be possible to work with this kernel for another few490 years on recent hardware, but it will not go on like this488 the multitasking is still excellent, and it is fast. Most 489 probably it will be possible to work with this kernel for another 490 few years on recent hardware, but it will not go on like this 491 491 forever. Hardware and technology is changing and so do kernels. 492 The OS/2 kernel did not get any major enhancements since around493 1997so it is time to think about an alternative.</para>492 The OS/2 kernel hasn't received any major enhancements since 493 around 1997, so it is time to think about an alternative.</para> 494 494 495 495 <para>It is absolutely clear that whatever option might come up, 496 496 we will <emphasis>not</emphasis> write device drivers on our own 497 again. This was and is one of the major problems we had and no 498 o ne of the core developers of Voyager wants to spend time on that497 again. This was and is one of the major problems we had and none 498 of the core developers of Voyager wants to spend time on that 499 499 anymore.</para> 500 500 … … 502 502 of options available nowadays and it would be a waste of time to 503 503 write yet another one by ourself. Voyager will compile on as many 504 kernels a ndpossible, the team will abstract everything in a way504 kernels as possible, the team will abstract everything in a way 505 505 that the kernel is just one of the decisions we take.</para> 506 506 … … 522 522 <para>Voyager is open source software. This means everything which 523 523 belongs to the core of Voyager is available in source code and thus 524 everyone can have a look at the implementation and even better,524 everyone can have a look at the implementation and, even better, 525 525 improve and extend it.</para> 526 526 527 527 <para>There are plenty of open source licenses available and the 528 Voyager core team discussed for quite some time which one we should529 choose for Voyager. Our requirements were:</para>528 Voyager core team has discussed which one we should choose for 529 Voyager for quite some time. Our requirements were:</para> 530 530 531 531 <itemizedlist> … … 555 555 556 556 <para>Because of the binary compatible object model, it must be 557 possible to provide binary 557 possible to provide binary-only extensions to classes and 558 558 objects, both open source and closed source, commercial or 559 559 non-commercial.</para> … … 573 573 <para>This already made one thing pretty clear: The license cannot 574 574 be the GNU General Public License (GPL). The GPL prohibits the use 575 of binary 575 of binary-only components, as we can see very well in the endless 576 576 discussions in the Linux kernel mailing-list. And what is a binary 577 577 object model for when we cannot use its advantage because of the … … 599 599 <para>We decided to use a dual-licensing of the core to avoid 600 600 endless discussions with those programmers who think the GPL solves 601 every problem , it will most probably not make everyone happy but601 every problem. It will most probably not make everyone happy but 602 602 the LGPL is the only logical way for our requirements in that case. 603 603 The CDDL gives more freedom to us because we as developers can also … … 613 613 614 614 <para>For sure we hope that many programmers release their classes, 615 objects and applications as open source software. In best case615 objects, and applications as open source software. In best case 616 616 under the same license as we do. But we also think that a project 617 617 like Voyager can just get its full potential when we open up the 618 market for commercial companies and programmers as well -and most618 market for commercial companies and programmers as wellâand most 619 619 open source desktops nowadays do not provide that freedom.</para> 620 620 -
DOV/ch03.xml
r67 r70 13 13 <title>Introduction</title> 14 14 15 <para>The desktop follows a document 16 contrast to other task 15 <para>The desktop follows a document-centered approach in 16 contrast to other task-driven implementations. This means the 17 17 user is working with documents to be found on the system rather 18 18 then starting some kind of application and working inside of 19 19 that. For example to modify a text document the user just clicks 20 the document and doesn't ha sto care which application is20 the document and doesn't have to care which application is 21 21 able to handle that kind of document because the system will find 22 an appropriate one. In task 22 an appropriate one. In task-driven environments the user first 23 23 starts an application, for example a word processor, and opens 24 documents from inside the application using a file chose24 documents from inside the application using a file selection 25 25 dialog.</para> 26 26 27 <para>All documents, files etc.the user interacts with are27 <para>All documents, files, etc. that the user interacts with are 28 28 objects because the desktop is based on an object model described 29 29 elsewhere in this document. This means the desktop is fully 30 object 30 object-orientated with all the benefits coming from that. So 31 31 it's possible to have data encapsulated in the objects and 32 32 subclassing of document or file classes is not even allowed but … … 40 40 41 41 <para>The user of the desktop is dealing with objects. Files for 42 example are not classic files like on other systems but arereal42 example are not classic files like on other systems but real 43 43 objects in the sense that they might carry additional information 44 44 which is encapsulated and come with object methods to work with … … 47 47 copy()</function> API of the operating system. Instead a method 48 48 on the file object is invoked and the file object handles the 49 copying onitself.</para>49 copying by itself.</para> 50 50 51 51 <para>Every object is an instance of a class which is registered … … 53 53 any time (a restart of the desktop may be necessary). They are 54 54 implemented as shared libraries and link dynamically to the 55 desktop. B asing the whole desktop on an object model which allows56 subclassing and class replacement without recompiling it's57 possible for independent developers to create new classes without58 access to the desktop source code. In fact developers are59 encouraged not to modify sources to extend the desktop but to60 create new classes to add functions to the desktop. By replacing61 classes with new versions overriding inherited methods it's62 possible to modify the behaviour of any class of the63 desktop.</para>55 desktop. By basing the whole desktop on an object model which 56 allows subclassing and class replacement without recompiling 57 it's possible for independent developers to create new 58 classes without access to the desktop source code. In fact 59 developers are encouraged not to modify sources to extend the 60 desktop but to create new classes to add functions to the 61 desktop. By replacing classes with new versions overriding 62 inherited methods it's possible to modify the behaviour of 63 any class of the desktop.</para> 64 64 65 65 <para>The root class of the whole desktop is … … 87 87 the trackname. One may implement the latter by adding code to 88 88 handle ID3 tags of MP3 files and code to handle the same for OGG 89 files. In the end <classname>MMAudio</classname> would contain89 files. In the end, <classname>MMAudio</classname> would contain 90 90 code for every tag format known. If a developer ever came up with 91 a new audio codec and a different tag architecture the maintainer92 of the desktop or the <classname>MMAudio</classname> class had to93 be asked to add additional parsing code. Even after the code94 addition users can't immediately benefit from it because the95 next release may only be available at some point in the96 future.</para>91 a new audio codec and a different tag architecture, the 92 maintainer of the desktop or the <classname>MMAudio</classname> 93 class had to be asked to add additional parsing code. Even after 94 the code addition users can't immediately benefit from it 95 because the next release may only be available at some point in 96 the future.</para> 97 97 98 98 <section id="dov.vd.g.s"> … … 165 165 166 166 <para>Objects are shown in a list with each row containing 167 the icon, the name and details about the object in question168 like filesize or creation date.</para>167 the icon, the name, and details about the object in 168 question like filesize or creation date.</para> 169 169 170 170 </listitem> … … 193 193 this kind of traversing the filesystem breaks the object metaphor 194 194 of the desktop. Changing the folder one is in has to also change 195 position, size and shape of the browser window because in the195 position, size, and shape of the browser window because in the 196 196 object world the view should represent the underlying object. Not 197 197 taking into account the object settings confuses the user because … … 205 205 <title>Templates</title> 206 206 207 <para>New documents, files or other objects are created by207 <para>New documents, files, or other objects are created by 208 208 dragging an object template somewhere into the filesystem. 209 209 Templates normally are located in the central Templates folder … … 215 215 <note> 216 216 217 <para>Voyager-desktop 217 <para>Voyager-desktop-compliant applications handling documents 218 218 should create the appropriate templates for the user.</para> 219 219 -
DOV/ch05.xml
r65 r70 1 1 <?xml version='1.0'?> 2 <!DOCTYPE prefacePUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3b2/docbookx.dtd">2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3b2/docbookx.dtd"> 3 3 <chapter id="dov.triton"> 4 5 <title>Triton</title> 6 7 <section id="dov.triton.i"> 8 9 <title>Introducton</title> 10 11 <para>The multimedia subsystem of Voyager (called Triton) is a plugin-based, 12 extendable, flexible architecture, originally designed for stable playback 13 of any kind of multimedia streams from any kind of source. The system is not yet 14 capable of recording, it's planned for later versions.</para> 15 16 <para>The MMIO subsystem has a layered architecture. It means that in order to play 17 back a given multimedia content, the subsystem builds a logical structure of at 18 least five levels. This structure describes the inner structure of the given 19 multimedia content, and makes it possible to divide the processing and playback 20 of multimedia contents into different modular parts, making it easier to find 21 and fix the bugs in plugins. The modular structure also helps so that once support 22 for a new format is added, it will probably work from all the supported sources 23 (like from local file or from an Internet stream), and vice versa, a new plugin for 24 a new source will make it possible to play back all the supported formats without 25 any additional code.</para> 26 27 <para>The current version of MMIO has the following layers defined:</para> 28 29 <itemizedlist> 30 31 <listitem> 32 33 <para>Medium</para> 34 35 </listitem> 36 37 <listitem> 38 39 <para>Channel</para> 40 41 </listitem> 42 43 <listitem> 44 45 <para>Elementary Stream</para> 46 47 </listitem> 48 49 <listitem> 50 51 <para>Raw Stream</para> 52 53 </listitem> 54 55 <listitem> 56 57 <para>Terminator Nodes (Visualization)</para> 58 59 </listitem> 60 61 </itemizedlist> 62 63 <para>These layers and the layered structure are handled internally by the system, 64 and all these are built up from a URL. This effectively means that playing back a 65 given file (or any kind of multimedia content) is as simple as opening a URL with 66 one MMIO API call, and sending it a Play command.</para> 67 68 <para>These URLs look this simple:</para> 69 70 <itemizedlist> 71 72 <listitem> 73 74 <para>file://c:/Musics/My_Favourite.mp3</para> 75 76 </listitem> 77 78 <listitem> 79 80 <para> 81 http://local.video.store.com:8080/Horror/Killing_The_Killer.avi</para> 82 83 </listitem> 84 85 <listitem> 86 87 <para>rtsp://radio.com/live.ra</para> 88 89 </listitem> 90 91 </itemizedlist> 92 93 </section> 94 95 <section id="dov.triton.bo"> 96 97 <title>Basic Overview</title> 98 99 <section id="dov.triton.bo.plptsg"> 100 101 <title>Plugin List, Process Tree, Stream Groups</title> 102 103 <para>There are three main expressions of MMIO with which one has to be familiar 104 with.</para> 105 106 <para>The Plugin List means the list of available MMIO Plugins from where the 107 MMIO subsystem can select plugins to be used for the playback of a given URL. 108 This list can be queried and examined, so the application will get an idea 109 about the capabilities of the system it runs on. Alternatively, it can 110 decide to de-register old plugins and register new ones.</para> 111 112 <para>The Process Tree is probably the most important thing of the MMIO 113 subsystem. It is a tree structure, having different kind of nodes connected 114 together, describing the layered architecture of the multimedia content 115 to be played back. This tree is built somewhat automatically by the MMIO 116 subsystem, using the registered plugins of the Plugin List. The top of the 117 tree has a URL node, containing only the URL string itself, while the bottom 118 of the tree will have Terminator nodes, the <quote>Visualization</quote> 119 nodes for every supported stream of the URL. Here is an example of an 120 imaginary URL and the Process Tree created from it by the MMIO 121 subsystem:</para> 122 123 <para>URL: http://www.server.com/Films/LOTR_Trailer.avi</para> 124 125 <para>As you can see, this example has an AVI file containing one video stream in 126 DIVX format, one audio stream for the video in MPEG Audio format, and one 127 Subtitle stream for all these, in DVD Subtitle format. All these elementary 128 streams (ES) have a raw stream (RS) descendant, meaning that a decoder has 129 been found for all of them, and all of them has a Terminator (Term) node, 130 meaning that all the decoder outputs can be sent to the screen or speaker, so 131 all of them can be played back. More about node types and their purpose 132 later.</para> 133 134 <para>Having three Terminator nodes means that we have three independent 135 streams we can play back. We could send a <command>Start 136 Playback</command> command to all the three of these Terminator nodes, 137 which would mean that the playback of all these streams would be started, and 138 we would be able to watch and listen to the movie.</para> 139 140 <para>However, usually it's not this simple. Nothing guarantees that 141 starting the playback this way, independently, stream-by-stream, will 142 result in an experience where the video and the audio goes together. There 143 must be <quote>lipsync</quote> as it's usually called, meaning that 144 the audio and the video has to go together in order to have an enjoyable 145 experience.</para> 146 147 <para>That's the reason why there is a third expression in the MMIO 148 subsystem to get familiar with: the Stream Groups.</para> 149 150 <para>Stream Groups are logical entities, grouping Terminator nodes 151 together. One can create a Stream Group from the three Terminator nodes of 152 the example above, and send the <command>Start Playback</command> 153 command to the Stream Group. The Stream Group itself will take care of the 154 lipsync, and will make sure that all the streams grouped together in it will 155 move and act together.</para> 156 157 </section> 158 159 <section id="dov.triton.bo.nntpt"> 160 161 <title>Nodes and Node Types in the Process Tree</title> 162 163 <para>The Process Tree is built from nodes. Every node in the tree has a type, and 164 has a string describing the format which that node can provide. Using the 165 Process Tree example we had before, there is a node which is a URL node (its 166 type is URL), and can provide <quote>urls</quote> to any other nodes that 167 are connecting to it.</para> 168 169 <para>The MMIO subsystem looked through its list of available plugins, and 170 found a media handler plugin that can handle that URL node. Using that 171 plugin, a new node was created, which is a Media node, describing the media 172 contained in the URL. This new Media node was created by the media handler 173 plugin (http handler plugin, in our example), and that plugin also checked 174 what kind of stuff it can provide. It saw that the URL contains a file, which 175 has the extension of <computeroutput>.avi</computeroutput>, so it 176 reports that this node can provide an AVI container format to everyone who 177 connects to it. As it's a Media node, everybody will be able to use the 178 node's type-specific functions, like seeking, reading and other 179 Media-specific functions.</para> 180 181 <para>The MMIO subsystem tried to <quote>grow</quote> this process tree, so 182 again looked into its plugin list, and found a plugin which can handle AVI 183 container formats (cont_AVI format strings). This is the AVI demuxer 184 plugin. Using that plugin, new nodes of the Process Tree could be built. The 185 first one is a Channel node, which describes logical channels in a given 186 container. There is only one channel in an AVI file, but for example the MPEG 187 Transport Stream containers, used by the digital television broadcasting 188 systems have a lot of channels in one container, namely a lot of TV channels, 189 and each of the channels have at least one Video elementary stream and one or 190 more Audio elementary streams. So, the Channel node is to be able to group the 191 available Elementary Stream Nodes of a given container.</para> 192 193 <para>It's still the AVI demuxer plugin which examined the AVI file format 194 (using the Media node to read and seek in the file) and found out that there are 195 three Elementary Streams (ES) in this AVI file, namely one video stream in 196 DIVX format, one audio stream in MPEG Audio format, and a subtitle stream 197 with DVD-format subtitles. So, the AVI demuxer plugin has created four new 198 nodes into the Process Tree.</para> 199 200 <para>The ball is at the side of the MMIO subsystem again. It's still trying 201 to grow the process tree, so it's looking for plugins to handle the 202 three new Nodes of the tree. It's lucky again, and based on the plugin 203 list, it finds decoder plugins for all the three formats, namely a DIVX 204 decoder plugin for the es_v_DIVX format, an MPEG Audio decoder plugin for 205 the es_a_MPA format, and a DVD Subtitle decoder/renderer plugin for the 206 es_s_DVD format.</para> 207 208 <para>Using these decoder plugins for the corresponding nodes, each of the 209 decoder plugins create one new Node into the tree, a Raw Stream Node. The Raw 210 Stream (RS) terminology means decoded elementary streams, so while 211 reading data from Elementary Streams would give encoded/compressed data, 212 reading from Raw Streams gives decoded/uncompressed data, which can be 213 directly shown on the screen, or sent to the audio card.</para> 214 215 <para>The MMIO subsystem does not give up, and still checks if it has plugins to 216 handle the new nodes. It finds a video output plugin, which is capable of 217 displaying YUV422 formatted images on the screen, and connects it to the 218 video RS node. Also finds an audio output plugin which can handle the PCM 219 audio format, and connects it to the audio RS node. The subtitle RS node will 220 be handled by a subtitle visualizer plugin. All these plugins have one thing 221 in common: they <quote>eat</quote> data from the upper layers, but do not 222 provide any data, as they consume them by showing it. That's why they 223 are called Terminator Nodes, because they terminate a given branch of the 224 Process Tree.</para> 225 226 <para>Now the MMIO subsystem can see that all the leafs of the Process Tree are 227 either Terminator nodes (so there is no task to do with them), or there was no 228 plugin to handle them (none of the nodes are such in our example). So, it gives 229 up growing the tree, the Process Tree has been built successfully.</para> 230 231 </section> 232 233 </section> 234 235 <section id="dov.triton.ums"> 236 237 <title>Using the MMIO Subsystem</title> 238 239 <section id="dov.triton.ums.f"> 240 241 <title>Foreword</title> 242 243 <para>Now that you've reached this chapter, you've either read 244 through the hard part, or you've simply skipped the previous parts. If 245 you've read through the previous parts, you know the basic idea behind 246 the MMIO subsystem, and you'll be able to use it in a more advanced way, 247 customize it for your needs. However, if you haven't read through the 248 previous parts, it's not a problem, the MMIO subsystem can be used very 249 easily without that knowledge too, <xref 250 linkend="dov.triton.ums.qu"/> is for you then.</para> 251 252 </section> 253 254 <section id="dov.triton.ums.qu"> 255 256 <title>Quick Usage</title> 257 258 <para>This chapter is to be done.</para> 259 260 </section> 261 262 <section id="dov.triton.ums.au"> 263 264 <title>Advanced Usage</title> 265 266 <para>This chapter is to be done.</para> 267 268 <para>Using the MMIO subsystem:</para> 269 270 <itemizedlist> 271 272 <listitem> 273 274 <para>Init MMIO</para> 275 276 </listitem> 277 278 <listitem> 279 280 <para>Query/Manage plugin list</para> 281 282 </listitem> 283 284 <listitem> 285 286 <para>Open URL</para> 287 288 </listitem> 289 290 <listitem> 291 292 <para>Create stream group</para> 293 294 </listitem> 295 296 <listitem> 297 298 <para>Start playback</para> 299 300 </listitem> 301 302 <listitem> 303 304 <para>Clean up</para> 305 306 </listitem> 307 308 </itemizedlist> 309 310 </section> 311 312 </section> 313 314 <section id="dov.triton.maap"> 315 316 <title>The MMIO API for Application Programmers</title> 317 318 <para>This chapter is to be done.</para> 319 320 </section> 321 322 <section id="dov.triton.cpms"> 323 324 <title>Creating Plugins for the MMIO Subsystem</title> 325 326 <para>This chapter is to be done.</para> 327 328 </section> 329 330 <section id="dov.triton.pg"> 331 332 <title>Programming Guidelines</title> 333 334 <para>This chapter is to be done.</para> 335 336 <para>Use MMIOmem.h and the Triton Porting Layer, where possible, so the plugins 337 will be portable, memory leaks will be detectable and trackable.</para> 338 339 </section> 340 4 5 <title>Triton</title> 6 7 <section id="dov.triton.i"> 8 9 <title>Introducton</title> 10 11 <para>The multimedia subsystem of Voyager (called Triton) is a 12 plugin-based, extendable, flexible architecture, originally 13 designed for stable playback of any kind of multimedia streams from 14 any kind of source. The system is not yet capable of recording, 15 it's planned for later versions.</para> 16 17 <para>The MMIO subsystem has a layered architecture. It means that 18 in order to play back a given multimedia content, the subsystem 19 builds a logical structure of at least five levels. This structure 20 describes the inner structure of the given multimedia content and 21 makes it possible to divide the processing and playback of 22 multimedia contents into different modular parts, making it easier 23 to find and fix the bugs in plugins. The modular structure also 24 helps so that once support for a new format is added, it will 25 probably work from all the supported sources (like from local file 26 or from an Internet stream), and vice versa, a new plugin for a new 27 source will make it possible to play back all the supported formats 28 without any additional code.</para> 29 30 <para>The current version of MMIO has the following layers 31 defined:</para> 32 33 <itemizedlist> 34 35 <listitem> 36 37 <para>Medium</para> 38 39 </listitem> 40 41 <listitem> 42 43 <para>Channel</para> 44 45 </listitem> 46 47 <listitem> 48 49 <para>Elementary Stream</para> 50 51 </listitem> 52 53 <listitem> 54 55 <para>Raw Stream</para> 56 57 </listitem> 58 59 <listitem> 60 61 <para>Terminator Nodes (Visualization)</para> 62 63 </listitem> 64 65 </itemizedlist> 66 67 <para>These layers and the layered structure are handled internally 68 by the system, and all these are built up from a URL. This 69 effectively means that playing back a given file (or any kind of 70 multimedia content) is as simple as opening a URL with one MMIO API 71 call, and sending it a Play command.</para> 72 73 <para>These URLs look this simple:</para> 74 75 <itemizedlist> 76 77 <listitem> 78 79 <para>file://c:/Musics/My_Favourite.mp3</para> 80 81 </listitem> 82 83 <listitem> 84 85 <para>http://local.video.store.com:8080/Horror/Killing_The_Killer.avi</para> 86 87 </listitem> 88 89 <listitem> 90 91 <para>rtsp://radio.com/live.ra</para> 92 93 </listitem> 94 95 </itemizedlist> 96 97 </section> 98 99 <section id="dov.triton.bo"> 100 101 <title>Basic Overview</title> 102 103 <section id="dov.triton.bo.plptsg"> 104 105 <title>Plugin List, Process Tree, Stream Groups</title> 106 107 <para>There are three main expressions of MMIO with which one has 108 to be familiar with.</para> 109 110 <para>The Plugin List means the list of available MMIO Plugins 111 from where the MMIO subsystem can select plugins to be used for 112 the playback of a given URL. This list can be queried and 113 examined, so the application will get an idea about the 114 capabilities of the system it runs on. Alternatively, it can 115 decide to de-register old plugins and register new ones.</para> 116 117 <para>The Process Tree is probably the most important thing of 118 the MMIO subsystem. It is a tree structure, having different kind 119 of nodes connected together, describing the layered architecture 120 of the multimedia content to be played back. This tree is built 121 somewhat automatically by the MMIO subsystem, using the 122 registered plugins of the Plugin List. The top of the tree has a 123 URL node, containing only the URL string itself, while the bottom 124 of the tree will have Terminator nodes, the 125 <quote>Visualization</quote> nodes for every supported stream of 126 the URL. Here is an example of an imaginary URL and the Process 127 Tree created from it by the MMIO subsystem:</para> 128 129 <para>URL: http://www.server.com/Films/LOTR_Trailer.avi</para> 130 131 <para>As you can see, this example has an AVI file containing one 132 video stream in DIVX format, one audio stream for the video in 133 MPEG Audio format, and one Subtitle stream for all these, in DVD 134 Subtitle format. All these elementary streams (ES) have a raw 135 stream (RS) descendant, meaning that a decoder has been found for 136 all of them, and all of them has a Terminator (Term) node, 137 meaning that all the decoder outputs can be sent to the screen or 138 speaker, so all of them can be played back. More about node types 139 and their purpose later.</para> 140 141 <para>Having three Terminator nodes means that we have three 142 independent streams we can play back. We could send a <command> 143 Start Playback</command> command to all the three of these 144 Terminator nodes, which would mean that the playback of all these 145 streams would be started, and we would be able to watch and 146 listen to the movie.</para> 147 148 <para>However, usually it's not this simple. Nothing 149 guarantees that starting the playback this way, independently, 150 stream-by-stream, will result in an experience where the video 151 and the audio goes together. There must be <quote>lipsync</quote> 152 as it's usually called, meaning that the audio and the video 153 has to go together in order to have an enjoyable 154 experience.</para> 155 156 <para>That's the reason why there is a third expression in 157 the MMIO subsystem to get familiar with: the Stream Groups.</para> 158 159 <para>Stream Groups are logical entities, grouping Terminator 160 nodes together. One can create a Stream Group from the three 161 Terminator nodes of the example above, and send the <command> 162 Start Playback</command> command to the Stream Group. The Stream 163 Group itself will take care of the lipsync, and will make sure 164 that all the streams grouped together in it will move and act 165 together.</para> 166 167 </section> 168 169 <section id="dov.triton.bo.nntpt"> 170 171 <title>Nodes and Node Types in the Process Tree</title> 172 173 <para>The Process Tree is built from nodes. Every node in the 174 tree has a type, and has a string describing the format which 175 that node can provide. Using the Process Tree example we had 176 before, there is a node which is a URL node (its type is URL), 177 and can provide <quote>urls</quote> to any other nodes that are 178 connecting to it.</para> 179 180 <para>The MMIO subsystem looked through its list of available 181 plugins, and found a media handler plugin that can handle that 182 URL node. Using that plugin, a new node was created, which is a 183 Media node, describing the media contained in the URL. This new 184 Media node was created by the media handler plugin (http handler 185 plugin, in our example), and that plugin also checked what kind 186 of stuff it can provide. It saw that the URL contains a file, 187 which has the extension of <computeroutput>.avi</computeroutput>, 188 so it reports that this node can provide an AVI container format 189 to everyone who connects to it. As it's a Media node, 190 everybody will be able to use the node's type-specific 191 functions, like seeking, reading and other Media-specific 192 functions.</para> 193 194 <para>The MMIO subsystem tried to <quote>grow</quote> this 195 process tree, so again looked into its plugin list, and found a 196 plugin which can handle AVI container formats (cont_AVI format 197 strings). This is the AVI demuxer plugin. Using that plugin, new 198 nodes of the Process Tree could be built. The first one is a 199 Channel node, which describes logical channels in a given 200 container. There is only one channel in an AVI file, but for 201 example the MPEG Transport Stream containers, used by the digital 202 television broadcasting systems have a lot of channels in one 203 container, namely a lot of TV channels, and each of the channels 204 have at least one Video elementary stream and one or more Audio 205 elementary streams. So, the Channel node is to be able to group 206 the available Elementary Stream Nodes of a given container.</para> 207 208 <para>It's still the AVI demuxer plugin which examined the 209 AVI file format (using the Media node to read and seek in the 210 file) and found out that there are three Elementary Streams (ES) 211 in this AVI file, namely one video stream in DIVX format, one 212 audio stream in MPEG Audio format, and a subtitle stream with 213 DVD-format subtitles. So, the AVI demuxer plugin has created four 214 new nodes into the Process Tree.</para> 215 216 <para>The ball is at the side of the MMIO subsystem again. 217 It's still trying to grow the process tree, so it's 218 looking for plugins to handle the three new Nodes of the tree. 219 It's lucky again, and based on the plugin list, it finds 220 decoder plugins for all the three formats, namely a DIVX decoder 221 plugin for the es_v_DIVX format, an MPEG Audio decoder plugin for 222 the es_a_MPA format, and a DVD Subtitle decoder/renderer plugin 223 for the es_s_DVD format.</para> 224 225 <para>Using these decoder plugins for the corresponding nodes, 226 each of the decoder plugins create one new Node into the tree, a 227 Raw Stream Node. The Raw Stream (RS) terminology means decoded 228 elementary streams, so while reading data from Elementary Streams 229 would give encoded/compressed data, reading from Raw Streams 230 gives decoded/uncompressed data, which can be directly shown on 231 the screen, or sent to the audio card.</para> 232 233 <para>The MMIO subsystem does not give up, and still checks if it 234 has plugins to handle the new nodes. It finds a video output 235 plugin, which is capable of displaying YUV422 formatted images on 236 the screen, and connects it to the video RS node. Also finds an 237 audio output plugin which can handle the PCM audio format, and 238 connects it to the audio RS node. The subtitle RS node will be 239 handled by a subtitle visualizer plugin. All these plugins have 240 one thing in common: they <quote>eat</quote> data from the upper 241 layers, but do not provide any data, as they consume them by 242 showing it. That's why they are called Terminator Nodes, 243 because they terminate a given branch of the Process Tree.</para> 244 245 <para>Now the MMIO subsystem can see that all the leafs of the 246 Process Tree are either Terminator nodes (so there is no task to 247 do with them), or there was no plugin to handle them (none of the 248 nodes are such in our example). So, it gives up growing the tree, 249 the Process Tree has been built successfully.</para> 250 251 </section> 252 253 </section> 254 255 <section id="dov.triton.ums"> 256 257 <title>Using the MMIO Subsystem</title> 258 259 <section id="dov.triton.ums.f"> 260 261 <title>Foreword</title> 262 263 <para>Now that you've reached this chapter, you've 264 either read through the hard part, or you've simply skipped 265 the previous parts. If you've read through the previous 266 parts, you know the basic idea behind the MMIO subsystem, and 267 you'll be able to use it in a more advanced way, customize 268 it for your needs. However, if you haven't read through the 269 previous parts, it's not a problem, the MMIO subsystem can 270 be used very easily without that knowledge too, 271 <xref linkend="dov.triton.ums.qu"/> is for you then.</para> 272 273 </section> 274 275 <section id="dov.triton.ums.qu"> 276 277 <title>Quick Usage</title> 278 279 <para>This chapter is to be done.</para> 280 281 </section> 282 283 <section id="dov.triton.ums.au"> 284 285 <title>Advanced Usage</title> 286 287 <para>This chapter is to be done.</para> 288 289 <para>Using the MMIO subsystem:</para> 290 291 <itemizedlist> 292 293 <listitem> 294 295 <para>Init MMIO</para> 296 297 </listitem> 298 299 <listitem> 300 301 <para>Query/Manage plugin list</para> 302 303 </listitem> 304 305 <listitem> 306 307 <para>Open URL</para> 308 309 </listitem> 310 311 <listitem> 312 313 <para>Create stream group</para> 314 315 </listitem> 316 317 <listitem> 318 319 <para>Start playback</para> 320 321 </listitem> 322 323 <listitem> 324 325 <para>Clean up</para> 326 327 </listitem> 328 329 </itemizedlist> 330 331 </section> 332 333 </section> 334 335 <section id="dov.triton.maap"> 336 337 <title>The MMIO API for Application Programmers</title> 338 339 <para>This chapter is to be done.</para> 340 341 </section> 342 343 <section id="dov.triton.cpms"> 344 345 <title>Creating Plugins for the MMIO Subsystem</title> 346 347 <para>This chapter is to be done.</para> 348 349 </section> 350 351 <section id="dov.triton.pg"> 352 353 <title>Programming Guidelines</title> 354 355 <para>This chapter is to be done.</para> 356 357 <para>Use MMIOmem.h and the Triton Porting Layer, where possible, 358 so the plugins will be portable, memory leaks will be detectable 359 and trackable.</para> 360 361 </section> 362 341 363 </chapter> 364 -
DOV/ch10.xml
r60 r70 34 34 now there are many open questions and maybe you have a lot of know 35 35 how about kernel design. So you could for example contribute to the 36 kernel chapter in this book to make sure , we get more details in37 there. It is up to you, feel free to contact us on any of the ways38 mentioned here.</para>36 kernel chapter in this book to make sure that we get more details 37 in there. It is up to you, feel free to contact us on any of the 38 ways mentioned here.</para> 39 39 40 40 <para>Please introduce yourself quickly when you join IRC or the … … 67 67 68 68 <para>If you do not like mailing-lists you can use a web/news 69 (nntp) interace as well. This is provided by gmane.org, a mail to70 news and vice versa gateway. The Voyager mailinglist can be found71 here: <ulink url="http://dir.gmane.org/"/></para>69 (nntp) interace as well. This is provided by gmane.org, a 70 mail-to-news and vice versa gateway. The Voyager mailinglist can 71 be found here: <ulink url="http://dir.gmane.org/"/></para> 72 72 73 73 </section> … … 83 83 84 84 <para>Please check this page as well for instructions about 85 Subversion. The re structure of the Voyager repoistory is a bit85 Subversion. The structure of the Voyager repository is a bit 86 86 complex, the most recent information about how to get it can be 87 87 found in TRAC as well.</para> … … 95 95 <title>Users</title> 96 96 97 <para>Users can contribute as well to Voyager right now. While97 <para>Users can contribute to Voyager right now as well. While 98 98 there is nothing to test yet and probably won't be for the 99 99 next months, it is important that people know Voyager right from … … 101 101 confusion among users about what Voyager is, or will be. Also, many 102 102 people think that netlabs.org will now stop developing for eCS and 103 OS/2. Again, this is absolutely not the case and you can help us ,104 if you talk to users about that and explain the idea of Voyager.105 The worst thing that could happen iswhen the already small OS/2106 and eCS community split sup into two parts. So help us doing103 OS/2. Again, this is absolutely not the case and you can help us if 104 you talk to users about that and explain the idea of Voyager. The 105 worst thing that could happen would be when the already small OS/2 106 and eCS community splitted up into two parts. So help us doing 107 107 Voyager advocacy but also listen to the arguments and fears of 108 108 people who do not understand or like the idea of Voyager yet. It is 109 109 important that we take them seriously and try to show them that 110 110 their arguments are not valid. Even sceptical people might come up 111 with great ideas we did not think of , if this is the case, let us111 with great ideas we did not think of. If this is the case, let us 112 112 know. See <xref linkend="dov.contrib.d"/> about how to get in touch 113 113 with us.</para> … … 120 120 121 121 <para>Present Voyager to your local usergroup, distribute this 122 book to people and show presentations available at netlabs.org.123 The Developers Workshop presentation is also available as124 Ogg-file so you could listen to it to get some more125 details.</para>122 book to people, and show presentations available at 123 netlabs.org. The Developers Workshop presentation is also 124 available as Ogg-file so you could listen to it to get some 125 more details.</para> 126 126 127 127 </listitem> … … 145 145 146 146 <para>Try to bring Voyager into the news, write articles about 147 i fif you have contacts. We need to attract more people and147 it if you have contacts. We need to attract more people and 148 148 getting news coverage might help a lot about that.</para> 149 149 … … 173 173 174 174 <para>Explain where to get the strings to translate, explain how 175 one can get Subversion commiter for a language etc.</para>175 one can get Subversion commiter for a language, etc.</para> 176 176 177 177 <para>It is a bit too early for that, will be described as soon as … … 185 185 186 186 <para>As you can imagine, Voyager is a very big project. So far all 187 programmers working on Voyager do this in their spare time for188 free. While this works for quite some open source project it is189 also a fact,that almost all big successful projects do have190 fulltime programmers working on it. The benefit is quite obvious,191 there is a difference if one can work 8 hours a day, 5 days a week192 on a projector just a few hours a week or in best case a few hours187 programmers working on Voyager do this for free in their 188 spare-time. While this works for quite some open source project, it 189 is also a fact that almost all big successful projects do have 190 fulltime programmers working on them. The benefit is quite obvious: 191 There is a difference if one can workon a project 8 hours a day, 5 192 days a week or just a few hours a week or in best case a few hours 193 193 a day. Projects like OpenOffice.org, Mozilla but also Gnome and KDE 194 194 do have fulltime programmers.</para> … … 196 196 <para>netlabs.org already hires developers, on project or permanent 197 197 base. So far the development was payed with sponsoring from users 198 and companies, if there was not enough moneythe founder of199 netlabs.org, Adrian Gschwend, payed the difference on its own.198 and companies, and if there was not enough money, the founder of 199 netlabs.org, Adrian Gschwend, payed the difference on his own. 200 200 During the last three years Adrian Gschwend invested around 201 201 20'000 Euro of his very own money into netlabs.org.</para> 202 202 203 203 <para>While this was ok for the last three years he has to change 204 that now. netlabs.org should get self-supporting. 204 that now. netlabs.org should get self-supporting.</para> 205 205 206 206 </section> -
DOV/foreword.xml
r54 r70 1 1 <?xml version='1.0'?> 2 <!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3b2/docbookx.dtd"> 2 <!DOCTYPE preface PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" 3 "http://www.oasis-open.org/docbook/xml/4.3b2/docbookx.dtd"> 3 4 <preface> 4 5 … … 8 9 <para>For years the book <citetitle pubwork="book">The Design of 9 10 OS/2</citetitle> <citation>Kogan92</citation> was recommended by 10 programmers as a reference for everyone who want sto write an operating system.11 programmers as a reference for everyone who wanted to write an operating system. 11 12 The book gave an insight into the design of a modern operating system at the time 12 13 but was still easy to read for not that experienced programmers.</para> 13 14 14 <para>This book tries to provide the same for <quote>The Voyager 15 Project</quote>, an attempt to create an object oriented workplace for the 21th16 century. The ultimate goal is to make it easy for new programmers to join the17 project. This bookwill give you a starting point for that.</para>15 <para>This book tries to provide the same for <quote>The Voyager Project</quote>, 16 an attempt to create an object oriented workplace for the 21th century. The 17 ultimate goal is to make it easy for new programmers to join the project. This book 18 will give you a starting point for that.</para> 18 19 19 20 <para>— <author>
Note:
See TracChangeset
for help on using the changeset viewer.