# Talk (Unix)

talk es un programa de chat de texto para Unix, que originalmente permitía enviar mensajes solo entre los usuarios que iniciaron sesión en una computadora multiusuario — pero luego se extendió para permitir el chat a los usuarios en otros sistemas.
Aunque en gran parte reemplazado por IRC y otros sistemas modernos, todavía se incluye con la mayoría de los sistemas Unix-like en la actualidad, incluidos Linux, sistemas BSD y macOS.

## Historia

Instalaciones similares existían en sistemas anteriores como Multics, CTSS, PLATO y NLS. Las primeras versiones de talk no separaron el texto de cada usuario. Por lo tanto, si cada usuario escribiera simultáneamente, los caracteres de cada usuario se mezclarían. Dado que los teclados de teleimpresora lentos se usaron en ese momento (11 caracteres por segundo como máximo), los usuarios a menudo no podían esperar el uno al otro para terminar. Era común que un usuario que escribía durante mucho tiempo se detuviera cuando se mezclara para ver la respuesta de interrupción del oyente. Esto es lo mismo que interrumpir un largo monólogo cuando se habla en persona. Las versiones más modernas usan Curses para dividir el terminal en múltiples zonas para cada usuario, evitando así mezclar texto.
En 1983, se introdujo una nueva versión de talk como un comando Unix con BSD 4.2, y también acomodaría conversaciones electrónicas entre usuarios en diferentes máquinas. Los seguimientos para hablar incluyeron ntalk ytalk de Britt Yenne, utalk de Roger Espel Llima. ytalk fue el primero de estos en permitir conversaciones entre más de dos usuarios, y fue escrito en parte para permitir la comunicación entre usuarios en computadoras con diferente endianness. utalk usa un protocolo especial sobre UDP (en lugar del TCP usado por el resto) que es más eficiente y permite la edición de toda la pantalla. Todos estos programas dividen la interfaz en diferentes secciones para cada participante. Las interfaces no transmitían el orden en que las declaraciones escritas por diferentes participantes se volverían a ensamblar en un registro de la conversación. Además, los tres programas son texto en tiempo real, donde transmiten cada carácter tal como fue escrito. Esto lleva a una sensación más inmediata en la discusión que los clientes recientes de mensajería instantánea o IRC. Los usuarios que están más familiarizados con otras formas de comunicación de texto instantáneo a veces se encuentran en situaciones embarazosas al escribir algo y decidir retirar la declaración, sin saber que otros participantes de la conversación habían visto cada pulsación de tecla en tiempo real.
Existe un programa similar en los sistemas VMS llamado phone.

## Seguridad

Los bromistas usaban con frecuencia un programa popular llamado "flash", que enviaba información con formato incorrecto a través del protocolo de conversación para corromper la salida terminal del objetivo desafortunado a principios de la década de 1990. Lo hizo al incluir comandos de terminal en el campo normalmente designado para proporcionar el nombre de la persona que realiza la solicitud. Cuando la víctima reciba la solicitud de conversación, el nombre de la persona que envía la solicitud se mostrará en su pantalla. Esto provocaría que los comandos del terminal se ejecuten, haciendo que la pantalla de la persona sea ilegible hasta que la reinicie. Las versiones posteriores de talk bloquearon los intentos de flash y alertaron al usuario de que había tenido lugar. Más tarde quedó claro que, al enviar diferentes comandos de terminal, incluso es posible que el usuario ejecute comandos. Como se ha demostrado que es imposible reparar todos los programas que generan datos no confiables en el terminal, los emuladores de terminales modernos se han reescrito para bloquear este ataque, aunque algunos aún pueden ser vulnerables.