ICSE 2016 – Let’s Verify Linux: Accelerated Learning of Analytical Reasoning through Automation and Collaboration


We describe our experiences in the classroom using the internet to collaboratively verify a significant safety and security property across the entire Linux kernel. With 66,609 instances to check across three versions of Linux, the naive approach of simply dividing up the code and assigning it to students does not scale, and does little to educate. However, by teaching and applying analytical reasoning, the instances can be categorized effectively, the problems of scale can be managed, and students can collaborate and compete with one another to achieve an unprecedented level of verification.

We refer to our approach as Evidence-Enabled Collaborative Verification (EECV). A key aspect of this approach is the use of visual software models, which provide mathematically rigorous and critical evidence for verification. The visual models make analytical reasoning interactive, interesting and applicable to large software.

Visual models are generated automatically using a tool we have developed called L-SAP. This tool generates an Instance Verification Kit (IVK) for each instance, which contains all of the verification evidence for the instance. The L-SAP tool is implemented on a software graph database platform called Atlas. This platform comes with a powerful query language and interactive visualization to build and apply visual models for software verification.

The course project is based on three recent versions of the Linux operating system with altogether 37 MLOC and 66,609 verification instances. The instances are accessible through a website for students to collaborate and compete. The Atlas platform, the L-SAP tool, the structured labs for the project, and the lecture slides are available upon request for academic use.

Venue: 38th International Conference on Software Engineering (ICSE 2016), Austin, Texas, May 14-22, 2016

Authors: Suresh Kothari, Ahmed Tamrawi, Jeremías Sauceda, Jon Mathews

Paper (PDF): LetsVerifyLinux-ICSE2016.pdf

author = {Kothari, Suresh and Tamrawi, Ahmed and Sauceda, Jerem\'{\i}as and Mathews, Jon},
title = {Let's Verify Linux: Accelerated Learning of Analytical Reasoning Through Automation and Collaboration},
booktitle = {Proceedings of the 38th International Conference on Software Engineering Companion},
series = {ICSE '16},
year = {2016},
isbn = {978-1-4503-4205-6},
location = {Austin, Texas},
pages = {394--403},
numpages = {10},
url = {http://doi.acm.org/10.1145/2889160.2889192},
doi = {10.1145/2889160.2889192},
acmid = {2889192},
publisher = {ACM},
address = {New York, NY, USA},

Categories: Papers

Leave a Reply