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

Implementing an OS is hard work, even if you build on the very hard work of those who have tried before you in terms of APIs, abstraction layers, etc. It doesn't sound like you have a lot of familiarity with low-level software development, or software development in general, so you just took a "hard mode" project and cranked it up to "nightmare".

Generally this is a bad idea because without any external motivation, you lose interest and stop working. With external motivation is worse, because you can burn out and become a catatonic shell of a person, staring absently into space for the rest of your life.

Just some FYIs:

> On the side note - It’s 21st century, but our PCs are still booting up as old-fart Intel 8086.

You should read about EFI (http://www.intel.com/content/www/us/en/architecture-and-tech...)

You should also read all of the lecture materials from good universities OS classes. In those classes, you basically do this. Some classes are more guided than others. Some places to start:

- CMU: http://www.cs.cmu.edu/~410/

- UMD: https://www.cs.umd.edu/~shankar/412-F12/

UMD uses a toy operating system called GeekOS that the students extend. You might find browsing its source code useful (http://code.google.com/p/geekos/)

Good luck!



There are a bunch of teaching OSes which are a great place to start for this stuff.

The actively developed ones we chose between when teaching the OS class at UW this fall were:

JOS (mit) https://github.com/guanqun/mit-jos

Pintos (stanford) http://www.stanford.edu/class/cs140/projects/

OS161 (harvard) http://www.eecs.harvard.edu/~syrah/os161/




Consider applying for YC's Fall 2026 batch! Applications are open till July 27.

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

Search: