Home > Research > Publications & Outputs > How to Fillet a Penguin

Links

Text available via DOI:

View graph of relations

How to Fillet a Penguin: Runtime Data Driven Partitioning of Linux Code

Research output: Contribution to journalJournal article

Published

Standard

How to Fillet a Penguin : Runtime Data Driven Partitioning of Linux Code. / Schwahn, O.; Winter, S.; Coppik, N.; Suri, Neeraj.

In: IEEE Transactions on Dependable and Secure Computing, Vol. 15, No. 6, 01.11.2018, p. 945-958.

Research output: Contribution to journalJournal article

Harvard

Schwahn, O, Winter, S, Coppik, N & Suri, N 2018, 'How to Fillet a Penguin: Runtime Data Driven Partitioning of Linux Code', IEEE Transactions on Dependable and Secure Computing, vol. 15, no. 6, pp. 945-958. https://doi.org/10.1109/TDSC.2017.2745574

APA

Schwahn, O., Winter, S., Coppik, N., & Suri, N. (2018). How to Fillet a Penguin: Runtime Data Driven Partitioning of Linux Code. IEEE Transactions on Dependable and Secure Computing, 15(6), 945-958. https://doi.org/10.1109/TDSC.2017.2745574

Vancouver

Schwahn O, Winter S, Coppik N, Suri N. How to Fillet a Penguin: Runtime Data Driven Partitioning of Linux Code. IEEE Transactions on Dependable and Secure Computing. 2018 Nov 1;15(6):945-958. https://doi.org/10.1109/TDSC.2017.2745574

Author

Schwahn, O. ; Winter, S. ; Coppik, N. ; Suri, Neeraj. / How to Fillet a Penguin : Runtime Data Driven Partitioning of Linux Code. In: IEEE Transactions on Dependable and Secure Computing. 2018 ; Vol. 15, No. 6. pp. 945-958.

Bibtex

@article{5bd6e3751af44508bd05a05125b0a352,
title = "How to Fillet a Penguin: Runtime Data Driven Partitioning of Linux Code",
abstract = "In many modern operating systems (OSs), there exists no isolation between different kernel components, i.e., the failure of one component can affect the whole kernel. While microkernel OSs introduce address space separation for large parts of the OS, their improved fault isolation comes at the cost of performance. Despite significant improvements in modern microkernels, monolithic OSs like Linux are still prevalent in many systems. To achieve fault isolation in addition to high performance and code reuse in these systems, approaches to move only fractions of kernel code into user mode have been proposed. These approaches solely rely on static code analyses for deciding which code to isolate, neglecting dynamic properties like invocation frequencies. We propose to augment static code analyses with runtime data to achieve better estimates of dynamic properties for common case operation. We assess the impact of runtime data on the decision what code to isolate and the impact of that decision on the performance of such 'microkernelized' systems. We extend an existing tool chain to implement automated code partitioning for existing monolithic kernel code and validate our approach in a case study of two widely used Linux device drivers and a file system. {\textcopyright} 2004-2012 IEEE.",
keywords = "device driver isolation, dynamic program analysis, Operating systems, software partitioning, Codes (symbols), Computer operating systems, Data handling, Program processors, Reliability, Reliability analysis, Software reliability, Device Driver, Dynamic program analysis, Kernel, Performance evaluations, Runtimes, Software partitioning, Linux",
author = "O. Schwahn and S. Winter and N. Coppik and Neeraj Suri",
year = "2018",
month = nov,
day = "1",
doi = "10.1109/TDSC.2017.2745574",
language = "English",
volume = "15",
pages = "945--958",
journal = "IEEE Transactions on Dependable and Secure Computing",
issn = "1545-5971",
publisher = "Institute of Electrical and Electronics Engineers Inc.",
number = "6",

}

RIS

TY - JOUR

T1 - How to Fillet a Penguin

T2 - Runtime Data Driven Partitioning of Linux Code

AU - Schwahn, O.

AU - Winter, S.

AU - Coppik, N.

AU - Suri, Neeraj

PY - 2018/11/1

Y1 - 2018/11/1

N2 - In many modern operating systems (OSs), there exists no isolation between different kernel components, i.e., the failure of one component can affect the whole kernel. While microkernel OSs introduce address space separation for large parts of the OS, their improved fault isolation comes at the cost of performance. Despite significant improvements in modern microkernels, monolithic OSs like Linux are still prevalent in many systems. To achieve fault isolation in addition to high performance and code reuse in these systems, approaches to move only fractions of kernel code into user mode have been proposed. These approaches solely rely on static code analyses for deciding which code to isolate, neglecting dynamic properties like invocation frequencies. We propose to augment static code analyses with runtime data to achieve better estimates of dynamic properties for common case operation. We assess the impact of runtime data on the decision what code to isolate and the impact of that decision on the performance of such 'microkernelized' systems. We extend an existing tool chain to implement automated code partitioning for existing monolithic kernel code and validate our approach in a case study of two widely used Linux device drivers and a file system. © 2004-2012 IEEE.

AB - In many modern operating systems (OSs), there exists no isolation between different kernel components, i.e., the failure of one component can affect the whole kernel. While microkernel OSs introduce address space separation for large parts of the OS, their improved fault isolation comes at the cost of performance. Despite significant improvements in modern microkernels, monolithic OSs like Linux are still prevalent in many systems. To achieve fault isolation in addition to high performance and code reuse in these systems, approaches to move only fractions of kernel code into user mode have been proposed. These approaches solely rely on static code analyses for deciding which code to isolate, neglecting dynamic properties like invocation frequencies. We propose to augment static code analyses with runtime data to achieve better estimates of dynamic properties for common case operation. We assess the impact of runtime data on the decision what code to isolate and the impact of that decision on the performance of such 'microkernelized' systems. We extend an existing tool chain to implement automated code partitioning for existing monolithic kernel code and validate our approach in a case study of two widely used Linux device drivers and a file system. © 2004-2012 IEEE.

KW - device driver isolation

KW - dynamic program analysis

KW - Operating systems

KW - software partitioning

KW - Codes (symbols)

KW - Computer operating systems

KW - Data handling

KW - Program processors

KW - Reliability

KW - Reliability analysis

KW - Software reliability

KW - Device Driver

KW - Dynamic program analysis

KW - Kernel

KW - Performance evaluations

KW - Runtimes

KW - Software partitioning

KW - Linux

U2 - 10.1109/TDSC.2017.2745574

DO - 10.1109/TDSC.2017.2745574

M3 - Journal article

VL - 15

SP - 945

EP - 958

JO - IEEE Transactions on Dependable and Secure Computing

JF - IEEE Transactions on Dependable and Secure Computing

SN - 1545-5971

IS - 6

ER -