Please use this identifier to cite or link to this item: doi:10.22028/D291-25944
Title: OS verification extended : on the formal verification of device drivers and the correctness of client/server software
Authors: Alkassar, Eyad
Language: English
Issue Date: 2009
SWD key words: Betriebssystem
Verifikation
Treiber <Programm>
Festplatte
Client-Server-Konzept
Implementierung
RPC
Free key words: Gerätetreiber
Client/Server Software
OS verification
device driver
client/server software
hard disk
remote procedure call
DDC groups: 004 Computer science, internet
Publikation type: Doctoral Thesis
Abstract: This thesis tackles two important challenges in OS verication: The formal verification of device drivers and the correctness of client/server software. Device drivers are an integral part of system software. Not only high-level functionality such as le I/O depends on devices. Even basic OS features, such as demand paging, need correctly implemented drivers. In this thesis, we show how to pervasively integrate devices and their drivers into a language stack reaching from the level of assembly up to high-level languages. This stack is leveraged for the formal verification of a simple hard disk driver, which is subsequently embedded into Verisoft's micro kernel. To the best of our knowledge, this marks the rst formal functional verication of a device driver against a realistic device and system model. Remote procedure calls (RPCs) lie at the heart of any client/server software. In the second part of this thesis, we present a specication of an RPC mechanism and we outline how to verify an implementation of this mechanism at the code level. The formalization is based on a model of user processes running concurrently under a simple OS, which provides inter-process communication and portmapper system calls. A simple theory of non interference permits us to use conventional sequential program analysis between system calls. To the best of our knowledge this is the first treatment of the correctness of an entire RPC mechanism at the code level.
Diese Arbeit behandelt zwei wichtige Probleme in der Verikation von Betriebssystemen (BS): Die formale Verikation von Gerätetreibern und die Korrektheit von Client/Server Software. Grundlegende Funktionen eines BS, wie z.B. Demand Paging, setzen korrekt implementierte Treiber voraus. In dieser Arbeit zeigen wir auf, wie Geräte nahtlos in allen Semantikschichten integriert werden können|von Assembler bis hin zu einer C ähnlichen Hochsprache. Diese durchgängige Theorie wird anschließend verwendet, um einen einfachen Festplattentreiber (Teil des Verisoft Mikrokerns) formal zu verifizieren. So weit uns bekannt, stellt dies die erste formale Verikation eines Treibers im Kontext eines realistischen Geräte- und Systemmodells dar. Implementierungen von Client/Server Software basieren oftmals auf Remote Procedure Calls (RPCs). Im zweiten Teil dieser Arbeit, spezizieren wir einen solchen RPC Mechanismus und skizzieren dessen Verikation auf Codeebene. Die Formalisierung basiert auf einem Modell von Benutzerprozessen die nebenläufig in einem einfachen BS ausgeführt werden. Dieses BS stellt Interprozess-Kommunikation und Portmapper Funktionalität über spezielle Systemaufrufe zur Verfügung. Um sequentiell über einzelne Prozesse argumentieren zu können, füuhren wir eine kleine Theorie zur Bestimmung der Abhängigkeit von Systemaufrufen ein. So weit uns bekannt, behandelt diese Arbeit erstmals die Korrektheit eines vollständigen RPC Mechanismus auf Codeebene.
URI: urn:nbn:de:bsz:291-scidok-24206
hdl:20.500.11880/26000
http://dx.doi.org/10.22028/D291-25944
Advisor: Paul, Wolfgang
Date of oral examination: 17-Jul-2009
Date issued: 15-Sep-2009
Faculty: MI - Fakultät für Mathematik und Informatik
Institute: MI - Informatik
Appears in Collections:SciDok - Der Wissenschaftsserver der Universität des Saarlandes

Files in This Item:
File Description SizeFormat 
Dissertation_1410_Alka_Eyad_2009.pdf1,32 MBAdobe PDFView/Open


Items in SciDok are protected by copyright, with all rights reserved, unless otherwise indicated.