First of all, making a good kernel and operating system requires lots of patience and time.
Also, if you wanna make your own OS from SCRATCH, you must learn at least some x86 assembler and know C/C++, you must know how to use pointers, access memory, make bits operations, etc.
Then, you should read some tutorials in the osdev.org wiki, you can complement it with the bootloader in brokenthorn.
Also, always remember that *nix, bsd, windows weren't written by only one man.
If you completed your kernel and you have a graphics driver capable of setting video mode, a gui capable of setting and getting pixels and you want to run windows or linux apps, you'll have to rewrite the wine/winex/cedega code to fit your needs.
Keep in mind that running natively apps from another os is almost impossible, because they use other system calls, other functions, etc.
If you want to make a linux based os, you should read the Linux from Scratch guide (http://www.linuxfromscratch.org/
) which can help you making your own linux distribution, but you must know about linux makefiles, packages, compiling the kernel, loading grub/mbr.