Articulo de referencia

Ken Thompson

(1982) {{cite web |url=http://www.ieee.org/documents/piore_rl.pdf |title=IEEE Emanuel R. Piore Award Recipients |publisher=[[IEEE]] |accessdate=March 20, 2021|archive-url=https:...

Escucha este artículo

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 , predecesor directo del lenguaje C , y fue uno de los creadores y primeros desarrolladores del sistema operativo Plan 9. Otras contribuciones notables incluyen su trabajo en expresiones regulares y los primeros editores de texto para computadora QED y ed , la definición de la codificación UTF-8 y su trabajo en ajedrez computacional, que incluyó la creación de bases de datos de finales y la máquina de ajedrez Belle .

Desde 2006, Thompson ha trabajado en Google , donde codesarrolló el lenguaje Go . En 1983, ganó el Premio Turing junto con su colega de larga trayectoria Dennis Ritchie . [ 3 ] Se le considera uno de los mejores programadores informáticos de todos los tiempos. [ 4 ] [ 5 ] [ 6 ]

Primeros años y educación

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

DEC PDP-7 , utilizado para los trabajos iniciales 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 director de tesis de maestría fue Elwyn Berlekamp . [ 8 ]

Carrera e investigación

Thompson fue contratado por Bell Labs en 1966. [ 9 ] 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. [ 10 ] [ 11 ] También creó un videojuego llamado Space Travel . Más tarde, Bell Labs se retiró del proyecto MULTICS. [ 12 ] Para continuar jugando, Thompson encontró una vieja máquina PDP-7 y reescribió Space Travel en ella. [ 13 ] 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 liderado por Thompson y Ritchie, e incluyendo a Rudd Canaday , desarrolló un sistema de archivos jerárquico , los conceptos de procesos de computadora y archivos de dispositivo , 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". [ 14 ] Después del trabajo inicial en Unix, Thompson decidió que Unix necesitaba un lenguaje de programación de sistema y creó B , un precursor de C de Ritchie . [ 11 ]

En la década de 1960, Thompson también comenzó a trabajar en expresiones regulares . Había desarrollado la versión CTSS del editor QED , que incluía expresiones regulares para la búsqueda de texto. QED y el editor posterior de Thompson, ed (el editor de texto estándar en Unix), contribuyeron enormemente a la popularidad de las expresiones regulares, que se generalizaron en los programas de procesamiento de texto de Unix. Casi todos los programas que trabajan con expresiones regulares hoy en día 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 acelerar la búsqueda de expresiones. [ 15 ]

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". [ 16 ] En una entrevista de 2011, Thompson afirmó que las primeras versiones de Unix fueron escritas por él, y que Ritchie comenzó a abogar por el sistema y ayudó a desarrollarlo: [ 17 ]

Desarrollé yo solo la primera de dos o tres versiones de UNIX. Y Dennis se convirtió en un gran defensor. Luego, reescribí el código en un lenguaje de alto nivel que más tarde se conocería como C. Él trabajó principalmente en el lenguaje y en el sistema de entrada/salida, y yo en el resto del sistema operativo. Esto fue para la PDP-11 , lo cual fue una feliz coincidencia, porque esa fue la computadora que revolucionó la comunidad académica.

La retroalimentación del desarrollo de Unix por parte de Thompson también fue fundamental 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 ". [ 17 ]

En 1975, Thompson se tomó un año sabático de Bell Labs y regresó a su alma mater, la Universidad de California en Berkeley. Allí, ayudó a instalar la versión 6 de Unix en una PDP-11/70 . Posteriormente, Unix en Berkeley se mantendría como un sistema independiente, conocido como Berkeley Software Distribution (BSD). [ 18 ]

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 amplias modificaciones y adiciones posteriores ese mismo año por parte de William Joy , Charles B. Haley [ 19 ] [ 20 ] [ 21 ] y la asesora de la facultad Susan Graham ).

Thompson escribió un programa de ajedrez llamado "chess" para la primera versión de Unix (1971). [ 22 ] Posteriormente, junto con Joseph Condon , Thompson creó el programa asistido por hardware Belle , una computadora de ajedrez campeona mundial . [ 23 ] También escribió programas para generar la enumeración completa de finales de ajedrez , conocidas como bases de datos de finales , para todos los finales de 4, 5 y 6 piezas, lo que permite a los programas de ajedrez realizar movimientos "perfectos" una vez que se alcanza una posición almacenada en ellas. 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 completo a las diversas contribuciones de Thompson al ajedrez computacional. [ 22 ]

década de 1980

Plan 9 de Bell Labs , ejecutando el editor de texto acme y el intérprete de comandos 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 persistente de puerta trasera del compilador ahora conocido como el hack de Thompson o ataque de confianza en la confianza , y es ampliamente considerado un trabajo fundamental en seguridad informática por derecho propio. [ 24 ] En 2023, el código fuente anotado de la puerta trasera se publicó en línea. [ 25 ] El final del discurso de aceptación consistió en una crítica a la cobertura positiva de los periodistas sobre los hackers , como los 414 .

David A. Wheeler desarrolló una defensa contra el "truco de Thompson". Utiliza una técnica llamada compilación doble diversa para eludir el truco mediante la creación y comparación de compilaciones reproducibles . [ 26 ]

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 para reemplazar a Unix. Thompson desempeñó un papel fundamental en el diseño e implementación de Plan 9 de Bell Labs , un nuevo sistema operativo que utilizaba los principios de Unix, pero aplicándolos de forma más amplia a todas las funciones principales 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 posteriormente se negó a trabajar en C++ debido a las frecuentes incompatibilidades entre versiones. En una entrevista de 2009, Thompson expresó una opinión negativa sobre C++, afirmando: «Hace muchas cosas a medias y es simplemente un montón de ideas incompatibles entre sí». [ 27 ]

década de 1990

En 1992, Thompson desarrolló el esquema de codificación UTF-8 junto con Rob Pike . [ 28 ] 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. [ 29 ]

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

En 1995, Thompson colaboró ​​en la compresión de música con Sean Dorward, basándose en el trabajo de investigación original realizado por Jim Johnston, bajo la dirección de Joe Hall y Jont Allen. [ 31 ] [ 32 ]

década de 2000

A finales del año 2000, Thompson se jubiló de Bell Labs.

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

Trabajó en Entrisphere, Inc. como becario hasta 2006.

década de 2020

A partir de 2024Trabaja en Google , primero como Ingeniero Distinguido y luego como Asesor de Google. [ 34 ] 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: [ 17 ]

Cuando los tres [Thompson, Rob Pike y Robert Griesemer ] empezamos, era pura investigación. Nos juntamos y decidimos que odiábamos C++. [risas]... [Volviendo a Go], partimos de la idea de que teníamos que convencernos de cada característica del lenguaje, para que no se añadiera basura innecesaria.

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 las minicomputadoras por parte de una generación ". [ 35 ] 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 , conocido como el ataque de Thompson o el ataque de confianza en la confianza , y que se considera una obra fundamental en seguridad informática . [ 24 ]

Medalla Richard W. Hamming del IEEE

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

Miembro del Museo de Historia de la Computación

En 1997, tanto Thompson como Ritchie fueron nombrados miembros del Museo de Historia de la Computación por "la cocreación del sistema operativo UNIX y por el desarrollo del lenguaje de programación C". [ 37 ] En 2024, grabó una extensa historia oral para el museo. [ 38 ]

Medalla Nacional de Tecnología

El 27 de abril de 1999, Thompson y Ritchie recibieron conjuntamente la Medalla Nacional de Tecnología de 1998 de manos del presidente Bill Clinton por ser co-inventores del sistema operativo UNIX y del lenguaje de programación C, los cuales, en conjunto, "han propiciado enormes avances en hardware, software y sistemas de redes informáticas, e impulsado el crecimiento de toda una industria, reforzando así el liderazgo estadounidense en la era de la información". [ 39 ]

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 con sistemas distribuidos". [ 40 ]

Premio Japón

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

Vida personal

Ken Thompson está casado y tiene un hijo. [ 9 ] [ 22 ] Era usuario de productos Apple , pero luego cambió a Raspberry Pi OS debido a problemas que tuvo con los productos Apple. [ 42 ]

Véase también

Referencias

  1. "Ganadores del premio IEEE Emanuel R. Piore" (PDF) . IEEE . Archivado del original (PDF) el 24 de noviembre de 2010. Consultado el 20 de marzo de 2021 .
  2. 1 2 "Kenneth Thompson" . www.nasonline.org . Archivado del original el 21 de octubre de 2021. Recuperado el 9 de junio de 2019 .
  3. "Ganadores del premio AM Turing por año" . amturing.acm.org . Consultado el 29 de enero de 2025 .
  4. Naskar, Vivek (9 de junio de 2021). "Los 11 programadores más influyentes y grandes de todos los tiempos: The Developer Story" . thedeveloperstory.com . Consultado el 29 de enero de 2025 .
  5. Hossain, Md Zakir (1 de febrero de 2023). "Los 10 mejores programadores del mundo de todos los tiempos" . Medium . Consultado el 29 de enero de 2025 .
  6. "Los mejores programadores del mundo de todos los tiempos" . GeeksforGeeks . 26 de septiembre de 2019. Archivado del original el 21 de febrero de 2025. Consultado el 29 de enero de 2025 .
  7. Seibel 2009 , pág. 450.
  8. "Estudiantes de tesis" . Página principal de Elwyn Berlekamp . Departamento de Matemáticas de la Universidad de California, Berkeley. Archivado del original el 21 de octubre de 2021.
  9. 1 2 "Ken Thompson: Una breve introducción" . El Proyecto de Información de Linux . 24 de agosto de 2007. Recuperado el 25 de marzo de 2026 .
  10. Thompson, KL (1969). "Manual de 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ág. 1. Archivado del original (PDF) el 14 de febrero de 2021. Recuperado el 18 de marzo de 2021 . 
  11. 1 2 Ritchie, Dennis. "El desarrollo del lenguaje C" . Bell Labs . Recuperado el 31 de octubre de 2016 .
  12. J. Stanley Warford (2009). Sistemas informáticos . Jones & Bartlett Publishers. pág. 460. ISBN  978-1-4496-6043-7.
  13. Ritchie, Dennis M. (2001). "Viajes espaciales: Explorando el sistema solar y el PDP-7" . Bell Labs . Archivado del original el 26 de diciembre de 2015. Recuperado el 4 de febrero de 2016 .
  14. Ritchie, Dennis M. "La evolución del sistema de tiempo compartido de Unix" . Archivado del original el 21 de octubre de 2021. Recuperado el 31 de octubre de 2016 .
  15. Cox, Russ. "La coincidencia de expresiones regulares puede ser simple y rápida" . Archivado del original el 21 de octubre de 2021. Recuperado el 30 de octubre de 2016 .
  16. McIlroy, MD (1987). Un lector de Research Unix: extractos anotados del Manual del programador, 1971–1986 (PDF) (Informe técnico). CSTR. Bell Labs. 139. Archivado del original (PDF) el 4 de mayo de 2014.
  17. 1 2 3 "Dr. Dobb's: Entrevista con Ken Thompson" . 18 de mayo de 2011. Archivado del original el 21 de octubre de 2021. Recuperado el 10 de noviembre de 2014 .
  18. Salus, Peter H. (2005). "Capítulo 7. BSD y el CSRG" . El demonio, el ñu y el pingüino . Groklaw . Archivado del original el 14 de junio de 2020. Recuperado el 31 de octubre de 2016 .
  19. "Configuración de Unix – Séptima edición" (PDF) . Archivado del original (PDF) el 8 de marzo de 2024. Consultado el 3 de enero de 2024 .
  20. "BYTE.com" . www.landley.net . Consultado el 3 de enero de 2024 .
  21. "Computación desde la Edad Media: Mi odisea de cincuenta años" . Indico . 25 de abril de 2019. Consultado el 3 de enero de 2024 .
  22. 1 2 3 Dennis Ritchie (junio de 2001). "Ken, Unix y juegos" . ICGA Journal . 24 (2). Archivado del original el 21 de octubre de 2021. Recuperado el 5 de marzo de 2020 .
  23. "Joe Condon (obituario)". Physics Today . 2013. doi : 10.1063/PT.4.1752 .
  24. 1 2 Thompson, Ken (1984). "Reflexiones sobre la confianza en la confianza" . Communications of the ACM . 27 (8): 761– 763. doi : 10.1145/358198.358210 .
  25. Cox, Russ (25 de octubre de 2023). "Ejecutando el compilador "Reflexiones sobre la confianza en la confianza" .
  26. "Contrarrestando completamente la confianza depositada en la confianza a través de la compilación doble diversa (DDC): contrarrestando los ataques de troyanos a los compiladores" . dwheeler.com . Consultado el 2 de marzo de 2025 .
  27. Seibel 2009 , pág. 475.
  28. Pike, Rob (30 de abril de 2003). "Historia de UTF-8" . Archivado del original el 21 de octubre de 2021.
  29. "Estadísticas de uso y cuota de mercado de UTF-8 para sitios web, junio de 2019" . w3techs.com . Archivado del original el 21 de octubre de 2021. Consultado el 9 de junio de 2019 .
  30. Khamlichi, M.el. "Ken Thompson, padre de los sistemas UNIX" . Unixmen. Archivado del original el 21 de octubre de 2021. Recuperado el 31 de octubre de 2016 .
  31. Platt, Charles. "Música a la carta" . Wired . ISSN 1059-1028 . Consultado el 3 de enero de 2024 . 
  32. Ken Thompson - Discurso de clausura - SCaLE 20x , 13 de marzo de 2023 , consultado el 3 de enero de 2024
  33. "Reconstruyendo la "Máquina de Papel" de Turing"" . 23 de septiembre de 2017.
  34. Facultad de Derecho de Stanford. "Biografías de los Amici Curiae en Oracle America, Inc., v. Google, Inc." . Facultad de Derecho de Stanford . Consultado el 27 de julio de 2023 .
  35. "Dr. Ken Thompson" . Academia Nacional de Ingeniería. Archivado del original el 21 de octubre de 2021.
  36. "Ganadores de la Medalla Richard W. Hamming de la IEEE" (PDF) . IEEE . Archivado del original (PDF) el 26 de julio de 2011. Consultado el 29 de mayo de 2011 .
  37. "Ken Thompson" . Museo de Historia de la Computación. Archivado del original el 21 de octubre de 2021. Consultado el 29 de octubre de 2016 .
  38. Entrevista realizada por Brock, David C. (15 de marzo de 2024). "Historia oral de Ken Thompson" . CHM Oral Histories, YouTube . Museo de Historia de la Computación . Consultado el 14 de enero de 2026 .(Publicado en línea el 8 de octubre de 2025).
  39. "Dennis Ritchie y Ken Thompson, figuras destacadas de Bell Labs, recibirán la Medalla Nacional de Tecnología" . ScienceDaily. 8 de diciembre de 1998. Archivado del original el 21 de octubre de 2021.
  40. "Ken Thompson recibe el premio Kanai por el impacto del sistema UNIX" . Bell Labs. 25 de marzo de 1999. Archivado del original el 26 de marzo de 2013.
  41. Evangelista, Benny (25 de enero de 2011). "Ken Thompson y Dennis Ritchie ganan el Premio Japón" . The San Francisco Chronicle .
  42. Ken Thompson - Discurso de clausura - SCaLE 20x (Vídeo). Southern California Linux Expo. El evento tiene lugar entre los minutos 57:48 y 58:55 . Consultado el 28 de diciembre de 2024 en www.youtube.com.

Fuentes

  • Reflexiones sobre la confianza en la confianza. Conferencia del Premio Turing de 1983.
  • Unix y más allá: Entrevista con Ken Thompson, de la IEEE Computer Society.
  • Ken Thompson: Una breve introducción al Proyecto de Información de Linux (LINFO)
  • El ajedrez por ordenador alcanza la madurez: Vídeo de la entrevista con Ken Thompson en el Museo de Historia de la Computación.
  • Lectura del artículo de ajedrez de HS Baird y Ken Thompson sobre reconocimiento óptico de caracteres.
  • "Una leyenda de la informática habla" . CHM . 8 de octubre de 2025. Consultado el 28 de octubre de 2025 .– Una historia oral de 4 horas y media.