Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This seems like a great resource to read about the architecture behind a lot of great applications and tools (nginx, scalable web architecture, nosql databases, git just to name a few). Definitely going to bookmark for later.

Related to that, I wonder if there are similar resources for learning about Blender's architecture (open source 3d modeler that has its own tiled UI system and integrates with an internal python interpreter) or the Linux kernel. I feel like those could be immensely useful for studying/understanding those large codebases for newcomers.



There are several documentation projects about the Linux kernel, of wildly varying quality. Honestly, though, I believe you'd be better served by the Stevens books and the Tanenbaum MINIX book, if you're not already familiar with kernels or the UNIX architecture, in general. The Stevens books are, bar none, the best books about UNIX programming and TCP/IP network programming, and as far as I can tell every serious Linux developer has a working knowledge of Stevens, and many have referenced Stevens when discussing implementation details. And, of course, Linux was originally developed as kind of a response to MINIX and shares many characteristics, and was designed as a teaching operating system (there are other teaching operating systems, but none are probably closer to Linux than older MINIX versions).

Here's some Linux kernel specific stuff:

http://tldp.org/LDP/tlk/tlk.html

http://www.kroah.com/lkn/

http://www.amazon.com/Linux-System-Programming-Talking-Direc...

The first two have some age on them, but are still relatively reflective of the overall architecture of Linux, even if a lot of detail has changed. Anyway, these three are of reasonable quality. Some of the other stuff out there is pretty rough.


This is also an excellent book on the subject: http://man7.org/tlpi/


Where did you conclude from Linux was designed as a teaching operating system?


I was speaking of MINIX. I can see how my language wasn't clear, though. Linux was not designed as a teaching operating system. Though Linus did hint that he was using it to learn about operating systems.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: