Translation(s) : English - Español - Français - Italiano


Desde sus inicios, Unix se basa en piezas fundamentales básicas y simples que son a la vez potentes y flexibles. Los componentes básicos del sistema Unix son ficheros, usuarios, procesos y datos. Los programas son idealmente herramientas pequeñas y simples que desempeñan sólo una tarea pero la hacen bien. Muchos programas pueden actuar en una cadena ó pipeline. Leen datos en un extremo y escriben en el otro (stdin y stdout, aunque también está stderr que generalmente recibe mensajes de fallo).

Empalmando varios programas consecutivamente es posible montar herramientas complejas de manera simple y rápida. En Unix los programas tienden a ser áltamente modulares.

Aunque en los más de 30 años de vida de Unix no siempre se han seguido estos principios a rajatabla para todo sí que permanecen como fundamentos en la mayoría de los sistemas Unix, así como de varios clones/derivados como los sistemas ?BSD y GNU/Linux. Esta filosofía de diseño modular se puede apreciar claramente en muchos de sus programas y subsistemas.

En resumen: "Que cada pequeño programa haga sólo una tarea pequeña pero que la haga bien y eficientemente. El "usuario" (que en realidad puede ser el administrador del sistema) puede combinar muchos de ellos para resolver el trabajo." (Yo he programado un programa en C para contar apariciones de palabras en un texto solo para averiguar que "cat fichero | tr \ \\n | sort | uniq -c" hace lo mismo y más rápido ;-) )

La Administración del Sistema en Unix se efectúa generalmente manipulando hardware (conectando y desconectando dispositivos, etc.), cambiando configuraciones del (sub)sistema de archivos mediante órdenes que son esencialmente interfaces de llamadas al sistema (chmod, chown, mount, etc.), instalando software y parches de fabricantes, compilando e instalando las versiones más recientes de software libre, o -- sobre todo -- escribiendo y editando (con un editor de textos) scripts y ficheros de configuración. Las funciones del sistema operativo que se realizan invocando scripts de shell le dan al administrador gran control sobre el comportamiento del sistema. Los programadores de Unix hacen que sus programas lean archivos de configuración -- aunque técnicamente a veces la configuración es en sí misma ejecutable -- como la manera más lineal de otorgar al administrador control sobre las funcionalidades del programa. Ocasionalmente el fabricante (o un administrador experto) proporcionará un sistema de menús o una interfaz gráfica (GUI) para simplificar las tareas, pero la Manera Unix consiste en editar ficheros de texto pequeños y ejecutar programas pequeños. Como ninguna simplificación puede cubrir todas las peculiaridades posibles (es imposible escribir programas reales pulsando un botón) los administradores siguen necesitando conocer qué está ocurriendo por debajo.

Aquí aplica el concepto de "complejidad superficial".

System V vs. BSD

La mayoría de los sistemas de tipo Unix se pueden situar en un espectro contínuo entre System V y BSD. Los sistemas de tipo BSD tienden a seguir de cerca la Unix Way descrita anteriormente. Se dirigen especialmente a quienes quieren tener control total en un paquete pequeño. System V se dirige más a la "grán empresa" y está diseñado con interfaces y subsistemas que lo hacen más amigable a . . . entornos que requieren corbata. En particular, System V suele tener maneras de integrar software de terceros en el sistema minimizando el esfuerzo de administración. Un ejemplo palmario es la estructura de los scripts de arranque del sistema que se ejecutan al iniciarlo. Mientras que los sistemas BSD tienden a tener un numero menor de scripts mantenidos a mano por el administrador, System V tiene un conjunto de directorios que contienen scripts más cortos que hacen cado uno una cosa. La manera de BSD es más lineal para el administrador solitario y la de System V, sin contradecir la Unix Way, permite a los paquetes de software que se autoinstalen con menor probabilidad de error.


CategorySystemAdministration | CategoryCommandLineInterface | CategoryRedundant: merge some parts with other shell/CLI pages