Lenguaje de Programación de GNU/Linux

- Lenguaje de Programación
El otro día charlaba con un amigo, él me preguntaba que es o que hace exactamente el Kernel de GNU/Linux. Navegando un mycomputer me topé con esta información, ideal para entender e interpretar que es o que hace el kernel de nuestro Sistema Operativo.
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.Debemos 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 el 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.

- ¿Qué hace el Kernel?
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.
Ahora, teniendo en cuenta lo anterior, ¿qué lenguaje de programación es usado en el kernel de Linux y en GNU/Linux? Para responder a este intorroganete, debemos separar la respuesta en 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.









Holap:
Claro está que un lenguaje tan extraordinario como C sería omnipresente en un SO tan genial como Linux… xD
Saludooos
Totalmente de acuerdo… No sería menos de esperar… Y un lenguaje tan dósil y flexible creo que es la razón principal de las constantes innovaciones (de gran calidad) del mundo Linux.
Saludos!!
Gracias por la respuesta… Me siento identificado con esa parte de “estuve hablando con un amigo PREGUNTON!” jaja
Gracias por la abundandte respuesta loco!
Jaaj!
Me alegro que te haya servido Rodri, Gracias a vos!
PD: Lo de preguntón lo dijiste vos!