Patterns to Ease the Port of Micro-kernels in Embedded Systems

Micro-kernels are diicult to port to a new hardware platform. During the initial phases of a port, much time and eeort is lost on debugging critical machine-dependent subsystems. These subsystems are generally very tightly coupled and cannot be tested in an incremental fashion. Tight coupling occurs because the subsystems share many global variables forcing them to be debugged with the complete micro-kernel's code. The problem of porting and testing new micro-kernel ports has so far received little attention, and the work described in this paper is an attempt to ll this gap. A typical design pattern captures and communicates the development and reuse of objects and their interaction in a speciic context. In the embedded domain, we have found design patterns very useful to encapsulate requests, to decouple subsystems, and to make policies interchangeable. Our patterns are more than objects that work together to solve a design problem, they are also patterns for organizing other patterns to address the testing and porting issues. We describe the design and implementation of various object-based design patterns which address the problem of the initial porting of micro-kernels for embedded systems in a systematic and incremental fashion using bottom-up integration testing. The motivation behind our design patterns is presented along with an outline of their consequences, constraints and applicability to the port. In the course of several iterations, these patterns have been validated and reened through their use in porting of an existing embedded micro-kernel to diierent hardware platforms.

[1]  Roy H. Campbell,et al.  An object-oriented nano-kernel for operating system hardware support , 1995, Proceedings of International Workshop on Object Orientation in Operating Systems.

[2]  Emin Gün Sirer,et al.  SPIN: an extensible microkernel for application-specific operating system services , 1994, EW 6.

[3]  Daniel G. Bobrow,et al.  Book review: The Art of the MetaObject Protocol By Gregor Kiczales, Jim des Rivieres, Daniel G. and Bobrow(MIT Press, 1991) , 1991, SGAR.

[4]  Maurice V. Wilkes Operating systems in a changing world , 1994, OPSR.

[5]  Alan Burns,et al.  Real-time systems and their programming languages , 1986, International computer science series.

[6]  HE Ixtroductiont,et al.  The Bell System Technical Journal , 2022 .

[7]  Jim Lipkis,et al.  A New Look at Microkernel-Based UNIX Operating Systems : Lessons in Performance and Compatibility , 1991 .

[8]  Michel de Champlain,et al.  A reactive and reflective model for meta state machines , 1993 .

[9]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[10]  Pierre Paradinas,et al.  New directions for integrated circuit cards operating systems , 1994, EW 6.

[11]  Ian Sommerville Software engineering, 5th Edition , 1996 .

[12]  David R. Cheriton,et al.  The V distributed system , 1988, CACM.

[13]  J.A. Stankovic,et al.  Misconceptions about real-time computing: a serious problem for next-generation systems , 1988, Computer.

[14]  William J. Bolosky,et al.  Mach: A New Kernel Foundation for UNIX Development , 1986, USENIX Summer.

[15]  Calton Pu Evolving operating systems and architectures: how do kernel implementors catch up? , 1992, [1992] Proceedings of the Second International Workshop on Object Orientation in Operating Systems.

[16]  Jonathan Walpole,et al.  Objects to the rescue!: or httpd: the next generation operating system , 1994, EW 6.

[17]  Michel de Champlain Synapse : a real-time programming language , 1989 .