HackerTube
HomeLongsLikedHistoryWatch laterCategoriesPlaylistsSettings

Is It Time to Rewrite the Operating System in Rust?

InfoQ1 HN recommender · recommended in 1 month, 2019-2023
YouTube
310K views · 7 years ago · talk · evergreen

Bryan Cantrill's QCon SF 2019 talk asking whether operating systems should be rewritten in Rust. He draws on his systems experience to discuss C, memory safety and Rust's fit for system software.

Cited in debates about Rust versus C as a thoughtful systems programmer's account of falling for Rust.

C, C++, Rust, Go & systems languagesOperating systems & kernelsSecurity & hacking#bryancantrill#rust#operatingsystems#clanguage#memorysafety

6 comments from Hacker News

@oconnor6632023 · in “Why I Use C When I Believe in Memory Safety”

Bryan Cantrill making a similar point: ▶ this video > I can write C that frees memory properly...that basically doesn't suffer from memory corruption...I can do that, because I'm controlling heaven and earth in my software. It makes it very hard to compose software. Because even if you and I both know how to write memory safe C, it's very hard for us to have an interface boundary where we can agree about who does what.

CitesView on HN
@littlestymaar2021 · in “Rust is now overall faster than C in benchmarks”

> The reason that C programs often don’t perform as well as an equivalent rust program[1] is that it’s so incredibly hard to do anything at all in C (especially something reliable) that one can usually only do the simplest thing possible and this typically means simple data structures, simple algorithms and arrays Brian Cantrill talks[1] about exactly this: in his C version he was using AVL trees because they are easy to implement, while his Rust version was using B-trees just because he could. And as a result, his naive first attempt in Rust outperformed his long-optimized C code. [1]: ▶ this video

CitesView on HN
@bcantrill2020 · in “Rust is not a good C replacement (2019)”

Wow, tough crowd! I don't know that I -- or anyone that knows me -- would accuse me of "ever-evolving advocacy", but yes, I did see promise in node.js in 2010[1]. And yes, we at Joyent built systems on node.js -- but we also added unprecedented debuggability and observability along the way.[2]. While my views may not be "ever" evolving, they're also not incapable of it: by 2014, it was clear that node.js was diverging from my personal hopes for it -- that it was not going to become suitable for infrastructure software. While this was distressing at the time, I came to view this as a divergence in values -- a realization that I described at length in a talk in 2017.[3] To the matter at hand: yes, I have fallen in love with Rust.[4] Yes, I think it is a good fit for system software.[5] And yes, this has served as a bonding force at Oxide -- but as much (if not more!) for the values that it reflects than for it itself.[6] [1] link [2] link [3] link [4] link [5] ▶ this video [6] link

CitesView on HN
@1MachineElf2020 · in “The Beauty of Unix Pipelines”

I only linked that because most people don't know what B is, and I suppose the difference between "innovation meant to fill the space" and "extention" wasn't so important to me. My source for the claim itself is from 14m30s of Brian Cantrill's talk "Is It Time to Rewrite the Opersting System in Rust" ▶ this video

CitesView on HN
@oconnor6632019 · in “D as a C Replacement”

> When I see syntax like: var array=something[4...$] I don't see security there, all I see is someone pushing the problem further under the carpet, into the runtime. The runtime (whichever one that is) is safe because its behavior is defined by design for all inputs. Yes there could be a bug, but the design is that all inputs should be defined, and doing something for any given input isn't rocket science. Out of bounds array indexes either panic/throw or return empty lists. That can lead to crashes and logic errors, sure, or maybe DOS attacks, but it cannot lead to undefined behavior or remote code execution. That's a world of difference. C and C++ by design expose heaps of undefined behavior to the caller. The tools for detecting UB are imperfect and don't work if the relevant inputs never show up in test cases. Even when veteran C coders develop the techniques and habits that let them write correct C, mistakes tend to show up at the integration points between libraries written by different people with different techniques and habits ( ▶ this video ).

CitesView on HN
@equalunique2019 · in “GKE Sandbox: Independent operating system kernel to each container”

My introduction to gVisor was the talk by Emma Haruka Iwao at InfoQ NY 2018: link I learned of the talk because Brian Cantrill referenced it during his very deep dive into operating systems, C, and Rust given later at the some event: ▶ this video

RecommendsView on HN
RustConf 2017 - Closing Keynote: Safe Systems Software and the Future of Computing by Joe Duffy42:45

RustConf 2017 - Closing Keynote: Safe Systems Software and the Future of Computing by Joe Duffy

Confreaks
2K views • 9 years ago
Rust: A Language for the Next 40 Years - Carol Nichols55:08

Rust: A Language for the Next 40 Years - Carol Nichols

ChariotSolutions
367K views • 7 years ago
Microsoft is Getting Rusty: A Review of Successes and Challenges - Mark Russinovich34:41

Microsoft is Getting Rusty: A Review of Successes and Challenges - Mark Russinovich

Rust Nation UK
46K views • 1 year ago
Rust NYC: Jon Gjengset - Demystifying unsafe code29:25

Rust NYC: Jon Gjengset - Demystifying unsafe code

Rust Programming Language
27K views • 6 years ago
Carbon Language Successor Strategy: From C++ Interop to Memory Safety - Chandler Carruth - CppNow 231:38:57

Carbon Language Successor Strategy: From C++ Interop to Memory Safety - Chandler Carruth - CppNow 23

CppNow
24K views • 3 years ago
Lars Bergstrom - Beyond Safety and Speed: How Rust Fuels Team Productivity22:19

Lars Bergstrom - Beyond Safety and Speed: How Rust Fuels Team Productivity

Rust Nation UK
18K views • 2 years ago
Scale By The Bay 2018: Bryan Cantrill, Rust and Other Interesting Things37:07

Scale By The Bay 2018: Bryan Cantrill, Rust and Other Interesting Things

FunctionalTV
45K views • 7 years ago
RustConf 2020 - Closing Keynote by Siân Griffin39:03

RustConf 2020 - Closing Keynote by Siân Griffin

Rust Programming Language
10K views • 6 years ago
Writing a Wayland Compositor in Zig - Isaac Freund42:20

Writing a Wayland Compositor in Zig - Isaac Freund

Zig SHOWTIME
26K views • 6 years ago
Rust's Journey to Async/Await48:46

Rust's Journey to Async/Await

InfoQ
90K views • 7 years ago
Hot Code Reloading in C2:16:18

Hot Code Reloading in C

Tsoding Daily
94K views • 3 years ago
Introducing a Memory-Safe Successor Language in Large C++ Code Bases - John McCall - CppNow 20231:22:21

Introducing a Memory-Safe Successor Language in Large C++ Code Bases - John McCall - CppNow 2023

CppNow
18K views • 3 years ago
BlueHat IL 2023 - David Weston - Default Security54:35

BlueHat IL 2023 - David Weston - Default Security

Microsoft Israel R&D Center
47K views • 3 years ago
Rust at speed — building a fast concurrent database52:54

Rust at speed — building a fast concurrent database

Jon Gjengset
225K views • 7 years ago
Hacking with Andrew and Brad: tip.golang.org1:02:49

Hacking with Andrew and Brad: tip.golang.org

The Go Programming Language
99K views • 11 years ago
Lang NEXT 2014 Panel  Systems Programming in 2014 and Beyond1:05:56

Lang NEXT 2014 Panel Systems Programming in 2014 and Beyond

25msr
3K views • 8 years ago
C++ and Beyond 2012: Herb Sutter - atomic Weapons 2 of 21:32:33

C++ and Beyond 2012: Herb Sutter - atomic Weapons 2 of 2

alexsmail
29K views • 9 years ago
CppCon 2015: Bjarne Stroustrup “Writing Good C++14”1:40:46

CppCon 2015: Bjarne Stroustrup “Writing Good C++14”

CppCon
351K views • 11 years ago
Going Native 2012 Keynote Stroustrup1:29:49

Going Native 2012 Keynote Stroustrup

savage309
33K views • 14 years ago
Filesystem in Rust - Kent Overstreet35:16

Filesystem in Rust - Kent Overstreet

The Linux Foundation
124K views • 2 years ago