Efficient software-based fault isolation
SOSP '93 Proceedings of the fourteenth ACM symposium on Operating systems principles
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Exokernel: an operating system architecture for application-level resource management
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Extensibility safety and performance in the SPIN operating system
SOSP '95 Proceedings of the fifteenth ACM symposium on Operating systems principles
Microkernels meet recursive virtual machines
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Safe kernel extensions without run-time checking
OSDI '96 Proceedings of the second USENIX symposium on Operating systems design and implementation
Flick: a flexible, optimizing IDL compiler
Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation
The Flux OSKit: a substrate for kernel and language research
Proceedings of the sixteenth ACM symposium on Operating systems principles
IEEE Transactions on Software Engineering
Active network vision and reality: lessions from a capsule-based system
Proceedings of the seventeenth ACM symposium on Operating systems principles
Proceedings of the Workshop on Micro-kernels and Other Kernel Architectures
A DSL Approach to Improve Productivity and Safety in Device Drivers Development
ASE '00 Proceedings of the 15th IEEE international conference on Automated software engineering
The Failure of Personalities to Generalize
HOTOS '97 Proceedings of the 6th Workshop on Hot Topics in Operating Systems (HotOS-VI)
Safe and Efficient Active Network Programming
SRDS '98 Proceedings of the The 17th IEEE Symposium on Reliable Distributed Systems
Adapting Distributed Applications Using Extensible Networks
ICDCS '99 Proceedings of the 19th IEEE International Conference on Distributed Computing Systems
Devil: an IDL for hardware programming
OSDI'00 Proceedings of the 4th conference on Symposium on Operating System Design & Implementation - Volume 4
Back to the future: a retroactive study of aspect evolution in operating system code
Proceedings of the 2nd international conference on Aspect-oriented software development
Brittle systems will break - not bend: can aspect-oriented programming help?
EW 10 Proceedings of the 10th workshop on ACM SIGOPS European workshop
Towards generative programming
UPP'04 Proceedings of the 2004 international conference on Unconventional Programming Paradigms
Hi-index | 0.00 |
Appliances represent a quickly growing domain that raises new challenges in OS design and development. First, new products appear at a rapid pace to satisfy emerging needs. Second, the nature of these markets makes these needs unpredictable. Lastly, given the competitiveness of such markets, there exists tremendous pressure to deliver new products. In fact, innovation is a requirement in emerging markets to gain commercial success.The embedded nature of appliances makes upgrading and fixing bugs difficult (and sometimes impossible) to achieve. Consequently, there must be a high level of confidence in the software. Additionally, the pace of innovation requires rapid OS development so as to match ever changing needs of new appliances.To offer confidence, software must be highly robust. That is, for a given type of appliance, critical behavioral properties must be determined and guaranteed (e.g., power management must ensure that data are not lost). Robustness can be provided by mechanisms and/or tools. The ideal approach takes the form of certification tools aimed at statically verifying critical properties. Such tools avoid the need for a laborious and error-prone testing process.To be first in a market requires not only that the testing process be shortened, but the development time as well. To achieve this goal, three strategies are needed: re-use of code to rapidly produce a new product by assembling existing building blocks, factorization of expertise to capitalize on domain-specific experience, and open-endedness of software systems to match evolving functionalities and hardware features.In this paper, existing OS approaches are assessed with respect to the requirements raised by appliances. The limitations of these approaches are analyzed and used as a basis to propose a new approach to designing and structuring OSes for appliances. This approach is based on Domain-Specific Languages (DSLs), and offers rapid development of robust OSes. We illustrate and assess our approach by concrete examples.