Developing an OS is a massive task. Given all the things you need to get working correctly before you can do something as "simple" as interface with a shell (I'll get to that in a paragraph or two later). Companies like Apple, Microsoft, and Canonical (the guys responsible for maintaining Ubuntu) dedicate massive teams and months or years to creating their operating systems, and they've already got a good base to start.
Even in my operating systems class in College, we didn't attempt to make an operating system, we only simulated portions of it to get a feel for design decisions. (If you are looking for a book to get started, we used Operating Systems Concepts, by Abraham Silberschatz).
A shell is the collection of programs that let a user interact with the kernel. If an OS was a car, the door, steering wheel, and pedals (gas and brake) would be the shell; they let the user access other functions in the "shell" and interact with the engine, wheels, and brakes, which in this case, represents the kernel.
Honestly, the best place to start would be to familiarize yourself with a flavor of Linux, like Ubuntu, Mint, or Debian (I'd recommend running them as a virtual machine, like VirtualBox). Once you feel comfortable running those, you can try Arch Linux. You have to compile Arch Linux yourself, but you have massive amounts of control over how things work, and you can learn a lot about Linux and operating systems that way.