Architecture-driven verification of systems software (ADVENT)
Systems software—such as operating system kernels, hypervisors, database engines, web servers and language run-times—forms the foundation of any modern computer system. It is extremely complex and hard to get right, with bugs making whole services unavailable or opening the doors of seemingly secure systems to viruses and criminals. Ensuring its reliability is thus imperative for building future trustworthy ICT infrastructures.
The ADVENT project will develop innovative methods and tools for cost-effective verification of real-world systems software, making it possible to guarantee an unprecedented level of reliability. We will achieve this by exploiting a trend among programmers to use informally described patterns, idioms, abstractions and other forms of structure contained in their software, which are together called its architecture. Building on the emerging technology of separation logic, we will formalise such software engineering concepts used by systems programmers to reason about their software informally, and will use the results to drive the design of verification techniques. This is a radically novel approach to the problem of verifying complex software: it departs from the common practice of building generic verification tools that, not being able to take advantage of programmers’ knowledge and intuition, do not scale to big and complicated systems.
The architecture-driven verification techniques resulting from the project will yield a dramatic leap in the cost-benefit ratio of the verification technology. This will allow verification to scale to systems of real-world size and complexity that so far have been beyond the reach of quality assurance methods guaranteeing correctness.
More information about the project can be found at http://www.advent-project.eu/