Application of Software Components in Operating System Design

This thesis describes the primary goal of the HelenOS microkernel multiserver operating system. The primary goal of the HelenOS project is to create a comprehensive research and development platform in the domain of general-purpose operating systems that would support state-of-the-art approaches and methods (such as veri ication of correctness) while at the same time focusing on practical relevance. The text of the thesis describes what speci ic means in terms of design (based on software components), implementation, development process and veri ication are used to achieve the primary goal. The thesis also evaluates the current state of HelenOS.

[1]  N. Taleb Antifragile: Things That Gain from Disorder , 2012 .

[2]  Jean-Bernard Stefani,et al.  Building Reconfigurable Component-Based OS with THINK , 2006, 32nd EUROMICRO Conference on Software Engineering and Advanced Applications (EUROMICRO'06).

[3]  Dawson R. Engler,et al.  A few billion lines of code later , 2010, Commun. ACM.

[4]  Bev Littlewood,et al.  Reasoning about the Reliability of Diverse Two-Channel Systems in Which One Channel Is "Possibly Perfect" , 2012, IEEE Transactions on Software Engineering.

[5]  Andrew Warfield,et al.  Are Virtual Machine Monitors Microkernels Done Right? , 2005, HotOS.

[6]  Richard E. Ladner,et al.  The influence of caches on the performance of sorting , 1997, SODA '97.

[7]  Herbert Bos,et al.  Countering IPC Threats in Multiserver Operating Systems , 2008 .

[8]  Alan Shaw,et al.  The logical design of operating systems , 1987 .

[9]  Bernhard Schätz,et al.  Using Language Engineering to Lift Languages and Analyses at the Domain Level , 2013, NASA Formal Methods.

[10]  Thomas Sterling Network hardware , 2001 .

[11]  Roy H. Campbell,et al.  CuriOS: Improving Reliability through Operating System Structure , 2008, OSDI.

[12]  Jeff Bonwick,et al.  The Slab Allocator: An Object-Caching Kernel Memory Allocator , 1994, USENIX Summer.

[13]  Herbert Bos,et al.  Fault isolation for device drivers , 2009, 2009 IEEE/IFIP International Conference on Dependable Systems & Networks.

[14]  Petr Koupý Graphics Stack for HelenOS , 2013 .

[15]  J-C. Laprie,et al.  DEPENDABLE COMPUTING AND FAULT TOLERANCE : CONCEPTS AND TERMINOLOGY , 1995, Twenty-Fifth International Symposium on Fault-Tolerant Computing, 1995, ' Highlights from Twenty-Five Years'..

[16]  John Rushby Logic and Epistemology in Safety Cases , 2013, SAFECOMP.

[18]  James R. Larus,et al.  Singularity: rethinking the software stack , 2007, OPSR.

[19]  William Stallings,et al.  Operating Systems: Internals and Design Principles , 1991 .

[20]  Petr Tuma,et al.  Resource Sharing in Performance Models , 2007, EPEW.

[21]  Henry M. Levy,et al.  Capability-Based Computer Systems , 1984 .

[22]  Michael Norrish,et al.  seL4: formal verification of an operating-system kernel , 2010, Commun. ACM.

[23]  Gary J. Nutt Operating systems - a modern perspective (2. ed.) , 2000 .

[24]  Petr Tuma,et al.  A Non-Intrusive Read-Copy-Update for UTS , 2012, 2012 IEEE 18th International Conference on Parallel and Distributed Systems.

[25]  Jochen Liedtke,et al.  Improving IPC by kernel design , 1994, SOSP '93.

[26]  Ján Veselý HelenOS sound subsystem , 2013 .

[27]  Brian N. Bershad,et al.  The increasing irrelevance of IPC Performance for Micro-kernel-Based Operating Systems , 1992, USENIX Workshop on Microkernels and Other Kernel Architectures.

[28]  Frederick P. Brooks,et al.  No Silver Bullet: Essence and Accidents of Software Engineering , 1987 .

[29]  M. Dÿecky Component-based General-purpose Operating System , 2007 .

[30]  M. Thesis,et al.  Dynamic linker and debugging/tracing interface for HelenOS , 2008 .

[31]  Brett D. Fleisch,et al.  Workplace microkernel and OS: a case study , 1998 .

[32]  Jan Tretmans,et al.  TorX: Automated Model-Based Testing , 2003 .

[33]  하수철,et al.  [서평]「Component Software」 - Beyond Object-Oriented Programming - , 2000 .

[34]  Vojtěch Horký Support for NUMA hardware in HelenOS , 2011 .

[35]  Donald E. Knuth,et al.  Computer programming as an art , 1974, CACM.

[36]  Herbert Bos,et al.  Keep net working - on a dependable and fast networking stack , 2012, IEEE/IFIP International Conference on Dependable Systems and Networks (DSN 2012).

[37]  Jan Vitek,et al.  Real-Time Java in Space: Potential Benefits and Open Challenges , 2009 .

[38]  Gernot Heiser,et al.  Comprehensive formal verification of an OS microkernel , 2014, TOCS.

[39]  Lubos Brim,et al.  DiVinE 3.0 - An Explicit-State Model Checker for Multithreaded C & C++ Programs , 2013, CAV.

[40]  Jan Kofron Checking software component behavior using behavior protocols and spin , 2007, SAC '07.

[41]  Tomáš Brambora Task snapshoting in HelenOS , 2010 .

[42]  Herbert Bos,et al.  Can we make operating systems reliable and secure? , 2006, Computer.

[43]  Martin Decký A Road to a Formally Verified General-Purpose Operating System , 2010, ISARCS.

[44]  Richard McDougall,et al.  Solaris Internals: Solaris 10 and OpenSolaris Kernel Architecture , 2006 .

[45]  J. Liedtke On -Kernel Construction , 1995 .

[46]  Adam Hraška Read-Copy-Update for HelenOS , 2013 .

[47]  Jakub Jermář Porting SPARTAN kernel to SPARC V9 architecture , 2007 .

[48]  Jonathan Adams,et al.  Magazines and Vmem: Extending the Slab Allocator to Many CPUs and Arbitrary Resources , 2001, USENIX Annual Technical Conference, General Track.

[49]  Martín Abadi,et al.  XFI: software guards for system address spaces , 2006, OSDI '06.

[50]  Kate Wong A universe from nothing: Why there is something rather than nothing. , 2012 .

[51]  Antonín Steinhauser IPv6 for HelenOS , 2015 .

[52]  Heechul Yun,et al.  Context Switching and IPC Performance Comparison between uClinux and Linux on the ARM9 based Processor , 2004 .

[53]  Michael M. Swift,et al.  Nooks: an architecture for reliable device drivers , 2002, EW 10.

[54]  Jonathan Walpole,et al.  Resizable, Scalable, Concurrent Hash Tables via Relativistic Programming , 2011, USENIX ATC.

[55]  Jochen Liedtke,et al.  The performance of μ-kernel-based systems , 1997, SOSP.

[56]  Thomas Santen,et al.  Verifying the Microsoft Hyper-V Hypervisor with VCC , 2009, FM.

[57]  Adrian Schüpbach,et al.  The multikernel: a new OS architecture for scalable multicore systems , 2009, SOSP '09.

[58]  John Allspaw,et al.  How Complex Systems Fail , 2010, Web Operations.

[59]  Martin Decky,et al.  Teaching operating systems: student assignments and the software engineering perspective , 2008, SEESE '08.

[60]  Adrian Schüpbach,et al.  A Declarative Language Approach to Device Configuration , 2011, TOCS.

[61]  Networking and TCP/IP stack for HelenOS system , 2009 .

[62]  Jan Stoess,et al.  Towards effective user-controlled scheduling for microkernel-based systems , 2007, OPSR.

[63]  T. Oplustil Inheritance in Architecture Description Languages , 2003 .