The device is not simple. Its quite complex. It has a low number of components in order to keep costs down.
I would take a look at
http://www.amazon.com/Structur.....0130959901 if you want to understand how computers & OS work.
There is nothing intrinsically hard about an operating system, the book should cover the concepts well (my copy is an older revision) and give you a logical view of the 'components'.
It would be very hard for you to build anything from scratch using any modern processor.
What you could do though is get an RPI, load Linux, fire up your C compiler and make a pseudo OS. That is how I was taught. Write a C program to create a set of processes and semaphores and then schedule those processes according to your pseudo OS's desire (use the semaphore to sleep/wake the process rather than sleep).
The rest of Linux will be running but who cares? You could have your processes write some kind of output and see what happens when you change the scheduling algorithm or start communicating between processes, creating deadlocks etc.
If you want to learn about drivers then you could try making a simple uinput driver, turn some hardware signal into a keyboard event. Probably the simplest driver to create.
PS Usually assembler starts up the hardware, memory controllers etc. Not sure I would call that OS, more like BIOS.