Here's a summary of the themes discussed in the Hacker News thread, with direct quotes where appropriate:
The Genesis and Evolution of Open Source Operating Systems
A significant portion of the discussion revolves around the foundational work that led to the widespread adoption of open-source operating systems, particularly Unix-like systems. There's a debate about the relative contributions of Linus Torvalds' Linux kernel and Richard Stallman's GNU project.
- "I will never not find this kind of project incredibly impressive. It’s interesting to think that Linux, after all, is really just the kernel — and yet getting that work done paved the way to getting an open source version of Unix installed on billions of machines. Great stuff!" - lordleft
- "It is equally valid to say that Stallman's starting to write a C compiler and Unix utilities (in 1984 whereas the Linux project started in late 1991) paved the way to getting an open source version of Unix installed on billions of machines." - hollerith
- "Agreed, funnily enough GNU tools/compilers also ended up getting installed on a lot of proprietary UNIXes because proprietary UNIX was mostly shit (in user space!). At least most of the ones I had the misfortune to have to work on." - Quekid5
- "If Stallman had started with a kernel, there would be very few people who had the legal right to run any utilities or apps on the new kernel whereas GNU's utilities and apps (e.g., Emacs) were immediately useful (i.e., without breaking any copyright law or violating any software license) to a large population, namely, anyone with an account on a proprietary Unix system, which explains why Stallman chose to start with the userland." - hollerith
- "It's even more funny and amusing when you find that in the initial release mail for Linux, Torvals said "just a hobby, won't be big and professional like gnu"." - diath
The Impact of Licensing and Community Dynamics
The role of licensing, particularly the GPL's copyleft nature, is highlighted as a crucial factor in Linux's success and its ability to foster a collaborative development environment.
- "The copyleft nature was essential to good driver support. It set it up such that for corporations making drivers the easiest path was to get the driver upstreamed." - treyd
- "Copyleft encourages a collaborative relationship between entities because it makes trying to play it close to the chest with IP involve more legal effort (if it's possible at all)." - treyd
- "Yes, I can see that stalling development as (at best) it turns into a pile of private forks rather than a cohesive project, but from what I remember that was already after Linux had "won" the "Open Source Kernel" race. Commercial support for Linux was... Sparse... before the early 2000s." - kimixa
The Accessibility and Challenge of OS Development
There's a contrasting perspective on the difficulty of kernel development. Some argue that the fundamental concepts are well-established, making it an accessible exercise for those with a software engineering background, while others emphasize the significant challenges and the rarity of individuals with the necessary skills and perseverance.
- "I wouldn’t call it incredibly impressive. The path on how to write a minimal multi-tasking kernel has been beaten decades ago. Writing a kernel that can boot and do a few things is ‘just’ a matter of being somewhat smart and have some perseverance." - Someone
- "I think everybody with a degree in software engineering could do this." - Someone
- "Ideally this would be true, but it hasn't been my experience at all. At least with American graduates, I can't speak to other countries." - gertop
- "flamedoge: To you maybe. The subset of population that is even interested, smart, persevering to do this is extremely tiny."
- "I am 99.99% sure that less than 20% of Australian graduates could do this, and honestly I wouldn't be surprised to hear that the actual answer is <1%." - ludicity
- "saulpw: I dunno, I've done it myself, and I would say that it's qualitatively different than other "banging your head against the wall" software development. At least it's an order of magnitude more painful, due to lack of integrated tooling, questionable documentation, and a more delayed feedback loop."
The Advantages of RISC-V for OS Development
The RISC-V architecture emerges as a strong contender for new OS development projects due to its perceived simplicity and lack of legacy complexities compared to x86.
- "Zig really is amenable to OS development. And so is RISC-V. I started this same exercise except with x86 first. I quickly got annoyed with all the legacy boilerplate required. RISC-v doesn’t have any of that. It’s so much faster to get up and running." - WD-42
- "ethin: You still have to set up the GDT, TSS, all that other legacy stuff that isn't actually used but it's still there. And if you set it up incorrectly, your punished for it with triple faults and the like, even if nobody even uses anything like the GDT or TSS these days."
- "ethin: Yep, agreed. Don't get me wrong, the Intel/AMD docs are amazing. But even getting the hardware to a usable state (where I define usable as "something that can enumerate PCI devices on the system, even without PCIe") is an absolute pain that really just shouldn't exist. I know that RISC-V ahs it's own tough spots but... IMO it's a lot faster to get up and running with because it doesn't have 10000 execution modes with tons of different requirements you need to do for each mode, and on and on and on and on."
- "WD-42: Setting up the GDT is exactly the point where I got annoyed enough to see what risc-v was all about."
- "jackdoe: i love how accessible riscv isa is, the docs are amazing, there are tons of examples, and tons of emulators, the uncompressed machine code is quite readable. i am writing a book for my daughter and am also working on a small os with forth and timesharing [...] and i dont think i could've done it on x86, learning both forth and riscv assembly on the way, its super fun."
Resources for Learning OS Development
Several resources are recommended for individuals interested in learning about operating system development, including classic books, online walkthroughs, and specific projects.
- "That is an excellent recommendation. For Operating Systems anything Andy Tanenbaum did is world class." - andrehacker (referring to "Operating Systems: Design and Implementation")
- "We really need a Tech Writer Hall of Fame. W. Richard Stevens, Andrew Tanenbaum, P.J. Plauger. Others?" - macintux
- "I'd suggest https://os.phil-opp.com/ instead of a book from long ago. There is no reason to drag yourself through C anymore." - yencabulator
- "For those who want a "packaged" experience doing this same kind of work, there's "Operating System in 1000 Lines of Code" (https://operating-system-in-1000-lines.vercel.app/en/), I followed it a while ago in Zig (which meant translating C code snippets to Zig) and had a good time." - kristoff_it
The Importance of Experimentation and Diversification in Operating Systems
There's an underlying sentiment that the ecosystem of operating systems would benefit from more experimentation and development, encouraging people to build new OSes and explore different approaches.
- "We need more operating systems, more choice." - Isamu
- "honestly if you ever wanted to make a toy os from scratch there is no better time to start than now (besides maybe 1980), get a cheap riscv like rp2350 and just upload the relevant sections of the docs to claude and it will help you if you get stuck." - jackdoe
Commentary on Programming Languages
The use of Zig for OS development is noted and finds favor among some participants.
- "Zig really is amenable to OS development." - WD-42
- "I wanted to explore Zig a little bit, so that was the language used instead of the traditional C, but it should be straightforward how to do the same experiment in either C or Rust." - NaOH (quoting the author)
Anecdotal Observations on Graduate Competence
A brief but notable thread discusses perceptions of the technical skills of recent computer science graduates, with some expressing concern about lower standards.
- "I think everybody with a degree in software engineering could do this." - Someone
- "Ideally this would be true, but it hasn't been my experience at all. At least with American graduates, I can't speak to other countries." - gertop
- "I was studying at Monash, which is considered a solid university here, and holy moly are the standards low. I had classmates in the second year of my machine learning postgrad asking me things like "What is machine learning?", and they all graduated and found jobs anyway." - ludicity
A Tangential Discussion on IP Blocking in Spain
A brief, out-of-place segment of the discussion touched upon IP blocking in Spain, seemingly related to online football streaming, which caused some confusion and derailing. This section is not directly related to the technical merits of OS development but was present in the provided text.