Taming shared mutable states of operating systems in Rust

Cited 0 time in webofscience Cited 0 time in scopus
  • Hit : 15
  • Download : 0
DC FieldValueLanguage
dc.contributor.authorHong, Jaeminko
dc.contributor.authorShim, Sunghwanko
dc.contributor.authorPark, Sangukko
dc.contributor.authorKim, Tae Wooko
dc.contributor.authorKim, Jungwooko
dc.contributor.authorLee, Junsooko
dc.contributor.authorRyu, Sukyoungko
dc.contributor.authorKang, Jeehoonko
dc.date.accessioned2024-09-03T03:00:06Z-
dc.date.available2024-09-03T03:00:06Z-
dc.date.created2024-08-29-
dc.date.issued2024-12-
dc.identifier.citationSCIENCE OF COMPUTER PROGRAMMING, v.238-
dc.identifier.issn0167-6423-
dc.identifier.urihttp://hdl.handle.net/10203/322549-
dc.description.abstractOperating systems (OSs) suffer from pervasive memory bugs. Their primary source is shared mutable states, crucial to low-level control and efficiency. The safety of shared mutable states is not guaranteed by C/C++, in which legacy OSs are typically written. Recently, researchers have adopted Rust into OS development to implement clean-slate OSs with fewer memory bugs. Rust ensures the safety of shared mutable states that follow the "aliasing XOR mutability" discipline via its type system. With the success of Rust in clean-slate OSs, the industry has become interested in rewriting legacy OSs in Rust. However, one of the most significant obstacles to this goal is shared mutable states that are aliased AND mutable (A&M). While they are essential to the performance of legacy OSs, Rust does not guarantee their safety. Instead, programmers have identified A&M states with the same reasoning principle dubbed an A&M pattern and implemented its modular abstraction to facilitate safety reasoning. This paper investigates modular abstractions for A&M patterns in legacy OSs. We present modular abstractions for six A&M patterns in the xv6 OS. Our investigation of Linux and clean-slate Rust OSs shows that the patterns are practical, as all of them are utilized in Linux, and the abstractions are original, as none of them are found in the Rust OSs. Using the abstractions, we implemented xv6(Rust), a complete rewrite of xv6 in Rust. The abstractions incur no run-time overhead compared to xv6 while reducing the reasoning cost of xv6(Rust) to the level of the clean-slate Rust OSs.-
dc.languageEnglish-
dc.publisherELSEVIER-
dc.titleTaming shared mutable states of operating systems in Rust-
dc.typeArticle-
dc.identifier.wosid001252087400001-
dc.identifier.scopusid2-s2.0-85195361155-
dc.type.rimsART-
dc.citation.volume238-
dc.citation.publicationnameSCIENCE OF COMPUTER PROGRAMMING-
dc.identifier.doi10.1016/j.scico.2024.103152-
dc.contributor.localauthorRyu, Sukyoung-
dc.contributor.localauthorKang, Jeehoon-
dc.contributor.nonIdAuthorShim, Sunghwan-
dc.contributor.nonIdAuthorPark, Sanguk-
dc.contributor.nonIdAuthorKim, Tae Woo-
dc.contributor.nonIdAuthorKim, Jungwoo-
dc.contributor.nonIdAuthorLee, Junsoo-
dc.description.isOpenAccessN-
dc.type.journalArticleArticle-
dc.subject.keywordAuthorOperating system-
dc.subject.keywordAuthorRust-
dc.subject.keywordAuthorShared mutable state-
Appears in Collection
CS-Journal Papers(저널논문)
Files in This Item
There are no files associated with this item.

qr_code

  • mendeley

    citeulike


rss_1.0 rss_2.0 atom_1.0