Neotron - why write a brand new ‘DOS’ for Arm in Rust? - Jonathan Pallant - NDC TechTown 2022

Поділитися
Вставка
  • Опубліковано 23 лис 2022
  • Take a walk through history to answer the question “Just what is an Operating System?”, via “But what even is a computer?” before we come to the ultimate question - why would someone make a brand new OS modelled after CP/M and early MS-DOS, and run it on a $1 microcontroller? And what’s Rust got to do with it?
    Check out more of our featured speakers and talks at
    www.ndcconferences.com
    ndctechtown.com/
  • Наука та технологія

КОМЕНТАРІ • 35

  • @MikeHunt-fr7co
    @MikeHunt-fr7co Рік тому +11

    Actual subject starts at 52:50

  • @heater5979
    @heater5979 Рік тому +4

    In CP/M the PIP command is Peripheral Interchange Program. It moves data between peripheral devices, printers, serial ports etc or files on disk.

  • @Heater-v1.0.0
    @Heater-v1.0.0 2 місяці тому

    Strangely enough when I was a teenager in the mid 1970's building by first circuits with the new fangled TTL logic chips that became available I was having a terrible time getting them to work. My old father, who knew nothing of digital electronics, suggested I attach an old set of head phones to the circuit and listen for activity. In no time at all I had the circuits working! Little did I know Lyons Tea shops had that idea decades before!

  • @soupwizard
    @soupwizard Рік тому +5

    The project is on github under user Neotron-Compute (youtube seems to eat comments with direct links), with multiple repos about the various aspects of the project.

    • @edgeeffect
      @edgeeffect Рік тому +1

      Yeah... UA-cam link eating stinks! You listenin' UA-cam?

  • @RonSheely
    @RonSheely 8 місяців тому

    Excellent. Thank you.

  • @tomasz-waszczyk
    @tomasz-waszczyk Рік тому

    After the presentation I know what BSD really means. Thanks!!

  • @RaymondHulha
    @RaymondHulha Рік тому

    Great talk!

  • @patto2k358
    @patto2k358 5 місяців тому +3

    52:13 start of the talk

  • @andikunar7183
    @andikunar7183 Рік тому +4

    Windows 1 could have done overlapping windows. But Apple had fought with Digital Research over their „gem“ Version 1 and its overlapping windows. To avoid litigation delays, Windows 1 only did tiled windows …

  • @sundhaug92
    @sundhaug92 Рік тому +1

    38:04 misses that Lisa had multiple operating systems - Lisa Office System (7/7), MacWorks (for Macintosh app-development)

  • @zerettino
    @zerettino Рік тому +5

    s/.*/A brief history of operating systems/

  • @guai9632
    @guai9632 Рік тому +8

    I agree that browser is an OS, and I think next successful OS would use wasm as first-class and maybe only apps distribution format

    • @Heater-v1.0.0
      @Heater-v1.0.0 2 місяці тому

      As long a a browser relies on a kernel, a bunch of libraries, a ton of other services running on the machine etc, it cannot be an OS. It is an application that runs on an OS. Currently one cannot do any kind of hardware I/O from a browser without the help of an OS. Not even in WASM. Ergo a browser is not an OS. Even if it provides interfaces to JS or WASM applications that superficially look like an OS.
      I like the idea of WASM as a distribution format. But as it stands one cannot write an OS in WASM.

  • @edgeeffect
    @edgeeffect Рік тому +2

    Anyone who's got TCL and Pascal in their past is OK with me. ;)
    "You don't like to think in terms of sectors - you like to think in terms of files". Forth programmer: (shakes head)
    Doesn't EDSAC Initial Orders beat LEO Master Programme?
    The "forward slash" (I HATE it when people say "forward slash" was used for command options in CP/M and the PDP-11, so they've got to share some of the blame for MSDOS backslashery.

  • @brdrnda3805
    @brdrnda3805 5 місяців тому

    I'm still doing copy con sometimes...

  • @GDScriptDude
    @GDScriptDude 8 місяців тому

    Very interesting history lesson! I once mentioned to a colleague at work that I was thinking about developing an OS and they had a look of bewilderment. But it doesn't have to be such a monolithic thing. I'm just working on computer simulation software now.

  • @RonSheely
    @RonSheely 7 місяців тому

    How is the Rust-Lang compiler preventing relocatable code? Is there a work-around?

    • @therealjpster
      @therealjpster 7 місяців тому

      I think it's due to missing things in LLVM - Arm's LLVM has them but upstream LLVM does not (as far as I recall - I might be wrong)

  • @geniuslowbar
    @geniuslowbar Місяць тому

    its a history lesson that skipped a whole decade (Newton, Psion, Symbian) of mobile device operating systems.
    he describes Neotron within 5mins.

  • @RonSheely
    @RonSheely 7 місяців тому

    ChatGPT says relocable Rust code on the RP2040 MCU should be configurable in the linker.

    • @therealjpster
      @therealjpster 7 місяців тому +2

      ChatGPT is a weighted random number generator and you should read what actual humans have written on the subject.

  • @pullrequest1481
    @pullrequest1481 Рік тому

    ARM? Will it run on nokia n900?

  • @terragame5836
    @terragame5836 11 місяців тому

    I'm a bit sceptical about having the OS interface exposed in Rust. This essentially forces every userspace application to be in Rust too (since, as far as I'm aware, there's no stable C representation for std::Result, for instance), or at best use a Rust wrapper. Also, compatibility with existent programs matters, even though I like the attitude that it shouldn't prevent radical design decisiona. A new OS with a fresh approach sounds great, but I doubt this one will be it

    • @therealjpster
      @therealjpster 11 місяців тому

      Actually that’s not true. I’ve written my own C compatible types so you can write applications in C quite happily.

    • @terragame5836
      @terragame5836 11 місяців тому

      @@therealjpster It's fine if the types are made compatible, but from the slides it doesn't seem to be the case. Not unless enum layout is a fixed and documented part of Rust's ABI

    • @therealjpster
      @therealjpster 7 місяців тому +1

      @@terragame5836 Rust lets you opt in to other ABIs, e.g. extern "C" on functions and #[repr(C)] on types. Trust me, it works, even on enums where the variants contain data - it becomes exactly like a C struct containing an integer tag and a union.

  • @casperes0912
    @casperes0912 Рік тому +1

    I don't know why I watched all of this. None of this is new to me and I've already made an OS myself

  • @cloudmonklosangjinpa1969
    @cloudmonklosangjinpa1969 Рік тому +3

    Should have been 80% about Rust implementation of DOS. Waste of time unless you are a computer history buff.

  • @neunmalelf
    @neunmalelf 6 місяців тому +1

    50+ Minutes before the Talking Head comes to the real point of the Talk. #WasteOfTime

  • @cloudmonklosangjinpa1969
    @cloudmonklosangjinpa1969 Рік тому +8

    Blah blah blah history. Only the last 8 minutes is about the title.

    • @RonSheely
      @RonSheely 7 місяців тому

      Thinking there is a lot more to this than history. These tiny $4 RP2040 MCUs have a lot potential.

    • @obinnaokafor6252
      @obinnaokafor6252 5 місяців тому

      I hope the 8 minutes helped you a lot?

  • @boohoo5419
    @boohoo5419 3 місяці тому

    omg these talks are so fucking bad.. ndc is complete garbage..