Abstract
A year-long trial has seen a large lightweight verification problem treated by an ad hoc distributed network of identical solvers. The trialled problem is the semantic analysis of the C code in the Linux kernel to exclude a common deadlock possibility. The aim of the programme behind the experiment is to develop a viable loosely coupled distributed formal method which a community of interested part-time helpers on the net can lend their computing cycles to as they will, or send their own verification problems to for solving.
Similar content being viewed by others
References
Abujarad F, Bonakdarpour B, Kulkarni S (2009) Parallelizing deadlock resolution in symbolic synthesis of distributed programs. In: Proceedings of PDMC 2009: 8th international workshop on parallel and distributed methods in verifixation, November 4, 2009, Eindhoven, The Netherlands (with Formal Methods 2009, November 2–6, 2009)
American National Standard for Information Systems—Programming Language C, ANSI X3.159-1989. American National Standards Institute (1989)
Anderson DP (2004) BOINC: a system for public-resource computing and storage. In: Proceedings of the 5th IEEE/ACM international workshop on grid computing, November 8, 2004, Pittsburgh, USA
Anderson DP, Korpela E, Walton R (2005) High-performance task distribution for volunteer computing. In: Proceedings of the first IEEE international conference on e-science and grid technologies, December 5–8, 2005, Melbourne, Australia
Ball T, Rajamani SK (2002) The SLAM project: debugging system software via static analysis. In: Proceedings of the POPL ’02: proceedings of the ACM SIGPLAN-SIGACT conference on principles of programming languages
Bobko PK (2001) Open-source software and the demise of copyright. Rutgers Comput Technol Law J 27: 51–92
Barnett M, Rustan K, Leino M, Schulte W (2004) The Spec# programming system: an overview, CASSIS 2004. Lecture notes in computer science, vol 362. Springer, Berlin
Beck K (1999) Extreme programming explained: embrace change. Addison-Wesley, Reading
Breuer PT, García Valls M (2004) Static deadlock detection in the Linux Kernel. In: Llamosí A, Strohmeier A (eds) Reliable software technologies—Ada-Europe 2004, 9th Ada-Europe international conference on reliable software technologies, Palma de Mallorca, Spain, June 14–18, 2004. ISBN 3-540-22011-9. Lecture notes in computer science, vol 3063. Springer, Berlin, pp 52–64
Breuer PT, Pickin S (2006) One million (LOC) and counting: static analysis for errors and vulnerabilities in the Linux Kernel source code. In: Pinho LM, Harbour MG (eds) Proceedings of reliable software technologies—Ada-Europe 2006, 11th Ada-Europe international conference on reliable software technologies, June 2006, Oporto, Portugal. Lecture notes in computer science, vol 4006. Springer, Berlin, pp 56–70
Breuer PT, Pickin S (2006) Symbolic approximation: an approach to verification in the large innovations in systems and software engineering—a NASA journal, October 2006. Springer, London
Clarke E, Emerson E, Sistla A (1986) Automatic verification of finite-state concurrent systems using temporal logic specifications. ACM Trans Program Lang Syst 8(2): 244–253
Cousot P, Cousot R (1977) Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Proceedings of the 4th ACM symposium on the principles of programming languages, pp 238–252
Engler D, Chelf B, Chou A, Hallem S (2000) Checking system rules using system-specific, programmer-written compiler extensions. In: Proceedings of the 4th symposium on operating system design and implementation (OSDI 2000), October 2000, pp 1–16
Evans D, Larochelle D (2002) Improving security using extensible lightweight static analysis. IEEE Software, New York, Jan/Feb 2002
Foster JS, Terauchi T, Aiken A (2002) Flow-sensitive type qualifiers. In: Proceedings of the ACM SIGPLAN conference on programming language design and implementation (PLDI’02), Berlin, Germany, June 2002, pp 1–12
Gomulkiewicz RW (1999) How copyleft uses license rights to succeed in the open source software revolution and the implications for article 2B. Houston Law Rev 36: 179–194
Guttag JV, Horning JJ (1991) A tutorial on Larch and LCL, a Larch/C interface language. VDM ’91 Formal Software Development Methods. Lecture notes in computer science, vol 552. Springer, Berlin, pp 1–78
Griffith A (2002) GCC: the complete reference. McGraw-Hill/ Osborne, New York
Hoare CAR (1969) An axiomatic basis for computer programming. Commun ACM 12(10): 576–580, 583
Holzmann GJ (2003) The SPIN MODEL CHECKER: primer and reference manual. Addison-Wesley, Reading
Holzmann GJ, Joshi R, Groce A (2008) Swarm verification. In: Proceedings of the ASE 2008, 23rd IEEE/ACM international conference on automated software engineering. l’Aquila, Italy, September 2008
Holzmann GJ, Joshi R, Groce A (2008) Model driven code checking. Autom Softw Eng 15(3–4): 283–297
ISO/IEC 9899-1999, Programming Languages—C. International Standards Organisation (1999)
Johnson R, Wagner D (2004) Finding user/kernel pointer bugs with type inference. In: Proceedings of the 13th USENIX security symposium, Aug 9–13, 2004, San Diego, CA, USA
Kernighan B, Ritchie D (1988) The C language, 2nd edn. Prentice-Hall, Englewood Cliffs
Kroah-Hartman G (2006) Linux kernel development: how fast is it going, who is doing it, what they are doing, and who is sponsoring it. In: Proceedings of the OLS ’06: the 2006 Ottawa Linux Symposium, July 2006, Ottawa, Canada, pp 239–244
Schrijver A (1998) Theory of linear and integer programming. Wiley, New York
Wagner D, Foster JS, Brewer EA, Aiken A (2000) A first step towards automated detection of buffer overrun vulnerabilities. In: Proceedings of the network and distributed system security (NDSS) symposium 2000, February 2–4, San Diego, CA, USA
Watanabe S (2009) Solaris ZFS essentials. Prentice-Hall, Englewood Cliffs
Author information
Authors and Affiliations
Corresponding author
Rights and permissions
About this article
Cite this article
Breuer, P.T., Pickin, S. A formal nethod (a networked formal method). Innovations Syst Softw Eng 6, 255–268 (2010). https://doi.org/10.1007/s11334-009-0121-4
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11334-009-0121-4