Ask HN: Would self-taught programmers be interested in such a book?
I want to write a book on operating systems that actually lets the reader build one. It's going to cover stuff like C, x86 assembly, computer architecture, and operating system architecture (basic stuff like task switching, file systems, virtual memory etc). It's also going to provide exercises that lets the reader fill in gaps to make sure they comprehended the material instead of just copying and pasting code. The targeted audiences are mainly self taught programmers and motivated cs students who want to learn more than what their typical operating system courses has to offer. Would people be interested in working through such book?
59 comments
[ 6.1 ms ] story [ 89.5 ms ] threadIn fact I just finished a C Programming course at a state university. After talking with the professor I decided to continue on myself with a C++ book (to be determined), and a Linux Kernel book, [Understanding the Linux Kernel](http://shop.oreilly.com/product/9780596000028.do).
Finding a group of people of a similar skill level willing to do this type of learning would be fantastic.
What would make the book MORE exciting for me, was if you included other system programming languages than C in the implementation. e.g. Rust, D...
Just don't target it only for self taught programmers. Any programmer will benefit from it. (although I think every programmer is eventually self taught in a way)
Blog? Signup form?
Here's an examplehttp://www.amazon.com/Developing-32-Bit-Operating-System-Cd-...
I flipped through Computer Architecture, A Quantitative Approach (http://www.amazon.com/Computer-Architecture-Fifth-Quantitati...) at the bookstore the other day and it looked interesting, but that's all I could gather in the short time I had.
If this is absolutely the first time you are looking at architecture, http://www.amazon.com/Computer-Organization-Design-Fifth-Arc... by the same authors might be a easier entry point.
http://www.nand2tetris.org/
It's been reposted since.
[https://hn.algolia.com/?q=nandtetris#!/story/forever/0/nandt...
I hope it is as deep as you are suggesting it will be. I'm not interested in an easy overview, I want to know pragmatic tradeoffs that modern OSes make, and what sorts of research is being done.
I'd be interested in a better mousetrap, OR find a new niche rather than yet another minix. How about a RTOS soft or hard your choice, or write it in a new or obscure language, or target it to a microcontroller (PIC32 ?) or target it to a softcore in a FPGA and develop the peripherals as you develop the drivers for them in parallel. How about an OS designed from the start specifically to live inside virtual containers, to optimize its performance both boot up, drivers, and shutdown while virtualized?
Has anyone ever written a power-aware OS and what would that mean? I don't mean a mere ACPI driver but something written from the bottom up to minimize watt/hrs burned by the OS rather than pure speed as sole criteria. That would be an interesting "hook" even if the rest of the book is fairly traditional.
How about an OS that is some kind of kissing cousin / lovechild of a java virtual machine? Where the native executable format is a jar file, where the whole thing runs in the JVM, for no reason other than I'm daydreaming right now?
(Edited to add, I like retrocomputing so how about a C re-implementation of a classic OS, like maybe PDP-8 OS/8? Small simple yet capable, make it as compatible as you can. Or TRSDOS, or port Microware OS-9 and/or Nitros9 to ... something, maybe intel PC I donno)
(Edited to add, strange filesystem idea #2515 how about a cloud / nosql database as your native root filesystem? What a strange idea, yet interesting.)
http://en.wikipedia.org/wiki/Xv6
http://en.wikipedia.org/wiki/Pintos
I think Minix is also x86, so that may be 3.
http://www.cl.cam.ac.uk/projects/raspberrypi/tutorials/os/
But I would definitely be interested in it even if it only focused on x86.