{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,26]],"date-time":"2026-01-26T07:30:11Z","timestamp":1769412611658,"version":"3.49.0"},"reference-count":44,"publisher":"Association for Computing Machinery (ACM)","issue":"1","license":[{"start":{"date-parts":[[2017,9,11]],"date-time":"2017-09-11T00:00:00Z","timestamp":1505088000000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["SIGOPS Oper. Syst. Rev."],"published-print":{"date-parts":[[2017,9,11]]},"abstract":"<jats:p>Rust is a new system programming language that offers a practical and safe alternative to C. Rust is unique in that it enforces safety without runtime overhead, most importantly, without the overhead of garbage collection. While zero-cost safety is remarkable on its own, we argue that the superpowers of Rust go beyond safety. In particular, Rust's linear type system enables capabilities that cannot be implemented efficiently in traditional languages, both safe and unsafe, and that dramatically improve security and reliability of system software. We show three examples of such capabilities: zero-copy software fault isolation, efficient static information flow analysis, and automatic checkpointing. While these capabilities have been in the spotlight of systems research for a long time, their practical use is hindered by high cost and complexity. We argue that with the adoption of Rust these mechanisms will become commoditized.<\/jats:p>","DOI":"10.1145\/3139645.3139660","type":"journal-article","created":{"date-parts":[[2017,9,12]],"date-time":"2017-09-12T18:56:39Z","timestamp":1505242599000},"page":"94-99","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":17,"title":["System Programming in Rust"],"prefix":"10.1145","volume":"51","author":[{"given":"Abhiram","family":"Balasubramanian","sequence":"first","affiliation":[{"name":"University of Utah"}]},{"given":"Marek S.","family":"Baranowski","sequence":"additional","affiliation":[{"name":"University of Utah"}]},{"given":"Anton","family":"Burtsev","sequence":"additional","affiliation":[{"name":"UC Irvine"}]},{"given":"Aurojit","family":"Panda","sequence":"additional","affiliation":[{"name":"UC Berkeley"}]},{"given":"Zvonimir","family":"Rakamari","sequence":"additional","affiliation":[{"name":"University of Utah"}]},{"given":"Leonid","family":"Ryzhyk","sequence":"additional","affiliation":[{"name":"VMware Research"}]}],"member":"320","published-online":{"date-parts":[[2017,9,11]]},"reference":[{"key":"e_1_2_1_1_1","volume-title":"Proceedings of the Thirty-Sixth Australasian Computer Science Conference -","volume":"135","author":"Atkins Daniel","year":"2013"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1165389.945462"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629575.1629579"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1145\/1932682.1869515"},{"key":"e_1_2_1_5_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103799.2103805"},{"key":"e_1_2_1_6_1","unstructured":"Intel Corporation. DPDK: Data Plane Development Kit. http:\/\/dpdk.org\/. (????). Intel Corporation. DPDK: Data Plane Development Kit. http:\/\/dpdk.org\/. (????)."},{"key":"e_1_2_1_7_1","unstructured":"Alex Crichton. 2017. scoped-tls. https:\/\/github.com\/alexcrichton\/scoped-tls. (2017). Alex Crichton. 2017. scoped-tls. https:\/\/github.com\/alexcrichton\/scoped-tls. (2017)."},{"key":"e_1_2_1_8_1","unstructured":"CVE. Vulnerabilities on Linux Kernel Machines. https:\/\/www.cvedetails.com\/product\/47\/Linux-Linux-Kernel.html?vendor_id=33. (????). CVE. Vulnerabilities on Linux Kernel Machines. https:\/\/www.cvedetails.com\/product\/47\/Linux-Linux-Kernel.html?vendor_id=33. (????)."},{"key":"e_1_2_1_9_1","doi-asserted-by":"publisher","DOI":"10.1145\/378795.378811"},{"key":"e_1_2_1_10_1","unstructured":"Redox Project Developers. Redox - Your Next(Gen) OS. (????). http:\/\/www.redox-os.org\/. Redox Project Developers. Redox - Your Next(Gen) OS. (????). http:\/\/www.redox-os.org\/."},{"key":"e_1_2_1_11_1","unstructured":"The Rust Project Developers. 2017. Implementation of Rust stack unwinding. https:\/\/doc.rust-lang.org\/1.3.0\/std\/rt\/unwind\/. (2017). The Rust Project Developers. 2017. Implementation of Rust stack unwinding. https:\/\/doc.rust-lang.org\/1.3.0\/std\/rt\/unwind\/. (2017)."},{"key":"e_1_2_1_12_1","unstructured":"The Rust Project Developers. 2017. Struct std::rc::Weak. https:\/\/doc.rust-lang.org\/std\/rc\/struct.Weak.html. (2017). The Rust Project Developers. 2017. Struct std::rc::Weak. https:\/\/doc.rust-lang.org\/std\/rc\/struct.Weak.html. (2017)."},{"key":"e_1_2_1_13_1","volume-title":"Proceedings of the 13th Usenix Conference on Networked Systems Design and Implementation (NSDI'16)","author":"Eisenbud Daniel E.","year":"2016"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/568522.568525"},{"key":"e_1_2_1_15_1","volume-title":"Proceedings of the 7th Symposium on Operating Systems Design and Implementation (OSDI '06)","author":"Erlingsson \u00dalfar"},{"key":"e_1_2_1_16_1","doi-asserted-by":"crossref","unstructured":"Manuel F\u00e4hndrich et al. 2006. Language Support for Fast and Reliable Messagebased Communication in Singularity OS. In Eurosys. Manuel F\u00e4hndrich et al. 2006. Language Support for Fast and Reliable Messagebased Communication in Singularity OS. In Eurosys.","DOI":"10.1145\/1217935.1217953"},{"key":"e_1_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/512529.512532"},{"key":"e_1_2_1_18_1","unstructured":"Mozilla Foundation. The Rust programming language. https:\/\/doc.rust-lang.org\/book\/. (????). Mozilla Foundation. The Rust programming language. https:\/\/doc.rust-lang.org\/book\/. (????)."},{"key":"e_1_2_1_19_1","volume-title":"The JX Operating System. In USENIX Annual Technical Conference","author":"Golm Michael","year":"2002"},{"key":"e_1_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1065944.1065952"},{"key":"e_1_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/872035.872048"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2808098.2808100"},{"key":"e_1_2_1_23_1","volume-title":"Cyclone: A Safe Dialect of C. In USENIX Annual Technical Conference (ATEC '02)","author":"Jim Trevor","year":"2002"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/354871.354874"},{"key":"e_1_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2818302.2818306"},{"key":"e_1_2_1_26_1","volume-title":"Proceedings of the 11th USENIX Conference on Networked Systems Design and Implementation (NSDI'14)","author":"Lim Hyeontaek","year":"2014"},{"key":"e_1_2_1_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2043556.2043568"},{"key":"e_1_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICPP.2015.83"},{"key":"e_1_2_1_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/268998.266669"},{"key":"e_1_2_1_30_1","unstructured":"Nginx. Nginx: High Performance Load Balancer Web Server and Reverse Proxy. https:\/\/www.nginx.com\/. (????). Nginx. Nginx: High Performance Load Balancer Web Server and Reverse Proxy. https:\/\/www.nginx.com\/. (????)."},{"key":"e_1_2_1_31_1","volume-title":"12th USENIX Symposium on Operating Systems Design and Implementation (OSDI 16)","volume":"16","author":"Panda Aurojit","year":"2016"},{"key":"e_1_2_1_32_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-319-08867-9_7"},{"key":"e_1_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/1122971.1123001"},{"key":"e_1_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/268946.268950"},{"key":"e_1_2_1_35_1","unstructured":"\"servo\". Servo web browser engine. http:\/\/www.servo.org. (????). \"servo\". Servo web browser engine. http:\/\/www.servo.org. (????)."},{"key":"e_1_2_1_36_1","doi-asserted-by":"publisher","DOI":"10.5555\/2050613.2050642"},{"key":"e_1_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2785956.2787501"},{"key":"e_1_2_1_38_1","unstructured":"Intel Open Source.org. 2016. Storage Performance Development Kit (SPDK). https:\/\/01.org\/spdk. (2016). Intel Open Source.org. 2016. Storage Performance Development Kit (SPDK). https:\/\/01.org\/spdk. (2016)."},{"key":"e_1_2_1_39_1","volume-title":"An Interaction-based Language and Its Typing System. In International PARLE Conference on Parallel Architectures and Languages Europe. 398--413","author":"Takeuchi Kaku","year":"1994"},{"key":"e_1_2_1_40_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1996.2613"},{"key":"e_1_2_1_41_1","doi-asserted-by":"crossref","unstructured":"Philip Wadler. 1990. Linear types can change the world!. In IFIP TC 2 Working Conference on Programming Concepts and Methods. Sea of Galilee Israel 347--359. Philip Wadler. 1990. Linear types can change the world!. In IFIP TC 2 Working Conference on Programming Concepts and Methods. Sea of Galilee Israel 347--359.","DOI":"10.1145\/99370.99404"},{"key":"e_1_2_1_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/168619.168635"},{"key":"e_1_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/SP.2009.25"},{"key":"e_1_2_1_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/2245276.2231983"}],"container-title":["ACM SIGOPS Operating Systems Review"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3139645.3139660","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3139645.3139660","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,25]],"date-time":"2025-06-25T18:23:25Z","timestamp":1750875805000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3139645.3139660"}},"subtitle":["Beyond Safety"],"short-title":[],"issued":{"date-parts":[[2017,9,11]]},"references-count":44,"journal-issue":{"issue":"1","published-print":{"date-parts":[[2017,9,11]]}},"alternative-id":["10.1145\/3139645.3139660"],"URL":"https:\/\/doi.org\/10.1145\/3139645.3139660","relation":{},"ISSN":["0163-5980"],"issn-type":[{"value":"0163-5980","type":"print"}],"subject":[],"published":{"date-parts":[[2017,9,11]]},"assertion":[{"value":"2017-09-11","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}