There's no alternative for playing with the hardware & software with your own hands. Luckily, this is easy to achieve. Simple development boards for AVR chip can be bought for a few dozens of $$s online (like STK500, or Arduino) and their whole software toolchain is open and downloadable.
Regarding the OS - start without an OS! Lots of embedded code runs without an OS, and it's also the best way to start programming. By experimenting with various techniques of writing non-OS code you'll learn to appreciate when and why you need an OS, and how to use it best.