Remote customization of systems code for embedded devices

Dedicated operating systems for embedded systems are fast being phased out due to their use of manual optimization, which provides high performance and small footprint, but also requires high maintenance and portability costs every time hardware evolves.In this paper, we describe an approach based on customization of generic operating system modules. Our approach uses a remote customization server to automatically generate highly optimized code that is then loaded and executed in the kernel of the embedded device. This process combines the advantages of generic systems software code (leveraging portability and evolution costs) with the advantages of customization (small footprint and low overhead).We have validated our customization infrastructure with a case study: the TCP/IP stack of the Linux kernel. We analyzed the performance and size of the customized code generated on three platforms: a Pentium III (600MHz), an ARM SA1100 (200Mhz) on a COMPAQ iPAQ, and a 486 (40MHz). The customized code runs about 25% faster and its size reduces by up to a factor of 20. The throughput of the protocol stack improves by up to 21%.

[1]  Julia L. Lawall,et al.  A tour of Tempo: a program specializer for the C language , 2004, Sci. Comput. Program..

[2]  Frank Piessens,et al.  A survey of customizability in operating systems research , 2002, CSUR.

[3]  Dawson R. Engler,et al.  Exokernel: an operating system architecture for application-level resource management , 1995, SOSP.

[4]  Julia L. Lawall,et al.  Capturing OS expertise in an event type system: the Bossa experience , 2002, EW 10.

[5]  Julia L. Lawall,et al.  Specialization Scenarios: A Pragmatic Approach to Declaring Program Specialization , 2004, High. Order Symb. Comput..

[6]  Calton Pu,et al.  Optimistic incremental specialization: streamlining a commercial operating system , 1995, SOSP.

[7]  Emin Gün Sirer,et al.  SPIN—an extensible microkernel for application-specific operating system services , 1995, OPSR.

[8]  Jay Lepreau,et al.  The Flux OSKit: a substrate for kernel and language research , 1997, SOSP.

[9]  Dominic Duggan,et al.  Type-based hot swapping of running modules , 2005, Acta Informatica.

[10]  Calton Pu,et al.  Specialization tools and techniques for systematic optimization of system software , 2001, TOCS.

[11]  Margo I. Seltzer,et al.  Dealing with disaster: surviving misbehaved kernel extensions , 1996, OSDI '96.

[12]  Dominic Duggan Type-based hot swapping of running modules (extended abstract) , 2001, ICFP '01.

[13]  Norman C. Hutchinson,et al.  Kea-a dynamically extensible and configurable operating system kernel , 1996, Proceedings of International Conference on Configurable Distributed Systems.

[14]  Calton Pu,et al.  Automatic Specialization of Protocol Stacks in OS kernels , 2004 .

[15]  Peter Sestoft,et al.  Partial evaluation and automatic program generation , 1993, Prentice Hall international series in computer science.