Как выглядит операционная система до запуска оболочки?
Зависит от ОС и от того, как вы ее настраиваете. Linux может быть настроен на запись загрузочного текста на консольное устройство, будь то консоль в текстовом режиме, консоль кадрового буфера или последовательный порт. Это может также быть настроено, чтобы быть совершенно тихим. Некоторые ОС / системы могут записывать диагностическую информацию в энергонезависимую память, к которой можно получить доступ, переведя систему в режим разработчика, отладки или диагностики. Многие операционные системы поддерживают вывод загрузочной и диагностической информации в некоторую форму UART, которая может каким-то образом быть доступной на устройстве, даже если она скрыта от пользователя (например, «Добавить последовательный порт в DD-WRT» от Google, где производители скрывают последовательные порты и как вы можете добраться до них).
ОС вообще не обязательно должна иметь внешний дисплей - это просто другое устройство для ОС.
Как использовались системы до разработки первой оболочки (например, UNIX в начале 1970-х годов)?
По сути (и много не учтено, но это должно дать вам представление) - вы загрузили свою программу, щелкнув переключатели на панели или используя устройство чтения бумажных лент (эти устройства могли бы записывать в память напрямую без вмешательства ЦП), а затем запустить процессор с другим переключателем. Процессор запустит эту программу, сгенерирует вывод и остановится. Это пакетная обработка, а не интерактивная обработка. Если вы хотели запустить другую программу, вы должны были сделать это заново.
Если компьютер не может даже принимать команды (нет командной строки), как пользователь может взаимодействовать с ним?
Я не эксперт в этой области, но старые, старые компьютеры, такие как Altair, IMSAI и PDP-8 и другие, имели переключатели на передней панели, которые непосредственно контролировали ЦП и могли напрямую считывать и записывать память без вмешательства ЦП.
Что это за самый простой интерфейс?
Я полагаю, что большинство, если не все современные процессоры, имеют «порт JTAG», который допускает один и тот же тип прямых операций. Имейте в виду, что в течение долгого времени ожидалось, что большинство компьютеров будет иметь ПЗУ или микропрограмму, которая контролирует систему при ее включении, прежде чем она будет передана в ОС. Здесь могут существовать предзагрузочные утилиты или существует минимальный механизм загрузки таких утилит. Некоторые загрузчики, такие как U-Boot, могут быть доступны через последовательный порт. Загрузчики не запускаются «позади» ОС, они загружают ОС, передают ей управление, а затем они больше не работают.
Могу ли я запустить этот интерфейс в эмуляторе терминала или нет пути за оболочкой?
Нет, вам нужен интерфейс JTAG. Это погружение в сферу электроники, и я признаю, что не очень много знаю об этом, за исключением того, что мой GuruPlug поставляется с ним, и я могу напрямую запрограммировать с ним флеш-чип на плате GuruPlug - то есть, если что-то убивает загрузчик на GuruPlug, у меня есть «независимый от процессора» способ его перепрошивки.