index.html (11740B)
1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 5 <meta name="viewport" content="width=device-width, initial-scale=1" /> 6 <title>De los Padres de Unix al nacimiento de las Grandes Casas</title> 7 <link rel="icon" type="image/png" href="/favicon.png" /> 8 <link rel="stylesheet" type="text/css" href="../article.css" /> 9 </head> 10 <body> 11 <header> 12 <p class="title">De los Padres de Unix al nacimiento de las Grandes Casas</p> 13 <p class="date">13 de junio de 2016 • fjbalon</p> 14 </header> 15 <p>La filosofía es aquel conjunto de saberes que busca establecer, de manera racional, los principios más generales que organizan y orientan el conocimiento de la realidad, así como el sentido del obrar del hombre. Bajo estos preceptos, es fácil comprender cómo los primeros padres de Unix establecieron una doctrina, adheridos a unos principios y una Tradición propia en el mundo de la ciencia de la computación. Tomamos el espíritu de la época y lo aplicamos hoy.</p> 16 <p>Cuando nos referimos a la filosofía de Unix, no hablamos propiamente de la técnica y la programación del sistema operativo, sino de un entorno y unas formas de hacer en las que orbitan aspectos más lógicos, si cabe. Son las ideas que los programadores tuvieron durante el desarrollo, el entorno que tenían, el enfoque de resolución de problemas, aquello que les movía y el como lo aplicaban en otro lugar, sus normas y conceptos. </p> 17 <p>El sistema operativo es solo la encarnación del pensamiento de sus creadores, sigue incluso una estética, entendida en su profundidad, que otorga una belleza a la informática que jamás se ha igualado. ¿Quiénes eran esos programadores con los que queremos lograr una consistencia filosófica y tradicional? Vamos a hablar de Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy y Rob Pike; entre otros.</p> 18 <ol type="I"> 19 <li>Los Padres de Unix: <p>Unix fue desarrollado en la década de 1970 en el centro de investigación Bell Labs. Ken Thompson fue el padre de Unix original, fue su idea escribir un nuevo sistema operativo. En ese momento estaba trabajando en un sistema operativo de tiempo compartido llamado Multics, pero se cansó de su creciente complejidad. Comenzó así desde cero, en base a su experiencia con Multics, despreciando la complejidad y abrazando la simplicidad. El primero en seguirle, dejando de trabajar en Multics y ayudando a Ken Thompson en su nuevo proyecto fue Dennis Ritchie, que se adhirió a la filosofía naciente de defensa de la simplicidad de Ken Thompson.</p> 20 <p>Dennis Ritchie se convirtió en un gran apologista de esta nueva filosofía. En el momento en que Unix se escribió en ensamblador, se encargó de escribir un lenguaje de nivel superior que simplificaría todo, desde portar el sistema operativo a otra arquitectura, hasta contribuir modificando la fuente, hasta escribir utilidades del sistema. Así, Dennis Ritchie escribió C, y Unix fue reescrito en C.</p> 21 <p>Entonces, otros pudieron comenzar a contribuir fácilmente construyendo herramientas para el sistema. Brian Kernighan se unió al desarrollo de éstas, también Douglas McIlroy y Rob Pike. El aspecto multitarea y multiusuario del comenzó a materializarse y a trascender de su significado. Todos podían acceder a todo, no había nada oculto, todo se encontraba claro: todo se encontraba en texto plano, en palabras.</p> 22 <p>Así, el sistema se enfocó en el texto, dándole un enfoque humano a la computación que, con la simplicidad en la mente y la proposición de «no te repitas» entre sus programadores, se lograba un sistema sencillo, comprensible, autodocumentado, simple. Algo único se construía, algo que necesitaba hacerse y no una repetición de herramientas ya escritas. La shell, como interfaz humano-máquina, tenía una capacidad de scripting -guionización- que le permitía escribir programas usando otros programas, pero no alcanzó su mayor potencial hasta que Douglas McIlroy creo la tubería en 1973. Ésta permitía conectar programas para resolver tareas complicadas sin repetir código, conectándose mediante secuencias y flujos de texto.</p> 23 <p>Así, se deduce el entorno que da lugar a la proposición de hacer herramientas simples, que hagan una cosa, y la hagan bien. Se conectarían mediante tuberías con otras. Esto se contrapone con los crecientes software monolíticos gigantes no modulares. El sistema era claro; un entorno abierto para el desarrollo, la investigación y la educación. Con la barrera de entrada levantada, jugar con el sistema fue fácil y abrió la puerta a más y más contribuciones. En parte debido a la modularidad también, los problemas de división que podrían realizarse con un programa grande en múltiples procesos cooperantes, la llamada multiprogramación o multiprocesamiento. La multiprogramación deriva en la cooperación.</p> 24 <cita><p>«Lo que queríamos preservar no era solo un buen entorno en el que hacer la programación, sino un sistema en torno al cual se pudiera formar una comunidad. Sabíamos por experiencia que la esencia de la informática comunitaria, suministrada por máquinas de acceso remoto y tiempo compartido, no es solo escribir programas en un terminal en lugar de un pulsador de teclas, sino fomentar una comunicación cercana.»</p> 25 <p>Dennis Ritchie</p></cita> 26 <p>Hasta 1975, Unix permaneció 'escondido' en los laboratorios Bell, hasta que se vendió una licencia para el código fuente a la universidad de Illinois. Como todos los softwares de la época, se distribuía con el código fuente. Especialmente cuando se lanzó el código para el TCP/IP, desarrollado para UNIX, se inició una red mundial de programación colaborativa en sistemas Unix. Los sistemas multiusuario tomaron un significado completamente nuevo.</p> 27 <p>Así, el usuario comenzó a tener poder para cambiar las cosas y construir otras nuevas, para dominar su informática como no se pudo hasta entonces, al mismo tiempo que aumenta el desarrollo comunitario al hacer que el sistema sea comprensible y humano, enfatizando en herramientas mínimas y completas que sólo hacen una cosa bien.</p></li> 28 <li>La decadencia de UNIX: <p>En 1975 Ken Thompson visitó la universidad de Berkeley y durante su visita introdujo a algunos estudiantes en UNIX, lo instalaron en sus máquinas y Unix comenzó a extenderse, así como su filosofía.</p> 29 <p>Unix se distribuía entonces a las universidades de forma gratuita y acompañado del código fuente. Esto produjo que muchas universidades comenzaran a contribuir al código de UNIX, construyendo sobre la base del código de Berkeley a partir de las premisas y las bases que Ken Thompson les dio. Era una red de contribuciones y distribuciones abiertas, mejoras constantes y buenas ideas. Unix era un campo académico y científico, un ambiente para la investigación.</p> 30 <p>Sin embargo, esto no duró mucho. Las versiones de Unix comenzaron a incorporar código propietario del original, y pronto se encontraron en una guerra jurídica. Las licencias se habían vuelto muy caras lo que deterioraba la comunidad, obstaculizando el uso y la contribución del sistema. Al mismo tiempo, la universidad había creado el código del protocolo TCP/IP, sin embargo nació bajo la licencia e AT&T, al igual que la marca registrada de UNIX. En 1989, Berkeley lanzó su protocolo de red de forma gratuita, siendo el advenimiento de la estrecha relación entre Internet y Unix, y siendo uno de los primeros movimientos reales del movimiento de código abierto.</p></li> 31 <li>El nacimiento de las Grandes Casas: <p>En tal decadencia del Imperio Unix, provocada por el positivismo jurídico, propiedades, las licencias y el obscuramiento del código provocó el surgimiento primero de BSD. Ésta puede ser considerada la primera Casa surgida de Unix, en la que los programadores eliminaban las partes propietarias y las reescribían para poder liberarlas bajo licencias más liberalizadoras, similares a las del protocolo TCP/IP. A pesar de las demandas de AT&T buscando detener su desarrollo en 1992, BSD venció demostrando que no estaba basado en el software original, de hecho, BSD lograba terminar un superconjunto, una visión más elevada de cómo se suponía que debía ser el desarrollo del Unix primigenio, una evolución natural del viejo Imperio. Incluso con código reescrito, el espíritu seguía ahí.</p> 32 <p>Paralelamente la Casa de BSD luchaba contra AT&T, y su permanencia estaba en duda; un estudiante finés llamado Linus Torvalds escribía un kernel, el núcleo para un sistema operativo que fuese asequible, simulando de alguna forma el cómo trabajaba el viejo Unix, iniciando la Casa Linux. En otro continente, Richard Stallman escribía en el MIT un conjunto de herramientas y un sistema operativo completo; nacía así la Casa GNU. El código de GNU simulaba Unix, aunque no partía directamente de él, eran más bien una reprogramación. También escribió un compilador de C. Sin embargo, las Casas de Linux y de GNU no estaban completas, por lo que se unieron en las Casas GNU y Linux. Comenzó a ganar notoriedad y atractivo en las comunidades: un sistema operativo libre y completo, similar a Unix.</p> 33 <p>Debido a que la irrupción en el Tiempo de las Casas GNU y Linux sucedió durante el período frio de BSD, se provocó una migración de BSD a GNU/Linux. Las razones son obvias, contra un sistema con una permanencia dudosa debida a la cruenta batalla que le presentaba el capitalismo, GNU/Linux se constituyó como un sistema verdaderamente abierto, libre, compatible con POSIX y con una interfaz prácticamente Unix. Con la ascensión de las Casas GNU y Linux, fueron exaltados también los movimientos del código abierto y del software libre de Richard Stallman, se popularización rápidamente a través de la creciente Internet, y se convirtió en el más grande proyecto de distribución y contribución en línea: cualquiera podría agregar su conjunto de herramientas y cambios en el sistema operativo, corregir sus errores, aportar su inteligencia, etc. ¿Acaso no es la filosofía de Unix en su base?</p> 34 <p>Hay que tener en cuenta, no obstante, que BSD se reescribió en base al Unix original, mientras que GNU/Linux se escribió sólo con la perspectiva general de cómo es Unix. Esto es un gran ejemplo de la simplicidad de Unix, tan simple de entender que otro podría reescribirlo por completo con pocas nociones genéricas en mente. Una genialidad.</p> 35 <p>Pero si bien BSD y GNU/Linux no son el Unix original, esto nos plantea muchos argumentos. ¿Pueden ser parte de la filosofía de Unix si de alguna manera no están directamente relacionados con el código de los autores originales? ¿puede la filosofía vivir fuera de la base del código? ¿es esta diáspora realmente un paso evolutivo en la filosofía de Unix?</p> 36 <p>Dennis Ritchie ha expresado su opinión al respecto diciendo que los sistemas Unix-like, como GNU/Linux, son sistemas Unix <i>de facto</i>. Eric S. Raymond y Rob Langley sugirieron que existen 3 tipos de sistemas Unix, siendo los Unix genéricos, registrados y funcionales. En base a estos pensamientos, he reflexionado y desarrollado mi propia clasificación, haciendo la separación usando términos jurídicos:</p> 37 <ol> 38 <li><i>De iure</i>: son aquellas Casas y sus distribuciones que tienen una conexión histórica y directa con el código fuente original de Unix (propiedad de AT&T). Encontramos en esta categoría por ejemplo la Casa BSD.</li> 39 <li><i>De facto</i>: entraría cualquier sistema que se comporta de manera similar a Unix, aunque no tiene una herencia directa. Encontramos en esta categoría tanto a GNU como Linux.</li> 40 </ol> 41 </li> 42 </ol> 43 </body> 44 </html>