Abstract
This paper presents an initiative program aimed at enhancing Linux device driver designing and maintenance by launching a long-term process that will attend the OS kernel development. This process includes two adjacent lines of activity: 1) creation and replenishment of a repository of potential faults and errors that may occur in Linux device drivers, and 2) development and improvement of special-purpose verification tools for automatic detection of all errors specified in repository. We describe in some details both lines of activity, present an architecture of a perspective verification toolset, compare our project with similar work, and finally discuss the current state of art in Linux device driver verification.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Gillen, A., Stergiades, E., Waldman, B.: The role of Linux servers and commercial workloads (2008), http://www.linux-foundation.org/publications/IDC_Workloads.pdf
Chou, A., Yang, J., Chelf, B., Hallem, S., Engler, D.: An empirical study of operating systems errors. In: SOSP 2001: Proceedings of the eighteenth ACM symposium on Operating systems principles, pp. 73–88. ACM, New York (2001)
Swift, M.M., Bershad, B.N., Levy, H.M.: Improving the reliability of commodity operating systems. In: SOSP 2003: Proceedings of the nineteenth ACM symposium on Operating systems principles, pp. 207–222. ACM, New York (2003)
Senyard, A., Michlmayr, M.: How to have a successful free software project. In: 11th Asia-Pacific Software Engineering Conference, pp. 84–91 (2004)
Kroah-Hartman, G., Corbet, J., McPherson, A.: Linux kernel development (2008), http://www.linux-foundation.org/publications/linuxkerneldevelopment.php
Kroah-Hartman, G.: The Linux kernel driver interface, http://www.kernel.org/doc/Documentation/stable_api_nonsense.txt
Raymond, E.S.: The Cathedral and the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary. O’Reilly, Sebastopol (2001)
Glass, R.L.: Facts and Fallacies of Software Engineering, 1st edn. Addison Wesley Professional, Sebastopol (2003)
Web-site: Linux Verification Center, http://linuxtesting.ru
LKML: Message 41536, http://www.mail-archive.com/git-commits-head@vger.kernel.org/msg41536.html
Ball, T., Rajamani, S.K.: SLIC: A specification language for interface checking. Technical report, Microsoft Research (2001)
Post, H., Küchlin, W.: Integrated static analysis for Linux device driver verification. In: Davies, J., Gibbons, J. (eds.) IFM 2007. LNCS, vol. 4591, pp. 518–537. Springer, Heidelberg (2007)
Henzinger, T.A., Jhala, R., Majumdar, R., McMillan, K.L.: Abstractions from proofs. SIGPLAN Not. 39(1), 232–244 (2004)
Henzinger, T.A., Jhala, R., Majumdar, R.: Lazy abstraction. In: Symposium on Principles of Programming Languages, pp. 58–70. ACM Press, New York (2002)
Ball, T., Bounimova, E., Cook, B., Levin, V., Lichtenberg, J., McGarvey, C., Ondrusek, B., Rajamani, S.K., Ustuner, A.: Thorough static analysis of device drivers. SIGOPS Oper. Syst. Rev. 40(4), 73–85 (2006)
Ball, T., Cook, B., Levin, V., Rajamani, S.K.: SLAM and Static Driver Verifier: technology transfer of formal methods inside Microsoft. Technical report, Microsoft Research (2004)
Breuer, P., Pickin, S.: Open source certification. FLOSS-FM (2008)
Ball, T., Majumdar, R., Millstein, T., Rajamani, S.K.: Automatic predicate abstraction of C programs. SIGPLAN Not. 36(5), 203–213 (2001)
Henzinger, T.A., Jhala, R., Majumdar, R., Necula, G.C., Sutre, G., Weimer, W.: Temporal-safety proofs for systems code. In: Brinksma, E., Larsen, K.G. (eds.) CAV 2002. LNCS, vol. 2404, pp. 526–538. Springer, Heidelberg (2002)
Beyer, D., Henzinger, T.A., Jhala, R., Majumdar, R.: The software model checker Blast: Applications to software engineering. Int. J. Softw. Tools Technol. Transf. 9(5), 505–525 (2007)
Beyer, D., Henzinger, T.A., Jhala, R., Majumdar, R.: Checking memory safety with blast. In: Cerioli, M. (ed.) FASE 2005. LNCS, vol. 3442, pp. 2–18. Springer, Heidelberg (2005)
Mühlberg, J.T., Lüttgen, G.: Blasting Linux code. In: Brim, L., Haverkort, B.R., Leucker, M., van de Pol, J. (eds.) FMICS 2006 and PDMC 2006. LNCS, vol. 4346, pp. 211–226. Springer, Heidelberg (2007)
Clarke, E., Kroening, D., Lerda, F.: A tool for checking ANSI-C programs. In: Jensen, K., Podelski, A. (eds.) TACAS 2004. LNCS, vol. 2988, pp. 168–176. Springer, Heidelberg (2004)
Witkowski, T., Blanc, N., Kroening, D., Weissenbacher, G.: Model checking concurrent Linux device drivers. In: ASE 2007: Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering, pp. 501–504. ACM, New York (2007)
Witkowski, T.: Formal verification of Linux device drivers. Master’s thesis, Dresden University of Technology (2007)
Breuer, P., Pickin, S.: Verification in the light and large: Large-scale verification for fast-moving open source C projects. In: Software Engineering Workshop, Annual IEEE/NASA Goddard, pp. 246–255 (2007)
Kim, M., Hong, S., Hong, C., Kim, T.: Model-based kernel tesiting for concurrency bugs through counter example replay. In: Fifth Workshop on Model-Based Testing (2009)
Coverity: Linux report (2004), http://scan.coverity.com
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Khoroshilov, A., Mutilin, V., Petrenko, A., Zakharov, V. (2010). Establishing Linux Driver Verification Process. In: Pnueli, A., Virbitskaite, I., Voronkov, A. (eds) Perspectives of Systems Informatics. PSI 2009. Lecture Notes in Computer Science, vol 5947. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-11486-1_14
Download citation
DOI: https://doi.org/10.1007/978-3-642-11486-1_14
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-11485-4
Online ISBN: 978-3-642-11486-1
eBook Packages: Computer ScienceComputer Science (R0)