SYRCoSE-2016 Krasnovidovo, Moscow Region 30 May 2016 Verification of Operating Systems Alexey Khoroshilov
[email protected] Institute for System Programming of the Russian Academy of Sciences Operating Systems User-space Applications System System Operating Utilities Libraries Services System Signals, Special System Memory updates, File Systems Calls Scheduling, ... Kernel Kernel-space Kernel Modules Kernel Threads Device Drivers Kernel Core (mmu, scheduler, IPC) Interrupts, DMA IO Memory/IO Ports Hardware Embedded Operating Systems Operating System Drivers APEX POSIX System App App Services libARINC libPOSIX libSYSTEM User-Space Kernel-Space System Calls System Calls Kernel (mmu,scheduler,ipc) System Services ArchLib BSP Drivers Interrupts, DMA IO Memory / IO Ports Target System Hardware Host System Build System Configuration Static Verification Runtime Verification Static Verification Runtime Verification + All paths at once – One path only Static Verification Runtime Verification + All paths at once – One path only + Hardware, test data and – Hardware, test data and test environment is not test environment is required required Static Verification Runtime Verification + All paths at once – One path only + Hardware, test data and – Hardware, test data and test environment is not test environment is required required – There are false positives + Almost no false positives Static Verification Runtime Verification + All paths at once – One path only + Hardware, test data and – Hardware, test data and test environment is not test environment is required required – There are false positives + Almost no false positives – Checks for predefined + The only way to show set of bugs only the code actually works Verification Approaches all kinds of bugs One 1 kind test bugs in 1 execution in all executions Operating Systems User-space Applications System System Operating Utilities Libraries Services System Signals, Special System Memory updates, File Systems Calls Scheduling, ..