Спочатку у вас були просто тупі термінали - спочатку насправді телерайт-машинок (схожий на електричну друкарську машинку, але з рулоном паперу) (отже / dev / tty - TeleTYpers), але пізніше екран + клавіатура-комбо - що тільки що надіслав ключ-код на комп'ютер і на комп’ютер відіслали команду, яка написала лист на терміналі (тобто термінал був без локального відлуння; комп'ютер повинен був замовити термінал, щоб написати те, що користувач набрав на терміналі) - це одна з причин чому стільки важливих команд Unix такі короткі. Більшість терміналів були підключені послідовними лініями, але (принаймні) один був безпосередньо підключений до комп’ютера (часто це ж приміщення) - це була консоль. Працювати над "консоллю" довіряли лише декілька користувачів (часто це був єдиний "термінал", доступний в режимі для одного користувача).
Пізніше з'явилися деякі графічні термінали (так звані "xterminals", не плутати з програмою xterm
) з екраном і графічною екраною -карткою, клавіатурою, мишею і простим процесором; який міг би просто запустити X-сервер. Вони самі не проводили жодних обчислень, тому X-клієнти бігали за комп'ютером, до якого вони були підключені. У деяких були жорсткі диски, але вони також могли завантажуватися через мережу. Вони були популярні на початку 1990-х, перш ніж ПК стали настільки дешевими та потужними.
"Емулятор терміналу" - "вікно-термінал", яке ви відкриваєте за допомогою таких програм, як xterm
або, konsole
намагається імітувати функціональність таких німих терміналів. Також такі програми, як PuTTY
(Windows), емулюють термінали.
На ПК, де "консоль" (клавіатура + екран) та "комп'ютер" - це більше єдиний блок, ви отримали "віртуальні термінали" (в Linux, клавіші Alt + F1 через Alt + F6), але вони теж імітують термінали старого стилю. Звичайно, коли Unix / Linux стає все більш настільною операційною системою, яку часто використовує окремий користувач, тепер ви виконуєте більшу частину своєї роботи "за консоллю", де користувачі раніше використовували термінали, з'єднані послідовними лініями.
Це звичайно оболонка, яка запускає програми. І він використовує fork-systemcall (мова C), щоб зробити копію себе з налаштуваннями середовища, тоді exec-systemcall використовується для перетворення цієї копії в команду, яку ви хотіли запустити. Оболонка призупиняється (якщо команда не виконується у фоновому режимі), поки команда не буде виконана. Оскільки команда успадковує параметри для stdin, stdout та stderr від оболонки, команда запише на екран терміналу і отримає вхід з клавіатури терміналу.