Partial evaluation and automatic program generation
Partial evaluation and automatic program generation
Exokernel: an operating system architecture for application-level resource management
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Optimistic incremental specialization: streamlining a commercial operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Dealing with disaster: surviving misbehaved kernel extensions
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
The Flux OSKit: a substrate for kernel and language research
Proceedings of the sixteenth ACM symposium on Operating systems principles
Specialization tools and techniques for systematic optimization of system software
ACM Transactions on Computer Systems (TOCS)
Type-based hot swapping of running modules (extended abstract)
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
A survey of customizability in operating systems research
ACM Computing Surveys (CSUR)
Kea - A Dynamically Extensible and Configurable Operating System Kernel
ICCDS '96 Proceedings of the 3rd International Conference on Configurable Distributed Systems
Specialization Scenarios: A Pragmatic Approach to Declaring Program Specialization
Higher-Order and Symbolic Computation
A tour of tempo: a program specializer for the C language
Science of Computer Programming - Special issue on program transformation
Capturing OS expertise in an event type system: the Bossa experience
EW 10 Proceedings of the 10th workshop on ACM SIGOPS European workshop
BOTS: a constraint-based component system for synthesizing scalable software systems
Proceedings of the 2006 ACM SIGPLAN/SIGBED conference on Language, compilers, and tool support for embedded systems
Towards constructing reusable specialization components
Proceedings of the 2007 ACM SIGPLAN symposium on Partial evaluation and semantics-based program manipulation
Automated reduction of the memory footprint of the Linux kernel
ACM Transactions on Embedded Computing Systems (TECS) - Special Section LCTES'05
Remote specialization for efficient embedded operating systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Linux Kernel Compaction through Cold Code Swapping
Transactions on High-Performance Embedded Architectures and Compilers II
Hi-index | 0.00 |
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%.