À l’origine, vous ne disposiez que de terminaux stupides - au début, en fait, des téléscripteurs (semblables à une machine à écrire électrique, mais avec un rouleau de papier) (d’où / dev / tty - TeleTYpers), mais plus tard l’écran + les combos clavier - qui viennent d’envoyer un code clé à l'ordinateur et l'ordinateur a renvoyé une commande qui a écrit la lettre sur le terminal (c'est-à-dire que le terminal était sans écho local, l'ordinateur a dû ordonner au terminal d'écrire ce que l'utilisateur a tapé sur le terminal) - c'est l'une des raisons pourquoi autant de commandes Unix importantes sont si courtes. La plupart des terminaux étaient connectés par des lignes série, mais au moins un était directement connecté à l'ordinateur (souvent la même pièce): il s'agissait de la console. Seuls quelques utilisateurs sélectionnés ont été autorisés à travailler sur "la console" (il s'agissait souvent du seul "terminal" disponible en mode mono-utilisateur).
Plus tard, il y eut aussi quelques terminaux graphiques (appelés "terminaux", à ne pas confondre avec le xterm
programme) avec carte écran & graphique, clavier, souris et un processeur simple; qui pourrait simplement exécuter un serveur X. Ils n'ont effectué aucun calcul eux-mêmes et les clients X ont donc été exécutés sur l'ordinateur auquel ils étaient connectés. Certains avaient des disques durs, mais ils pouvaient aussi démarrer sur le réseau. Ils étaient populaires au début des années 90, avant que les PC ne deviennent si puissants et si économiques.
Un "émulateur de terminal" - la "fenêtre de terminal" que vous ouvrez avec des programmes tels que xterm
ou konsole
- tente de reproduire la fonctionnalité de tels terminaux stupides. Des programmes tels que PuTTY
(Windows) émulent des terminaux.
Avec le PC, où "la console" (clavier + écran) et "l'ordinateur" constituent plutôt une seule unité, vous disposez de "terminaux virtuels" (sous Linux, les touches Alt + F1 à Alt + F6), mais aussi imiter les terminaux de style ancien. Bien sûr, avec Unix / Linux qui devient de plus en plus un système d’exploitation de bureau souvent utilisé par un seul utilisateur, vous effectuez maintenant la majeure partie de votre travail "sur la console", où les utilisateurs utilisaient avant les terminaux connectés par des lignes série.
C'est bien sûr le shell qui lance les programmes. Et il utilise le fork-systemcall (langage C) pour se copier avec des paramètres d'environnement, puis exec-systemcall est utilisé pour transformer cette copie en commande que vous voulez exécuter. Le shell suspend (sauf si la commande est exécutée en arrière-plan) jusqu'à ce que la commande soit terminée. Comme la commande hérite des paramètres stdin, stdout et stderr du shell, la commande écrit sur l'écran du terminal et reçoit les entrées du clavier du terminal.