Давайте подумаем о процессоре на вашем рабочем столе. Все, что он делает - это запускает машинные инструкции и сам по себе не заботится об «операционных системах» или «программах».
Вы включаете компьютер, процессор указывает на первую инструкцию и начинает выполнять.
На вашем рабочем столе запускается «операционная система». Но нет никаких причин, по которым процессор не может выполнить любой выбранный вами набор инструкций. (Это может быть не очень полезно, поскольку вы все равно хотите выводить результаты на экран, и эта функциональность находится в ОС.) В то же время, если ваши машинные инструкции состоят из правильных кодов операций, чтобы процессор выводил правильная последовательность сигналов для рисования картинки на мониторе, тем лучше. ОС не требуется.
Настольные компьютеры делают столько вещей , что нам обычно требуется абстракция ОС. Но по своей сути все процессор выполняет инструкции.
То же самое для процессора в кока-коле и кофемашинах. Все, что он делает, это выполняет инструкции.
Ну, писать машинные инструкции по крупицам утомительно. Итак, как и в случае с рабочим столом, мы обычно пишем код на C, который затем компилируется в машинный код. Этот машинный код загружается во встроенный процессор и запускается.
Встроенные системы делают так мало , что им не нужны полноценные ОС. Микроконтроллер может иметь 8 или 16 контактов на чипе - по сравнению с множеством контактов в вашем обычном сокете процессора.
Итак, рабочий процесс - это написать некоторый код (скажем, на C), скомпилировать его на своем настольном компьютере. Этот компилятор генерирует машинный код для встроенного чипа. Затем этот код загружается в микропроцессор (и для этого требуется специальное оборудование). Затем вы включаете микросхему, и она начинает выполнять инструкции. Простой!