CHARLES UNIVERSITY IN PRAGUE FACULTY OF MATHEMATICS AND PHYSICS
DOCTORAL THESIS
Martin Děcký
Application of Software Components in Operating System Design
Department of Distributed and Dependable Systems
Supervisor of the Doctoral Thesis: Doc. Ing. Petr Tůma, Dr.
Study Programme: Computer Science Specialization: I2 Software Systems
Prague 2015 ii Acknowledgements
The text of this doctoral thesis captures my original thoughts related to the HelenOS microkernel multiserver operating system. The text describes my overall in luence on the design of HelenOS and also my individual contributions to the implementation of HelenOS. That being written, it is completely necessary to acknowledge that no human is an island and (almost) all ideas are always extensions and recombination of previous ideas.
The current source code of HelenOS in its mainline branch [42] comprises of more than 287,000 physical lines of code (see Figure 7.2). These 287,000 physical lines of code were contributed by more that 50 individuals and organizations (including myself) over the entire history of HelenOS and its direct ancestors since 2001. The size of the code would be even higher if we would also count in all the original code that can be found in the numerous feature branches of HelenOS [41] and the code in standalone patches that still wait for their inal review and merging into the main- line branch. For the sake of simplicity, we also ignore the code that was once written, but later refactored, replaced or removed.
Assessing my own personal contribution to the HelenOS mainline branch can be done in a straight- forward way by examining the source code repository. A conservative estimate is that the mainline branch contains about 15 % of source lines created or modi ied by me (ignoring copyright headers, refactoring of foreign code, trivial coding style ixes, generated and binary iles, all my contribu- tions before August 2009, etc.). 589 iles out of 3215 (i.tag">e. approximately 18 %) carry my copyright header. Putting one’s name into the copyright header is a HelenOS custom to tag iles that contain a signi icant contribution (not just minor modi ications) from the given developer. Historically, I am the second most active contributor with a total of 2171 changesets committed (out of 7017).
It is also fairly easy to quantify my other work related to HelenOS: At the Charles University in Pra- gue, I have personally supervised 19 successfully defended master theses and 2 successfully de- fended bachelor theses related to HelenOS (an additional master thesis is currently in progress under my supervision). I have also supervised 1 successfully defended individual project and 2 suc- cessfully defended team software projects that were related to HelenOS. I have acted three times as HelenOS organization administrator for Google Summer of Code (in 2011, 2012 and 2014) and twice for ESA Summer of Code in Space (in 2013 and 2015). Within these programs, I have men- tored 3 students. Finally, I have presented HelenOS at 5 major international events (ISARCS 2010, FOSDEM 2012, FOSDEM 2013, FOSDEM 2014 and FOSDEM 2015).
Assessing my contribution from qualitative point of view is certainly not so straightforward. As it is with the ideas themselves, every singular contribution can be analyzed for an almost arbitrary long time to evaluate the proportion of personal effort. Just as a model example, I have person- ally reviewed the source code of many (but not all) deliverables of the theses and projects I have supervised or mentored before merging it into the mainline branch of HelenOS. I have modi ied the source code written by the students – at times, these modi ications were only minor coding style cleanups, but at different times, it was a major refactoring or rewrite.
The success of my “gatekeeping” work was clearly conditioned by the existence of the source code delivered by the original authors. On the other hand, I have also indirectly in luenced that source code via my supervision or mentoring and even more importantly, my modi ications to the source code during the reviewing process represent my own original input.
iii Acknowledgements iv
Therefore I leave the judgement about the proportion of my contribution to HelenOS to the kind reader. I hereby declare that I am completely open about the fact that HelenOS is an open source project, a long-term team and community effort and a mosaic assembled from individual ideas and contributions of many people working on a shared source base and in a shared design environment. In case of any doubt, I am ready to provide any additional information necessary to clarify the actual extent of my contribution to HelenOS. I irmly believe that my own body of work on HelenOS entitles me to express my ideas in this doctoral thesis.
Any time I use the phrases “the authors of HelenOS”, “the developers of HelenOS” and similar ex- pressions in the context of design and implementation of HelenOS, the expressions should be under- stood in the following way: The given subject matter has been under discussion among the mem- bers of the HelenOS community (including me) and the described opinion is a generally accepted consensus in the HelenOS community.
Personal Remarks
First and foremost, I would like to express my gratitude to Jakub Jermář for starting HelenOS and accepting me into the original HelenOS team. Without Jakub, his enthusiasm for operating systems and his natural leadership authority, my professional life would have undeniably went on a com- pletely different path. I would have missed many interesting events and encounters that HelenOS enabled us. I would also like to thank Jakub for being my close personal friend over the years. His constant optimism, his openness and certainly also his dedication to HelenOS helped not only me, but all contributors to HelenOS to realize their dreams.
A big thank you also goes to the other members of the original HelenOS team software project: Sergey Bondari, Josef C