[HN Gopher] LearnixOS
       ___________________________________________________________________
        
       LearnixOS
        
       Author : gtirloni
       Score  : 176 points
       Date   : 2025-12-26 12:59 UTC (10 hours ago)
        
 (HTM) web link (www.learnix-os.com)
 (TXT) w3m dump (www.learnix-os.com)
        
       | Dreami wrote:
       | 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!
        
         | hxugufjfjf wrote:
         | Thought the same! Was a bit interested in learning Nix for a
         | moment.
        
         | layer8 wrote:
         | "*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 wrote:
           | > "*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.
        
             | onestay42 wrote:
             | BSD would like a word.
        
               | wasting_time wrote:
               | They can't be heard over the faint booing from the
               | Solaris crowd.
        
               | yjftsjthsd-h wrote:
               | For that matter, if we'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(tm) instead
               | of unix-like... though I'd call that a subset, so still
               | in scope IMO.
        
               | riffraff wrote:
               | TIL AIX is still in development and they had a release
               | this month
               | 
               | https://community.ibm.com/community/user/blogs/sanket-
               | rathi1...
        
             | yjftsjthsd-h wrote:
             | Illumos is still actively developed, open source, and can
             | trace its lineage back to actual unix.
             | 
             | For that matter, we've had new members joining the family
             | over the years; https://www.redox-os.org/ is, in their own
             | words, "a complete Unix-like microkernel-based operating
             | system written in Rust, with a focus on security,
             | reliability and safety."
        
             | devnonymous wrote:
             | Before clicking the links.. How confident do you feel about
             | your assertion?
             | 
             | https://trends.google.com/trends/explore?date=today%205-y&q
             | =...
             | 
             | https://trends.google.com/trends/explore?date=all&q=Unix%20
             | l...
        
             | wpm wrote:
             | Darwin is not UNIX (nor is XNU). But macOS technically is
             | certified UNIX.
        
           | xboxnolifes wrote:
           | Then I guess the OS part is redundant, since thr nix already
           | implies an OS.
        
             | bheadmaster wrote:
             | No, actually Nix is a package manager/system configuration
             | tool. NixOS uses Nix as part of its image.
        
         | wasting_time wrote:
         | I had the same confusion. Even without considering NixOS,
         | "learnix" is awkward to pronounce and somewhat pretentious.
         | 
         | I would suggest the name "Leanix" if the author is willing to
         | rename.
         | 
         | It rhymes with Minix which is the OG curriculum for a POSIX
         | kernel, and is "lean" in many senses of the word.
         | 
         | In any case an excellent writeup. It's detailed enough to
         | implement in any programming language.
        
           | yjftsjthsd-h wrote:
           | I mean, it is about learning. It threw me for a loop too but
           | I think it's actually reasonably appropriate.
        
           | jaapz wrote:
           | What's pretentious about learnix?
        
           | layer8 wrote:
           | > I would suggest the name "Leanix"
           | 
           | Then people would complain that it sounds too much like
           | "Linux".
        
             | drob518 wrote:
             | Particularly if you have learned to pronounce Linus's name
             | correctly.
        
           | JCattheATM wrote:
           | I don't find it awkward to pronounce in the least, and not in
           | any way pretentious.
           | 
           | I think the name is fine as is.
        
           | Sagi21805 wrote:
           | I like the current name and already have the domain :|
        
           | amitav1 wrote:
           | I think that it's supposed to be a portmanteau of Unix and
           | Learn.
        
         | Sagi21805 wrote:
         | Will do!
        
       | MontyCarloHall wrote:
       | 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 wrote:
         | 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.
        
         | bwfan123 wrote:
         | > greater focus on the fundamentals versus the implementation
         | 
         | 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.
        
         | positron26 wrote:
         | They might be focused on programmers, not users. Programmers
         | come first because otherwise users don't come at all.
        
         | drnick1 wrote:
         | C would have been a more natural/neutral choice to be honest
         | for a project like this, since every OS actually used is
         | written in C.
        
           | yjftsjthsd-h wrote:
           | Eh... all the major OSs _use_ 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 's Objective C and Windows doing...
           | everything Microsoft feels like including.
        
           | JuniperMesos wrote:
           | This is a bad thing we should try to change
        
         | Sagi21805 wrote:
         | When I started writing this OS, Rust was a pain, and I needed
         | to understand a lot of things that I didn'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.
         | 
         | 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.
        
           | linolevan wrote:
           | For what it's worth, I've found the Rust-y explanations well
           | worth the read! Please keep them in, it's really interesting
           | to read about the technicalities.
        
       | incognito124 wrote:
       | Looking forward to going through the lessons
        
       | herodotus wrote:
       | 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.
        
         | breaker-kind wrote:
         | And* many more ;)
        
           | herodotus wrote:
           | Thanks ....
        
         | sdsd wrote:
         | 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 wrote:
           | That's how I used to feel about spelling and grammar
           | checkers. I was wrong. Maybe you are, too.
        
         | slekker wrote:
         | Bleh, I think a typo here and there is fine, you can grasp the
         | meaning, and gives the writing style "character". Yes, it's
         | dire but I'd take that over the soul-less LLM writing style.
        
         | Sagi21805 wrote:
         | Because I didn't really publish it, I didn't check all the
         | grammar and type errors
         | 
         | This is something I will improve when the initial release will
         | come
        
       | Santosh83 wrote:
       | 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 wrote:
         | Source of ready-to-go software for use/testing?
        
         | Sagi21805 wrote:
         | That'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
        
       | speed_spread wrote:
       | I hope this builds on phil-opp's previous work which is IMO
       | stellar.
        
         | quibono wrote:
         | What's the status on that? Did the series ever get finished?
        
           | speed_spread wrote:
           | No word on whether it'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's
           | pretty good as it is.
        
       | croemer wrote:
       | 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.
        
       | TazeTSchnitzel wrote:
       | 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.
        
       | remexre wrote:
       | This only covers what's in https://wiki.osdev.org/Bare_Bones, but
       | in Rust, right?
        
       | ksec wrote:
       | Title should be LearnixOS : POSIX compliant OS implemented in
       | Rust.
        
       | beasthacker wrote:
       | I wanted to share a quick piece of feedback from a potential
       | reader's perspective: There are several small inconsistencies in
       | the intro text (e.g., inconsistent capitalization of 'Rust' vs
       | 'rust', grammar typos).
       | 
       | 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.
        
         | threethirtytwo wrote:
         | 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.
         | 
         | 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.
        
           | madeofpalk wrote:
           | Isn't being technically correct an important thing for
           | technical documentation that aims to be technically correct?
        
           | clutter55561 wrote:
           | I see nothing pedantic in flagging capitalisation errors, but
           | I see loads wrong with imposing one's sloppiness on others.
        
           | windexh8er wrote:
           | 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'm not saying the
           | doc in question is because I haven't read it) it definitely
           | reduces the impression that it's correct or reliable.
           | 
           | I've skipped even trying software because of poor
           | documentation and so the response of:
           | 
           | > Give me a fucking break.
           | 
           | ...seems shallow / callous.
        
         | Sagi21805 wrote:
         | Hi! I am the developer of this, and I really appreciate the
         | feedback!!
         | 
         | The book is still on development and this is why I didn't even
         | publish it here, I just recently finished the highlighter which
         | was a lot of work, and I probably will require more.
         | 
         | Currently I am trying to make book and OS unique by developing
         | and creating an explanation on AHCI, which I didn't see much on
         | the internet. And then I try to handle all of the grammar, and
         | typos
        
       | AbbeFaria wrote:
       | To anyone wanting to learn about OS development, nothing beats
       | MIT 6.824.
       | 
       | 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.
       | 
       | 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.
        
       | keyshapegeo99 wrote:
       | Opening with a made-up quote (that is very simple to Google,
       | which quickly confirms its apocryphal nature) doesn't inspire
       | confidence in the factual accuracy of the remainder of the
       | book...
        
         | agluszak wrote:
         | What do you mean by "made-up quote"? The author didn't make it
         | up, see
         | https://en.wikipedia.org/wiki/A_journey_of_a_thousand_miles_...
         | 
         | This level of nit-picking is disheartening...
        
           | captn3m0 wrote:
           | I think they meant:
           | 
           | > "If you can't explain it simply, you don't understand it
           | well enough." - Albert Einstein
           | 
           | Which is listed at
           | https://en.wikiquote.org/wiki/Albert_Einstein#Misattributed
        
           | falcor84 wrote:
           | The reference is most likely to:
           | 
           | > "If you can't explain it simply, you don't understand it
           | well enough."
           | 
           | Which TFA (and others) misattribute to Einstein
        
       | rjrjeuu7 wrote:
       | FLY
        
         | itsthecourier wrote:
         | what's FLY?
        
       | waschl wrote:
       | 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.
       | 
       | I started my journey to develop my own little OS
       | (https://github.com/jbreu/jos ) based on phil opperman's tutorial
       | but quickly diverged from his exactly due to his use of such
       | libraries.
        
       | golem14 wrote:
       | 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
       | 
       | https://github.com/cfenollosa/os-tutorial,
       | https://littleosbook.github.io/, https://github.com/tuhdo/os01,
       | https://github.com/prakhar1989/awesome-courses?tab=readme-ov...
       | 
       | or even just "OPERATING SYSTEMS DESIGN AND IMPLEMENTATION" by
       | Tanenbaum
        
       | frizlab wrote:
       | I should do the same book in Swift; it would be a very
       | interesting project! I wish I had that kind of time...
        
       ___________________________________________________________________
       (page generated 2025-12-26 23:00 UTC)