C es un lenguaje de programación de propósito general originalmente desarrollado por Dennis Ritchie entre 1969 y 1972 en los Laboratorios Bell como evolución del anterior lenguaje B, a su vez basado en BCPL.
En 1973, el lenguaje C se había vuelto tan potente que la mayor parte del kernel Unix, originalmente escrito en el lenguaje ensamblador PDP-11/20, fue reescrita en C. Este fue uno de los primeros núcleos de sistema operativo implementados en un lenguaje distinto al ensamblador. (Algunos casos anteriores son el sistema Multics, escrito en PL/I, y Master Control Program para el B5000 de Burroughs, escrito en ALGOL en 1961).
El primer proyecto en que se utilizó Lenguaje C fue Unix. Unix a su vez fue escrito a partir de los restos de Multics y ante el fracaso de este, se inició de nuevo pero con unas pretensiones reducidas (Multics era excesivamente ambicioso) Estas primeras versiones de Unix fueron escritas en Ensamblador, utilizando editores de línea.
En esa época no eran económicos los monitores. Así que la gente utilizó algo llamado teleprinter que básicamente eran unas terminales conectada a una impresora.
Debido a esas condiciones, no se podía redibujar o actualizar la pantalla como es necesario para tener lo que hoy consideramos un editor. En su lugar, era necesario tener una interfaz ajustada al hecho que se pudiera añadir texto (al final de la hoja). Estas limitaciones darian lugar a editores de texto.
El editor de línea que más fácil se podía conseguir era Ed, disponible como parte de todo sistema POSIX y en concreto, disponible para Ubuntu y demás distros Linux. Y es que Ed es The Standard Text Editor.
Hay una cuenta en Twitter al respecto de Ed, llamada Edconf. Es muy interesante leer lo que allí se publica, aunque nunca hayas utilizado un editor de línea. Hoy, es una broma común el hacer referencias hacer tal o cual proyecto en Ed, pues sinceramente no es fácil y requiere de algo de estudio.
Dicho todo lo anterior, un tutorial sobre Ed lo puedes conseguir en: A Beginner’s Guide to Using ed Editor in Linux (Examples Included), por si te interesa conocerlo o que mejor aprenderlo.
Un libro interesante para que veas como se trabajaba en ese tiempo (es sorprendentemente moderno en espíritu) es leer el libro Software Tools in Pascal (hay una edición anterior en RATFOR) que gracias a la magia del Internet puedes conseguir AQUÍ.
Sobre esa base fué posible programar y por tanto fué posible hacer un primer compilador de C codificado en ensamblador, tal como explican en la siguiente página de los laboratorios Bell: The Development of the C Language.
Y listo, de allí en adelante fue iterar e iterar hacia mejores herramientas.