I am a hardware engineer working with Microcontrollers and analog circuits.
To understand the software part, I have been reading the materials available online.
I came across various terminologies like operating system, kernel and bootloader.
I looked up the definition of all those but I want to understand where each is used and in what context it should be understood.
Please help me understand the below terms (if possible, their origin also would help) :
- Kernel
- Bootloader
- Operating System
An analogy or a simple explanation would help a lot. Please keep it simple as I am a hardware person with little software knowledge
Thanks
EDIT :
Thank you for the answers. I still don't get some points in your answer. But I forgot to show my work. I think if I show my level of understanding through my work,it would be better to tailor your answers with respect to my level of understanding and also whether my understanding is correct or not.
My understanding :
From what I learnt through the electronics stackexchange and other online notes, I understood that, some configuration is already stored in the NOR Flash mentioned in the above image. (I don't know what the configuration they are talking about)
Upon power-up, the configuration gets loaded from the NOR Flash to the processor (or from any other interface to the processor, depending upon the resistor configuration R1,R2 and like that)
Once, the configuration is loaded into the processor, the configuration tells then, to get the codes that are stored in the NAND Flash and then bring them to the RAM Memory (DDR) for random and quick access.
Is my above understand is correct? And if its correct, please tell me where is the bootloader stored and where is the kernel located? Since, both together are the parts of the Operating system, where will the code for the operating system be located in the IC ?