TY - GEN
T1 - The case for writing a kernel in rust
AU - Levy, Amit
AU - Campbell, Bradford
AU - Ghena, Branden
AU - Pannuto, Pat
AU - Dutta, Prabal
AU - Levis, Philip
PY - 2017/9/2
Y1 - 2017/9/2
N2 - Decades of research has attempted to add safety mechanisms to operating system kernels, but this effort has failed in most practical systems. In particular, solutions that sacrifice performance have been generally avoided. However, isolation techniques in modern languages can provide safety while avoiding performance issues. Moreover, utilizing a type-safe language with no garbage collector or other runtime services avoids what would otherwise be some of the largest sections of trusted code base. We report on our experiences in writing a resource efficient embedded kernel in Rust, finding that only a small set of unsafe abstractions are necessary in order to form common kernel building blocks. Further, we argue that Rust's choice to avoid runtime memory management by using a linear type system will enable the next generation of safe operating systems.
AB - Decades of research has attempted to add safety mechanisms to operating system kernels, but this effort has failed in most practical systems. In particular, solutions that sacrifice performance have been generally avoided. However, isolation techniques in modern languages can provide safety while avoiding performance issues. Moreover, utilizing a type-safe language with no garbage collector or other runtime services avoids what would otherwise be some of the largest sections of trusted code base. We report on our experiences in writing a resource efficient embedded kernel in Rust, finding that only a small set of unsafe abstractions are necessary in order to form common kernel building blocks. Further, we argue that Rust's choice to avoid runtime memory management by using a linear type system will enable the next generation of safe operating systems.
UR - http://www.scopus.com/inward/record.url?scp=85030529388&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85030529388&partnerID=8YFLogxK
U2 - 10.1145/3124680.3124717
DO - 10.1145/3124680.3124717
M3 - Conference contribution
AN - SCOPUS:85030529388
T3 - Proceedings of the 8th Asia-Pacific Workshop on Systems, APSys 2017
BT - Proceedings of the 8th Asia-Pacific Workshop on Systems, APSys 2017
PB - Association for Computing Machinery, Inc
T2 - 8th ACM Asia Pacific Conference on Systems, APSys 2017
Y2 - 2 September 2017
ER -