En principio se puede asumir que este nombre se reserva para nombrar al núcleo, o kernel, del sistema operativo en sí y poco más. El núcleo aparece en la mayor parte de los sistemas como un archivo de nombre vmlinuz que se carga en la memoria RAM del ordenador durante el proceso de arranque bien sea a través de disquete, de CDROM o de disco duro.
El kernel es un programa que "envuelve" al conjunto de los elementos físicos, o hardware, que componen el ordenador, haciendo de intermediario, para que el usuario no tenga que preocuparse demasiado por el funcionamiento de éstos. Se encarga también de planificar la ejecución de los procesos o el uso de los recursos del sistema, supervisar la transmisión de los datos entre aplicaciones y los dispositivos periféricos. Una parte importante del núcleo lo constituyen los controladores de dispositivos, o drivers, que pueden incluirse formando parte del mismo durante el proceso de compilación o bien pueden acompañarlo por separado, como archivos binarios de código objeto, que se cargarán después en memoria sólo aquéllos que sean necesarios para controlar un dispositivos físico concreto, lo cual hace que el núcleo sea más pequeño y ligero. Como es de esperar, los controladores, deben compilarse al mismo tiempo que el núcleo sobre el que luego funcionarán, caso de acompañarlo como módulos independientes.
Las versiones del núcleo Linux que han sido suficientemente probadas, se nombran mediante dígitos pares y se reservan los impares para aquéllas que se encuentran en fase de experimentación. Otro tanto se hace con las revisiones. Actualmente están en uso las versiones 2.2.x y la 2.4.x Otra particularidad del kernel es la posibilidad de que cualquier usuario pueda utilizar el código fuente escrito en lenguaje C y compilarlo en su mismo ordenador introduciendo las modificaciones que estime necesarias para un uso personalizado. En efecto, durante el proceso de compilación, se pueden seleccionar gran número de opciones, de un modo muy sencillo, a través de un menú gráfico, o en modo texto, y sin necesidad de tener conocimientos avanzados de programación. Esto permite obtener núcleos de tamaño muy variado, desde los más pequeños de unos 600 MB hasta otros mayores de 1300 MB, y lo que es más importante, ajustados a las exigencias de cada usuario.
Aunque parezca extraño, el kernel sólo, no sirve para nada. El primer elemento que resulta imprescindible es el intérprete de comandos, que es otro archivo independiente del núcleo. Recibe el nombre de shell porque actúa como una coraza que envuelve al núcleo. Es una interfaz que permite al usuario comunicarse con el sistema operativo. Al igual que en UNIX, en Linux, hay disponibles varios shell's. El más usual es el bash que es GNU (de la FSF). Utilizando el shell pueden realizarse programas bastante completos que se llaman guiones (scripts). Las órdenes que acepta el shell, a través de la línea de comandos, están básicamente formadas por el nombre de la orden, uno o varios modificadores precedidos por un guión y uno o varios argumentos, por ejemplo, nombres de archivos o directorios. Estos campos deberán ir siempre separados por un espacio.
$ orden -modificador argumento Ejemplo: $ ls -l /tmp
Resumiendo las principales especificaciones técnicas de Linux, como sistema operativo, se puede decir que es:
Multiusuario. Varios usuarios, bajo la supervisión de un sólo S O, comparten al mismo tiempo todos los recursos del ordenador, microprocesador, RAM, discos, impresora, etc (siempre que cada uno tenga su propio terminal formado por pantalla y teclado).
Multitarea real. Cada uno de los posibles usuarios conectados al sistema, puede ejecutar, a su vez, varios trabajos al mismo tiempo. A mayor número de procesos iniciados, más tardarán en completarse, pero se terminarán bien.
Multiplataforma. Al estar escrito en lenguaje C, se puede compilar para diferentes arquitecturas, por ejemplo: Intel, Motorola, Alpha, Sparc, etc. La versión 3.0 de Linux Debian soporta hasta 11 plataformas distintas.
Multiprocesado. Puede funcionar en ordenadores que tengan una placa base con más de un procesador. Admite arquitecturas de 32 y 64 bits.
Servidor de red. Puede gestionar el acceso y el uso de los recursos compartidos de una red local compuesta por otras máquinas sean Linux o no. Dispone de los servicios necesarios para trabajar con redes externas, como router, prestar servicios de seguridad, o firewall, servidor ftp, etc. Es un sistema orientado hacia las redes.
Interfaz alfanumérica. Sin duda alguna es el sistema operativo más potente en lo que a interfaz en línea de comandos se refiere. Además, puede utilizar interfaz gráfica, llamada X-Windows, sobre la cual podemos instalar dos tipos de escritorios diferentes a elegir: el KDE o el GNOME, ambos tan funcionales e intuitivos como los de los sistemas operativos de la competencia, pero GNU.
Estabilidad y seguridad. Una vez instalado, y correctamente configurado, es el sistema más estable y seguro, característica que comparte junto con su antecesor UNIX.
Gratuito. En general, no es necesario realizar ninguna inversión para adquirir tanto el S O como la mayor parte de aplicaciones para Linux que también son gratuitas. Analizaremos con mayor detalle estos aspectos en el apartado siguiente.