Ken Thompson

Científico informático estadounidense, cocreador del sistema operativo Unix

Ken Thompson
[[Archivo:Ken Thompson pito|sin marco|vertical=1]]
Thompson, 2019
Nacido
Kenneth Lane Thompson

( 04-02-1943 )4 de febrero de 1943 (81 años)
Nueva Orleans , Luisiana , Estados Unidos
Alma máterUniversidad de California, Berkeley (licenciatura, 1965; maestría, 1966)
Conocido por
Premios
Carrera científica
CamposCiencias de la Computación
Instituciones

Kenneth Lane Thompson (nacido el 4 de febrero de 1943) es un pionero estadounidense de la informática . Thompson trabajó en Bell Labs durante la mayor parte de su carrera, donde diseñó e implementó el sistema operativo Unix original . También inventó el lenguaje de programación B , el predecesor directo del lenguaje C , y fue uno de los creadores y primeros desarrolladores del sistema operativo Plan 9. Desde 2006, Thompson ha trabajado en Google , donde co-desarrolló el lenguaje Go .

Otras contribuciones notables incluyen su trabajo sobre expresiones regulares y los primeros editores de texto informáticos QED y ed , la definición de la codificación UTF-8 y su trabajo sobre ajedrez informático que incluyó la creación de bases de datos de tablas de finales y la máquina de ajedrez Belle . Ganó el premio Turing en 1983 junto con su colega de muchos años Dennis Ritchie .

Vida temprana y educación

Thompson nació en Nueva Orleans, Luisiana . Cuando le preguntaron cómo aprendió a programar, Thompson afirmó: "Siempre me fascinó la lógica e incluso en la escuela primaria trabajaba en problemas aritméticos en binario y cosas así. Simplemente porque me fascinaba". [3]

DEC PDP-7 , tal como se utilizó para el trabajo inicial en Unix

Thompson recibió una Licenciatura en Ciencias en 1965 y una maestría en 1966, ambas en ingeniería eléctrica y ciencias de la computación , de la Universidad de California, Berkeley , donde su asesor de tesis de maestría fue Elwyn Berlekamp . [4]

Carrera e investigación

Thompson fue contratado por Bell Labs en 1966. [5] En la década de 1960 en Bell Labs, Thompson y Dennis Ritchie trabajaron en el sistema operativo Multics . Mientras escribía Multics, Thompson creó el lenguaje de programación Bon. [6] [7] También creó un videojuego llamado Space Travel . Más tarde, Bell Labs se retiró del proyecto MULTICS. [8] Para seguir jugando el juego, Thompson encontró una vieja máquina PDP-7 y reescribió Space Travel en ella. [9] Finalmente, las herramientas desarrolladas por Thompson se convirtieron en el sistema operativo Unix : trabajando en una PDP-7 , un equipo de investigadores de Bell Labs dirigido por Thompson y Ritchie, e incluyendo a Rudd Canaday , desarrolló un sistema de archivos jerárquico , los conceptos de procesos informáticos y archivos de dispositivos , un intérprete de línea de comandos , tuberías para una fácil comunicación entre procesos y algunos pequeños programas de utilidad. En 1970, Brian Kernighan sugirió el nombre "Unix", en un juego de palabras con el nombre "Multics". [10] Después del trabajo inicial en Unix, Thompson decidió que Unix necesitaba un lenguaje de programación de sistema y creó B , un precursor del C de Ritchie . [11]

En la década de 1960, Thompson también comenzó a trabajar en expresiones regulares . Thompson había desarrollado la versión CTSS del editor QED , que incluía expresiones regulares para buscar texto. QED y el editor posterior de Thompson, ed (el editor de texto estándar en Unix), contribuyeron en gran medida a la popularidad final de las expresiones regulares, y las expresiones regulares se volvieron omnipresentes en los programas de procesamiento de texto de Unix. Casi todos los programas que trabajan con expresiones regulares en la actualidad utilizan alguna variante de la notación de Thompson. También inventó el algoritmo de construcción de Thompson utilizado para convertir expresiones regulares en autómatas finitos no deterministas con el fin de hacer que la coincidencia de expresiones sea más rápida. [12]

Década de 1970

Versión 6 de Unix ejecutándose en el simulador SIMH PDP-11 , con "/usr/ken" aún presente

A lo largo de la década de 1970, Thompson y Ritchie colaboraron en el sistema operativo Unix; fueron tan prolíficos en Research Unix que Doug McIlroy escribió más tarde: "Se puede asumir con seguridad que los nombres de Ritchie y Thompson están asociados a casi todo lo que no se atribuye de otra manera". [13] En una entrevista de 2011, Thompson afirmó que las primeras versiones de Unix fueron escritas por él, y que Ritchie comenzó a defender el sistema y ayudó a desarrollarlo: [14]

Hice la primera de dos o tres versiones de UNIX completamente solo. Y Dennis se convirtió en un evangelista. Luego hubo una reescritura en un lenguaje de nivel superior que llegaría a llamarse C. Él trabajó principalmente en el lenguaje y en el sistema de E/S, y yo trabajé en todo el resto del sistema operativo. Eso fue para el PDP-11 , lo cual fue una casualidad, porque esa fue la computadora que se apoderó de la comunidad académica.

Los comentarios de Thompson sobre el desarrollo de Unix también fueron decisivos para el desarrollo del lenguaje de programación C. Thompson diría más tarde que el lenguaje C "creció con una de las reescrituras del sistema y, como tal, se volvió perfecto para escribir sistemas ". [14]

En 1975, Thompson se tomó un año sabático de los Laboratorios Bell y se fue a su alma mater, la Universidad de California en Berkeley. Allí ayudó a instalar la versión 6 de Unix en un PDP-11/70 . Unix en Berkeley se mantendría más tarde como un sistema propio, conocido como Berkeley Software Distribution (BSD). [15]

A principios de 1976, Thompson escribió la versión inicial de Berkeley Pascal en la División de Ciencias de la Computación, Departamento de Ingeniería Eléctrica y Ciencias de la Computación, UC Berkeley (con extensas modificaciones y adiciones posteriores ese mismo año por parte de William Joy , Charles B. Haley [16] [17] [18] y la asesora de la facultad Susan Graham ).

Thompson escribió un programa de ajedrez llamado "chess" para la primera versión de Unix (1971). [19] Más tarde, junto con Joseph Condon , Thompson creó el programa asistido por hardware Belle , un ordenador de ajedrez campeón del mundo . [20] También escribió programas para generar la enumeración completa de finales de ajedrez , conocidos como bases de tablas de finales , para todos los finales de 4, 5 y 6 piezas, lo que permite a los programas informáticos de ajedrez realizar movimientos "perfectos" una vez que se alcanza una posición almacenada en ellos. Más tarde, con la ayuda del experto en finales de ajedrez John Roycroft , Thompson distribuyó sus primeros resultados en CD-ROM . En 2001, el ICGA Journal dedicó casi un número entero a las diversas contribuciones de Thompson al ajedrez informático. [19]

Década de 1980

Plan 9 de Bell Labs , ejecutando el editor de texto acme y el shell rc

En 1983, Thompson y Ritchie recibieron conjuntamente el Premio Turing "por su desarrollo de la teoría de sistemas operativos genéricos y específicamente por la implementación del sistema operativo UNIX". Su discurso de aceptación, "Reflexiones sobre la confianza en la confianza", presentó el ataque de puerta trasera del compilador persistente ahora conocido como el hack de Thompson o ataque de confianza en la confianza, y es ampliamente considerado un trabajo seminal de seguridad informática por derecho propio. [21] En 2023, el código fuente anotado de la puerta trasera se publicó en línea. [22] El final del discurso de aceptación consistió en críticas a la cobertura positiva de los periodistas sobre los piratas informáticos , como los 414 .

A lo largo de la década de 1980, Thompson y Ritchie continuaron revisando Research Unix, que adoptó una base de código BSD para las ediciones 8.ª, 9.ª y 10.ª. A mediados de la década de 1980, se comenzó a trabajar en Bell Labs en un nuevo sistema operativo como reemplazo de Unix. Thompson fue fundamental en el diseño e implementación de Plan 9 de Bell Labs , un nuevo sistema operativo que utilizaba principios de Unix, pero los aplicaba de manera más amplia a todas las principales instalaciones del sistema. Algunos programas que formaban parte de versiones posteriores de Research Unix, como mk y rc , también se incorporaron a Plan 9.

Thompson probó las primeras versiones del lenguaje de programación C++ para Bjarne Stroustrup escribiendo programas en él, pero luego se negó a trabajar en C++ debido a las frecuentes incompatibilidades entre versiones. En una entrevista de 2009, Thompson expresó una opinión negativa de C++, afirmando: "Hace muchas cosas a medias y es solo un montón de basura de ideas que se excluyen mutuamente". [23]

Década de 1990

En 1992, Thompson desarrolló el esquema de codificación UTF-8 junto con Rob Pike . [24] Desde entonces, UTF-8 se ha convertido en la forma de codificación Unicode dominante para la World Wide Web , representando más del 90% de todas las páginas web en 2019. [25]

En la década de 1990, se comenzó a trabajar en el sistema operativo Inferno , otro sistema operativo de investigación que se basaba en una máquina virtual portátil . Thompson y Ritchie continuaron su colaboración con Inferno, junto con otros investigadores de Bell Labs. [26]

En 1995, Thompson colaboró ​​en la compresión musical con Sean Dorward, basándose en el trabajo de investigación original realizado por Jim Johnston, bajo la guía de Joe Hall y Jont Allen. [27] [28]

Década de 2000

A finales de 2000, Thompson se retiró de Bell Labs.

En 2004, colaboró ​​en la implementación de Turochamp , un programa de ajedrez que Alan Turing ideó en 1948, antes de que existieran computadoras que pudieran ejecutarlo. [29]

Trabajó en Entrisphere, Inc. como becario hasta 2006. A partir de 2024 [actualizar]trabaja en Google , primero como ingeniero distinguido y luego como asesor de Google. [30] Su trabajo reciente ha incluido el codiseño del lenguaje de programación Go . Refiriéndose a sí mismo junto con los otros autores originales de Go, afirma: [14]

Cuando los tres [Thompson, Rob Pike y Robert Griesemer ] empezamos, era pura investigación. Los tres nos juntamos y decidimos que odiábamos C++. [risas] ... [Volviendo a Go,] empezamos con la idea de que los tres teníamos que convencernos de todas las características del lenguaje, de modo que no se añadiera basura extraña al lenguaje por ningún motivo.

Premios

Academias nacionales

En 1980, Thompson fue elegido miembro de la Academia Nacional de Ingeniería por "diseñar UNIX, un sistema operativo cuya eficiencia, amplitud, potencia y estilo han guiado la explotación de minicomputadoras por parte de una generación ". [31] En 1985 fue elegido miembro de la Academia Nacional de Ciencias . [2]

Premio Turing

En 1983, Thompson y Ritchie recibieron conjuntamente el premio Turing "por su desarrollo de la teoría de los sistemas operativos genéricos y, específicamente, por la implementación del sistema operativo UNIX". En su discurso de aceptación, "Reflexiones sobre la confianza en la confianza", Thompson describió un ataque en forma de puerta trasera del compilador al que se ha denominado el hack de Thompson o el ataque de confianza en la confianza , y que se considera ampliamente un trabajo seminal de seguridad informática por derecho propio. [32]

Medalla Richard W. Hamming del IEEE

En 1990, tanto Thompson como Dennis Ritchie recibieron la Medalla IEEE Richard W. Hamming del Instituto de Ingenieros Eléctricos y Electrónicos (IEEE), "por el origen del sistema operativo UNIX y el lenguaje de programación C". [33]

Miembro del Museo de Historia de la Computación

En 1997, tanto Thompson como Ritchie fueron incorporados como miembros del Museo de Historia de la Computación por "la co-creación del sistema operativo UNIX y por el desarrollo del lenguaje de programación C". [34]

Medalla Nacional de Tecnología

El 27 de abril de 1999, Thompson y Ritchie recibieron conjuntamente la Medalla Nacional de Tecnología de 1998 del presidente Bill Clinton por inventar conjuntamente el sistema operativo UNIX y el lenguaje de programación C, que juntos "han llevado a enormes avances en hardware, software y sistemas de redes de computadoras y han estimulado el crecimiento de toda una industria, mejorando así el liderazgo estadounidense en la era de la información". [35]

Premio Tsutomu Kanai

En 1999, el Instituto de Ingenieros Eléctricos y Electrónicos eligió a Thompson para recibir el primer Premio Tsutomu Kanai "por su papel en la creación del sistema operativo UNIX, que durante décadas ha sido una plataforma clave para el trabajo de sistemas distribuidos". [36]

Premio de Japón

En 2011, Thompson, junto con Dennis Ritchie, recibió el Premio Japón de Información y Comunicaciones por el trabajo pionero en el desarrollo del sistema operativo Unix. [37]

Vida personal

Ken Thompson está casado y tiene un hijo. [38] [19]

Véase también

Referencias

  1. ^ "Ganadores del premio IEEE Emanuel R. Piore" (PDF) . IEEE . Archivado desde el original (PDF) el 24 de noviembre de 2010 . Consultado el 20 de marzo de 2021 .
  2. ^ ab "Kenneth Thompson". www.nasonline.org . Archivado desde el original el 21 de octubre de 2021 . Consultado el 9 de junio de 2019 .
  3. ^ Seibel 2009, pág. 450.
  4. ^ "Estudiantes de tesis". Página de inicio de Elwyn Berlekamp . Departamento de Matemáticas de la Universidad de California, Berkeley. Archivado desde el original el 21 de octubre de 2021.
  5. ^ "Ken Thompson: desarrolló UNIX en Bell Labs" . Consultado el 31 de octubre de 2016 .
  6. ^ Thompson, KL (1969). "Manual del usuario de Bon" (PDF) . Proyecto de historia de Multics . Documentos de Multics: Laboratorio de Ciencias de la Computación e Inteligencia Artificial del MIT. p. 1. Archivado desde el original (PDF) el 14 de febrero de 2021 . Consultado el 18 de marzo de 2021 .
  7. ^ Ritchie, Dennis. "El desarrollo del lenguaje C". Bell Labs . Consultado el 31 de octubre de 2016 .
  8. ^ J. Stanley Warford (2009). Sistemas informáticos. Jones & Bartlett Publishers. pág. 460. ISBN 978-1-4496-6043-7.
  9. ^ Ritchie, Dennis M. (2001). "Viajes espaciales: exploración del sistema solar y el PDP-7". Bell Labs . Archivado desde el original el 26 de diciembre de 2015. Consultado el 4 de febrero de 2016 .
  10. ^ Ritchie, Dennis M. "La evolución del sistema de tiempo compartido Unix". Archivado desde el original el 21 de octubre de 2021. Consultado el 31 de octubre de 2016 .
  11. ^ Dennis M. Ritchie. "El desarrollo del lenguaje C". Bell Labs/Lucent Technologies . Consultado el 31 de octubre de 2016 .
  12. ^ Cox, Russ. "La coincidencia de expresiones regulares puede ser sencilla y rápida". Archivado desde el original el 21 de octubre de 2021. Consultado el 30 de octubre de 2016 .
  13. ^ McIlroy, MD (1987). Un lector de Unix para investigación: extractos anotados del Manual del programador, 1971–1986 (PDF) (Informe técnico). CSTR. Bell Labs. 139. Archivado desde el original (PDF) el 4 de mayo de 2014.
  14. ^ abc "Dr. Dobb's: Entrevista con Ken Thompson". 18 de mayo de 2011. Archivado desde el original el 21 de octubre de 2021. Consultado el 10 de noviembre de 2014 .
  15. ^ Salus, Peter H. (2005). "Capítulo 7. BSD y el CSRG". El demonio, el ñu y el pingüino . Groklaw .
  16. ^ "Configuración de Unix – Séptima edición" (PDF) . Consultado el 3 de enero de 2024 .
  17. ^ "BYTE.com". www.landley.net . Consultado el 3 de enero de 2024 .
  18. ^ "Computación desde la Edad Oscura: Mi Odisea de Cincuenta Años". Indico . 25 de abril de 2019 . Consultado el 3 de enero de 2024 .
  19. ^ abc Dennis Ritchie (junio de 2001). "Ken, Unix y juegos". Revista ICGA . 24 (2). Archivado desde el original el 21 de octubre de 2021 . Consultado el 5 de marzo de 2020 .
  20. ^ "Joe Condon (obituario)". Física Hoy . 2013. doi :10.1063/PT.4.1752.
  21. ^ Thompson, Ken (1984). "Reflexiones sobre la confianza". Comunicaciones de la ACM . 27 (8): 761–763. doi : 10.1145/358198.358210 .
  22. ^ Cox, Russ (25 de octubre de 2023). "Ejecución del compilador "Reflexiones sobre la confianza en la confianza"".
  23. ^ Seibel 2009, pág. 475.
  24. ^ Pike, Rob (30 de abril de 2003). «Historia de UTF-8». Archivado desde el original el 21 de octubre de 2021.
  25. ^ "Estadísticas de uso y cuota de mercado de UTF-8 para sitios web, junio de 2019". w3techs.com . Archivado desde el original el 21 de octubre de 2021 . Consultado el 9 de junio de 2019 .
  26. ^ Khamlichi, M.el. "Ken Thompson, el padre de los sistemas UNIX". Unixmen. Archivado desde el original el 21 de octubre de 2021. Consultado el 31 de octubre de 2016 .
  27. ^ Platt, Charles. "Música a la carta". Wired . ISSN  1059-1028 . Consultado el 3 de enero de 2024 .
  28. ^ Ken Thompson - Discurso de clausura - SCaLE 20x, 13 de marzo de 2023 , consultado el 3 de enero de 2024
  29. ^ "Reconstrucción de la "máquina de papel" de Turing". 23 de septiembre de 2017.
  30. ^ Facultad de Derecho de Stanford. "Biografías de Amici Curiae en Oracle America, Inc., v. Google, Inc". Facultad de Derecho de Stanford . Consultado el 27 de julio de 2023 .
  31. ^ "Dr. Ken Thompson". Academia Nacional de Ingeniería. Archivado desde el original el 21 de octubre de 2021.
  32. ^ Thompson, Ken (1984). "Reflexiones sobre la confianza". Comunicaciones de la ACM . 27 (8): 761–763. doi : 10.1145/358198.358210 .
  33. ^ "Ganadores de la Medalla Richard W. Hamming del IEEE" (PDF) . IEEE . Archivado desde el original (PDF) el 26 de julio de 2011 . Consultado el 29 de mayo de 2011 .
  34. ^ "Ken Thompson". Museo de Historia de la Computación. Archivado desde el original el 21 de octubre de 2021. Consultado el 29 de octubre de 2016 .
  35. ^ "Dennis Ritchie y Ken Thompson, los científicos de Bell Labs, recibirán la Medalla Nacional de Tecnología". ScienceDaily. 8 de diciembre de 1998. Archivado desde el original el 21 de octubre de 2021.
  36. ^ "Ken Thompson recibe el premio Kanai por el impacto del sistema UNIX". Bell Labs. 25 de marzo de 1999. Archivado desde el original el 26 de marzo de 2013.
  37. ^ Evangelista, Benny (25 de enero de 2011). "Ken Thompson y Dennis Ritchie ganan el Premio Japón". The San Francisco Chronicle .
  38. ^ "Ken Thompson: una breve introducción". The Linux Information Project . 24 de agosto de 2007. Consultado el 5 de marzo de 2020 .

Fuentes

Escucha este artículo ( 4 minutos )
Icono de Wikipedia hablado
Este archivo de audio se creó a partir de una revisión de este artículo con fecha del 17 de junio de 2006 y no refleja ediciones posteriores. ( 17 de junio de 2006 )
  • Reflexiones sobre la confianza Conferencia del Premio Turing de 1983
  • Unix y más allá: una entrevista con Ken Thompson IEEE Computer Society
  • Ken Thompson: Una breve introducción al Proyecto de Información sobre Linux (LINFO)
  • El ajedrez informático alcanza la madurez: fotografías Museo de Historia de la Computación
  • El ajedrez informático alcanza la madurez: vídeo de la entrevista con Ken Thompson Computer History Museum
  • Artículo de HS Baird y Ken Thompson sobre reconocimiento óptico de caracteres en Reading Chess
Obtenido de "https://es.wikipedia.org/w/index.php?title=Ken_Thompson&oldid=1252508525"