Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Стандартная утилита Unix
Standard Unix utility
talk — это программа для текстового чата в Unix, изначально предназначенная для обмена сообщениями только между пользователями, вошедшими в систему на одном многопользовательском компьютере, но впоследствии расширенная для общения с пользователями на других системах. Несмотря на то, что её во многом вытеснили IRC и другие современные системы, она по-прежнему входит в состав большинства Unix-подобных систем, включая Linux, BSD и macOS.
talk is a Unix text chat program, originally allowing messaging only between the users logged on to one multi user computer—but later extended to allow chat to users on other systems. Although largely superseded by IRC and other modern systems, it is still included with most Unix like systems today, including Linux, BSD systems and macOS.
История
Подобные возможности существовали в более ранних системах, таких как Multics, CTSS, PLATO и NLS. Ранние версии программы talk не разделяли текст, вводимый разными пользователями. Таким образом, если пользователи печатали одновременно, символы от каждого из них перемешивались. Поскольку в то время использовались медленные телетайпные клавиатуры (максимум 11 символов в секунду), пользователи часто не могли дождаться, пока другой закончит. Считалось хорошим тоном, если пользователь, долго печатавший, останавливался при возникновении перемешивания, чтобы увидеть ответ прерванного собеседника. Это сопоставимо с тем, как прерывают длинную речь при личном общении. Более современные версии используют curses для разделения терминала на отдельные области для каждого пользователя, что позволяет избежать перемешивания текста. В 1983 году новая версия talk была представлена как команда Unix в составе 4.2BSD и поддерживала электронные беседы между пользователями на разных машинах. Последующими разработками talk стали ntalk, ytalk Бритта Йенна и utalk Роджера Эспела Ллима. ytalk был первым из них, который позволял общаться более чем двум пользователям, и был частично разработан для обеспечения связи между пользователями на компьютерах с разной порядком байтов. utalk использует специальный протокол поверх UDP (вместо TCP, используемого остальными), который более эффективен и позволяет редактировать весь экран. Все эти программы разделяют интерфейс на различные секции для каждого участника. Интерфейсы не отображали порядок, в котором сообщения, введенные разными участниками, будут собраны в лог разговора. Кроме того, все три программы работали в режиме реального времени, передавая каждый символ по мере его ввода. Это создавало ощущение более живого обсуждения, чем в современных клиентах мгновенных сообщений или IRC. Пользователи, привыкшие к другим формам мгновенного обмена текстовыми сообщениями, иногда попадали в неловкие ситуации, набирая что-то и решая отменить отправку, не подозревая, что другие участники разговора видели каждое нажатие клавиши в реальном времени. Аналогичная программа существует в системах VMS под названием phone.
Similar facilities existed on earlier system such as Multics, CTSS, PLATO, and NLS. Early versions of talk did not separate text from each user. Thus, if each user were to type simultaneously, characters from each user were intermingled. Since slow teleprinter keyboards were used at the time (11 characters per second maximum), users often could not wait for each other to finish. It was common etiquette for a long typing user to stop when intermingling occurred to see the listener's interrupting response. This is much the same as interrupting a long monologue when speaking in person. More modern versions use curses to break the terminal into multiple zones for each user, thus avoiding intermingling text. In 1983, a new version of talk was introduced as a Unix command with 4.2BSD, and would also accommodate electronic conversations between users on different machines. Follow ons to talk included ntalk, Britt Yenne's ytalk and Roger Espel Llima's utalk. ytalk was the first of these to allow conversations between more than two users, and was written in part to allow communication between users on computers with different endianness. utalk uses a special protocol over UDP (instead of TCP used by the rest) that is more efficient and allows edition of the entire screen. All of these programs split the interface into different sections for each participant. The interfaces did not convey the order in which statements typed by different participants would be reassembled into a log of the conversation. Also, all three programs are real time text, where they transmit each character as it was typed. This leads to a more immediate feel to the discussion than recent instant messaging clients or IRC. Users more familiar with other forms of instant text communication would sometimes find themselves in embarrassing situations by typing something and deciding to withdraw the statement, unaware that other participants of the conversation had seen every keystroke happen in real time. A similar program exists on VMS systems called phone.
Безопасность
Популярная программа под названием "flash", которая отправляла некорректные данные через протокол talk, часто использовалась шутниками в начале 1990-х годов для искажения вывода терминала у ничего не подозревающих пользователей. Она делала это, включая команды терминала в поле, предназначенное для отображения имени запрашивающего. Когда жертва получала запрос talk, имя отправителя отображалось на её экране, что приводило к выполнению этих команд и делало экран нечитаемым до перезагрузки терминала. Более поздние версии talk блокировали подобные попытки и предупреждали пользователя о произошедшем. Впоследствии выяснилось, что, отправляя различные команды терминала, можно даже заставить пользователя выполнить произвольные команды. Поскольку исправить все программы, выводящие непроверенные данные в терминал, оказалось невозможно, современные эмуляторы терминалов были переписаны для защиты от этой атаки, хотя некоторые из них всё ещё могут быть уязвимы.
A popular program called "flash", which sent malformed information via the talk protocol, was frequently used by pranksters to corrupt the terminal output of the unlucky target in the early 1990s. It did this by including terminal commands in the field normally designated for providing the name of the person making the request. When the victim would receive the talk request, the name of the person sending the request would be displayed on their screen. This would cause the terminal commands to execute, rendering the person's display unreadable until they reset it. Later versions of talk blocked flash attempts and alerted the user that one had taken place. Later it became clear that, by sending different terminal commands, it is even possible to have the user execute commands. As it has proven impossible to fix all programs that output untrusted data to the terminal, modern terminal emulators have been rewritten to block this attack, though some may still be vulnerable.