¿Cómo está programado el sistema operativo GNU/Linux?

sralex12

Bovino adicto
#1


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.

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
 

MDSjogren

Bovino maduro
#2
Uuu. que chido, ya sabia que estaba en c, pero me decia: y tooodo, tooodo, pero toodo este sistema esta en C? wow. pero ya veo que son muchos. jeje. SAludos! GRacias por la info.
 

rexquom

Bovino maduro
#16
Gracias por los datos no tenia idea de lo que usaba gnu/linux para funcionar, muy constructivo este aporte gracias de nuevo
 
#19
solo en desacuerdo con el punto "y es que a día de hoy poco queda sólo en interfaz de línea de comandos."

ciertamente se mira la linea de comandos como una reliquia del pasado, un legado de la edad de piedra de las computadoras, y tal vez para entornos como mac y winodws lo es, y aun asi la siguen incoroporando y tal vez nunca se despeguen de ella.


sin embargo los sistemas GNU/linux no solo provienen de ahi, sino que evolucionaron SOBRE la linea de comandos.

y resulta ser que esta linea de comandos se transforma en una herramineta mas amplia, rapida y poderosa que la interface grafica.

Como toda herramienta especializada requiere conocimiento y practica,

incluso al buscar como hacer algo o resolver un problema nos encontramos que es mas facil copiar y pegar un comando que seguir las intruciones "ve al menu tal, click derecho sobre tal y activa la opcion tal"


Otra gran ventaja que le da la linea de comandos a linux sobre otros sistemas es que un servidor puede ser completamente administrado remotamente usando minimos recusos y ancho de banda con SSH mediante comandos y respuesta de texto. encambio windows server requerira una interface grafica que requiere mayores capacidades y recursos cuando se opera remoto.

De hecho Microsoft tambien desarrolla enormes herraminetas basadas en linea de comandos, no solo los legados del MS-DOS sino herramientas como por ejemplo netshell.

Para el usuario final, quiza es hostil, pero la linea de comandos en cualquier S.O. esta lejos de desaparecer en el desuso
 

Ri3lan

Bovino maduro
#20
que interesante.. Alguna vez tuve la oportunidad de ver en vivo a richard stallman y dijo y volvio a decir que el sistema operativo es GNU/Linux!!! y que Linux forma parte del SO pero no lo es como tal.. Un viejito chistoson jejejeje y muy panson!! tengo la teoria que se come su barba y cabello jejeje bueno esa es otra historia.
Gracias por el aporte, es bueno recordar y conocer un poco mas.
 
Arriba