Libertonia
Portada · Todo · Software Libre · Desarrolladores · Comunidad · Internet · Tecnología · Meta · Diarios
El Maravilloso Mundo de Linux 2.6 (3/3)

Kernel
Por man ls
departamento brillantes colofones , Sección Tecnología
Puesto a las Mon Nov 3rd, 2003 at 04:23:06 PM CET
Tercera y última parte del MMdL26. Tras esta traducción, ya no tendré excusa para no saber distinguir entre un kelmer 2.6 y una máquina pong.

 


El Maravilloso Mundo de Linux 2.6 (y III)
Joseph Pranevich - jpranevich <en> kniggit.net

Mejoras en el Software

Redes

La infraestructura avanzada de redes ha sido desde siempre uno de los puntos fuertes de Linux. Considerado globalmente como sistema operativo, y no sólo como kernel, Linux soporta casi todos los protocolos dominantes en el planeta, incluyendo TCP/IP (v4 y v6), AppleTalk, IPX, y otros. (El único protocolo no soportado que pueda uno pensar es el invento obsoleto y enredado de IBM y Microsoft, NetBEUI.) Como muchos de los cambios en otros subsistemas, la mayoría de los cambios en hardware de red soportado en Linux 2.6 están bajo el capó, y no son aparentes para el usuario corriente. Esto incluye modificaciones de bajo nivel para beneficiarse del nuevo modelo de dispositivos, y actualizaciones en muchos drivers. Por ejemplo, Linux incluye ahora un subsistema propio MII Media Independent Interface ("Interfaz Independiente del Medio", o IEEE 802.34), usado por bastantes drivers de red. Antes cada driver tenía su propia implementación de MII en los dispositivos que lo soportaban, con ligeras diferencias y la consiguiente duplicación de código; el nuevo subsistema unifica todos los esfuerzos. Hay también otras mejoras, como actualizaciones en RDSI [ISDN].

En la vertiente de software, uno de los cambios más importantes es el soporte de Linux de los protocolos IPsec, IP Security ["Seguridad IP"]: una colección de protocolos para IPv4 (IP "normal") e IPv6 que incorporan seguridad criptográfica a nivel de protocolo de red. La gestión de seguridad a este nivel implica que las aplicaciones no tienen que preocuparse de ello. Es parecido a SSL y demás protocolos de tunneling/seguridad, pero a nivel más bajo. La encriptación en el kernel incluye actualmente variantes de SHA ("algoritmo de hash seguro", o secure hash algorithm), DES ("estándar de encriptación de datos", o data encryption standard), y otros.

Siguiendo con los protocolos, Linux mejora el soporte para redes multicast [multitransmisión]: aquéllas en las que un paquete se envía a varios ordenadores al mismo tiempo. (Por contraste, en las redes punto a punto tradicionales sólo se pueden enviar datos a un ordenador a la vez.) Esta funcionalidad se utiliza principalmente en sistemas de mensajería (como Tibco) y software de audio- o video-conferencia. Linux 2.6 soporta ahora varios protocolos SSM ("Multitransmisión a Fuente Específica", o Source Specific Multicast), como son MLDv2 ("Descubrimiento de Oyente Multitransmisión", o Multicast Listener Discovery) e IGMPv3 ("Protocolo de Mensajería del Internet Group", o Internet Group Messaging Protocol): estándares utilizados por muchos fabricantes de equipamiento de red de gama alta, tales como Cisco.

En Linux 2.6 se ha creado una pila separada para LLC, "Control Lógico de Enlace" [Logical Link Control], estándar IEEE 802.2: un protocolo de bajo nivel utilizado por debajo de varios otros protocolos de alto nivel como pueden ser NetBeui de Microsoft, IPX, y AppleTalk. Esta reestructuración se ha completado con la reescritura de los drivers para IPX, AppleTalk, y Token Ring, de forma que utilicen el nuevo subsistema común. Además, se ha desarrollado (externamente) una pila para NetBEUI; queda por ver si se integrará en el kernel estándar.

Aparte de estos cambios, vale la pena mencionar varias modificaciones menores. Se ha actualizado bastante la implementación de IPv6: ahora puede ser utilizado en redes Token Ring. El soporte para NAT/enmascaramiento [masquerading] se ha extendido para soportar protocolos multiconexión (H.323, PPTP, etc.) Para el desarrollo de routers basados en Linux, la configuración de VLANs ha dejado de ser "experimental".

Sistemas de Archivo en Red

Superpuesto al robusto manejo de protocolos de red de Linux, está el igualmente robusto soporte para sistemas de archivo en red. Montar un sistema de archivo por red (e incluso exportarlo) es una de las pocas operaciones de alto nivel en las que el kernel tiene algo que decir. (Hay alguna otra, por ejemplo el "dispositivo de bloque en red"; ésta no se ha visto modificada en 2.6, y además suele usarse en aplicaciones muy especializadas en las que al final se acaba utilizando un sistema de archivo.) Todas las otras operaciones de red se realizan en espacio de usuario, y fuera del dominio de desarrollo del kernel.

En Linux, al igual que otros clones de UNIX, el sistema de archivo de red más utilizado se llama, sorprendentemente, "Sistema de Archivo En Red" [Network File System], o NFS: un protocolo para compartir ficheros bastante complejo originado para UNIX (ejemplificado en la excelente implementación de Solaris). El protocolo de transporte primario puede ser TCP o UDP; después está el protocolo independiente RPC ("llamada a procedimiento remoto", o remote procedure call). Por encima se utilizan varios sub-protocolos, incluyendo uno dedicado para "montar" y NLM ("gestor de bloqueo en red", o network lock manager) para bloquear ficheros. (La implementación comúnmente usada está además bastante ligada a otros protocolos RPC, como son NIS --"servicio de información en red" [network information service]-- para autentificación. NIS y sus descendientes no se utilizan en Linux debido a problemas inherentes de seguridad.) Es quizás debido a esta compleja estructura de protocolos que NFS no se ha adoptado como un protocolo estándar de internet.

En Linux 2.6, este sistema de archivo nativo ha visto muchas actualizaciones y mejoras. La mayor de ellas es el soporte experimental para la reciente revisión NFSv4 del protocolo, tanto para cliente como servidor. (Hasta ahora sólo se soportaban las versiones v2 y v3.) Se puede por tanto utilizar ahora autentificación más segura (criptográfica), bloqueo más inteligente, y soporte de pseudo-sistemas de archivo, entre otras cosas. La de Linux no es una implementación completa de NFSv4, pero el soporte es bastante estable y podría llegar a usarse en entornos de producción. Además, la implementación de servidor NFS se ha mejorado para ser más escalable (hasta 64 veces más usuarios concurrentes, con colas de petición más grandes), más completa (puede servir sobre TCP, además de sobre UDP), más robusta (los drivers de sistema de archivo pueden modificar la manera en que se exportan los ficheros, adaptándola a sus necesidades) y más mantenible (gestión a través de un sistema de archivo 'nfsd', en lugar de mediante llamadas al sistema). Hay bastantes otros cambios menos visibles, como separación de lockd y nfsd, y soporte para redes con copia cero [zero-copy] en interfaces compatibles. NFS es ahora más fácil de asegurar, al permitir que el administrador asigne el puerto de lockd en el kernel. El cliente de NFS también ha mejorado bastante gracias a la implementación del protocolo RPC, incluyendo infraestructura para caché, control de conexión por UDP, y otras mejoras en TCP. El soporte de Linux para usar volúmenes compartidos NFS como sistema de archivo para root (para sistemas sin disco) se ha mejorado, ya que el kernel soporta por este motivo NFS sobre TCP.

Aparte de mejorar el soporte para sistemas de archivo usados en UNIX, Linux 2.6 también trae bastantes modificaciones en sistemas de archivo de red propios de Windows. El sistema de compartición de archivos estándar en los servidores Windows (al igual que en OS/2 y otros sistemas operativos) es el protocolo SMB ("bloque de mensajes de servidor", o server message block); el soporte para este protocolo en el kernel de Linux es excelente desde hace mucho tiempo. Sin embargo, Windows 2000 pasó a utilizar una extensión del protocolo SMB conocida como CIFS ("sistema común de archivo de internet", o common internet filesystem). Esta versión pretendía refinar y simplificar ciertos aspectos de SMB que se habían vuelto totalmente inmanejables. (La definición del protocolo en sí era bastante vaga, hasta el punto de que la versión para Win95/98/ME llegó a ser incompatible en algunos casos con la versión para WinNT/Win2k.) El uso de CIFS intentó resolver la situación, y además añadió soporte para UNICODE, mejora en el bloqueo de ficheros, y enlaces duros, eliminando las dependencias restantes de NetBIOS; y además con nuevas funcionalidades para los usuarios de Windows. Dado que a los usuarios de Linux no les gusta quedarse al margen, en Linux 2.6 se ha reescrito desde cero el código para montar unidades CIFS de forma nativa. También se incluye soporte para extensiones UNIX de SMB y CIFS, que permiten a Linux acceder a ficheros no nativos de Windows (como pueden ser nodos de dispositivo y enlaces simbólicos) en aquellos servidores SMB que lo soportan (por ejemplo Samba). Aunque no sea tan común hoy día, los desarrolladores de Linux no se han olvidado del todo de los usuarios de Novell NetWare. Linux 2.6 ahora permite a los clientes montar el máximo de 256 comparticiones sobre un solo volumen Netware, utilizando el driver nativo para sistemas de archivo NCP ("Protocolo Netware de Base", o NetWare Core Protocol).

También se ha añadido soporte en Linux 2.6 para los nuevos sistemas de archivo distribuidos en red, que permiten que cualquier fichero en un volumen lógico sea distribuido entre múltiples nodos. Además del sistema de archivo CODA, introducido en Linux 2.4, ahora se incluyen un par de sistemas nuevos: AFS e InterMezzo. AFS, el sistema de archivo Andrew [Andrew filesystem] (así llamado por haberse originado en la CMU [Carnegie Mellon University]), está limitado por el momento a operaciones de sólo-lectura, aunque hay una versión bastante más completa disponible fuera del kernel. El segundo sistema distribuido, InterMezzo (también originado en la CMU), es nuevo en Linux 2.6, y permite operaciones más sofisticadas como desconexión (de forma que se trabaja sobre ficheros cacheados localmente) y es más adecuado para aplicaciones de alta disponibilidad, en las que debe garantizarse que el almacenamiento nunca esté fuera de servicio (o que, si lo está, no lo parezca). Tiene también aplicaciones para sincronizar datos entre múltiples ordenadores, como un portátil y un ordenador de sobremesa. Muchos de los proyectos para implementar estos nuevos sistemas de archivo se han originado en Linux, de forma que el soporte para estas funcionalidades está a la última.

Miscelánea

Seguridad

Uno de los cambios poco publicitados en Linux 2.6 es la abundancia de mejoras centradas en la seguridad. Como avance fundamental, toda la seguridad del kernel (poderes del superusuario en un sistema operativo tipo UNIX) se ha modularizado, de forma que sea uno más de entre los posibles modelos de seguridad disponibles. (Aunque hasta el momento, sólo se dispone del módulo de seguridad estándar, y un ejemplo de cómo desarrollar uno nuevo.) Como parte de este cambio, todas las partes del núcleo están ahora basadas en el modelo de "capacidades", lo que permite un control de accesos más refinado que el antiguo sistema de "superusuario". Casi todos los sistemas Linux seguirán teniendo una cuenta "root" con acceso total, pero esto permite crear un sistema tipo Linux en el que no se dé por sentado su existencia. Otro cambio en la seguridad es que los módulos binarios (drivers de fabricante, por ejemplo) no pueden "sobrecargar" las llamadas del sistema con las suyas propias: la tabla de llamadas del sistema está ahora oculta. Como resultado, se restringe bastante lo que los módulos propietarios pueden hacer en el kernel, y posiblemente se cierren algunos agujeros legales en la licencia GPL. El último cambio con implicaciones de seguridad es que Linux con el nuevo kernel puede ahora usar generadores de números aleatorios en hardware (como los incluidos en algunos procesadores nuevos), en lugar de depender de un reservorio de entropía basado en fluctuaciones aleatorias del hardware, por bueno que haya resultado éste.

Linux Virtualizado

Una de las características más interesantes de Linux 2.6 es su inclusión de una arquitectura en "modo usuario". Este es, en esencia, una variante de Linux que corre sobre sí mismo (como si fuera otra familia de hardware), lo cual permite crear un entorno totalmente virtual de Linux sobre Linux. La nueva instancia corre como si fuera una aplicación normal. "Dentro" de la aplicación, se pueden configurar interfaces de red falsos, sistemas de archivo, y otros dispositivos que usan drivers especiales para comunicarse con la copia anfitriona de Linux de forma segura. Esto ha resultado ser bastante útil, tanto para desarrollo (depuración, perfilado [profiling]...) como para hacer análisis de seguridad y trampas para intrusos. Aunque el usuario normal no lo necesite para nada, está muy bien echarlo a correr en tu máquina. (¡Impresiona a tus colegas!)

Portátiles

Ya se han descrito más arriba varias mejoras de propósito general que afectan a los usuarios de portátiles (mejor soporte para APM y ACPI, comunicaciones inalámbricas, etc.); pero hay otras dos características difíciles de clasificar que serán de interés para ellos. La primera es la funcionalidad de suspender a disco para los usuarios móviles de Linux. La segunda es la capacidad de los procesadores mobile modernos de cambiar de velocidad (y consumo de energía) basado en si estás enchufado o no.

Aplicaciones Existentes

Aunque Linux 2.6 sea una revisión mayor, las diferencias en aplicaciones ejecutadas en modo usuario será mínimas. La única excepción a esta regla es en gestión de hilos [threading]: algunas aplicaciones que iban bien bajo 2.2 o 2.4 tendrán que ser modificadas, al no estar soportadas ciertas operaciones de hilos. Sin embargo, se trata de la excepción más que de la regla. Está claro que las aplicaciones de muy bajo nivel (como utilidades de gestión de módulos) van a dejar de funcionar. Además, los directorios /proc y /dev han sufrido cambios, que afectan tanto a ficheros como al formato en que están escritos; todas las aplicaciones que dependan de ellos pueden dejar de funcionar. (Especialmente según vayan moviéndose cosas al sistema de archivo virtual "/sys"; en el caso de "/dev", se pueden configurar nombres de dispositivo compatibles con las utilidades existentes.)

Pero éstos no son los únicos casos de entornos que pueden verse afectados. Primero, es necesario formatear los ficheros de swap muy antiguos (de Linux 2.0 y anteriores) antes de usarlos con la versión 2.6. (Dado que los ficheros de swap no contienen información permanente, esto difícilmente será un problema para nadie.) El demonio kHTTPd que sirve páginas web directamente se ha eliminado también, ya que se han resuelto la mayoría de los cuellos de botella que impedían a Apache, Zeus y compañía servir a la misma velocidad que el kernel. Han desaparecido los mecanismos de detección automática de "gestores de disco" para DOS/Windows, tales como OnTrack y EzDrive, que permitían el uso de discos grandes en BIOS antiguas. Y por último, el uso de un sector de arranque especial del kernel para arrancar desde floppy también se ha eliminado: es necesario a partir de ahora utilizar SysLinux.

El Trasfondo de la Cuestión

Este documento se ha basado sobre todo en muchísimas horas mirando los cambios en BitKeeper, viendo el código fuente y jugando con él, la lectura de listas de correo, y un montón de búsquedas en Google y Lycos para conseguir documentación sobre esto y lo de más allá. En consecuencia, hay sitios en los que es probable que se me hayan pasado cosas o donde no haya entendido algo, y otros sitios en los que me haya precipitado a incluir cosas que luego no se hayan materializado. (He puesto especial cuidado en revisar las dos versiones de soporte para IDE aparecidas en este tiempo, pero se me pueden haber pasado otros casos.) Ya que mi investigación está también basada en las páginas web de varios proyectos del kernel, he tenido que vigilar que los cambios aceptados en el kernel no pertenecieran a versiones anteriores. Si encuentras errores en este documento, o quieres enviarme correos para ver qué tal me va, hazlo a jpranevich <en> kniggit.net.

Se puede encontrar información adicional sobre el estado de Linux 2.6 en bastantes lugares online. Guillaume Boissiere mantiene la página http://www.kernelnewbies.org/status, que sigue cada versión en detalle. Dave Jones mantiene su propia lista semi-oficial de cambios en http://ftp.kernel.org/pub/linux/kernel/people/davej/misc/post-halloween-2.5.txt. Ambos sitios están un poco anticuados, pero yo he tardado tres meses en actualizar mi documento, así que ¿quién soy yo para quejarme?

La última versión de este documento en inglés está siempre en http://kniggit.net/wwol26.html.

Traducciones

¿No hablas ni castellano ni inglés? Se ha traducido este documento (o una versión anterior) a varios lenguajes.

Chino - http://www-900.ibm.com/developerWorks/cn/linux/kernel/l-kernel26/index.shtml (Stone Wang, et. al.)
Checo - http://www.linuxzone.cz/index.phtml?ids=10&idc=782 (David Haring)
Francés - http://dsoulayrol.free.fr/articles/wonderful_2.6.html (David Soulayrol)
Húngaro - http://free.srv.hu/b/e/behun/pn/modules.php?op=modload&name=News&file=index&catid=&topic=12 (Ervin Novak)(Sin terminar.)
Portugués (BR) - http://geocities.yahoo.com.br/cesarakg/wwol26-ptBR.html (Cesar A. K. Grossmann)
[Castellano - esta versión (Alejandro Fernández)]

Una versión resumida en alemán apareció también en el número de 09/2003 de la revista LanLine.

Además, me he enterado de que puede haber traducciones al italiano y al coreano, pero no sé por dónde andan. Si te enteras de otra traducción que añadir a la lista, házmelo saber.

Este documento es Copyright 2003 por Joseph Pranevich. Se permite la redistribución online sin modificaciones. Se anima a la distribución offline (completa o en parte), pero por favor avísame por correo primero para discutir los detalles. También se anima a realizar traducciones; por favor avísame por correo primero para coordinarlas.

< El Maravilloso Mundo de Linux 2.6 (2/3) (0 comments) | Actualizando a Mandrake 9.2 vía urpmi (12 comments) >
Enlaces Relacionados
· http://www.kernelnewbies.org/s tatus
· http://ftp.kernel.org/pub/linu x/kernel/people/davej/misc/post-halloween-2.5.txt
· http://kniggit.net/wwol26.html
· http://www-900.ibm.com/develop erWorks/cn/linux/kernel/l-kernel26/index.shtml
· http://www.linuxzone.cz/index. phtml?ids=10&idc=782
· http://dsoulayrol.free.fr/arti cles/wonderful_2.6.html
· http://free.srv.hu/b/e/behun/p n/modules.php?op=modload&name=News&file=index&catid=&topic=12
· http://geocities.yahoo.com.br/ cesarakg/wwol26-ptBR.html
· More on Kernel
· Also by man ls

Menu
· crear cuenta
· FAQ
· búsqueda
· Fuentes de Noticias

Login
Nueva cuenta
Usuario:
Contraseña:

Ver: Modo: Orden:
El Maravilloso Mundo de Linux 2.6 (3/3) | 6 comentarios (2 temáticos, 4 editoriales, 0 ocultos)
Quiero ese documento (none / 0) (#5)
por pelacables a las Tue Nov 18th, 2003 at 08:54:27 AM CET
(Información Usuario)

Hola, me gustaría que me mandaras este docuemnto tan completito que te has currado... he intentado mandarte un mail, pero, llamame inepto, no he loclaizado tu @. Te dejo la mia para que me lo mandes! briramar@eupmt.es GRACIAS



Enlace (none / 0) (#6)
por advocatux a las Wed Nov 19th, 2003 at 01:21:30 AM CET
(Información Usuario)

Está disponible y "encuadernado" aquí.
--
- Por una Europa libre de Patentes de Software - EuropeSwPatentFree
[ Padre ]


 
El Maravilloso Mundo de Linux 2.6 (3/3) | 6 comentarios (2 temáticos, 4 editoriales, 0 ocultos)
Ver: Modo: Orden:

ecol Logo Powered by Scoop
Todas las Marcas Registradas y copyrights de esta página son propiedad de sus respectivos dueños.
Los comentarios son propiedad del que los escribe.
Los iconos de las noticias y el logotipo son propiedad de Javier Malonda.
El Resto © 2002 Escomposlinux.org y aledaños.

Puedes sindicar los contenidos de libertonia en formato RSS 1.0 y RDF 0.9. También se puede sindicar la cola de envíos pendientes de moderación.

El proyecto escomposlinux.org está dedicado a la memoria de tas

crear cuenta | faq | búsqueda