[uylug-varios] linus torvalds finalista del premio mellennium de tecnología 2012 !!!

etrapani etrapani at unesco.org.uy
Sun Apr 22 18:10:46 PDT 2012


> Bueno, entiendo que se refiere a monolítico cuando la interfaz del
> usuario y otros elementos que forman parte de la interfaz con el
> usuario son parte del kernel.

No, no tiene nada que ver el entorno gráfico.  Monolítico es cuando las 
funciones propias del kernel se brindan todas desde adentro del kernel 
en espacio privilegiado.  Por ejemplo, acceso a archivos, a 
dispositivos, IPC, memoria ...

> Si bien se habla de linux como sistema "híbrido", es mónolítico en el
> sentido que cuando cargás un módulo, este se ejecuta en el anillo 0
> del procesador. Los módulos no viven fuera del kernel, sino viven
> afuera del ejecutable "principal" por llamarle de alguna manera, pero
> una vez insertos en el kernel, forman parte del mismo. Parte de fuse
> vive en el kernel, y parte vive afuera, en el anillo 3, en la capa de
> aplicación, con la que interactúa el usuario, y es lo que permite que
> en un nivel sin privilegios, se puedan hacer cosas que solo el kernel
> debería poder hacer.

Lo de los módulos es en este sentido "anecdótico", es la manera de 
cargar.  Es como en programas normales, no hay mucha diferencia entre 
carga dinámica y carga estática, en lo que hace a la arquitectura del 
programa.  La modularidad del kernel no lo hace más o menos monolítico.

Mencioné fuse en el entorno de esta conversación, por dos cosas: una 
porque claramente está desarrollado fuera del kernel.  Es un ejemplo de 
lo que está en el kernel pero se desarrolla afuera (eso impacta en la 
autoría actual del kernel).  Lo segundo, en un kernel monolítico no hay 
manejo de sistema de archivos, ni directamente de dispositivos por 
afueram en espacio de usuario.  Para decirlo de otra manera, si fuse-zfs 
(la parte de espacio usuario) se cuelga en mi equipo, hace pedazos todo. 
Eso no pasa en un kernel monolítico, que jamás delegaría el manejo de 
archivos al espacio de usuario. Acá hay una imagen bastante descriptiva 
[1].  Y no es sólo fuse, es tun/tap, es dri ...

Definitivamente linux no es monolítico (a mi modo de ver) por lo que, 
aún con la definición que citabas de Wikipedia anteriormente, sí existe 
la distinción kernel/sistema operativo, lo que a su vez hace pertinente 
el comentario de Marcelo (tal vez discutible desde otro punto de vista, 
pero no por la vía de "aplastar" ambos conceptos para que sean uno).

> Lo contrario de monolítico no es modular, sino microkernel.

Sí, si de contrarios se puede hablar, eso sería el contrario.  Como 
decía, lo de modular no tiene que ver con la arquitectura.  Podés ser 
modular monolítico o modular hibrido o modular microkernel.

Realmente, la charla es interesante y da para mucho, pero mi punto era 
kernel != sistema operativo.

> Es que no provee acceso al sistema de archivos en forma directa, sino
> que lo hace a través de las system calls, la interfase que te provee
> el sistema operativo a vos como usuario para acceder al hardware, 
> pero
> en los hechos es el kernel el que accede.

No, no es el kernel el que accede.  Cuando usás sshfs no es el kernel 
el que está está trayendo los datos, es un vulgar cliente de ssh(fs).  
Ese es el que "en los hechos" trae los datos.  Digamos, el que se 
conecta por ssh es un programa.  Claro, después esos datos van de 
espacio de usuario a espacio de kernel.  Tienen que pasar por ahí, pero 
el que accede posta, el que hace la conversión, es un programa de 
usuario.  No sé si se entiende o estamos hablando de cosas diferentes (o 
iguales pero vistas desde otro lado :)).

Resumiendo, a nivel de kernel no tiene absolutamente nada que ver un 
ext2 sobre un disco local accedido directamente con un ext2 arriba de un 
loop device sobre un archivo que está en un sshfs.  ¿Por qué?  Porque en 
el primero todo se resuelve adentro del kernel y en el segundo hay 
idas/vueltas a espacio de usuario, a aplicaciones.

Ojo, eso es lo que hace superpotente al kernel, porque podés desde 
espacio de usuario colgarle cosas (como lessfs, o nbd, o hasta nfs de 
usuario) que se desarrollan afuera.  Y también podés saltearte problemas 
de licencia (como con zfs).  O sea, es genial, pero ... rompe la 
arquitectura monolítica y la pasa a híbrida.  Por suerte.

Eduardo.

[1] 
https://upload.wikimedia.org/wikipedia/commons/thumb/d/d0/OS-structure2.svg/900px-OS-structure2.svg.png



More information about the Uylug-varios mailing list