Unix es un sistema operativo desarrollado hacia finales de los años 60 y que representó una revolución en el mercado tecnológico debido a sus características basadas en los principios de portabilidad y multitareas. Este novedoso modo de trabajo constituye los fundamentos de la llamada filosofía de Unix, que no es más que un conjunto de principios o normas para el desarrollo de software basado en la experiencia de los desarrolladores de Unix.
Antes de la aparición del sistema Unix, eran comunes los intentos por tratar de atender todas las necesidades del usuario a través de un solo programa de gran tamaño y complejidad. Este tipo de mecanismos solían tener inconvenientes tanto en su desarrollo como en su ejecución, pues usualmente se descuidaban funcionalidades por tratar de desarrollar otras.
Es por esto que los desarrolladores de Unix como Ken Thompson, optaron por la creación de varios programas simples, potentes, y compatibles entre sí, que se encargaran de cumplir una sola tarea en específico. Es de este modo como la filosofía Unix adopta la consigna “lo pequeño es bello”.
Principios de la filosofìa Unix
Hacia 1978 Douglas Mcllroy se encarga de recoger los principios del sistema Unix, que luego seràn resumidos por Peter Salus en A Quarter-Century of Unix, siendo estos:
- Hacer que cada programa haga una cosa y que la haga bien: este principio pone como prioridad la simplicidad, así como el rendimiento y funcionamiento del sistema. No se trata de crear un macro-programa que cumpla mediocremente con muchas funciones, sino que se busca desarrollar pequeños sistemas de alta calidad que puedan dedicarse a una labor en concreto y que lo hagan de la mejor manera posible. Para la filosofía Unix, es más conveniente crear un nuevo trabajo o programa, en lugar de complicar los sistemas antiguos intentando agregarle nuevas características.
- Hacer que los programas puedan trabajar juntos: este principio complementa al anterior, debido a que la creación de varios programas, no debe significar que estos funcionen como sistemas aislados, sino que será necesario garantizar la compatibilidad entre estos, para así poder trabajar con ellos al tiempo, sin necesidad de tener que reescribir o desechar por completo el código. Para lograr el objetivo de facilitar la entrada de otro programa, recomiendan no abarrotar las salidas de los sistemas con información innecesaria y evitar los formatos de entrada escritos únicamente en binarios o columnas.
- Hacer que los programas puedan mantener inputs de textos, porque es una interfaz universal: escribir programas que manejen flujos de texto, facilitará que estos puedan ser enlazados con otros sistemas o que se le realicen modificaciones en caso de ser necesario.
Estos principios serán acompañados de otras consideraciones a nivel de diseño planteadas por Ken Thompson y Dennis Ritchie, tales como facilitar la escritura, prueba y ejecución de los sistemas a través de estrategias como el uso interactivo en lugar del procesamiento por lotes. La filosofía Unix implementa también, un sistema autoportante que facilite la compatibilidad entre programas.
Los principales defensores de esta filosofía, añaden que se debe elegir la portabilidad sobre la eficiencia, evitar interfaces de usuario captivas, guardar la información como archivos en texto plano, usar scripts de Shell y aprovechar las funcionalidades del software.
Ventajas y desventajas de la filosofía de Unix
🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴
Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada
👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semanaComo hemos visto, la aplicación de los principios de la filosofía de Unix proponen crear varios programas para cada uno cumpla una función determinada. Una de las ventajas de este requerimiento, es que, como lo han mencionado sus desarrolladores, evita cargar a un solo programa con muchas funciones, lo cual reduce las probabilidades de que se presenten errores. Esto se debe a que entre más pequeño sea un sistema, mayor control se tendrá sobre este, permitiendo así la identificación pronta de equivocaciones y su posterior corrección.
Sin embargo, esto también supone una de las principales desventajas de esta metodología, debido a que, Unix necesitará constantemente del enlace o trabajo de varios programas para cumplir con tareas sencillas que otros sistemas operativos pueden resolver utilizando solamente una aplicación.
¿Cuál es el siguiente paso?
Ahora que ya conoces cuál es la filosofía de Unix, sus principios, así como sus ventajas y desventajas, no dudes en seguir formándote sobre esta y otras herramientas que te permitirán la mejora de tus procesos de desarrollo de software, a través de nuestro DevOps & Cloud Computing Full Stack Bootcamp. Inscríbete y en menos de 6 meses aprenderás todo lo necesario para convertirte en un experto en estos temas.