Está en la página 1de 10

Voy a continuar con la serie sobre personalidades relacionadas

con el desarrollo de software hablando de uno de los pesos


pesados del mundo. Le debemos tanto que no se por donde
empezar. Seguramente no le haré nada de justicia y muchos
datos serán altamente imprecisos, espero que me perdone. Hoy
voy a hablar sobre Dennis Ritchie, creador de C y de UNIX.

Dennis MacAlistair Ritchie nació el 9 de Septiembre de 1941


en Bronxville una pequeña villa de unos dos mil habitantes
situada a unos 25 kilómetros al norte de Manhattan, New York. Se
graduó en 1963 en la Universidad de Harvard con honores en
física. Recibió un Doctorado de Investigación en 1968
matemáticas aplicadas. Ingresó en el Centro de Investigación
para Ciencias de la Computación de los Laboratorios Bell de la
AT&T en 1967 siguiendo los pasos de su padre, Alistair E. Ritchie
quien tenia una larga carrera allí.

En 1968 ingresó en el equipo de desarrollo del sistema


operativo Multics(Multiplexed Information
and Computing Service) donde trabajó junto a multitud
de leyendas de la programación y la arquitectura de sistemas
como Fernando J.Corbató o Peter James Denning. Aunque si
Dennis Ritchie es famoso por algo es por ser el creador del
lenguaje de programación C.

El desarrollo de UNIX y la necesidad de


C

No existe duda alguna de que C es el lenguaje de programación


más popular y famoso de todos los tiempos. C es un
lenguaje de programación imperativa paraimplementación de
sistemas. Aunque al ser tan popular también se ha desarrollado
infinidad de aplicaciones con él. C presenta facilidades para
laprogramación estructurada, permite ámbito léxico
variable y recursión, además esta fuertemente orientado a
tipos con un sistema estático que impideoperaciones no
deseadas.

Como ya he apuntado anteriormente, Ritchie entró en el grupo de


desarrollo de Multics en 1968, para entonces, los Bell Labs ya
estaban bastante frustrados por los serios problemas que
presentaba Multics y poco a poco fueron desplazando el proyecto.
Los últimos investigadores en abandonar el proyecto, decidieron
reescribir todo el trabajo desde cero y a menor escala. Entre
esos investigadores se encontraban Dennis Ritchie y Ken
Thompson --al que dedicaremos unas líneas en el futuro--.

Ritchie estaba convencido en crear un sistema operativo sobre el


cual pudieradesarrollarse una comunidad ya que creía
fervientemente en la computación comunal en la que era
necesaria la comunicación estrecha entre personas a través de
accesos remotos.

Como Ken Thompson aún tenía acceso al entorno de Multics,


escribió un simulador para el nuevo sistema de ficheros y de
paginación en él. También programó el famoso juego Space
Travel, pero el juego requería de una máquina más eficiente y
barata sobre la que ejecutarse, así primero fue portado a
FORTRAN en un sistema GECOS y finalmente fue portado por
Dennis Ritchie y Ken Thompson al lenguaje ensamblador de una
máquina PDP-7.

Fue en ese proceso de portar el código de FORTRAN a lenguaje


ensamblador del PDP-7 cuando Thompson y Ritchie escribieron el
código subyacente que finalmente se convirtió en el sistema
operativo originario de UNIX. Junto a Rudd Canaday desarrollaron
un sistema de ficheros jerárquico, los conceptos de proceso de
ejecución y de archivos de dispositivo, un intérprete de línea de
comandos y algunas aplicaciones y utilerías. Muchos consideran
a Space Travelcomo la primera aplicación del sistema UNIX.

En 1970 el equipo de desarrollo liderado por Dennis Ritchie y Ken


Thompson necesitaban migrar el sistema a una plataforma más
potente y pusieron su vista en la PDP-11/20. Y el manual del
programador de UNIX salió a la luz el 3 de Noviembre de 1971.
En 1972 y contra toda razón, UNIX fue portado al lenguaje de
programación C de forma contraria a la idea general de la época
de que "algo tan complejo como un sistema operativo, que debía
tratar con eventos en tiempos críticos, debía estar escrito
completamente en lenguaje ensamblador".

Sin embargo el portar el código fuente de UNIX a un lenguaje de


más alto nivel como C, derivó en un código mucho más
portable que requería de cambios mínimos en su código cuando
se portaba UNIX a otra plataforma cosa que parecía que iba a ser
cada vez más común. La incapacidad del lenguaje de
programación B para usar las ventajas de la máquina PDP-11,
especialmente del direccionamiento de byte llevó a Ritchie a
desarrollar la primera versión de C.

La primera versión del UNIX para PDP-11 fue completamente


escrito en lenguaje ensamblador, pero cuando las primigenias
versiones de C ya soportaban los tipos de estructura, la mayor
parte del núcleo de UNIX fue portada a C. El núcleo de UNIX se
convirtió así en uno de los primeros núcleo de sistemas
operativos escrito en algo diferente a lenguaje ensamblador junto
a Multics y MPC.
K&R C

En 1978, Brian Kernighan --al que también dedicaremos algunas


líneas más adelante-- y Dennis Ritchie publicaron la primera
edición de El lenguaje de programación C. El libro pronto se
empezó a conocer en la comunidad como K&R C o C de
Kernighan y Ritchie y fue usado durante muchos años como
unaespecificación informal del lenguaje antes de la aparición
del ANSI C.

El C de Kernighan y Ritchie tenía algunas peculiaridades , como la


de que las funciones que no devolvían un tipo de valor diferente a
un entero, no tenían por qué ser definidos previamente con un
prototipo. Así por ejemplo esta sintaxis era válida en K&R C pero
no en ANSI C:

main() {

...

En 1983, Ritchie y Ken Thompson recibieron conjuntamente


el Premio Turing por el desarrollo de la teoría genérica de
sistemas operativos y específicamente por la implementación del
sistema operativo UNIX. Ritchie nombró a su conferencia en la
entrega del Premio Turing como "Reflexiones sobre la
Investigación del Software".

Ritchie fue elegido miembro de la Academia Nacional de


Ingeniería en 1988 por eldesarrollo del lenguaje de programación
C y por el desarrollo conjunto del sistema operativo UNIX. En
1990, tanto Ritchie como Thompson recibieron la medalla IEEE
Richard W.Hamming del Instituto de Ingenieros Eléctricos
y Electrónicos (IEEE) por "originar el sistema operativo UNIX y
el lenguaje de programación C"

El 21 de Abril de 1999 Ritchie y Thompson recibieron


conjuntamente la Medalla Nacional de Tecnología de 1998 de
manos del presidente Bill Clinton por la invención conjunta del
sistema operativo UNIX y el lenguaje de programación C que en
conjunto han dado lugar a enormes avances en el hardware, el
software, redes de sistemas y ha estimulado el crecimiento de
una industria por completo, mejorando así el liderazgo
estadounidense en la era de la información. Estos yankees es que
son muy suyos.

Este mismo año, Ritchie y Thompson han sido galardonados con


el Premio Japón de Información y Comunicación por el
trabajo pionero en el desarrollo del sistema operativo Unix.

Vida después de UNIX y C

En 1990 Ritchie fue nombrado jefe del Departamento de


investigación de Software en el Centro de Investigación de los
Laboratorios Bell en Murray Hill, New Jersey. En 1996 fue
nombrado director de desarrollo para la creación del sistema
operativo Plan 9 sucesor de Unix en Bell --del que también
hablaremos algún día :)--. En 1996 comienza a dirigir los
esfuerzos para la creación del sistema operativo Inferno, sistema
operativo distribuido que corre encima de otro sistema operativo
a través de una máquina virtual.
El sistema operativo Plan 9 se basa en un Kernel híbrido y no
en uno Monolítico como el de Unix.

Sobre Dennis Ritchie

Si no fuera por Dennis Ritchie y por Ken Thompson, UNIX jamás


hubiera existido, tampoco hubiera existido por tanto BSD, o
Solaris o Minix y mucho menos Linux, tampoco existiría Mac OS X.
Y si no fuera especialmente por Dennis Ritchie, no existiría C, no
existirían muchos conceptos que en su día rompieron
esquemas a través de su innovadora visión y se convirtieron en
al ABC de la teoría de los sistemas operativos por lo que sería
complicado que hubieran existido hoy sistemas como Windows,
PlayStation, o PCs. Sin C otros muchos lenguajes que se basaron
o inspiraron en C tampoco existirían hoy y por nombrar solo unos
pocos:

 C++

 C#

 Objective-C

 D

 Java

 JavaScript

 Limbo

 Perl

 PHP
Y por supuesto, tampoco existiría ninguno de los lenguajes
basados en los pocos de la lista anterior. Si existe alguien a quien
haya que agradecerle especialmente su trabajo y dedicación, no
cabe duda de que ese es Dennis Ritchie.

Un Samsung Galaxy S4 y un iPhone 5 tienes más en común entre ellos de lo


que pensáis, aunque no lo sepáis estos 2 teléfonos móviles tienen un mismo
padre, un padre que desarrolló el abuelo de Android y de iOS hace 40 años.
Este hombre es Dennis Ritchie.

Hace 2 años nos dejó uno de los hombres que han dejado una huella más
profunda en el mundo de la informática, el hombre sin el cuál la informática no
sería como es en la actualidad, ¡no!, no es Steve Jobs, es el menos conocido
Dennis Ritchie. Si Steve Jobs o Bill Gates fueran arquitectos, construyendo
puentes y edificios emblemáticos, Dennis Ritchie sería el que inventaría el
cemento, los ladrillos, las herramientas y la carrera de arquitecto.

Vamos a hablar un poco del padre de la informática moderna y de sus más


importantes aportaciones al mundo de la informática y de la tecnología.

Nació en Bronxville, Nueva York el 9 de Septiembre de 1941 y murió el 12 de


octubre del 2011 en Murray Hill, Nueva Jersey. Estudió en Harvard y se
diplomó tanto de física como matemática aplicada.

En 1967 entró a trabajar en los Laboratorios Bell, exactamente en el Centro de


Investigación de Ciencias de la Computación, obteniendo en 1968 el título de
Doctor por la Universidad de Harvard. Dentro de los laboratorios Bell formó
parte de proyectos de envergadura como el Multics (acrónimo de Multiplexed
Information and Computing Services) en cooperación con el MIT y General
Electrics. En dicho proyecto trabajó con Ken Thompson, otro grande de
la informática. Multics era un proyecto muy ambicioso y se fue complicando y
encareciendo por momentos a la vez que requería de un hardware muy
potente, un mainframe GE-645, así que el proyecto no se finalizó y los dos
volvieron a Bell en 1969.

Cuando volvieron a Bell, Thompson siguió trabajando con la computadora GE-


6354 y el Multics y programó un juego llamado Space Travel, no muy rentable,
ya que cada partida tenía un coste de unos 75$. Thompson y Ritchie
reescribieron el juego en ensamblador para ejecutarla en un PDP-7. Tras esto,
pensaron en crear un nuevo sistema operativo para las PDP-7. Por ello, sin el
apoyo económico de Bell, Thompson y Ritchie lideraron un grupo de
programadores para desarrollar un sistema de ficheros y un sistema operativo,
al igual que un intérprete de comandos y un pequeño grupo de programas. El
proyecto se llamó en un principio UNICS (Uniplexed Information and Computing
System), pero el nombre daba lugar a confusiones con MULTICS al igual que a
bromas sobre si era un Multics capado, por todo ello pasó a llamarse UNIX.
Cuando probaron Unix en una PDP-11/20 Bell vió el éxito del nuevo sistema
operativo y decidió entonces asignar una aportación económica al proyecto. Así
en 1970 nació UNIX, que incluía un editor de texto y un programa para
formatear textos, de nombre runoff. El 3 de noviembre de 1971 publicaron el
manual de programación de Unix, UNIX Programmer’s Manual.
Después de crear Unix, Ritchie vio que al estar escrito en ensamblador no se
podía portar a otras máquinas que no fueran la PDP-11, por lo que necesitaba
un lenguaje de programación que permitiera al programador abstraerse del
hardware y ofrecer la mayor portabilidad posible. Así nació el lenguaje de
programación C, que se basa en el lenguaje de programación B creado por
Ken Thompson en 1970 en Bell.

El lenguaje C aportó a el lenguaje B tipos y estructuras que clarifican la


programación y por tanto hacían más eficiente el lenguaje. Lo diseñó junto con
Brian Kernighan entre 1970 y 1972, y este lenguaje permite una programación
estructurada, en la que se podía economizar en expresiones a usar, en la que
se contaba con una gran cantidad de operadores y tipos y en la que se podía
programar tanto a alto como a bajo nivel de forma simultánea.
Tras la creación del lenguaje C, los laboratorios Bell decidieron escribir UNIX
de nuevo en lenguaje C con lo que Unix ganaba en poder de adaptación a
otras computadoras y abría la puerta a aportaciones de otros desarrolladores.
Gracias a la potencia y velocidad de desarrollo de C, en 1973 casi todo el
núcleo de Unix estaba ya escrito en este lenguaje. Como Bell no vendía
equipos, se dedicó a distribuir versiones de UNIX y de compiladores de C a las
universidades, así es como surgió el movimiento a favor del software open-
source.

En el 2007 se jubila, pero por el camino Dennis Ritchie recibe una gran
cantidad de galardones, destacando entre ellos:

o 1979, Dennis Ritchie y Ken Thompson, premio NEC C&C por la contribución al
mundo de los sistema operativos genéricos y el desarrollo de UNIX.

o 1983, Dennis Ritchie y Ken Thompson, premio Turing por el desarrollo de la teoría
genérica de sistemas operativos y específicamente por UNIX.

o 1988, Dennis Ritchie fue elegido miembro de la National Academy of Engineering


por el desarrollo de UNIX y del Lenguaje C.

o 21 de Abril de 1999, el presidente Bill Clinton da la Medalla Nacional de


Tecnología por el desarrollo de UNIX, del lenguaje C y de su impacto en la
industria tecnológica a Dennis Ritchie y a Ken Thompson.

o 2011, Dennis Ritchie y Ken Thompson son galardonados por el Premio Japón en el
ámbito de la Información y las Telecomunicaciones por UNIX