[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)