LearnixOS

(learnix-os.com)

273 points by gtirloni43 days ago

21 comments

  • Dreami43 days ago
    From the name I thought this was about learning NixOS, and they found a very clever name<p>Maybe the author could add a small note that this is not about that, and refer to something official about NixOS?<p>Anyway, I like the idea of the project!
    • layer843 days ago
      “*nix” means a Unix-like OS just generally (<a href="http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;%2Anix" rel="nofollow">http:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;%2Anix</a>), 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”.<p>It’s arguably Nix and NixOS who have unnecessarily stepped into the “*nix” namespace without adding a distinguishing prefix.
      • xboxnolifes42 days ago
        Then I guess the OS part is redundant, since thr nix already implies an OS.
        • saghm42 days ago
          I feel like if I saw something just called &quot;learn unix&quot;, I&#x27;d expect it to be teaching me how to use it generically, not implement it. Adding &quot;OS&quot; makes it clear to me that it&#x27;s a dedicated OS for the purpose of learning (although it still wasn&#x27;t clear to me that the goal was implement it so if anything I&#x27;d argue that the title is missing context, but the name of the OS isn&#x27;t redundant).
        • bheadmaster42 days ago
          No, actually Nix is a package manager&#x2F;system configuration tool. NixOS uses Nix as part of its image.
          • xboxnolifes42 days ago
            No, nix clearly means a Unix-like OS and any other interpretation is wrong, as the context of this thread would suggest.
            • ZenoArrow42 days ago
              So your argument is the first usage of a word gets exclusive rights to it? Firstly, that&#x27;s not how human languages work. Secondly, this would invalidate the Unix claim to &quot;nix&quot; as it&#x27;s been a word for hundreds of years prior to Unix being invented.
              • johannes123432142 days ago
                It is, but in IT context the association was strong, while Unixes decline and most of the systems with derived naming are historic. But anybody with a background in sysadmin for more than 10 years probably would still have the association. In ten years Linux will probably the only one remaining with the ux-naming (and MacOS X with the single X, which also serves as ten, following MacOS 9)
              • 0x696C696142 days ago
                My guy, most people don&#x27;t even know what nix (the package manager) is.
                • ZenoArrow38 days ago
                  Time to get familiar then.
            • bigyabai42 days ago
              <a href="https:&#x2F;&#x2F;www.merriam-webster.com&#x2F;dictionary&#x2F;homonym" rel="nofollow">https:&#x2F;&#x2F;www.merriam-webster.com&#x2F;dictionary&#x2F;homonym</a>
          • rendaw42 days ago
            LearnixOS doesn&#x27;t seem to have anything to do with NixOS, afaict?
      • otabdeveloper442 days ago
        &gt; “*nix” means a Unix-like OS just generally<p>&quot;Unix-like OS&quot; isn&#x27;t a thing that has existed for two decades. Only Linux and Darwin survived, so don&#x27;t do the &quot;*nix&quot; thing, please.
        • onestay4242 days ago
          BSD would like a word.
          • wasting_time42 days ago
            They can&#x27;t be heard over the faint booing from the Solaris crowd.
            • yjftsjthsd-h42 days ago
              For that matter, if we&#x27;re including the proprietary OSs, HP-UX is still kinda a thing and AIX is going strong. Of course, IIRC those are actual certified UNIX™ instead of unix-like... though I&#x27;d call that a subset, so still in scope IMO.
              • riffraff42 days ago
                TIL AIX is still in development and they had a release this month<p><a href="https:&#x2F;&#x2F;community.ibm.com&#x2F;community&#x2F;user&#x2F;blogs&#x2F;sanket-rathi1&#x2F;2025&#x2F;12&#x2F;05&#x2F;ibm-aix-73-tl4-features" rel="nofollow">https:&#x2F;&#x2F;community.ibm.com&#x2F;community&#x2F;user&#x2F;blogs&#x2F;sanket-rathi1...</a>
          • otabdeveloper442 days ago
            We don&#x27;t talk about BSD here.
        • devnonymous42 days ago
          Before clicking the links.. How confident do you feel about your assertion?<p><a href="https:&#x2F;&#x2F;trends.google.com&#x2F;trends&#x2F;explore?date=today%205-y&amp;q=Unix%20like&amp;hl=en" rel="nofollow">https:&#x2F;&#x2F;trends.google.com&#x2F;trends&#x2F;explore?date=today%205-y&amp;q=...</a><p><a href="https:&#x2F;&#x2F;trends.google.com&#x2F;trends&#x2F;explore?date=all&amp;q=Unix%20like%20OS&amp;hl=en" rel="nofollow">https:&#x2F;&#x2F;trends.google.com&#x2F;trends&#x2F;explore?date=all&amp;q=Unix%20l...</a>
          • otabdeveloper442 days ago
            Very confident.<p>The people who do the &quot;*nix&quot; cargo cult thing have never seen a SunOS machine and don&#x27;t even know what a HPUX is.
            • devnonymous41 days ago
              The linked trends suggest a revival of the term though.<p>&gt; The people who do the &quot;*nix&quot; cargo cult thing have never seen a SunOS machine and don&#x27;t even know what a HPUX is.<p>The meaning of words evolve over time though. Text is still broken into lines by &quot;carriage return&#x2F;line feeds&quot; and is written on &quot;hard disk&quot; split up in &quot;sectors&quot;.,. Over time people using these would not have seen a typewriter or even know what a platter is but may still use it to communicate effectively.
        • yjftsjthsd-h42 days ago
          Illumos is still actively developed, open source, and can trace its lineage back to actual unix.<p>For that matter, we&#x27;ve had new members joining the family over the years; <a href="https:&#x2F;&#x2F;www.redox-os.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.redox-os.org&#x2F;</a> is, in their own words, &quot;a complete Unix-like microkernel-based operating system written in Rust, with a focus on security, reliability and safety.&quot;
          • johnisgood41 days ago
            For anyone wondering, OpenSolaris -&gt; illumos (e.g. OpenIndiana). Good times!
          • nineteen99942 days ago
            Not to mention that Version 4 UNIX source code was just released!
            • yjftsjthsd-h42 days ago
              Well, yes, but that&#x27;s not exactly a modern OS, just historically interesting.
        • wpm42 days ago
          Darwin is not UNIX (nor is XNU). But macOS technically is certified UNIX.
          • someguyiguess42 days ago
            XNU literally stands for “X is Not Unix”
    • wasting_time42 days ago
      I had the same confusion. Even without considering NixOS, &quot;learnix&quot; is awkward to pronounce and somewhat pretentious.<p>I would suggest the name &quot;Leanix&quot; if the author is willing to rename.<p>It rhymes with Minix which is the OG curriculum for a POSIX kernel, and is &quot;lean&quot; in many senses of the word.<p>In any case an excellent writeup. It&#x27;s detailed enough to implement in any programming language.
      • layer842 days ago
        &gt; I would suggest the name &quot;Leanix&quot;<p>Then people would complain that it sounds too much like “Linux”.
        • drob51842 days ago
          Particularly if you have learned to pronounce Linus’s name correctly.
      • jaapz42 days ago
        What&#x27;s pretentious about learnix?
      • Sagi2180542 days ago
        I like the current name and already have the domain :|
      • amitav142 days ago
        I think that it&#x27;s supposed to be a portmanteau of Unix and Learn.
      • JCattheATM42 days ago
        I don&#x27;t find it awkward to pronounce in the least, and not in any way pretentious.<p>I think the name is fine as is.
      • yjftsjthsd-h42 days ago
        I mean, it is about learning. It threw me for a loop too but I think it&#x27;s actually reasonably appropriate.
    • hxugufjfjf43 days ago
      Thought the same! Was a bit interested in learning Nix for a moment.
    • Sagi2180542 days ago
      Will do!
    • censorylls43 days ago
      [flagged]
      • anp43 days ago
        &gt; 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.
  • golem1442 days ago
    I wish instead of discussing typos, folks her who surely know better (or author) could shed light on how this project compares to the many other existing projects, like<p><a href="https:&#x2F;&#x2F;github.com&#x2F;cfenollosa&#x2F;os-tutorial" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;cfenollosa&#x2F;os-tutorial</a>, <a href="https:&#x2F;&#x2F;littleosbook.github.io&#x2F;" rel="nofollow">https:&#x2F;&#x2F;littleosbook.github.io&#x2F;</a>, <a href="https:&#x2F;&#x2F;github.com&#x2F;tuhdo&#x2F;os01" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;tuhdo&#x2F;os01</a>, <a href="https:&#x2F;&#x2F;github.com&#x2F;prakhar1989&#x2F;awesome-courses?tab=readme-ov-file#systems" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;prakhar1989&#x2F;awesome-courses?tab=readme-ov...</a><p>or even just &quot;OPERATING SYSTEMS DESIGN AND IMPLEMENTATION&quot; by Tanenbaum
    • nineteen99942 days ago
      Well from what I can see all the examples you&#x27;ve linked are in C, and this one is Rust? That counts for something I guess?
      • golem1442 days ago
        What does that matter for learning how operating systems work?<p>But even then, SAYING that this is an how-to-build-an-OS project similar to those others, but focused on Rust, would be quite helpful.
        • cultofmetatron41 days ago
          &gt; What does that matter for learning how operating systems work?<p>my rust is stronger than my c. been wanting to learn OS development and this being in somethign I already know lets me focus specifically on the os specific stuff rather than also needing to deepdive into c. a language I haven&#x27;t so much as glanced at in almost 10 years
        • nineteen99940 days ago
          Well for a start C grew up next to the OS it was being used to build, so it was really intended for kernel&#x2F;systems programming from the very get-go. Rust has taken a lot longer to get there. That&#x27;s all.
  • beasthacker42 days ago
    I wanted to share a quick piece of feedback from a potential reader&#x27;s perspective: There are several small inconsistencies in the intro text (e.g., inconsistent capitalization of &#x27;Rust&#x27; vs &#x27;rust&#x27;, grammar typos).<p>In a domain like OS development where extreme precision is required, these small errors can subconsciously signal to readers that the technical details might also be imprecise. A quick polish of the documentation would go a long way in establishing authority and trust for the rest of the book.
    • Sagi2180542 days ago
      Hi! I am the developer of this, and I really appreciate the feedback!!<p>The book is still on development and this is why I didn&#x27;t even publish it here, I just recently finished the highlighter which was a lot of work, and I probably will require more.<p>Currently I am trying to make book and OS unique by developing and creating an explanation on AHCI, which I didn&#x27;t see much on the internet. And then I try to handle all of the grammar, and typos
    • threethirtytwo42 days ago
      I couldn’t care less. It always pisses me off when a reviewer of my PR just flags the entire thing because of inconsistent capitalization. It’s the right correction and I always follow through but it’s also pedantic.<p>It’s technically more correct. But it’s also not a very big deal. Actually it matters more in code for search-ability but for documentation and comments? Give me a fucking break.
      • madeofpalk42 days ago
        Isn’t being technically correct an important thing for technical documentation that aims to be technically correct?
        • threethirtytwo42 days ago
          No. Why would it be? I hate it when people come up with defense based off of linguistics. Your defense is essentially &quot;technically correct&quot; sounds like &quot;technical documentation&quot; therefore one applies to the other because of the word &quot;technical&quot;. That&#x27;s an incidence of language and NOT of reality. Let me frame if from a rational and logical perspective:<p>Technical documentation is not a math proof. Its purpose is to transfer a working mental model to a human reader so they can make correct decisions. A document can be locally, pedantically correct and still be globally misleading if it emphasizes edge cases, omits constraints, or frames abstractions in a way that causes readers to generalize incorrectly.<p>In practice, what matters is not whether every sentence can be defended in isolation, but whether the document reliably produces correct outcomes in the hands of its intended audience. A simplification that is technically incomplete but operationally accurate is often better documentation than a perfectly correct description that obscures the dominant behavior of the system.<p>Engineers learn this the hard way. If you have ever followed documentation that was “technically correct” yet caused you to design the wrong thing, you already know this distinction matters. Correctness is necessary to an extent (and not to an excessive extent), but it is not sufficient. The goal is truthfulness at the level of use, not just sentence level defensibility.
          • someguyiguess42 days ago
            The fact that you hate something doesn’t make it valid.
            • threethirtytwo42 days ago
              No. A logical and rational explanation makes something valid.
      • clutter5556142 days ago
        I see nothing pedantic in flagging capitalisation errors, but I see loads wrong with imposing one’s sloppiness on others.
        • threethirtytwo42 days ago
          Sure you do, you see a crime where no crime happened. Read my post carefully. I imposed nothing. A standard was imposed onto me. I didn&#x27;t in turn impose anything on anyone else.<p>People may agree with you but don&#x27;t imply something was done when nothing of the sort was even attempted. I did not impose my sloppiness onto others, what happened was someone tried to impose their pedantic-ness onto me and then you falsely accused me of imposing onto others. Please don&#x27;t make up shit.
      • windexh8er42 days ago
        Attention to detail is important for many and is often a first touch with an end user. I agree with OP, if documentation is sloppy or inconsistent (I&#x27;m not saying the doc in question is because I haven&#x27;t read it) it definitely reduces the impression that it&#x27;s correct or reliable.<p>I&#x27;ve skipped even trying software because of poor documentation and so the response of:<p>&gt; Give me a fucking break.<p>...seems shallow &#x2F; callous.
        • threethirtytwo42 days ago
          I highly disagree. You are judging a book by it&#x27;s cover. Capitalization is no different from handwriting. Substance matters, capitalization and grammar are superficial. If meaning is captured then capitalization does not intrinsically matter.<p>You are correct that people judge documentation off of grammar and punctuation. But this is not a rational or logical thing people do. But I can&#x27;t blame you or others, I mean after all the world believes in religion, myths and other fantasmic spiritual things with no solid evidence as backing. It&#x27;s normal. I just felt HN was above that. Guess I&#x27;m wrong.<p>&gt;...seems shallow &#x2F; callous.<p>Seems that way only because you&#x27;re not thinking deep enough. Think carefully whether it is rational or logical to judge the works of say Einstein because he had a grammar error or bad handwriting. The two are completely orthogonal and that is the rational perspective.
          • vacuity41 days ago
            Not to make a point of it either way, but judging a book by its cover can be useful if the credibility of the book&#x27;s content alone is difficult to evaluate. That&#x27;s why people care about degrees and other qualifications.
            • threethirtytwo41 days ago
              There are plenty of other ways. Book reviews for example. If the cover is the only way than so be it, but this is rarely case. Additionally the cover of a book, like capitalization is one of the most inaccurate metrics to judge a book by.
              • vacuity41 days ago
                My point is that a questionable cover <i>can</i> indicate problems. I agree that one should be as holistic as possible.
          • someguyiguess42 days ago
            In programming, capitalization does matter. Sorry.
            • threethirtytwo42 days ago
              It doesn’t. I don’t know how something so simple can’t be understood. Does capitalization matter in math or algebra or logic? No. It doesn’t. Why? Because capitalization is a concept exclusive to language, and not just any language, but an arbitrary family of languages similar to English. The concept for example does not exist in Chinese.<p>But you know this. Are you trolling?
              • bananadonkey41 days ago
                Sure, but we program using programming languages, mostly using the Latin alphabet you are referring to. And yes the syntax for many of those programming languages is in fact case sensitive.
                • threethirtytwo41 days ago
                  Obviously. The topic is about whether case sensitivity + capitalization matters not whether it exists. My claim is it doesn’t matter much. Whether you use I or i in your for loop as an index doesn’t matter.<p>And it’s completely irrelevant to logic or math. So whether or not you choose to make capitalization matter in your program is a completely arbitrary choice. It’s like snake case and cane case. You choose one style for consistency but in the end even if you use both styles in your program there is zero practical downside. The only downside is people with ocd get all worked up and don’t have the capacity to understand that it doesn’t matter.
        • Sagi2180542 days ago
          You are correct, and it will be fixed!
        • Guestmodinfo42 days ago
          All this for writing Rust as rust! Wow! Tell me you have ADHD without telling me you have ADHD, just get on with the work and let others do their work. Don&#x27;t flag their entire work. Linguistics is very inclusive. I took a course on it. No need to be a grammar nazi
  • keyshapegeo9942 days ago
    Opening with a made-up quote (that is very simple to Google, which quickly confirms its apocryphal nature) doesn&#x27;t inspire confidence in the factual accuracy of the remainder of the book...
    • agluszak42 days ago
      What do you mean by &quot;made-up quote&quot;? The author didn&#x27;t make it up, see <a href="https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;A_journey_of_a_thousand_miles_begins_with_a_single_step" rel="nofollow">https:&#x2F;&#x2F;en.wikipedia.org&#x2F;wiki&#x2F;A_journey_of_a_thousand_miles_...</a><p>This level of nit-picking is disheartening...
      • captn3m042 days ago
        I think they meant:<p>&gt; &quot;If you can&#x27;t explain it simply, you don&#x27;t understand it well enough.&quot; - Albert Einstein<p>Which is listed at <a href="https:&#x2F;&#x2F;en.wikiquote.org&#x2F;wiki&#x2F;Albert_Einstein#Misattributed" rel="nofollow">https:&#x2F;&#x2F;en.wikiquote.org&#x2F;wiki&#x2F;Albert_Einstein#Misattributed</a>
      • falcor8442 days ago
        The reference is most likely to:<p>&gt; &quot;If you can&#x27;t explain it simply, you don&#x27;t understand it well enough.&quot;<p>Which TFA (and others) misattribute to Einstein
  • MontyCarloHall43 days 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&#x2F;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.
    • surajrmal43 days 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&#x27;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.
    • Sagi2180542 days ago
      When I started writing this OS, Rust was a pain, and I needed to understand a lot of things that I didn&#x27;t know about the language, I can flag on some sections that people can skip because they are more language related, but I think that it is very important, and can be beneficial to people that come from other languages, or to people that want to understand rust more deeply.<p>In every chapter I try to initially explain the topic and then implement, or something in between. but I think the implementation is important because it completes the picture.
      • linolevan42 days ago
        For what it&#x27;s worth, I&#x27;ve found the Rust-y explanations well worth the read! Please keep them in, it&#x27;s really interesting to read about the technicalities.
    • bwfan12342 days ago
      &gt; greater focus on the fundamentals versus the implementation<p>I am seeing this too. Folks are suddenly saying - lets implement this in Rust (or insert any other language here) without thinking about what this does to the fundamentals. A bandwagon effect which developers are swept by. And for managers it is a great way to show how innovative your team is. This applies not just to languages but entire development stacks almost like fashions in clothing.
    • positron2642 days ago
      They might be focused on programmers, not users. Programmers come first because otherwise users don&#x27;t come at all.
    • drnick142 days ago
      C would have been a more natural&#x2F;neutral choice to be honest for a project like this, since every OS actually used is written in C.
      • JuniperMesos42 days ago
        This is a bad thing we should try to change
      • yjftsjthsd-h42 days ago
        Eh... all the major OSs <i>use</i> C, anyways. For starters, (almost?) everyone is using a decent bit of assembly at the bottom. Then Linux is slowly adding Rust, and I was under the impression that NT spanned C, C++, and maybe some Rust now? And the moment we speak of the whole operating system and not just the kernel I think your claim collapses completely in the face of Darwin&#x27;s Objective C and Windows doing... everything Microsoft feels like including.
  • Santosh8343 days 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?
    • WillAdams43 days ago
      Source of ready-to-go software for use&#x2F;testing?
    • Sagi2180542 days ago
      That&#x27;s actually an interesting idea, the main reason is that I wanted to take a doom port that is posix compliant and see if I can make it run
  • shevy-java42 days ago
    Hmm. Although I am not the biggest fan of Rust, I am a huge fan of LFS&#x2F;BLFS (<a href="https:&#x2F;&#x2F;www.linuxfromscratch.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.linuxfromscratch.org&#x2F;</a>), so I am all in favour of more high quality information here, including the learnix-os website.<p>Google search has become so useless in the last years that we all need to counter this evil force by improving existing documentation, as well as adding new high quality information - so from that point of view I am all in favour of such projects, even if the language is not my favourite one. Ideally we could have something like learnix for ALL languages, even the old ones, and even the slow ones. Rust is at the least fast, so it can be compared to C or C++, but I think we also need this top-down approach for, let&#x27;s say something crazy ... python. (I get the &quot;it is too slow&quot; but this is more about education; plus, computers will become faster in the future too anyway.)<p>The name learnix may not be ideal though if it focuses on just one programming language. It should be a bit more like LFS&#x2F;BLFS, and even LFS focuses mostly on shell scripts; I&#x27;d prefer an agnostic instruction set, but then they can on top of that use shell scripts of course, with additional scripts in other languages (I adapted all of that stuff into ruby, for instance, although not in a high quality way such as LFS&#x2F;BLFS e. g. some of those scripts and deployments I wrote lack documentation for other people to adjust and adapt, simply due to lack of time - but I try to improve the documentation whenever time permits, it just has a lower priority compared to other obligations or work-related things).
  • AbbeFaria42 days ago
    To anyone wanting to learn about OS development, nothing beats MIT 6.824.<p>I finished the assignments in that course and that covers all the important aspects like processes, context switching, CPU modes, page tables and virtual memory and many other relevant topics like file systems, device drivers etc. And also it’s free.<p>From the table of contents this course gets too involved in ancillary matters like bootloaders or the Rust language itself whereas the focus of any OS development tutorial should be on core concepts like how processes are implemented, how context switching works, how paging and consequently multi level page tables (actually, in code) work etc.
    • nkini42 days ago
      Any chance you meant MIT 6.828? The course you mention (6.824) seems to be Distributed Systems.
      • AbbeFaria42 days ago
        My mistake, yes indeed it’s 6.828. On a side note, for distributed systems 6.824 is on my list after I finish 15-445 from cmu :)
  • herodotus43 days 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 &quot;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.&quot; should be &quot;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.&quot; Also, Rust, not rust. And many more.
    • sdsd43 days ago
      That&#x27;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.
      • CamperBob243 days ago
        That&#x27;s how I used to feel about spelling and grammar checkers. I was wrong. Maybe you are, too.
    • Sagi2180542 days ago
      Because I didn&#x27;t really publish it, I didn&#x27;t check all the grammar and type errors<p>This is something I will improve when the initial release will come
    • cultofmetatron41 days ago
      After that vibe coeded zig book fiasco a few weeks ago, I&#x27;m just glad to see this was written by an actual person. I&#x27;m sure the content will be improved on with time.<p>To the author, I appreciate your effort here!
    • slekker42 days ago
      Bleh, I think a typo here and there is fine, you can grasp the meaning, and gives the writing style &quot;character&quot;. Yes, it&#x27;s dire but I&#x27;d take that over the soul-less LLM writing style.
    • breaker-kind43 days ago
      And* many more ;)
  • ajxs42 days ago
    I always wonder why these guides stick to x86(-64). I get that it&#x27;s still the most popular processor architecture for desktop computing, but it&#x27;s got a lot of complex legacy baggage that&#x27;s an unnecessary cognitive burden for beginners. It&#x27;s also a relatively uncommon target for real-world bare metal development. Why not target RISC-V? I&#x27;ve done a lot of OSDev in both x86 and RISC-V, and I think RISC-V is much more teachable. You don&#x27;t want to bog the reader down trying to understand what protected mode, or the A20 line is, when you could just focus on more universal concepts.<p>In case anyone is curious, I very recently released a small demo kernel for RISC-V here: <a href="https:&#x2F;&#x2F;github.com&#x2F;ajxs&#x2F;straylight" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ajxs&#x2F;straylight</a>
    • Sagi2180542 days ago
      This project started because I wanted to understand the linux that sits on my computer, which is x86. There is a possibility that on the future it will have multiple architectures supported, probably starting with arm, but I can&#x27;t promise that
  • yencabulator36 days ago
    I feel like focusing on BIOS bootloaders and cylinders&#x2F;heads&#x2F;sectors that have been a lie for a very long time over UEFI &amp; NVMe is just a weird choice, especially so when the code shown is Rust and not old C folklore.
  • TazeTSchnitzel43 days ago
    I think it&#x27;s really cool that they&#x27;re using bare-metal Rust for this. It&#x27;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 <i>without</i> relying on the whole dependency ecosystem, and this is better pedagogically because you can understand the whole system.<p>I&#x27;m rather amused at how <a href="https:&#x2F;&#x2F;www.learnix-os.com&#x2F;ch01-02-booting-our-binary.html" rel="nofollow">https:&#x2F;&#x2F;www.learnix-os.com&#x2F;ch01-02-booting-our-binary.html</a> has you creating a 16-bit target that ostensibly uses 32-bit pointers in its data layout… presumably that doesn&#x27;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&#x27;s just acting as a scaffold for inline assembly. It&#x27;s cool they don&#x27;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&#x2F;LLVM revision.
  • remexre42 days ago
    This only covers what&#x27;s in <a href="https:&#x2F;&#x2F;wiki.osdev.org&#x2F;Bare_Bones" rel="nofollow">https:&#x2F;&#x2F;wiki.osdev.org&#x2F;Bare_Bones</a>, but in Rust, right?
  • waschl42 days ago
    Skipped through the first pages and I really like your approach. Avoiding to use „magic“ libraries which abstract away a lot of the intricacies the lower levels is helping with the understanding.<p>I started my journey to develop my own little OS (<a href="https:&#x2F;&#x2F;github.com&#x2F;jbreu&#x2F;jos" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;jbreu&#x2F;jos</a> ) based on phil opperman‘s tutorial but quickly diverged from his exactly due to his use of such libraries.
  • speed_spread43 days ago
    I hope this builds on phil-opp&#x27;s previous work which is IMO stellar.
    • Sagi2180542 days ago
      I plan to cover more, like disk drivers, file systems, processes, shell, user space, processes, until we can run a working program!<p>Hopefully, also networking
    • quibono43 days ago
      What&#x27;s the status on that? Did the series ever get finished?
      • speed_spread42 days ago
        No word on whether it&#x27;s finished or will ever be but already looks complete enough to me? I mean, the subject is endless and there are so many ways to do things. But as primer, it&#x27;s pretty good as it is.
  • ksec42 days ago
    Title should be LearnixOS : POSIX compliant OS implemented in Rust.
  • frizlab42 days ago
    I should do the same book in Swift; it would be a very interesting project! I wish I had that kind of time…
  • croemer43 days 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).<p>But it&#x27;s nice to have non-LLM written text. Still the many typos are annoying and distracting.
  • incognito12443 days ago
    Looking forward to going through the lessons
  • rjrjeuu742 days ago
    FLY
  • throw-12-1642 days ago
    If you are interested in Nix but dont want to abandon MacOS you should check out Nix Darwin.