[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