Your OS will need to initialize the machine to the correct state. 80x86 systems start up in a very old, DOS-days mode. You'll need to have the code to activate the "protected mode", which is what Windows and other modern, x86 systems do.
Next, you will need to have an executable file format, an assembler (and maybe C/C++ compiler), and a linker. If you like you can borrow from the existing PE32 or ELF formats, which would make your life
much easier.
Finally, your kernel will need to provide basic functions to load and run processes and provide I/O accesses to your programs (keyboard, tty and pixel display output, port accesses [printer, internet, etc], and disk I/O.
How advanced your OS gets from there is up to you. Basic concepts include privilege levels (to prevent user programs from having full access to the machine), preemptive multitasking (running more than one program at a time), etc.
Frankly, before you even get to the 'advanced' step you already have your hands full. Disk I/O, for example, is a
very involved subject. You will have to choose which filesystem(s) your OS will recognise. Recommended ones are FAT32, NTFS, EXT2+, and ISO CD/DVD formats.
A good start would be to play around with one of the small linux distros I recommended to you here (
http://www.cplusplus.com/forum/general/20909/ ).
Another would be to wander around
OSDev.org
http://wiki.osdev.org/
This is a huge undertaking! JSYK.
Good luck!