Толстый и Тонкий
Да уж... действительно всё смешалось. :( Поясню подробно для неспециалистов.
Тонкий клиент - это всегда программа. Она обеспечивает как отображение информации, так и предварительную обработку действий пользователя. Это позволяет серверу использовать упрощённый протокол обмена и не заморачиваться отслеживанием каждой клавиши.
Чаще всего сейчас тонким клиентом является броузер, при этом протоколом будет http/https, а форматом html. Броузер отслеживает нажатия клавиш и движения мыши и отдаёт серверу законченный блок работы, например введённый текст или требование отображения нового блока информации. Но это именно частный случай.
Другим случаем, так сказать супертонким клиентом, является программа-эмулятор текстового терминала с протоколом telnet/ssh. В этом случае сервер должен реагировать на каждую букву в отдельности.
Третьим особым случаем супертонкого клиента является программа - X-server, часто ошибочно именуемая X-терминалом. Х-сервер тупо отображает цветной растр, передаваемый ему "клиентом" - так называется любая программа с Х-интерфейсом, выполняемая на сервере и связанная по специальному протоколу с клиентом-экраном, называемым здесь "сервером". То есть здесь как бы заменены местами "сервер" и "клиент". Фактически Х-сервер эквивалентен "RemoteDesktop" в винде, с тем отличием, что один сверхтонкий клиент-"Х-сервер" может соединяться одновременно с различными программами-"Х-клиентами", выполняемыми возможно даже на разных реальных серверах, и выделяя каждому "Х-клиенту" свой кусочек растра - окно. Для этого "Х-сервер" использует вспомогательную программу - "оконный менеджер", который отрисовывает рамку для этих кусочков растра, и управляет попаданием нажатий клавиш и движений мыши к нужному "Х-клиенту", находящемуся в данный момент "в фокусе", и переходами этого фокуса к другим "Х-клиентам" при перемещении курсора мыши или при специальных сочетаниях клавиш к другим кусочкам растра.
Частным, но распространённым в мире Unix случаем является вариант, когда "оконный менеджер" запускается на сервере вместо первоначального "Х-клиента", полностью перехватывая управление всем растром "Х-сервера", и в таком случае сам становится "Х-сервером" для других запускаемых программ-"Х-клиентов". Тогда сверхтонкий клиент отображает всё то, что передаёт ему "оконный менеджер" с реального сервера, и соответственно передаёт ему уже все перемещения курсора и нажатия клавиш. Фактически, именно такой режим реализован в Unix/Linux Desktop, когда и Х-сервер (захватывающий экран, клавиатуру и мышь), и оконный менеджер, и прикладные программы, являющиеся "Х-клиентами", работают на одном и том же компьютере.
Однако, супертонкие клиенты - алфавитно-цифровой терминал, растровый Х-терминал, и даже векторный терминал, могут быть реализованы на специализированном "железе". Причём реализованы по-разному! Поясню чуть дальше.
Терминал - это в принципе любое оконечное устройство, предназначенное для взаимодействия с пользователем и отделённое от физического сервера. Например, для Windows Server терминалами могут являться целиком PC (дисковые или бездисковые) c Windows. Такие терминалы обычно реализуются программно, с собственной операционной системой.
Обычные компьютеры могут работать в качестве терминалов любого типа при наличии соответствующих программ для той операционки, которая устанолена на этом компьютере. Хоть Linux, хоть FreeBSD, хоть Windows (есть программы - Х-терминалы ("Х-серверы) под Виндой тоже, равно как и аналоги "Remote Desktop" под Unix).
С другой стороны, "сверхтонкие клиенты" могут быть реализованы и аппаратно. В прошлом, как алфавитно-цифровые терминалы, так и первые Х-терминалы так и делались, причём алфавитно-цифровые могли вообще обходиться без микропроцессора и использовать для работы не сетевой, а последовательный интерфейс (COM-порт).
Позднее, такие терминалы реализовывались программно, на микропроцессорах, аналогично специализированным компьютерам. Но операционной системы они не имели, программировались с помощью кросс-ассемблеров прямо в процессе проектирования и использовали ПЗУ (а не флешку) для хранения своих встроенных программ.
Позднее, по мере появления флешек и удешевления ПК, выпуск специализированных терминалов становился невыгодным, хотя некоторые модели кажется производятся до сих пор. Кроме того, становилось всё меньше квалифицированных программистов на Ассемблерах для разных микропроцессоров. Поэтому, появились неспециализированные терминалы, которые фактически представляют обычный х86, и лишь эмулируют программно поведение своих аппаратных предшественников. С ростом объёмов флешек, с целью упрощения и удешевления разработки и программирования, стало выгодным записывать во флешку целиком операционную систему (обычно Linux, благо он бесплатен, ужатый до ядра с минимумом модулей, без поддержки отсутствующих в конструкции внешних устройств, без большинства библиотек и всех обычных программ типа gcc/rpm/apt-get/emerge, и уже настроенный на работу с флешки аналогично LiveCD), добавляя к нему уже имеющиеся в этой ОС нужные прикладные программы типа telnet или Xserver, уже настроенные в соответствии с требованиями терминалов-предшественников, которых необходимо эмулировать.
То есть большинство современных аппаратных терминалов имеют ОС, включая файловую систему для считывания с флешки (аналогично LiveCD), и набор автоматически запускаемых и уже настроенных программ, определяющий внешний вид и поведение этого терминала.
Большинство, но не все! Не зная характеристик терминала, нельзя заранее утверждать что в нём есть какая-то ОС. Он может оказаться наследником древнего предшественника, запрограммированным прямо на ассемблере безо всякой ОС. Вирусам и троянам там делать нечего.
С точки зрения вирусов и троянов, даже терминал с ОС может оказаться непробиваемым. Как минимум, в конструкции может физически отсутствовать возможность перепрограммирования флешки - просто к микросхеме не подведён провод с сигналом/напряжением записи. :) Чаще всего просто отсутствуют большинство программ, в которых могут иметься уязвимости. Отсутствует реакция на опрос нестандартных портов по сети, отсутствует bash и прочие - есть только sh, нет большинства библиотек, файлы расположены в нестандартных директориях, отсутствуют всякие плейры и мессенджеры... То есть, дырки для внедрения вируса - клавиатурного сниффера теоретически могут быть, но их надо искать для конкретной версии прошивки конкретного терминала. И может оказаться что в конкретной прошивке дырок нет вообще! Благо устанавливать что-то новое с новыми дырками пользователь не в состоянии, а значит и у хакера надежды нет. :)
Резюмируя, можно сказать, что современный терминал - это программно-аппаратная реализация сверхтонкого клиента. В большинстве случаев там есть какая-то встроенная ОС, а значит и файловая система. Но доступа к ней снаружи нет, и взлом практически невозможен.
Тонкие клиенты, в отличие от сверхтонких, всегда реализуются программно, а значит нуждаются в ОС и файловой системе, которые в принципе могут быть взломаны. Однако, даже тонкие клиенты могут быть реализованы в виде устройства-терминала, например планшетного ноутбука без общих устройств ввода-вывода вроде USB, без возможностей инсталляции новых программ, без диска, с подключением защищённой от записи флешки в режиме LiveCD.
Таким образом, граница между терминалом и тонким клиентом достаточно размыта. Практически, терминалом можно называть прибор, в котором нет возможности инсталлировать непредусмотренные программы (но тонкие клиенты могут оказаться в числе предусмотренных!). А тонким клиентом - программу, которая может работать на разных компьютерах (в том числе, на некоторых терминалах!).
;)