Комментарии 9
Автор путает терминал, эмулятор терминала и командную оболочку.
Программа, которую написал автор — это командная оболочка.
Грустно признавать, но это статья уровня:
10 let a=1
20 print a
30 a=a+1
40 goto 20
И возгласы "ого!! оно печатает числа!1" со ссылкой на обязательный гитхаб.
Я не хочу обидеть автора. Но в доинтернетное время такое делалось не только не в гитхабе, а часто в блокноте ручкой и даже в уме.
Чтобы познать уровень своего невежества по Даннингу-Крюгеру, зайдите на wasm.in или на Киберфорум, почитайте, постарайтесь понять, что приведенное в статье это дичайший хелловорд.
Да, Вы поймете, что не понимаете вообще ничего. Это минус. Но это и плюс - если интерес к предмету настоящий, а не попонтоваться "я написал статью на Хабр, время чтения 5 минут", то понимание того, что Вы не понимаете ничего, сподвигнет Вас изучать предмет дальше.
С Уважением.
На самом деле, настоящий терминал -- это отдельная железка, которую использует человек для работы с машиной:

Мужик сидит и что-то набирает на клавиатуре терминала; то, что он набирает, передаётся байт за байтом в машину (слева три шкафа -- это и есть машина); машина же, в свою очередь, байт за байтом передаёт на терминал символы и управляющие коды, образующие в итоге то, что человек видит на экране. У машины может быть несколько терминалов, и все они могут использоваться одновременно (собственно, в 60-80-е годы так обычно и бывало); терминалами не обязательно должны быть дисплеи с клавиатурами -- очень часто использовались телетайпы и пишущие машинки, хотя по мере распространения дисплеев они, конечно, выходили из употребления.
Что же касается т.н. терминалов в, скажем, современном Линухе, -- это программы, которые программно симулируют настоящие железные терминалы. Как правильно заметили в комментариях, то, что автор написал, -- это не терминал, это командная оболочка, т.е. программа, выполняющаяся под управлением операционной системы и использующая сервисы операционной системы для считывания символов, поступающих от терминала, и вывода на терминал каких-либо сообщений. Что из себя терминал представляет, данная программа понятия не имеет -- это скрывает от неё операционная система. Технически, скажем, возможно подключить к современному ПК настоящий древний терминал, при необходимости написать для операционной системы драйвер под конкретную модель терминала, после чего можно будет работать за этим терминалом точно так же, как можно работать в окне программного симулятора терминала на самом ПК.
Я как-то пытался отследить по исходникам линукс ядра, как данные перемещаются из драйвера uart в line discipline, tty, а затем в приложение. В итоге не вышло, весьма запутанно оказалось. Вот и подумал, неужели эта статья реально описывает терминал с нуля? Ан нет (

Я пишу свой терминал с нуля, чтобы понять как работает компьютер