Hacker News new | ask | show | jobs
by blueblob 4646 days ago
I take quite a big issue with the statement "The lack of information and documentation on developing OSes is, in my opinion, a pretty big problem"

There are entire forums for this, ie osdev http://wiki.osdev.org/Expanded_Main_Page

There are entire books for this http://www.amazon.com/s/ref=sr_ex_n_1?rh=n%3A283155%2Cn%3A5%... amazon lists about 57,000 results for operating systems books

You will get out of LFS what you put into it. It tells you how to download the source, extract and install it. When you have the source, nothing is preventing you from looking at it.

I also take issue with "how can we hope to continue developing and innovating on the OS level when it’s practically impossible to figure out what anything does or how it works."

There are general concepts that you will learn from getting a book on os development (including the kernel) and writing a minimal kernel yourself will give you insights into the work that goes into a full kernel such as the linux one. The concepts, not the specifics are what you need to learn, and you do this through theory, you pick up the rest from implementation (but starting with a kernel, half of the os is already developed fof you).

1 comments

Absolutely agree with you. I struggled with wording this for the longest time - and when I talk about OS development, I'm referring much more to the userland development - package managers, core utilities, shells, init systems, and the like, than I'm referring to kernels. Sorry for the confusion.
I think some of the less explored portions of LFS contain well-documented reasoning for implementing some of these things yourself. For example there is a single solution (out of the many ways to solve this problem) to the package manager dilemma in the hints section of LFS

http://www.linuxfromscratch.org/hints/downloads/files/packag...

which explains reasoning for the package manager and how to implement it yourself (in a much less copy-compile-execute manner than LFS itself).

Implementation is a great way to learn but generally people will survey the literature first to understand why things are implemented the way that they are. Understanding what all package managers have in common will allow you to distill it down to the simplest factor and implement that.

A lot of the core utilities and why they are expected should be covered in the standard (POSIX in this case).

I guess what I am trying to say is that implementation is a useful way to learn but it requires you to know the details whereas understanding the literature first will give you a better idea of what to implement.

Good luck with your project.