Evidence-enabled verification for the Linux kernel

dc.contributor.advisor Suraj C. Kothari
dc.contributor.author Tamrawi, Ahmed
dc.contributor.department Department of Electrical and Computer Engineering
dc.date 2018-08-11T07:57:37.000
dc.date.accessioned 2020-06-30T03:06:40Z
dc.date.available 2020-06-30T03:06:40Z
dc.date.copyright Fri Jan 01 00:00:00 UTC 2016
dc.date.embargo 2001-01-01
dc.date.issued 2016-01-01
dc.description.abstract <p>Formal verification of large software has been an elusive target, riddled with problems of low accuracy and high computational complexity. With growing dependence on software in embedded and cyber-physical systems where vulnerabilities and malware can lead to disasters, an efficient and accurate verification has become a crucial need. The verification should be rigorous, computationally efficient, and automated enough to keep the human effort within reasonable limits, but it does not have to be completely automated. The automation should actually enable and simplify human cross-checking which is especially important when the stakes are high. Unfortunately, formal verification methods work mostly as automated black boxes with very little support for cross-checking.</p> <p>This thesis is about a different way to approach the software verification problem. It is about creating a powerful fusion of automation and human intelligence by incorporating algorithmic innovations to address the major challenges to advance the state of the art for accurate and scalable software verification where complete automation has remained intractable. The key is a mathematically rigorous notion of verification-critical evidence that the machine abstracts from software to empower human to reason with. The algorithmic innovation is to discover the patterns the developers have applied to manage complexity and leverage them. A pattern-based verification is crucial because the problem is intractable otherwise. We call the overall approach Evidence-Enabled Verification (EEV).</p> <p>This thesis presents the EEV with two challenging applications: (1) EEV for Lock/Unlock Pairing to verify the correct pairing of mutex lock and spin lock with their corresponding unlocks on all feasible execution paths, and (2) EEV for Allocation/Deallocation Pairing to verify the correct pairing of memory allocation with its corresponding deallocations on all feasible execution paths. We applied the EEV approach to verify recent versions of the Linux kernel. The results include a comparison with the state-of-the-art Linux Driver Verification (LDV) tool, effectiveness of the proposed visual models as verification-critical evidence, representative examples of verification, the discovered bugs, and limitations of the proposed approach.</p>
dc.format.mimetype application/pdf
dc.identifier archive/lib.dr.iastate.edu/etd/15819/
dc.identifier.articleid 6826
dc.identifier.contextkey 11165386
dc.identifier.doi https://doi.org/10.31274/etd-180810-5446
dc.identifier.s3bucket isulib-bepress-aws-west
dc.identifier.submissionpath etd/15819
dc.identifier.uri https://dr.lib.iastate.edu/handle/20.500.12876/30002
dc.language.iso en
dc.source.bitstream archive/lib.dr.iastate.edu/etd/15819/Tamrawi_iastate_0097E_15692.pdf|||Fri Jan 14 20:47:12 UTC 2022
dc.subject.disciplines Computer Engineering
dc.subject.disciplines Computer Sciences
dc.subject.keywords Evidence
dc.subject.keywords Linux
dc.subject.keywords Lock
dc.subject.keywords Memory
dc.subject.keywords Synchronization
dc.subject.keywords Verification
dc.title Evidence-enabled verification for the Linux kernel
dc.type dissertation
dc.type.genre dissertation
dspace.entity.type Publication
relation.isOrgUnitOfPublication a75a044c-d11e-44cd-af4f-dab1d83339ff
thesis.degree.discipline Computer Engineering
thesis.degree.level dissertation
thesis.degree.name Doctor of Philosophy
File
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
Tamrawi_iastate_0097E_15692.pdf
Size:
5.22 MB
Format:
Adobe Portable Document Format
Description: