LearnixOS

(learnix-os.com)

86 points | by gtirloni 3 hours ago

8 comments

  • Dreami 2 hours ago
    From the name I thought this was about learning NixOS, and they found a very clever name

    Maybe the author could add a small note that this is not about that, and refer to something official about NixOS?

    Anyway, I like the idea of the project!

    • layer8 33 minutes ago
      “*nix” means a Unix-like OS just generally (http://en.wikipedia.org/wiki/%2Anix), like for example in “Minix” and “Xenix”. Sticking “OS” to the end of an OS name is also commonplace. However, the title on the page is “The Learnix Operating System”, so the actual name seems to be just “Learnix”.

      It’s arguably Nix and NixOS who have unnecessarily stepped into the “*nix” namespace without adding a distinguishing prefix.

      • otabdeveloper4 4 minutes ago
        > “*nix” means a Unix-like OS just generally

        "Unix-like OS" isn't a thing that has existed for two decades. Only Linux and Darwin survived, so don't do the "*nix" thing, please.

    • hxugufjfjf 1 hour ago
      Thought the same! Was a bit interested in learning Nix for a moment.
    • censorylls 43 minutes ago
      That is nice. Just sucks that Rust proponents apparently tried to assassinate Rene Rebe through SWATting.

      www.tomshardware.com/software/linux/linux-dev-swatted-live-during-a-development-video-stream

      Murderous, vile, wretched Rust proponents will try to censor, downplay and distract from this.

      • anp 41 minutes ago
        > Others think someone from the Rust (programming language, not video game) development community was responsible due to how critical René has been of that project, but those claims are entirely unsubstantiated.
  • MontyCarloHall 2 hours ago
    This dedicates at least as much time to discussing the eccentricities of the underlying Rust implementation (and the Rust language itself) as it does to discussing the underlying low-level hardware/software concepts. Since this is very much still a work-in-progress (only the first three sections have been fully fleshed-out), I have a suggestion to make: please make it more language-agnostic, with a greater focus on the fundamentals versus the implementation.
    • surajrmal 1 hour ago
      One of the hardest parts of writing an os is learning and understanding how to make the toolchain work the way you need it to. I wouldn't consider that a negative to spend time discussing it in such detail. Otherwise you have no idea how to even apply the high level concepts.
  • Santosh83 1 hour ago
    Why always POSIX compliant? If its going to be a learning exercise or a hobby OS or just an exploration, why not throw POSIX out the window and start from scratch for designing the API?
    • WillAdams 1 hour ago
      Source of ready-to-go software for use/testing?
  • herodotus 1 hour ago
    This is an ambitious project. Might I respectfully suggest that you use your favourite AI (or an English-speaking friend) to fix your many grammatical errors and typos? For example "Note: ALL the syntax highlighting of the Rust code is custom and create by me! If you see and bug, please write in the comments or submit an issue." should be "Note: ALL the syntax highlighting of the Rust code is custom and was created by me! If you see a bug, please leave a comment or submit an issue." Also, Rust, not rust. And many more.
    • sdsd 1 hour ago
      That's a good suggestion to OP but as a user, I find it adds character and makes it feel human in an increasingly LLM-polished internet.
      • CamperBob2 24 minutes ago
        That's how I used to feel about spelling and grammar checkers. I was wrong. Maybe you are, too.
    • breaker-kind 1 hour ago
      And* many more ;)
  • TazeTSchnitzel 34 minutes ago
    I think it's really cool that they're using bare-metal Rust for this. It's a lot more accessible than C because the standard distribution (rustup) can work as a cross-compiler to a no-OS target out of the box. Deliberately avoiding dependencies makes me happy too, people really underestimate what you can do with Rust without relying on the whole dependency ecosystem, and this is better pedagogically because you can understand the whole system.

    I'm rather amused at how https://www.learnix-os.com/ch01-02-booting-our-binary.html has you creating a 16-bit target that ostensibly uses 32-bit pointers in its data layout… presumably that doesn't actually work to compile normal code to (edit: …or does it?! What on earth does LLVM do with that then…) but I guess it works so long as it's just acting as a scaffold for inline assembly. It's cool they don't need to bring in a secondary toolchain for the 16-bit part of bootstrapping, even if I worry this might break in some future rustc/LLVM revision.

  • croemer 40 minutes ago
    I spotted at least 3 typos in the first minute. Typos are really easily detected and fixed with LLMs (one really good usage of them).

    But it's nice to have non-LLM written text. Still the many typos are annoying and distracting.

  • incognito124 2 hours ago
    Looking forward to going through the lessons
  • speed_spread 1 hour ago
    I hope this builds on phil-opp's previous work which is IMO stellar.
    • quibono 19 minutes ago
      What's the status on that? Did the series ever get finished?