El sistema operativo GNU/Linux -a menudo denominado tan sólo como Linux, que es el nombre del núcleo del SO- hace uso de un buen número de lenguajes de programación en sus distintos componentes. ¿Cuáles son esos lenguajes? Cada tipo de recurso parece tener ciertas preferencias, y es que hay lenguajes más adecuados para unas cosas. Obviamente el lenguaje de programación C sigue siendo la base, pero hay mucho más implicados.
Para comenzar es conveniente aclarar el apartado de la nomenclatura que muchos medios utilizan (y utilizamos, probablemente por comodidad) a la hora de hablar de este sistema operativo. Linux es realmente es kernel del sistema operativo GNU/Linux, del cual existen literalmente cientos de versiones en forma de distribuciones, cada una con un kernel Linux y una serie de componentes adicionales que las caracterizan.
Linux es realmente el componente principal del sistema operativo, es el verdadero encargado de administrar los recursos del sistema, el núcleo. Este componente se encarga de ir planificando la ejecución de las distintas tareas y les concede cierto tiempo de procesador, memoria, acceso al disco duro y otros subsistemas, etc.
A modo comparativo el kernel de Windows es kernel32.dll, pero el sistema operativo integra el Panel de Control, el bloc de notas, defragmentador, Internet Explorer, etcétera. Decir “estoy usando Linux” viene a ser lo mismo que “estoy usando kernel32.dll” en lugar de “estoy usando Windows”, de ahí que los más puristas hagan hincapié en el error.
Habiendo aprendido de qué vamos a hablar ahora toca entrar en materia, ¿qué lenguaje de programación es usado en el kernel de Linux y en GNU/Linux? Vayamos por partes:
1. Kernel y drivers de dispositivos: Tanto los drivers como el kernel funcionan en un nivel realmente bajo de operaciones en el ordenador. Para escribir el kernel del sistema operativo y acceder a las propiedades del hardware tales como los ciclos de la memoria, buses de entrada/salida, etc., se necesita un lenguaje que pueda comunicarse con el hardware con potencia. El kernel Linux hace uso del lenguaje C (aunque en realidad no se trate de un lenguaje de bajo nivel) con una pequeña parte en lenguaje ensamblador.
2. Librerías y utilidades: Las librerías y utilidades básicas del sistema tales como mkdir, chmod, chown, head, tail, chroot, uptime, users también están escritas en lenguaje C.
3. Gestores de paquetes y programas de configuración: Los gestores de paquetes tales como yum, apt, dpkg, etcétera, también están escritos en C, que como veis es la estrella absoluta de los componentes “base” de un sistema GNU/Linux.
4. Entornos de Escritorio y gestores de ventanas: La mayoría de gente usa un entorno de escritorio, y es que a día de hoy poco queda sólo en interfaz de línea de comandos. Los gestores de ventanas tales como metacity, kwin están desarrollados en C y requieren gcc para ser compilados. El entorno de escritorio, iconos, ventalas, barras de herramientas, etc, están basados en librerías específicas (Qt para KDE, GTK+ para GNOME) y hacen uso del lenguaje mayoritario, C.
5. Aplicaciones gráficas de usuario: Este es el punto donde entran en juego una gran cantidad de lenguajes de programación, dado que básicamente es la capa más alta. Tenemos una gran variedad: C, Python, Java, Perl y otros. Hay librerías GTK+, Tcl/Tk, Qt que son un frontend gráfico a tareas que corren por detrás en línea de comando.
Fuente: muycomputer.com
Alex Celi