Is It Time to Rewrite the Operating System in Rust?

Поделиться
HTML-код
  • Опубликовано: 2 авг 2024
  • Want to attend #Qcon or #DevSummit for free? Here's your chance!
    Write an article for #InfoQ and you could win a ticket! Show off your expertise and contribute to the tech community.
    Join the contest now: www.infoq.com/articles/infoq-...
    💪 Knowledge is power!
    #ArticleContest #TechArticles #WinATicket
    ----------------------------------------------------------------------------------------------------------------
    Video with transcript included: bit.ly/2Nq7RW5
    Bryan Cantrill explores Rust, explains why it has captured the imagination of so many systems software engineers, and outlines where it might best fit in the deep stack of operating system software.
    This presentation was recorded at QCon San Francisco 2018: bit.ly/2uYyHLb
    For more awesome presentations on innovator and early adopter topics check InfoQ’s selection of talks from conferences worldwide bit.ly/2tm9loz
    #Rust #OperatingSystems #SystemProgramming #InfoQ #QConSanFrancisco
  • НаукаНаука

Комментарии • 583

  • @ArchimedesTrajano
    @ArchimedesTrajano 5 лет назад +767

    I feel like I am watching a stand up comedian, but with topics I like to listen too.

    • @willmcpherson2
      @willmcpherson2 4 года назад +29

      _Seinfeld_ _voice_ What's the deal with dc!? The only time I type dc, it's because I'm trying to type cd! _slap_ _bass_

    • @user-ee1fn4vt8b
      @user-ee1fn4vt8b 4 года назад +4

      His talk about Oracle is legendary

    • @kamilziemian995
      @kamilziemian995 4 года назад +3

      Best stand up that I know.

    • @christianmontagx8461
      @christianmontagx8461 3 года назад +1

      Yeah. Thought he was making a parody of Uncle Bob (Robert C. Martin)..

    • @xaxabogbart
      @xaxabogbart 2 года назад

      @@user-ee1fn4vt8b What is the title of the talk about Oracle? After a brief search I can't see a good fit for your description. Cheers

  • @thzzzt
    @thzzzt 3 года назад +217

    I'm gonna write my mom's traditional chocolate oatmeal cookie recipe in Rust.

    • @microcolonel
      @microcolonel 3 года назад +41

      CHAPTER 1
      One pound salted butter
      ...
      OBEY

    • @bbahrami5981
      @bbahrami5981 2 года назад

      share donation link !

    • @bobweiram6321
      @bobweiram6321 2 года назад

      My cookie baking skills are rusty too.

    • @TON-vz3pe
      @TON-vz3pe Год назад

      You can provide git link

    • @justin3594
      @justin3594 Год назад

      @@microcolonel great comment.

  • @Idontbelievethehype2
    @Idontbelievethehype2 5 лет назад +220

    After listening to the WHOLE thing, I highly recommend it. The long winded OS history lesson is actually helpful and foundational to his conclusions. So, not a waste of time unless you know everything already, which is unlikely.
    Also, it was great to hear that his experience with Rust's borrow checker were exactly the same as mine.. ("wait, I think you want this mutable.. oh, now this should be a reference.. oh, wait, that's totally wrong"), and that he understands why it's all so important. You can't ask for a better proponent of Rust.

    • @whoisabishag3433
      @whoisabishag3433 2 года назад +1

      Unlikely ... is just Statistics ...

    • @carloslemos6919
      @carloslemos6919 2 года назад +1

      @@whoisabishag3433 What is the book mention at 1:04:12 ? English is not my first language. Thanks.

    • @whoisabishag3433
      @whoisabishag3433 2 года назад +3

      The Rust Programming Language.
      By Steve Klanic.
      It's the Official Book mention on the Rust Site.

  • @zonico5826
    @zonico5826 5 лет назад +396

    This guy has more stories to tell than all of my great grandfathers combined

    • @FedJimSmith
      @FedJimSmith 4 года назад +3

      yeah yeah,,, he knows his stuff very very well

  • @kjrimple
    @kjrimple 3 года назад +47

    I absolutely love his style. Kind of like the edge of manic but enthusiastic and experienced all in one. And he’s hilarious.

  • @davel8116
    @davel8116 5 лет назад +86

    Not only was Taligent a portmanteau of Talent and Intelligent, but it was Talent with out the NT (as in Windows NT) and Intelligent without the Intel (as in x86)

  • @clumsyjester459
    @clumsyjester459 5 лет назад +66

    Philipp Oppermann's Blog OS -> PHOBOS
    Obviously, duh.

    • @s4ecki
      @s4ecki 4 года назад +2

      actually quite nice

  • @batlin
    @batlin 5 лет назад +146

    This is the most entertaining and informative talk I've seen in possibly ever. The use of Multics and Unix to illustrate the extremes of both waterfall and ad hoc agile development is pretty mind blowing!

  • @bigtallpaul
    @bigtallpaul 3 года назад +36

    Came for the Rust, stayed for the history. Brilliant.

  • @ThePandaGuitar
    @ThePandaGuitar 3 года назад +60

    This guy’s passion is contagious. Love it!

  • @CrustyAbsconder
    @CrustyAbsconder 5 лет назад +102

    As long as we can play FreeCell and Pinball in Redox OS someday ( or some other Rust-based OS ), I can finally ditch Windows 95 as my daily driver.

    • @softwarelivre2389
      @softwarelivre2389 4 года назад +2

      Funny how Redox OS still gets lots of activity on its gitlab repository, but I did not hear any news about it for two years (and no new release as well).

    • @softwarelivre2389
      @softwarelivre2389 4 года назад +1

      @@juliankandlhofer7553 No. We are talking about RedoxOS. Written in Rust, microkernel based.

    • @kjrimple
      @kjrimple 3 года назад +2

      LOL hilarious reply!

    • @kjrimple
      @kjrimple 3 года назад +2

      I feel like Gandalf. “I was there…” - worked at Unisys’s Burroughs unit as an intern writing WFL and Algol for test cases against the OS. Algol was interesting, and I was a newbie, but the MCP felt like a crazy advanced technology. The fact that the CPU microcode was loaded at boot time (I believe that was right) was wild to me. A shame there were layoffs back then as my internship was over, and then I wandered through the woods with PowerBuilder and Sybase for nearly a decade. But I always remember the A-Series mainframes as an innovative platform that never could transition to the modern era.

  • @efraimdeluxe
    @efraimdeluxe 5 лет назад +144

    "C++ dragged all of my shit into the street and lit it on fire" .. i know the feels, man xD

    • @marcusaurelius6607
      @marcusaurelius6607 5 лет назад +1

      efraimdeluxe too stupid to write in c++.

    • @xnoreq
      @xnoreq 4 года назад +2

      @@marcusaurelius6607 Yes, as are the people in the C++ standards committee then ... according to your "logic".
      C++ is a disgraceful mess.
      If you have a friend that is a programmer and want to do him a favor then get him as far away from C++ as possible.

    • @xnoreq
      @xnoreq 4 года назад +1

      @@marcusaurelius6607 Yes, as are the people in the C++ standards committee then ... according to your "logic".
      C++ is a disgraceful mess.
      If you have a friend that is a programmer and want to do him a favor then get him as far away from C++ as possible.

    • @xplorethings
      @xplorethings 4 года назад +2

      @@xnoreq C++ is amazing. And for a large majority of people, C++ is "too amazing". So much so that often you end up misusing all the power it gives you, which inevitably leads to confusion and jade.

    • @xnoreq
      @xnoreq 4 года назад +8

      @@xplorethings This is simply misleading. A powerful language doesn't need to be as remotely as messy as C++ is.
      You're trying to sell powerfulness as a feature, which is not even a USP of C++.
      Instead, lack of foresight and proper design, maintenance of backwards compatibility (which is not always true), arbitrary rules and introduction of new arbitrary rules, undefined behaviors etc. make C++ a language that is unique in how easily you can get even trivial programs wrong.
      Compared to other popular languages it's unique in the high cognitive load that the language itself causes rather than the application and application domain the developer should be concerned with.

  • @sebastianwiesendahl5348
    @sebastianwiesendahl5348 5 лет назад +290

    49:12 finally starts talking about Operating Systems in Rust

    • @Jason_Quinn
      @Jason_Quinn 5 лет назад +72

      No garbage collection in speech.

    • @ckieee
      @ckieee 5 лет назад +2

      Thank you!

    • @theondono
      @theondono 5 лет назад +33

      For a guy that speaks this fast, it took a while

    • @evrim73
      @evrim73 5 лет назад +3

      more like 50:36

    • @parkhillmedia
      @parkhillmedia 5 лет назад +4

      Thank you! If I had to listen to that pedantic egghead go off into another useless tangent, I was going to /wrists.

  • @CyberGizmo
    @CyberGizmo 5 лет назад +20

    A few of corrections, Burroughs B5000 MCP was written in Algol-60 second they are still in business after merging with Sperry to form UNISYS, and 3 MCP was not an executive it was an operating system

    • @bobweiram6321
      @bobweiram6321 2 года назад +1

      He didn't discuss Ada at all! It is superior to Rust in every way!

    • @capability-snob
      @capability-snob 6 дней назад

      Hey DJ! The MCP was written in ESPOL, which was a superset of Algol-60.

    • @CyberGizmo
      @CyberGizmo 6 дней назад

      @@capability-snob No, original MCP was written in Algol-60, they changed later to ESPOL. ESPOL didnt appear until 1966, and MCP was written in 1959.

  • @GaryvanderMerwe
    @GaryvanderMerwe 5 лет назад +29

    The hybrid approach is what Mozilla is doing with Firefox. It seems to be working well.

  • @pkos91
    @pkos91 4 года назад +8

    If anyone wants a much more in depth look into how Unix was ported to the PDP-11, Tom Lyons was featured on the podcast "On The Metal" a few months ago. He was one of the main people who ported it iirc!

  • @first-thoughtgiver-of-will2456
    @first-thoughtgiver-of-will2456 3 года назад +15

    I feel like this could be titled "The Gospel of Rust according to Bryan"

  • @Dygear
    @Dygear 3 года назад +8

    Rust has a really good use case in the SoC that has unified memory. macOS on ARM for example would have a much easier time as there are not two memory pools that they have to talk to. It's really just passing pointers around. "CPU: Hey GPU, your memory is here. Go play with it."

  • @thingsiplay
    @thingsiplay 3 года назад +5

    Lol the way he talked about the team discussing "what is software" really hit me hard. xD
    Great start for a presentation. This one will be gold.

  • @larrygall5831
    @larrygall5831 5 лет назад +66

    This is a cross between a lecture and stand-up comedy. lol I enjoyed it. It took a little while to stop finding him annoying, then I started liking his presentation.. by the end I was really satisfied.

    • @davep8221
      @davep8221 5 лет назад +4

      My exact experience. Wish there'd been more rust, though.

    • @ToniCorvera
      @ToniCorvera 5 лет назад +4

      Many IT talks are both funny and informational, I'd even say most. Unfortunately I didn't stop finding him annoying...

    • @moneyluser5711
      @moneyluser5711 5 лет назад +3

      gave up after 2 min of tedious gamma soy

  • @CarloMilanesi
    @CarloMilanesi 3 года назад +14

    C *has* a logical XOR operator; it is "!=". For example if I want to check if "a" is greater than 6 or if "b" is grater than 6 but not both, I can write: a > 6 != b > 6. Of course, there is no possibility of short-circuit evaluation, as the value of one operator of XOR is never enough to determine the value of the whole operation.

    • @thegeniusfool
      @thegeniusfool 2 года назад +1

      Word

    • @carloslemos6919
      @carloslemos6919 2 года назад

      @@thegeniusfool What is the book mention at @ ? English is not my first language. Thanks.

  • @SimonClarkstone
    @SimonClarkstone 5 лет назад +27

    The way he describes people fighting the borrow checker but it being worth the effort is rather like what I've heard about the Haskell type checker that forces you to think harder about your program when you're writing it in return for being more likely to run correctly once written.

    • @charlesearp6133
      @charlesearp6133 5 лет назад +9

      It's not just the borrow checker. Compared to C++ templates, which are duck-typed, Traits in Rust are checked at each declaration and each definition. That means that the contract is defined explicitly upfront, not based on what methods you call on an object 10 layers deep into a web of inheritance and templated structures. This makes debugging Templates / Traits actually quite pleasant, with a cost of being slightly more onerous to write, since you need many "where:" statements. Lifetimes are built into this as well.

  • @MidnightSt
    @MidnightSt 2 года назад +5

    I like the OS definition of the creator of smalltalk.
    "Operating System - anything that didn't fit into the programming language; there shouldn't be one."

    • @carloslemos6919
      @carloslemos6919 2 года назад

      What is the book mention at @ ? English is not my first language. Thanks.

  • @Joker22593
    @Joker22593 5 лет назад +21

    20:20 My favorite way to logical XOR is !=

    • @Wren6991
      @Wren6991 5 лет назад +7

      !a != !b
      If you want to handle anything non-zero as true
      (edit: at which point you should maybe just use !a ^ !b which is more obvious)

  • @user-ov5nd1fb7s
    @user-ov5nd1fb7s 4 года назад +5

    "It's scanning your heap very well, thank you very much" TROLOLOLOLO

  • @hblaub
    @hblaub 5 лет назад +302

    Famous last words: "I can write correct C" ;-)

    • @DKL997
      @DKL997 5 лет назад +25

      I can definitely write correct C, it's really not that hard. I did a C course on Pluralsight.
      /s ;)

    • @SimGunther
      @SimGunther 5 лет назад +3

      That's the job of ATS ;)

    • @Karrq
      @Karrq 5 лет назад +5

      After you get experienced with Rust you really feel like you can write correct C.

    • @networking732
      @networking732 5 лет назад +26

      "I can" != "I do"

    • @zwerko
      @zwerko 5 лет назад +44

      I can write correct C... provided that all use cases are upfront defined, there's no business pressure to release-release-release, I'm the only person who touches the code and the problem doesn't exceed Fizz-Buzz complexity.

  • @sundhaug92
    @sundhaug92 3 года назад +4

    22:05 The Macintosh was mostly in m68k assembly (at least to start), Pascal was used sparingly and more of a Lisa-thing

    • @thegeniusfool
      @thegeniusfool 2 года назад

      Yeah, I think the confusion comes from the fact that it was written to the Pascal ABI. I.e., the Pascal way and order of framing a call.

  • @jfltech
    @jfltech 5 лет назад +43

    Any talk with BCantrill, i'm on it .. the guy is the youngest Unix gray beard you can find.. he's rubbed shoulders with some of the giants in the Unix community and is (in?)famous for some of his old school rants and clashes on the Linux/Unix newsgroup message boards...

    • @Atameow
      @Atameow 5 лет назад +8

      wipe your chin man

    • @dipi71
      @dipi71 5 лет назад +11

      Nothing wrong with a bit of hero worship.

    • @striker865
      @striker865 5 лет назад +2

      I can totally see this guy as a hero, he kinda is starting to be one for me

    • @FindecanorNotGmail
      @FindecanorNotGmail 5 лет назад +1

      Take no heroes, only inspiration

    • @dipi71
      @dipi71 5 лет назад +6

      @@FindecanorNotGmail - in that case, we could redefine »hero« to mean »person from which to take inspiration«. Done. :-)

  • @abonawas93
    @abonawas93 5 лет назад +86

    3:50 so emacs _is_ an OS? got it.

    • @firstpersonshooter3992
      @firstpersonshooter3992 5 лет назад +32

      That's been established for awhile

    • @Diggnuts
      @Diggnuts 5 лет назад +84

      If only it had a decent text editor.

    • @davep8221
      @davep8221 5 лет назад +1

      The computational environment that edits. Now CE has been blessed up to OS.

    • @mechanicalmonk2020
      @mechanicalmonk2020 5 лет назад +11

      @@Diggnuts evil mode

    • @Evan490BC
      @Evan490BC 5 лет назад +2

      @@mechanicalmonk2020 I'd like to use Emacs just for the Org mode thing. Somehow Spacemacs hasn't worked for me yet...

  • @christophernugent8492
    @christophernugent8492 5 лет назад +11

    My first thoughts here are that if you are writing Linux kernel drivers that you intend to share with upstream, you should use C. I've got the feeling that it would be hard to convince the upstream developers to add the Rust compiler to the development dependencies. That said, have any of you had any experience with this? Have the upstream Linux kernel maintainers ever shown any interest in languages other than C and assembly?

    • @christophernugent8492
      @christophernugent8492 2 года назад +1

      @AB Someone actually has. It’s called Redox OS.

    • @aqua3418
      @aqua3418 2 года назад +10

      Rust has already been considered and is being included into the Linux compiler. Obviously you can't rewrite millions of lines of code (that'd be a waste of time and money), but going forward you can start to do things differently.
      So I'd say stuff is changing. It's gaining momentum. I'm sure even they will start to slowly come along too.

  • @storerestore
    @storerestore 5 лет назад +48

    Logical xor in C is just "!=". Possibly with the operands double-negated if any non-zero value needs to be considered true

    • @poe84it
      @poe84it 5 лет назад +3

      why so low! bump!

    • @gabiold
      @gabiold 2 года назад

      @Headspin3d Actually, it could be used a lot of times. In systems programming (embedded especially), it is sort of an everyday task to compare previous and current states to extract what's changed. It is true though, that most of the time it have to be done on binary data (I/O peripheral values or something), and there is a binary XOR eventually. Using != for the logical one on the other hand is just more readable in most of the cases.

  • @illustriouschin
    @illustriouschin 5 лет назад +4

    What OS is he talking about? Also, does he mention Terry Davis?

  • @anthonyvays5786
    @anthonyvays5786 5 лет назад +25

    while Rust users were busy arguing over syntax and CoCs, Terry Davis was already on his second fully functioning operating system all by himself

  • @v1Broadcaster
    @v1Broadcaster 5 лет назад +2

    I like how he defined a driver as an operating system

  • @OhJeezMC
    @OhJeezMC 5 лет назад +9

    There is a logical xor in c, but it's called "not equal" operator. At least for booleans, but after all, it is a boolean operation.

  • @Sanjeev...
    @Sanjeev... Год назад +1

    Write your own os firstly in rust. then compare to present os in c\c++. After that let's think about replace.. Future c\c++ version updates may lead to follow the conventional standard to write os in c

  • @striker865
    @striker865 5 лет назад +56

    Dude, Object Oriented programming was a dark time indeed.

    • @dupersuper1000
      @dupersuper1000 5 лет назад +47

      Indeed... On the flip side, I did learn a bit more about animal taxonomy.

    • @alexleung842
      @alexleung842 4 года назад +4

      Get ready for the age of Monads.

    • @_tsu_
      @_tsu_ 4 года назад +5

      In my opinion, it's not OO, It's inheritance. Rust has OO, put its done right though.

    • @BosonCollider
      @BosonCollider 4 года назад +4

      @@_tsu_ Right. Inheritance simply isn't possible to do right with value types in a systems language because you lose the LSP and the size of a type is part of its spec.
      If you inherit from a concrete type and add fields, you change its size. So both have to be ref types for the LSP to hold. Which directly clashes with any ambition to make it a systems language without giving up on a big part of the power of inheritance.
      You can still have inheritance from abstract types and interfaces though. Which is effectively what Rust gives you with traits.

    • @NymezWoW
      @NymezWoW 4 года назад +2

      Youre talking like OOP is going away. It‘s not.

  • @chrisw1462
    @chrisw1462 5 лет назад +48

    I can't have a memory leak, it's GC'd! == I can't be overdrawn, I still have checks!

    • @vangrails
      @vangrails 5 лет назад +3

      You still have checks but in other parts of the world the check system disappeared 30 years ago.

  • @faust1652
    @faust1652 5 лет назад +5

    Semantic Superfund Site? That was an epic alliteration right there. 55:46

  • @distrologic2925
    @distrologic2925 5 лет назад +21

    I think I am ready to leave everything behind... C++, Java, Python, Haskell... There is just Rust and it has everything and does everything I need and I would be happy.

  • @samuelschwager
    @samuelschwager 5 лет назад +4

    I think a few code samples would have been great. But apart from that it was very interesting, high energy guy!

  • @sourcesource8750
    @sourcesource8750 5 лет назад +5

    My experience with Rust and Cargo trying to write kernel was bitter. You need to run updates very often and you don’t have control on what it downloads

  • @mitchelvalentino1569
    @mitchelvalentino1569 5 лет назад +84

    Is this just a thing that happens when one learns Rust, you just become obsessed with rewriting everything in Rust?

    • @mikebrown7366
      @mikebrown7366 5 лет назад +46

      Apparently it is. It's like the mental blindness introduced by Java. If your only tool is a hammer, then every problem begins to look like a nail.

    • @androth1502
      @androth1502 5 лет назад +24

      one wonders at the point of rust to begin with. it's just a more annoying c++, and c++ is already annoying.

    • @armpitpuncher
      @armpitpuncher 5 лет назад +19

      Yes, it kind of is. And the reason for that is that using other people's code is monumentally easier in Rust than in C or C++. And while you can provide Rust bindings to C libraries, first you have to build those libraries, and there is no one way to build a C library. Although CMake has made things better in recent years, even that is a monstrosity that nobody knows how to use correctly. So yes, there is an inclination among some people, who have some free time, to just ditch the bindings and go 100% Rust, because it makes your life easier, once you've passed that hurdle.

    • @mduckernz
      @mduckernz 5 лет назад +13

      @@androth1502 Have you even used it? Or just formed your opinions from what other people have said?

    • @mduckernz
      @mduckernz 5 лет назад +9

      If you would bother to actually watch the talk before criticising it, you would find that it is an example of a hypothetical question as commonly used in headlines: if it's asking, the answer is no.
      (but he explains why "no" in detail, and why it's more like a "no, but")

  • @superclue
    @superclue 5 лет назад +12

    Great presentation and very fun discussion of the history of programming languages. It will remain a relevant video for years to come.

  • @Kavukamari
    @Kavukamari 5 лет назад

    well what would you say if i said, sure, euler's gcd algorithm can be software, and the computer you run it on is yourself if you don't have an automated machine to do it

  • @walkerjian
    @walkerjian 5 лет назад +3

    enjoyed this; recursive self rep glossolalia, it's OK to push as long as you pop, right? And a doubly linked ring is best represented as a mobius strip, on a calabi-yau manifold, so everything pwns itslf, ouroubourotically... The halting problem is strong with this one ;^)

  • @leahparsuidualc666
    @leahparsuidualc666 5 лет назад +6

    Normally i share your thoughts, but ..
    What even is an operating system is even in a philosophical discourse not a question. It is a system to operate a system. That's why there are systems, that operate themselves. That's why there are systems that operate other systems, that have nothing in common but an interface of any kind. Some systems are just the interface, some are bridges made of interfaces to interface bridges and/or systems.
    I really do wonder, since when you are doubting the very nature of what you are - operating - on.
    No there is no exception. The operating system never abstracts the hardware. Software that abstracts the hardware is called interface. Hardware was Software. Hardware is in most cases a static assenbly of anonymous functions. - People call that lambda calculus. You know - it is a thing - do you?
    The operating system has almost nothing to do with 'liveness' - without it programs do run in most cases far more performant, have less attack surface and a heckload less problems that are not caused by the program, but by anything but the program.
    At this point you might try to windout argumenting that you are talking about 'modern' and 'most common' operating systems, which all (many like to oversimplify things to not have to dive ito it in detail - it is called methodology) share 'a more or less' similar hierarchical structure. - Yes, in an ubersimplified way that is true - 'more or less'.
    The operating system software that runs with the highest level of architectural privilege is the operating system kernel? - Wow. That is utter bullshit and evidently wrong in any case and under any assumption one could interpret that; What defines high? The Ring-Model? Specifically on X86-Systems? Well that is about 3% of all computational Hardware actively running worldwide. - Aaaahh, soooorrryyyyy, yyyeeeeessss - for sure - you meant PC-only, right? Yeah, well ... before the kernel gets loaded, there has to be something that loads it and if you think that is picking on things, then you should start to wonder how much of 'what you define as features of the kernel' are actually only possible because of the software beforehand - spending 'liveness' to what gets corrupted and mangled shortly after by what you call Kernel, or precisely by malware 'in the eyes of the beholder' - i mean, you do know that now where we are talking about PC and X86 only the biggest chunk of the market is plastered with Minix-Parallel-Machines, that -in contrast to the OS that you are talking about- is running always, as long as energy is available and is always able to interrupt, redirect, clone and autonomously remote-distribute In- and Out- -out of what you call hardware and what you call software, right? You do know .. that.. right??
    Oh and if you are looking for three prime examples how it can be done by applying halfway sane principles:
    Illumos (everyone who is tempted to comment now, doesn't get the joke - just go), NetBSD, Sculpt
    But to get to the point of - what i assume is merely a meditative marketing for managers (which is the exact opposite of what you are known for and it's sad seeing you sunken to that level) - Can Rust be an option at all to re-write an operating-system?
    From the perspective of sane and secure software, yes, sure. And it isn't even a question worth, as you can just automatically replace|transcribe|transpile 99.9999% of it, don't you?
    ... Oh, yeah, yea, right. Easily, but those, you know those specific system thingy ... yeah, no you can't, because it runs on X86. Darn it. Yeah, no - not possible, sorry folks - Rust contradicts the exact core principles of x86-Hardware. Sure, Itanium, Sparc, PPC, Core, Cortex and many many many more, no problem, BUT x86? INTEL x86?? HOW DARE YOU???
    ---
    For everybody who wants to add some reasoning, please, feel free to dump a pile on it. - For everybody who doesn't even have the slightest slice of an idea, what i am talking about, just forget and watch the next ...

    • @readingsteiner6061
      @readingsteiner6061 4 года назад

      Leahpar Suidualc this is informative! Thank you

    • @nyankers
      @nyankers 4 года назад

      10/10 rant

    • @ChrisStavros
      @ChrisStavros 3 года назад

      This is the most /thread that the thread has ever been

    • @gianni50725
      @gianni50725 2 года назад

      I always enjoy a good schizo rant esp if I understand it

  • @disk0__
    @disk0__ 5 лет назад +26

    Bad: Not moving to rust for future operating systems
    Sad: Missing this talk because "Bryan Cantrill" isn't in the title

  • @rhysmuir
    @rhysmuir 3 года назад +1

    Does that mean JVM and .net CLR are operating systems, cause programs run on to of them?

  • @yutubl
    @yutubl Год назад

    Some Rust language features (like safer memory management, C API interoperability, unsafe) remind me to C#, which Microsoft Research used for a new operating system research project.

  • @grimfistgaming7694
    @grimfistgaming7694 5 лет назад +16

    Hmm RedoxOS anyone?

  • @robbietorkelsonn8509
    @robbietorkelsonn8509 2 года назад +1

    things were a lot simpler when we weren't virtualising hardware
    -- programmer encountering virtual 86 mode in 1985
    If you don't want your garbage collector hogging up the system, don't keep creating things, like in the functional paradigm
    His is right, he is far ahead of it's time. In a few years this platform will be filled with videos focusing on only that.

  • @pazdziochowaty
    @pazdziochowaty 5 лет назад +2

    Are you sure no OS was written in Python?
    I believe there are many but none of them was able to finish booting sequence yet.
    However, all were implemented under one week around 1995 - great development speed

    • @pazdziochowaty
      @pazdziochowaty 5 лет назад +2

      @three sixes It is hard to compare the complexity of package manager and operating system. Besides, there are q* tools (qsearch, qdepends etc.) which are advertised on Gentoo site as "collection of very fast utilities written in C, which are meant to offer a faster but more limited alternative" and "The utilities may be much more efficient than the equivalent ones from gentoolkit and might be better suited to be used in scripts that need to call Portage repeatedly". So even gentoo guys know how painfully slow python is.
      Can you even imagine OS kernel implemented in python? Scheduler would probably occupy 2-3 cores at 100% to give processes any CPU time to run. On 1 CPU you would get 10 seconds per frame experience :)

  • @guyblack9729
    @guyblack9729 3 года назад

    I found someone who talks the way i think and now i need to listen to all of his talks.

  • @robertsexton4997
    @robertsexton4997 9 месяцев назад

    I suspect that the speed up from switching to B-Trees from AVL trees comes from Cache behavior. BTree accesses will have more cache hits and benefit more from cache pre-fetches. There is an assumption in AVL trees that all memory accesses have the same cost. Thats not the case.

  • @xgf122
    @xgf122 5 лет назад +3

    RedoxOS already exits, a unix-like os, but it is in preAlpha stage at the best

  • @kamalabuhenamostafa
    @kamalabuhenamostafa 5 лет назад +11

    Speedy like m/c gun yet enjoyable presentation.

  • @DamCipolat
    @DamCipolat 5 лет назад +1

    Is the same of rewrite the operating system in golang or nodejs

  • @ryanleemartin7758
    @ryanleemartin7758 2 года назад +1

    "It's not a garbage collector...it's a heap scanner." This dude is too damn much lmao!

  • @wowzers1237____
    @wowzers1237____ 8 месяцев назад

    I love his style. Enthusiastic and engaging. I wish he taught all my classes in school.

  • @AsbjornOlling
    @AsbjornOlling 5 лет назад +2

    Why did I put off listening to this talk for so long? I've seen it in my recommendations for a while, but just haven't.
    It's great! Will recommend! Would watch again!

  • @godDIEmanLIVE
    @godDIEmanLIVE 2 года назад +2

    This guy has such charisma and he's funny as well. What a fantastic talk.

  • @Edward3DFX
    @Edward3DFX 5 лет назад +6

    history lessons by Cantrill are awesome! The MCP rulllleeeezzzzz
    I can’t wait for a operating system that is less than 10000 lines of code......and can run like the millennium falcon .....on crack...

  • @hansvetter8653
    @hansvetter8653 2 года назад

    Purpose of any operating system is managing the continous allocation of all hardware resources of exactly that system.

  • @dansanger5340
    @dansanger5340 2 года назад +1

    25:00 - How about Arrohole? :)

  • @Jianju69
    @Jianju69 5 лет назад +2

    If Euclid's GCD algorithm is codified and stored upon readable media that can be loaded into hardware memory, and executed on that system's processor(s), then it is software.

    • @riccardoorlando2262
      @riccardoorlando2262 3 года назад +3

      Well, I have here a piece of paper (which is readable media) upon which is written the algorithm. I then read it, step by step, thereby loading its instructions in my brain, and execute them.

  • @vinzzz666
    @vinzzz666 Год назад

    I really congratulate the presenter in relation to the tempo. Most talks are slow...

  • @louis-ericsimard7659
    @louis-ericsimard7659 5 лет назад +5

    What an excellent, excellent communicator. Well done !

  • @ryanleemartin7758
    @ryanleemartin7758 2 года назад +1

    "Javascript is the failed state of programming languages". That has to be one of the greatest observations on javascript that I've ever heard.

  • @UGPepe
    @UGPepe 5 лет назад +4

    Rashomon for OSes... he won't stop with the social commentary, I love this guy :))

  • @kps2642
    @kps2642 2 года назад

    I have no idea about OS but this talk is super engaging and entertaining. Great Talk.

  • @BrianFrichette
    @BrianFrichette 5 лет назад +2

    Is this the Herodotus of computer science?

  • @MichaelKahle
    @MichaelKahle 4 месяца назад

    "Arohole, lets call our company that!" Typing through tears. 🤣

  • @upipe4me
    @upipe4me 5 лет назад

    He: Am I talking to you (Computer)
    Computer: Hum, I’m better off with ASM

  • @joebonsaipoland
    @joebonsaipoland 5 лет назад +22

    Why not use TEMPLE OS, why reinvent the wheel?!!! Just add network and GPU drivers ! Done!

    • @jacobitosuperstar
      @jacobitosuperstar 5 лет назад

      exactly my thoughts, god/daddy Terry made us the best thing a single man could do, is just continue and polish his work and nothing more...

    • @Adolf1Extra
      @Adolf1Extra 5 лет назад +2

      Shrine fork already has networking stack implemented.

    • @daviddow5591
      @daviddow5591 5 лет назад

      Didn't Terry not want a network stack due to his paranoia?

    • @jacobitosuperstar
      @jacobitosuperstar 5 лет назад +1

      @@daviddow5591 true, but at the same time he wanted people to develop it... so idk... conflicting point of views from god/daddy Terry

  • @Davidicus000
    @Davidicus000 Год назад

    Wow tour de force talk, he talks a bit fast for those new to the arena, but wow, and Rust is the real deal, C++ is legacy, and C is narrowly still relevant. I love Rust, thank you for making this language.

  • @tomaszubiri8490
    @tomaszubiri8490 4 года назад

    What was that programming language that starts with Chapter 1 called?

  • @gruuuaaa
    @gruuuaaa 5 лет назад

    My biggest issue with rust if the binary size. Did it get any better?

  • @MichaelMrozek0
    @MichaelMrozek0 Год назад

    19:37 Is logical XOR not just "!="?

  • @sizur
    @sizur 5 лет назад +23

    First time I'm hearing this guy and the way he's presenting is legendary!

  • @mikebrown7366
    @mikebrown7366 5 лет назад +4

    Burroughs was an atrocity. Slowest hardware on the planet and brought us the punch card transliteration that could only fit 60 characters across the 80 column card and put the rest on a second line. You had to be there I guess.
    Honeywell mainframes were the bomb. Every line of GCOS written in assembler. Ran circles around IBM. Sure, it crashed occasionally, but it booted 20 times faster than an IBM.
    Honeywell poured a ton of money into multics too. B also thrived on Honeywell mainframes. It's still alive today at the University of Waterloo. How he gives this talk and never mentions Honeywell is beyond me.

  • @abbyck
    @abbyck 5 лет назад +1

    It's like watching a standup comedy. Btw I don't know any rust or any deep understanding of a programming language, system. But this talk is awesome. Made me sit in front of the computer for the entire duration.

  • @AssadKhan1
    @AssadKhan1 Год назад

    Nice one really enjoyed your talk

  • @TheTurnipKing
    @TheTurnipKing 5 лет назад +10

    Every computer can run a program. An operating system's fundamental job is to allow it to run programs, plural.

    • @bocckoka
      @bocckoka 5 лет назад +1

      I'd say the OS is the first level of abstraction above the machine (regardless whether or not the machine has a protected mode or preemption).

    • @TheTurnipKing
      @TheTurnipKing 5 лет назад +1

      @@bocckoka There's all kinds of things you could have in place before the OS. Various firmwares, simple program launchers which simply launch another program, execute and return.
      The purpose of an OS is to launch other programs, and usually multiple other programs, because that's what allows the useful abstraction of functionality into discrete units, and if you're not doing that you don't really NEED an OS.

  • @mduckernz
    @mduckernz 5 лет назад +8

    Wow, this has generated a fair amount of pretty negative comments, yet others seem to greatly enjoy it. Polarising.
    For what it's worth, I enjoyed it.
    It's worthwhile to read the blog of the talk author, he goes into more detail regarding his explorations of Rust as well as many many other software and hardware topics.

  • @viniciusmorgado9722
    @viniciusmorgado9722 Год назад

    7:00 Actually the most recent TRON is a very good movie.

  • @striker865
    @striker865 5 лет назад +5

    Love this guys passion!!

  • @sgwong513
    @sgwong513 5 лет назад +8

    Wow, really enjoying presentation. Never expect to finished the whole presentation but just can’t stop watching it.

    • @striker865
      @striker865 5 лет назад

      Dude, I couldn't stop either. I just watched this thing straight through... And like was late as shit

  • @ShakilShahadat
    @ShakilShahadat 5 лет назад +31

    In Rust We Trust

    • @chbrules
      @chbrules 5 лет назад +5

      and then fail

    • @Winnetou17
      @Winnetou17 5 лет назад +6

      In Trust we Rust

    • @Dong_Harvey
      @Dong_Harvey 4 года назад +1

      In Ferris We Cherish

    • @wanderer7480
      @wanderer7480 3 года назад

      @@chbrules No we don't.

    • @chbrules
      @chbrules 3 года назад +1

      @@wanderer7480 Yes we didn't.

  • @ChristopherHaws90
    @ChristopherHaws90 2 месяца назад

    A SQL Engine is essentially an OS

  • @dreznik
    @dreznik 5 лет назад +3

    the speaker reminded me much of woody allen's speech patterns and antics

  • @hassasin007
    @hassasin007 5 лет назад +2

    What's that on his t-shirt?

    • @bcantrill
      @bcantrill 5 лет назад +17

      It's an illumos shirt that says "There's no home like usr/src/uts", a reference to the directory that contains the source tree for the Unix kernel. It is not an accident that I'm wearing that shirt for this talk. ;)

  • @jobowobo6700
    @jobowobo6700 5 лет назад +1

    Hardware is anything physical. Software is the systems the make is all work. Without software hardware is just individualize components. Without Hardware software is just an idea.Software can take the form of hardware. A fruit can be a vegetable too, they are not self exclusive or hard to define.

  • @KaneYork
    @KaneYork 3 года назад

    vfork+SIGCHLD is so so terrible. I recently came across a vfork() call and it took about a half hour to determine that it was blatantly violating the userspace contract with the kernel, but it worked anyways.

  • @pspicer777
    @pspicer777 4 года назад

    _... as old as I am_ Dude, don’t even go there. 😬 Great presentation. Thanks.

  • @hamzamuric
    @hamzamuric 3 года назад +1

    Isn't != logical xor?

  • @ithraldharzul6887
    @ithraldharzul6887 5 лет назад +3

    Redox OS is interesting due to it's micro kernel architecture, which in theory has the potential to greatly improve performance on a wide range of devices while also improving stability when performing updates.

    • @nextlifeonearth
      @nextlifeonearth 5 лет назад +4

      Well, a microkernel typically has less performance because of userspace overhead n all, but this can be minimised (as proven in L4)
      The advantages are that if a driver crashes, the kernel doesn't and it can just restart the driver without affecting other drivers.
      And in security microkernels keep drivers in userspace, so they can't mess with each other, and can't mess with the system.
      As long as the kernel doesn't need an update (it's a microkernel. It may only need an update to patch a bug, which are rarer, and to add a new processor) you will never have to restart the kernel.
      Safer, fewer places for bugs, still fast. I hope it gets somewhere.

    • @ithraldharzul6887
      @ithraldharzul6887 5 лет назад

      @@nextlifeonearth The performance mostly comes from not loading unneeded drivers, which is easy if they are all in user space. When you have to compile the kernel yourself and set all the right flags to only grab the drivers you need then only a small % of people will actually do this. as such for a plug and play solution where drivers are loaded only as needed instead of wholesale a micro kernel can outperform a standard kernel.

    • @nextlifeonearth
      @nextlifeonearth 5 лет назад +2

      @@ithraldharzul6887 Linux doesn't load unneeded drivers either though. This is not much of a performance thing, but rather a portability thing. The drivers simply aren't present on your system with a microkernel as opposed to a monolithic one.
      Not having these drivers makes the install size smaller. They wouldn't be loaded either way. Linux only loads drivers it needs after detecting and identifying the hardware.
      What you might be thinking of is how drivers can be loaded (and unloaded) from external sources at runtime?
      Generally drivers are pretty small, so if the hardware is present, you can keep the drivers loaded no problem, because loading it back in when you need it is guaranteed to be slower than keeping a few bytes in memory occupied and polling the hardware every so often.

    • @sinthorias
      @sinthorias 5 лет назад +3

      'greatly improve performance'? The reason mikrokernels failed time and time again is precisely because of the performance hit you take when all your OS communication constantly crosses the kernel/userspace boundary. Yes, there are improvements, but no, it's still nowhere close to solved.
      Redox OS is interesting in its own right, but making wild claims backed by nothing don't really help the cause. Read up and stop parroting something you've heard on a message board.

  • @johnwarren6966
    @johnwarren6966 5 лет назад +22

    My vote is that the next operating system should be implemented in Emacs Lisp. 👹

    • @kevinklement2621
      @kevinklement2621 5 лет назад +9

      Doesn't that operating system already exist?

    • @johnwarren6966
      @johnwarren6966 5 лет назад +4

      @@kevinklement2621 It's only missing a boot loader :)

    • @kevinklement2621
      @kevinklement2621 5 лет назад +22

      @@johnwarren6966 That, and a decent text editor. (**ducks for cover**)

    • @ulissemini5492
      @ulissemini5492 5 лет назад +4

      @@kevinklement2621 it has evil-mode, it has a good editor ;')

    • @mitchelvalentino1569
      @mitchelvalentino1569 5 лет назад

      YESSSS!!!!!

  • @cbrunnkvist
    @cbrunnkvist 2 года назад

    That coffee was very strong.

  • @jackmordaunt5410
    @jackmordaunt5410 5 лет назад +1

    The notion of "ownership" is not unique to Rust, it's uniquely enforced by Rust. You can abide by ownership in other languages, just without the guard rails.