Hacker News new | past | comments | ask | show | jobs | submit login

Last week I read the very good 'How to build an operating system from scratch' [1], and I'm glad I did. It meant that I could burrow into the files on this github project and understand exactly what was going on.

One day, when I finally have some free time, I am totally going to do this myself.

---

[1] https://www.cs.bham.ac.uk/~exr/lectures/opsys/10_11/lectures...




That looks awesome! I did a little side project on rolling my own Unix kernel, highly recommend the guide! https://web.archive.org/web/20160301082842/http://www.jamesm...


Check out the broken thorn tutorials on the subject. They are far more complete.


I will!

I'm guessing you mean these..?

http://www.brokenthorn.com/Resources/OSDevIndex.html


They are pretty good indeed to begin with. However, the best resource there is is clearly osdev.org, both the forums and the wiki are full of information!


The OSDev wiki is the best think to hit the internet since sliced bread (with cats faces pushed through them?) but it's far from a tutorial. It's a wiki.

While it is one of the best repositories of knowledge on the subject of low level development, it's not a step by step guide.

In the same way I don't recommend that people read Wikipedia to learn about human history I'd also not recommend reading osdev to learn about low level development.

It at it's heart is organized as a reference, not a text book.

I wish that someone would go through and accumulate all the knowledge, put it into a series based textbook with chapters, throw in some example code and VMs for many architectures, and sell it to me because I'd pay. I'd also push for those at my university to construct a class around the book as it would be one of the most fascinating and knowledge packed classes I'd think you could take. (Hint hint, nudge nudge writers and professors!)

But yes to date NOTHING beats osdev.


I don't know but the Tanenbaum books."Operating Systems Design and Implementation" is old, but the appendix is the full C source code to Minix 3.0 if you buy the 3rd Edition. I had the 1st Edition with around 12K lines of C in the appendix. Great book, and I had Minix 1.5 running on my old Amiga around 1990. Minix was more portable than Linux, which came out around 4 year after Minix. I had my money on Minix when Linux came along, since Minix was a microkernel, and I thought it sounded like the better direction to take. Well, Linux won out, and funny enough microkernels came back in style anyway with MachTen, MkLinux, and QNX. QNX was very successful in the realtime OS world. I used it on two jobs. The newer Tanenbaum book: "Modern Operating Systems" I have not read, but if it is like the first one, I'd imagine it would be very educational too.


> I had my money on Minix when Linux came along, since Minix was a microkernel, and I thought it sounded like the better direction to take. Well, Linux won

well, I am too young to witnesses the things, but I read from Tannenbaum, that his main intention was to keep Minix so small, that his students were able to understand it ine one semester. And that seems like a big limitation to me ...


Small != a limitation in many cases.

I think small adds to understanding. In addition, the whole point is to keep the kernel small in microkernels, and most, if not all, userland stuff is implemented outside of the kernel, so small is good here.

You can fork and add to it if you want to expand the kernel.

I happen to have a bias for minimalism and small: Shen, Forth, PicoLisp, wasplisp (MOSREF pentesting environment), J programming language, etc...

I think there is too much bloat in web dev, backend, frontend, and PLs in general. I really appreciate it when I see somebody elegantly, and with little code or extra tooling solve a problem in a straight forward manner.


What would be a good step-by-step tutorial in your opinion?


If you'd like the links that really helped me, check out this:

http://www.osdever.net/bkerndev/Docs/title.htm

http://www.brokenthorn.com/Resources/OSDevIndex.html

https://github.com/stephenfewer/NoNameOS

https://anastas.io/osdev/memory/2016/08/08/page-frame-alloca...

https://github.com/kjiwa/x86-boot-sector-c

These are all useful. If you're more of a book worm check out Minix as said in other parts of this tree. Very very easy to read, interesting bits of history about OS development, and source code included! Nothing's useful without source code.

If you'd like to look up some general software books check out Programming the IBM PC, or something to that effect. It's commonly called The Pink Shirt Book. Has interesting stuff on IBM interrupts, coding standards, and bits on filesystems!


Let me plug in my own tutorial :) https://github.com/cfenollosa/os-tutorial


Here's a better direct link to osdev.org info: http://wiki.osdev.org/Main_Page


Yes sorry, I had just woken up and was on mobile. Couldn't gather my whits to find the link. Now that I've got a cup of joe in me I'm much more chipper and ready for this!

Yes that's the link. They walk you through everything! Top to bottom. It's a great starter that will teach you what OS development actually involves. It's like a hand holding experience through a forest of strange practices, you'll love it when you get a chance.


I read this same exact article last week too, what are the odds! Definitely have the same mindset to write my own someday. This project will be a ton of help.


Weow, excellaent reply budday.




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

Search: