Well,it's not very hard to become a expert since you have experience with micro-controller. In embedded linux field,many things are same to your non-OS environment. The bootloader (uboot) just likes the system initial code in MCU, the kernel (uImage) just likes the while(1) infinite loop. A little difference is schedule algorithm. In MCU, you can use timer to schedule more than one task. But in linux, the schedule mechanism does the work for you. Find some tutorials from web,follow it step by step. After some projects, you will get more understand deeply.