À quoi ressemble un système d'exploitation avant l'exécution d'un shell?
Dépend du système d'exploitation et de la façon dont vous le configurez. Linux peut être configuré pour écrire du texte de démarrage sur un périphérique de la console, qu’il s’agisse d’une console en mode texte, d’une console framebuffer ou d’un port série. Il peut également être configuré pour être parfaitement silencieux. Certains systèmes d’exploitation / systèmes peuvent écrire des informations de diagnostic sur une mémoire non volatile à laquelle on peut accéder en mettant le système en mode développeur, débogage ou diagnostic. De nombreux systèmes d'exploitation prennent en charge la sortie des informations de démarrage et de diagnostic sur une certaine forme d'UART, laquelle peut être disponible sur l'unité même si elle est cachée de l'utilisateur (google "Ajouter un port série à DD-WRT" pour des exemples de cas où les fabricants cachent des ports série et comment. vous pouvez y accéder).
Un système d'exploitation n'a pas du tout besoin d'un écran externe, c'est simplement un autre périphérique pour le système d'exploitation.
Comment les systèmes étaient-ils utilisés avant le développement du premier shell (par exemple, UNIX au début des années 1970)?
Essentiellement (et en laissant beaucoup, mais cela devrait vous donner une idée) - Vous avez chargé votre programme, soit en faisant basculer les commutateurs sur un panneau, soit en utilisant un lecteur de bande (ces périphériques écrivent directement en mémoire sans intervention de la CPU), puis démarrez la CPU avec un autre commutateur. La CPU exécute ce programme, génère sa sortie et s’arrête. Il s’agit d’un traitement par lots plutôt que d’un traitement interactif. Si vous vouliez exécuter un programme différent, vous deviez recommencer.
Si un ordinateur ne peut même pas accepter de commandes (il n'y a pas de ligne de commande), comment un utilisateur peut-il interagir avec elle?
Je ne suis pas un expert dans ce domaine, mais de vieux, anciens ordinateurs tels que Altair, IMSAI et PDP-8 et ainsi de suite avaient des commutateurs en face avant qui contrôlaient directement le processeur et pouvaient directement lire et écrire de la mémoire sans intervention du processeur.
Quelle est cette interface la plus basique?
Je crois que la plupart, sinon tous les processeurs modernes ont un "port JTAG" qui permet le même type d'opérations directes. N'oubliez pas que pendant longtemps, la plupart des ordinateurs étaient dotés d'une ROM ou d'un micrologiciel qui prend le contrôle du système lorsqu'il est allumé avant de le transférer à un système d'exploitation. Ici, des utilitaires de pré-démarrage peuvent exister, ou un mécanisme minimal de chargement de ces utilitaires existe. Certains chargeurs de démarrage tels que U-Boot sont accessibles via le port série. Les chargeurs de démarrage ne fonctionnent pas "derrière" le système d'exploitation, ils chargent le système d'exploitation, le contrôle manuel, puis ils ne fonctionnent plus.
Puis-je exécuter cette interface dans un émulateur de terminal ou n'y a-t-il aucun moyen de passer derrière un shell?
Non, vous avez besoin d'une interface JTAG. C'est plonger dans le domaine de l'électronique et j'avoue ne pas en savoir beaucoup, sauf que mon GuruPlug en est livré avec un et que je peux directement programmer la puce flash sur la carte du GuruPlug, ce qui signifie que si quelque chose tue le chargeur de démarrage sur le GuruPlug, j’ai une méthode "indépendante du processeur" pour le faire clignoter.