Jak wygląda system operacyjny przed uruchomieniem powłoki?
Zależy od systemu operacyjnego i jego konfiguracji. Linux można skonfigurować do zapisywania tekstu rozruchowego na urządzeniu konsolowym, niezależnie od tego, czy jest to konsola trybu tekstowego, konsola bufora ramki, czy port szeregowy. Można go również skonfigurować tak, aby był idealnie cichy. Niektóre systemy / systemy operacyjne mogą zapisywać informacje diagnostyczne w nieulotnej pamięci, do której można uzyskać dostęp, wprowadzając system w tryb programisty, debugowania lub diagnostyczny. Wiele systemów operacyjnych obsługuje wysyłanie informacji rozruchowych i diagnostycznych do jakiejś formy UART, która może być w jakiś sposób dostępna na urządzeniu, nawet jeśli jest ukryta przed użytkownikiem (google „Dodaj port szeregowy do DD-WRT”, na przykład gdzie producenci ukrywają porty szeregowe i jak możesz się do nich dostać).
System operacyjny wcale nie musi mieć zewnętrznego wyświetlacza - to po prostu kolejne urządzenie do systemu operacyjnego.
Jak były używane systemy przed opracowaniem pierwszej powłoki (np. UNIX na początku lat 70.)?
Zasadniczo (i pomijając wiele, ale to powinno dać ci pomysł) - Załadowałeś swój program, albo przesuwając przełączniki na panelu, albo używając czytnika papieru (urządzenia te zapisałyby bezpośrednio w pamięci bez interwencji CPU), a następnie uruchomiły CPU z innym przełącznikiem. Procesor uruchomi ten program, wygeneruje dane wyjściowe i zatrzyma się. Jest to przetwarzanie wsadowe w przeciwieństwie do przetwarzania interaktywnego. Jeśli chcesz uruchomić inny program, musisz to zrobić ponownie.
Jeśli komputer nie może nawet zaakceptować poleceń (nie ma wiersza poleceń), w jaki sposób użytkownik może z nim współdziałać?
Nie jestem ekspertem w tej dziedzinie, ale stare, stare komputery, takie jak Altair, IMSAI i PDP-8, i takie miały przełączniki na panelu przednim, które bezpośrednio kontrolowały procesor i mogły bezpośrednio odczytywać i zapisywać pamięć bez interwencji procesora.
Co to jest ten najbardziej podstawowy interfejs?
Wierzę, że większość, jeśli nie wszystkie współczesne procesory mają „port JTAG”, który umożliwia ten sam rodzaj bezpośrednich operacji. Należy pamiętać, że od dłuższego czasu oczekuje się, że większość komputerów będzie mieć ROM lub oprogramowanie układowe, które przejmuje kontrolę nad systemem, gdy jest włączony, zanim przekaże go do systemu operacyjnego. Tutaj mogą istnieć narzędzia przed uruchomieniem, lub istnieje minimalny mechanizm ładowania takich narzędzi. Dostęp do niektórych programów ładujących, takich jak U-Boot, można uzyskać przez port szeregowy. Programy ładujące nie działają „za” systemem operacyjnym, ładują system operacyjny, kontrolują go, a następnie przestają działać.
Czy mogę uruchomić ten interfejs w emulatorze terminali, czy też nie ma wyjścia za powłoką?
Nie, potrzebujesz interfejsu JTAG. To nurkowanie w królestwie elektroniki i przyznaję, że niewiele o nim wiem, z wyjątkiem tego, że mój GuruPlug jest wyposażony w jeden i mogę bezpośrednio zaprogramować układ flash na płycie GuruPlug - czyli jeśli coś zabije bootloadera na GuruPlug, mam sposób „flashowania” z powrotem „niezależny od CPU”.