Ya hemos explicado aproximadamente cómo funciona el núcleo o kernel. En este caso, aproximadamente significa mal. El funcionamiento de un sistema operativo es algo más complejo, pero no pasa nada si nos imaginamos sus partes como cajas cerradas. No debemos saber cómo es la comunicación entre un device driver y el dispositivo en sí. Pero un concepto que puede quedar claro es el de servidor y cliente.
Si algo diferencia UNIX de los otros sistemas operativos es que está pensado para funcionar en red. Windows fue diseñado en un principio para ser usado en ordenadores “standalone”, es decir, sin ningún tipo de conexión. Internet ha colocado cada ordenador como parte de una superestructura, levantada gracias a UNIX (aunque algunos puedan pensar lo contrario). Es precisamente la existencia de servidores y clientes lo que hace que un sistema operativo pueda funcionar bien en un entorno de red.
Un servidor es, como su propio nombre indica, algo que nos ofrece un servicio. En informática este servicio puede ser un archivo, la posibilidad de conectarnos a algún dispositivo... Cualquier cosa que un ordenador pueda ofrecer. Para aprovechar este servicio debemos contar con un cliente, y el cliente se comunica con el servidor mediante un protocolo.
Pensemos por ejemplo en visitar una página web. Lo que queremos es ver un contenido que está en un ordenador conectado a internet. Para ello tomamos un navegador (cliente) y nos conectamos a una dirección (la dirección del servidor) mediante el protocolo http (http://) al puerto http del servidor. Acto seguido el cliente lee el archivo que se le ofrece y transforma el documento html en texto que podemos entender. Este ejemplo sirve para entender uno de los conceptos más importantes del sistema operativo Linux, y por extensión, de cualquier UNIX.
El terminal
Si viajamos un par de décadas atrás en el tiempo descubriremos que los ordenadores no tenían una interfaz gráfica. Cuando encendíamos el ordenador aparecía una pantalla negra con un cursor parpadeando. A los veteranos de la informática esto les parecerá de lo más natural, pero hay personas que no han visto un ordenador sin interfaz con ventanas en su vida.
Tanto en MS-DOS como en los primeros Windows-NT, este cursor se hablaba directamente con el ordenador. Era una cosa llamada intérprete de comandos; un ejecutable llamado command.com, que con el autoexec.bat forma parte aún de los sistemas operativos de Microsoft. Es la manera de hablarle al ordenador, son las órdenes que es capaz de entender por él mismo. Son tareas fáciles de realizar como copiar, mover, editar... Pero el concepto de intérprete de comandos en UNIX es ligeramente distinto. Nosotros nos comunicamos con el ordenador mediante un terminal.
Un terminal es un programa que se conecta con el ordenador pero no lo hace directamente. Recuperando el concepto de servidor, se puede decir que un terminal es un cliente de órdenes. Todo lo que le pidamos al ordenador es realizado, pero no lo se lo pedimos directamente a él, lo pedimos a un terminal que accede a los programas.
Esto no es más que un ejemplo de la manera de funcionar de UNIX. Todo está pensado para que un ordenador no presente ninguna diferencia si lo estamos usando sentados en la misma mesa donde se encuentra a si lo usamos desde miles de kilómetros de distancia.
Navegando por un sistema UNIX
Supongamos que tenemos Linux “en pelotas”. No tenemos ventanas, ratón, altavoces, aceleración 3D. Tal como se trabajaba hace años y como se sigue trabajando. Delante de nosotros aparece un terminal. Ahí está con su cursor parpadeando, la pantalla negra con letras blancas y nosotros sin saber qué hacer. En un alarde de brillantez tecleamos help y nos aparece en pantalla líneas y líneas que no entendemos.
Esta no es la situación en la que nos encontraremos cuando estemos delante de un ordenador con Linux, pero nos ayudará a conocer mejor el sistema con el que trabajaremos.
Así que algún amigo nos chiva que el comando para que nos enseñe los archivos y directorios del directorio actual es “ls”. Tecleamos ls y no obtenemos nada.
Otra vez nos susurran por detrás: -para bajar un nivel de directorios teclea “cd ..”. Lo hacemos y volvemos a probar con “ls”. Primera respuesta. Aparecen los nombres de usuario del ordenador. La voz a nuestras espaldas nos dice que nos encontramos en el directorio home, en él tenemos los archivos de cada uno de los usuarios. Cada usuario puede escribir en este espacio y en ningún sitio más.
Creemos que ya dominamos bastante y probamos descender un nivel más en el árbol de directorios. Ahora nos encontramos con esto:

Ésta es la organización de directorios de Linux, cada uno con una función determinada. Algunos de ellos tienen un contenido bastante autoexplicativo, pero otros necesitan una explicación que puede no ser entendida.
Bin es el directorio donde se guardan los ejecutables del sistema base. En él encontramos las órdenes básicas del terminal como movernos por los directorios, mover, copiar... Sbin es el equivalente para las aplicaciones básicas pero que sólo pueden ser usadas por el usuario root, el administrador, amo y señor de la máquina. En boot tenemos los archivos de arranque del sistema. Posteriormente se pasará a analizar cada uno de los directorios, pero tiempo al tiempo.
Una vez tengamos algo de experiencia con los directorios y al terminal Linux empezaremos a ser productivos, pero no es algo para tontos. Como todo requiere un aprendizaje, y el de una herramienta tan completa como el entorno Linux nos pedirá esfuerzo y dedicación durante como mínimo unos cuantos meses.