
Every hard-core OS aficionado has done it: Laid out a grand scheme for creating the perfect OS. Taking all the best features and attributes from the OSes we love, and making sure to assiduously avoid the pitfalls of the OSes we don't. Maybe our goals were modest, and we just wanted a slightly tweaked version of an existing OS. But sometimes we're feeling ambitious, and we have large, creative ideas for revolutionizing computing. Long-time OSNews reader and contributor J. Scott Edwards just couldn't help himself, and he has set about to not only plan, but to try to build his dream OS.
Summary of the article: current operating systems still leave sooooo much to be desired, you want a)... b)... c)... d)... etc. So much to do, so little time.
There appear to be many people like you (and myself, I might add), and many projects, with many hobby OS'es at best getting to the bootloader or 'hello world' stage. Just look around on the web, and you can find a huge number of dead/abandoned projects.
I suggest you spend significant time to determine what exactly it is what you want. IMHO that is the hard part. Many hobby OS's get rewritten from scratch time and again. To me, that's just a sign the creator didn't really know what he wanted to make (or changed his mind continuously during the rewriting). Ofcourse, if rewriting time and again works for you, as a way of finding out what you want, then go for it. When you know exactly what you want, you sort of have a definition of your system. When it's all vague, you'd better break things down further. Limit the scope of your project to what you can chew (at least for initial attempts), and do that well. Making a small, but solid improvement somewhere is better than trying everything at once, but not getting anywhere. Maybe you think you want an OS, but find out you really want an alternative UI or desktop. Knowing that can save you a lot of time. As Carl Sagan once said: "To make an apple pie from scratch, you must first create the universe".
It may be a better idea to join an existing project, than to try and do everything yourself. There do exist some really interesting (and functioning!) projects out there. Exokernel, full OS's based on higher/save languages (=no C or C++), standalone forth systems, you name it, it's been done. So: reuse the work of others where possible. Need a bootloader? Sure, you can write your own, but why not use eg. Grub to start with? You can replace it later if you want.
The 'OS Resources' link on the left might be some start. And ofcourse... Google is your friend.