Having just recently gotten into embedded programming using PIC microcontrollers, I am trying to understand the difference between Bare metal, RTOS and SoC.
Online searches reveal contradictory definitions and meanings.
For example, Semiengineering state that "An RTOS is code written on bare metal" and arduino.cc state that "If you programming controller without using any [RT]OS it's a bare metal approach".
The implication is that some code written on bare metal can be considered to be RTOS, whilst others may not be.
Therefore, my question is when can embedded programming of microntroollers be considered programming of bare metal and/or RTOS? And where does SoC fit into all of this, if at all?
Any insight that anyone can provide will be very much appreciated!