Shine Get

  • 0 Posts
  • 26 Comments
Joined 1 year ago
cake
Cake day: July 1st, 2023

help-circle








  • The car thing really blew my mind. My hotel was 400m from the office but 1.6km by car. Colleagues were waiting for a taxi while I walked. I had to cut over a couple of car parks and a bit of grass (zero sidewalks) and was there in a few minutes while they turned up 15min later since they were waiting for a taxi.

    The worst part, they all jumped in cars to go 300m down the road for lunch. Yeah, I walked. With looking for a parking space then walking from the space to the restaurant, they got there after me.

    I adore Americans; they’ve been nothing except kind and generous to me in every part of the country I’ve visited but damn, the money they’re wasting alone just starting their engines and the wear and tear on the vehicles blows my fucking mind. Build some sidewalks, guys!





  • I’m not insisting anything; stating C is not a memory-safe language isn’t a subjective opinion.

    Note I’m not even a Rust fan; I still prefer C because it’s what I know. But the kernel isn’t written by a bunch of Lewis Hamiltons; so many patches are from one-time contributors and the kernel continues to get inundated with memory safety bugs that no amount of infrastructure, testing, code review, etc is catching. Linux is written by monkeys with a few Hamiltons doing their best to review everything before merging.

    Linus has talked about this repeatedly over the past few years at numerous conferences and there’s a reason he’s integrating Rust drivers and subsystems (and not asking them to fork as you are suggesting) to stop the kernel stagnating and to begin to address the issues like one-off patches that aren’t maintained by their original author and to start squashing the volume of memory corruption bugs that are causing 2/3rds of the kernel’s vulnerabilities.


  • No idea what you’re being downvoted. Just take a look at all the critical CVSS scored vulnerabilities in the Linux kernel over the past decade. They’re all overwhelmingly due to pitfalls of the C language - they’re rarely architectural issues but instead because some extra fluff wasn’t added to double check the size of an int or a struct etc resulting in memory corruption. Use after frees, out of bounds reads, etc.

    These are pretty much wiped out entirely by Rust and caught at compile time (or at runtime with a panic).

    The cognitive load of writing safe C, and the volume of extra code it requires, is the problem of C.

    You can write safe C, if you know what you’re doing (but as shown by the volume of vulns, even the world’s best C programmers still make slip ups).

    Rust forces safe® code without any of the cognitive load of C and without having to go out of your way to learn it and religiously implement it.