Tabla de contenidos
“"Dios observó todo lo que había hecho, y vio que era muy bueno"” -- Versión de la Biblia del Rey James. Génesis 1:31
En este capítulo se proporciona una visión general de un sistema GNU/Linux. En primer lugar se describen los principales servicios que ofrece el sistema operativo. A continuación, se explican con una considerable falta de detalle los programas que implementan dichos servicios. El propósito de este capítulo es hacer posible la comprensión del sistema en su conjunto, por lo cual cada parte en concreto se encuentra descrita en profundidad en capítulos posteriores.
Un sistema operativo tipo UNIX consiste en un núcleo (o Kernel) y algunos programas de sistema. Existen también diversos programas de aplicación con los que podemos trabajar. El núcleo es el corazón del sistema operativo: Mantiene el control de los archivos sobre el disco, inicia los programas y los ejecuta de forma concurrente, asigna memoria y otros recursos a los distintos procesos, recibe y envía paquetes desde y hacia la red, etc. El núcleo hace muy poco por si solo, pero proporciona las herramientas básicas con las que se pueden construir los demás servicios. [1] Además, evita que se pueda acceder al hardware directamente, forzando a todos a utilizar las herramientas provistas. Esta manera de trabajar del núcleo otorga cierta protección a los usuarios entre sí. Las herramientas del núcleo se utilizan a través de las llamadas al sistema. Se puede encontrar información adicional sobre este tema consultando la sección 2 de este manual.
Los programas de sistema utilizan las herramientas provistas por el núcleo para implementar varios servicios requeridos en un sistema operativo. Los programas de sistema (y todos los demás programas), se ejecutan 'por encima del núcleo', en lo que se denomina modo usuario. La diferencia entre los programas de aplicación y los de sistema es su finalidad: las aplicaciones tienen el propósito de realizar tareas útiles a los usuarios (o de jugar, si se tratara de un juego), mientras que los programas de sistema son necesarios para que el sistema funcione. Un procesador de textos es una aplicación; mount es un programa de sistema. La diferencia a menudo es confusa, y de cualquier manera, es solo importante para los categorizadores compulsivos.
Un sistema operativo también puede contener compiladores y sus correspondientes librerías (GCC y la librería de C en particular para GNU/Linux), aunque no todos los compiladores de todos los lenguajes de programación son necesariamente parte del sistema operativo. También puede haber documentación, y en algunas ocasiones juegos. Tradicionalmente, el sistema operativo está definido por el contenido de los discos o cintas de instalación; con GNU/Linux esta definición no puede aplicarse, debido a que se encuentra repartido sobre distintos sitios FTP del mundo.
[1] De hecho, a menudo es considerado erróneamente como el sistema operativo en sí, aunque no lo es. Un sistema operativo proporciona muchos más servicios que el núcleo por sí mismo.