Abstract
This work presents approaches for designing the input-output device management components of self-stabilizing operating systems. As an example, we demonstrate the nonstability of the ata standard protocol for storage devices. We state the requirements that an operating system and I/O devices should satisfy in order to become self-stabilizing. Then we suggest two solutions to satisfy these requirements. The first uses leases to guarantee progress from the I/O device side. The second assumes stabilization of the I/O device, and uses snapshots to perform consistency checks. A device driver for a PC hard-disk, using the first solution, was implemented. By supplying an infrastructure for practical self-stabilizing systems, robust and dependable systems can be achieved.
- Accetta, M., Baron, R., Bolosky, W., Golub, D., Rashid, R., Tevanian, A., and Young, M. 1986. MACH: a new kernel foundation for UNIX development. In Proceedings of the USENIX Summer Conference. USENIX Association, Berkeley, CA, 93--112.Google Scholar
- Ball, T., Bounimova, E., Cook, B., Levin, V., Lichtenberg, J., McGarvey, C., Ondrusek, B., Rajamani, S. K., and Ustuner, A. 2006. Thorough static analysis of device drivers. In Proceedings of European Systems Conference (EuroSys). ACM, New York, NY. Google Scholar
Digital Library
- Barham, P., Dragovich, B., Fraser, K., Hand, S., Ho, A., and Pratt, I. 2004. Safe hardware access with the Xen virtual machine monitor. In Proceedings of the 1st Workshop on Operating System and Architectural Support for On-Demand IT Infrastructure.Google Scholar
- Brukman, O., Dolev, S., and Kolodner, H. 2003. Self-stabilizing autonomic recoverer for eventual byzantine software. In Proceedings of IEEE International Conference on Software-Science Technology & Engineering (SwSTE). IEEE Computer Society, Los Alamitos, CA. Google Scholar
Digital Library
- Bochs. Bochs IA-32 Emulator Project. http://bochs.sourceforge.net/Google Scholar
- Ball, T. and Rajamani, S. K. 2002. The SLAM project: debugging system software via static analysis. In Proceedings of the 29th Symposium on Principles of Programming Languages (POPL). ACM, New York, NY. Google Scholar
Digital Library
- Cook, B., Podelski, A., and Rybalchenko, A. 2006. Terminator: beyond safety. In Proceedings of the 18th International Conference on Computer-Aided Verification, Lecture Notes in Computers Science, vol. 3414. Springer, Berlin, Germany. 415--418. Google Scholar
Digital Library
- Chou, A., Yang, J., Chelf, B., Hallem, S., and Engler D. 2001. An empirical study of operating systems errors. In Proceedings of the 18th ACM Symposium on Operating Systems Principles (SOSP). ACM, New York, NY. Google Scholar
Digital Library
- DeLine, R. and Fähndrich, M. 2001. Enforcing high-level protocols in low-level software. In Proceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI). ACM, New York, NY. Google Scholar
Digital Library
- Dolev, S. and Haviv, Y. 2006. Self-stabilizing microprocessor: analyzing and overcoming soft errors. IEEE Trans. Comput. 55, 4. Google Scholar
Digital Library
- Dolev, S., Haviv, Y., and Sagiv, M. 2005. Self-stabilization preserving compiler. In Proceedings of the 7th International Symposium on Self-Stabilizing Systems (SSS). Lecture Notes in Computer Science, vol. 3764. Springer, Berlin, Germany. Google Scholar
Digital Library
- Dijkstra, E. W. 1974. Self-stabilizing systems in spite of distributed control. Comm. ACM, 17, 11, 643--644. Google Scholar
Digital Library
- Dolev, S. 2000. Self-Stabilization, The MIT Press, Cambridge. Google Scholar
Digital Library
- Dolev, S. and Yagel, R. 2004. Toward self-stabilizing operating systems. In Proceedings of the 15th International Conference on Database and Expert Systems Applications, 2nd International Workshop on Self-Adaptive and Autonomic Computing Systems (SAACS,DEXA), 684--688, Google Scholar
Digital Library
- Dolev, S. and Yagel, R. 2005. Memory management for self-stabilizing operating systems. In Proceedings of the 7th Symposium on Self Stabilizing Systems (SSS). Lecture Notes in Computers Science, vol. 3764. Springer, Berlin, Germany. Google Scholar
Digital Library
- Hunt, G. C., Larus, J. R., Abadi, M., Aiken, M., Barham, P., Fahndrich, M., Hawblitzel, C., Hodson, O., Levi, S., Murphy, N., Steensgaard, B., Tarditi, D., Wobber, T., and Zill, B. 2005. An overview of the Singularity project, Tech. rep. MSR-TR-2005-135, Microsoft Corporation, Redmond, WA.Google Scholar
- Löeser, H. J., Mehnert, F., Reuther, L., Pohlack, M., and Warg, A. 2004. An I/O architecture for mikrokernel-based operating systems. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI). USENIX Association, Washington, DC.Google Scholar
- IBM. 2001. Autonomic computing initiative. http://www.research.ibm.com/autonomic.Google Scholar
- Intel Corporation. 2007. The IA-32 Intel architecture software developer's manual. http://developer.intel.com/design/pentium4/documentation.htm.Google Scholar
- Leslie, B. and B. Heiser, B. 2003. Towards untrusted device drivers. Tech. rep. UNSW-CSE-TR-0303, School of Computer Science and Engineering UNSW.Google Scholar
- LeVasseur, J. and Uhlig, V. 2004. A sledgehammer approach to reuse of legacy device drivers. In Proceedings of the 11th ACM SIGOPS European Workshop. ACM, New York, NY. Google Scholar
Digital Library
- LeVasseur, J., Uhlig, V., Stoess, J., and Götz, S. 2004. Unmodified device driver reuse and improved system dependability via virtual machines. In Proceedings of the 6th Symposium on Operating Systems Design and Implementation (OSDI). USENIX Association, Washington, DC. Google Scholar
Digital Library
- Mukherjee, S. S., Weaver, C., Emer, J., Reinhardt, S. K., and Austin, T. 2003. A systematic methodology to compute the architectural vulnerability factors for a high-performance microprocessor. In Proceedings of the 36th Annual International Symposium on Microarchitecture (MICRO). IEEE Computer Society, Washington, DC. Google Scholar
Digital Library
- nasm. The netwide assembler. http://nasm.sourceforge.net.Google Scholar
- Neumann, P. G., Boyer, R. S., Feiertag, R. J., Levitt, K. N., and Robinson, L. 1980. A provably secure operating system: the system, its applications, and proofs, Tech. rep. CSL-116, SRI International.Google Scholar
- Prabhakaran, V., Bairavasundaram, L. N., Agrawal, N., Gunawi, H. S., Arpaci-Dusseau, A. C., and Arpaci-Dusseau, R. H. 2005. IRON file systems. In Proceedings of the 20th ACM Symposium on Operating Systems Principles (SOSP). ACM, New York, NY. Google Scholar
Digital Library
- Patterson, D., Brown, A., Broadwell, P., Candea, G., Chen, M., Cutler, J., Enriquez, P., Fox, A., Kiciman, E., Merzbacher, M., Oppenheimer, D., Sastry, N., Tetzlaff, W., Traupman, J., and Treuhaft, N. 2002. Recovery oriented computing (ROC): motivation, definition, techniques and case studies. Tech. rep. UCB/CSD-02-1175, UC Berkeley Computer Science, Berkeley, CA. Google Scholar
Digital Library
- Swift, M. 2005. Improving the reliability of commodity operating systems, Ph.D. dissertation, University of Washington. Google Scholar
Digital Library
- Swift, M., Annamalai, M., Bershad, B. N., and Levy, H. M. 2004. Recovering device drivers. In Proceedings of the 6th ACM/USENIX Symposium on Operating Systems Design and Implementation (ODSI). USENIX Association, Washington, DC. Google Scholar
Digital Library
- Swift, M., Bershad, B. N., and Levy, H. M. 2003. Improving the reliability of commodity operating systems. In Proceedings of the 19th ACM Symposium on Operating Systems Principles (SOSP). ACM, New York, NY. Google Scholar
Digital Library
- Shapiro, J., Doerrie, M. S., Northup, E., Sridhar, S., and Miller, M. 2005. Towards a verified, general-purpose operating system kernel. http://www.coyotos.org.Google Scholar
- sos. http://www.cs.bgu.ac.il/~yagel/sos.Google Scholar
- Spear, M., Roeder, T., Hodson, O., Hunt, G., and Levi, S. 2006. Solving the starting problem: device drivers as self-describing artifacts. In Proceedings of the EuroSys. ACM, New York, NY. Google Scholar
Digital Library
- sss. http://www.selfstabilization.org.Google Scholar
- Sun Microsystems, Inc. 2004. Predictive self-healing in the Solaris#8482; 10 operating system. White paper http://www.sun.com/software/solaris/ds/self_healing.pdf.Google Scholar
- T13. International Committee for Information Technology Standards. ATA Storage Interface - T13/1532D Vol. 2. Rev. 4a (working drafts). http://www.t13.org/#Projects.Google Scholar
- Tanenbaum, A. S. and Woodhull, A. S. 2006. Operating Systems Design and Implementation. 3rd Ed, Prentice Hall. Google Scholar
Digital Library
- Van Maren, K. T. 1999. The Fluke device driver framework. Master's thesis, The University of Utah.Google Scholar
Index Terms
Self-stabilizing device drivers
Recommendations
Self-stabilizing device drivers
SSS'06: Proceedings of the 8th international conference on Stabilization, safety, and security of distributed systemsThis work presents approaches for designing the input-output device management components of self-stabilizing operating systems. As an example, we demonstrate the non-stability of the ATA standard protocol for storage devices. We state the requirements ...
Tolerating malicious device drivers in Linux
USENIXATC'10: Proceedings of the 2010 USENIX conference on USENIX annual technical conferenceThis paper presents SUD, a system for running existing Linux device drivers as untrusted user-space processes. Even if the device driver is controlled by a malicious adversary, it cannot compromise the rest of the system. One significant challenge of ...
Tight self-stabilizing mobile byzantine-tolerant atomic register
ICDCN '16: Proceedings of the 17th International Conference on Distributed Computing and NetworkingThis paper proposes the first implementation of a self-stabilizing atomic register that is tolerant to both Mobile Byzantine Agents and transient failures. The register is maintained by n servers and our algorithm tolerates (i) any number of transient ...






Comments