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

Kernel
Por man ls
departamento segundas partes , Sección Tecnología
Puesto a las Mon Nov 3rd, 2003 at 04:00:04 PM CET
Ahí va la segunda parte del MMdL26. Quiero recordar la dirección del original, en caso de que queráis compararlas.

Una pequeña nota en el tratamiento de los términos técnicos: los que están en inglés aparecen siempre en itálica. En aquellos casos en que existe una equivalencia en castellano, como filesystem -> sistema de archivo, he intentado utilizar el término castellano. Cuando ésta no es muy usada, como threading -> hilos, la he aclarado entre corchetes. Por último, en casos como Plug-and-Play, en la que la traducción suena demasiado ortopédica y de todas formas todo el mundo utiliza el término inglés, lo he dejado tal cual.

 


El Maravilloso Mundo de Linux 2.6 (II)
Joseph Pranevich - jpranevich <en> kniggit.net
Soporte de Hardware

Según Linux ha ido ganando aceptación a lo largo del tiempo, cada nueva iteración del kernel ha ampliado espectacularmente el soporte a nuevos dispositivos -- tanto en tecnologías emergentes (USB en la 2.4) como en compatibilidad hacia atrás (MCA en la 2.2). Según nos acercamos a la versión 2.6, quedan pocos dispositivos no soportados. Linux ha llegado a abarcar casi todo el universo conocido en términos de hardware. Por esta razón, la mayoría de los cambios en el soporte de hardware i386 se han encaminado a la robustez más que a la expansión, con notables excepciones.

Dispositivos Internos

Casi tan importante como el tipo de procesador, los buses de sistema tienen la misión de cimentar las comunicaciones internas de un ordenador. La arquitectura PC ha visto pasar tecnologías de bus en abundancia, desde la primigenia ISA (en el IBM PC original) hasta los actuales buses inalámbricos. Linux ha estado siempre a la última en soporte de buses y dispositivos de consumo, y se ha mostrado bastante más reticente en incorporar tecnologías poco habituales.

Las mejoras en soporte de dispositivos internos están muy extendidas en todo el espectro. Un caso de dispositivos poco usados es el soporte de las extensiones Plug-and-Play para ISA, o "Arquitectura Estándar de la Industria" [Industry Standard Architecture]. Linux no llegó a tener soporte para PnP hasta la versión 2.4. Ahora se ha completado al incluir PnP a nivel de BIOS, una base de datos de dispositivos y mejoras en la compatibilidad. La suma de todos los cambios es que Linux ha pasado a ser un sistema operativo Plug-and-Play real, y puede indicarse así en las BIOS compatibles. Otros buses antiguos como MCA, "Arquitectura de Microcanal" [Microchannel Architecture], y EISA, "ISA Extendido" [Extended ISA], han pasado a ser parte del nuevo modelo de dispositivos, y tienen sus propias bases de datos específicas. Pasando ya a las nuevas incorporaciones, Linux 2.6 incluye unas cuantas mejoras incrementales en el subsistema PCI, o "Interconexión de Componentes Periféricos" [Peripheral Component Interconnect], entre otras: PCI en caliente, gestión de energía, soporte para múltiples tarjetas AGP ("Puerto de Gráficos Acelerado" o Accelerated Graphics Port, una versión de alta velocidad del bus PCI), y demás. Por último, además de todos los buses "reales", en Linux 2.6 se ha añadido el concepto de bus "heredado": específico a cada arquitectura, contiene todos los dispositivos que se dan por hecho en un sistema. Por ejemplo, en un PC se incluyen aquí los puertos serie, paralelo y PS/2 -- dispositivos que están presentes pero que no aparecen en ningún bus del sistema. Este soporte puede traer complicaciones en algunas plataformas, como obligar a hablar directamente con el firmware de la máquina, pero tiene la ventaja de que todos los dispositivos están incluidos en el nuevo paradigma de drivers.

Dispositivos Externos

Es innegable que hay pocos cambios en los buses internos en el reciente ciclo de desarrollo; pero en la "zona caliente" de los dispositivos externos, nos encontramos con todo lo contrario. El cambio más importante es seguramente el soporte para USB 2.0, también conocido como USB de alta velocidad. Se pasa con ello a permitir transferencias de 480 megabits por segundo, en lugar de los 12 Mbit/s del USB tradicional. Hay un estándar relacionado, USB On-The-Go ["sobre la marcha"], que es una variante punto a punto del protocolo USB para conectar dispositivos directamente (como puede ser una cámara digital a una impresora, sin PC en medio); no soportado todavía por Linux 2.6 (aunque hay parches externos disponibles). Además de incluir nuevos dispositivos, se ha mejorado la forma en que los dispositivos USB se enumeran internamente, lo cual quiere decir que pueden conectarse muchos más dispositivos de cada tipo a la vez. Aparte de los cambios más importantes, esta versión se ha centrado en aspectos como compatibilidad, estabilidad y simplificación; lo que debería mejorar el soporte de dispositivos USB en general.

Visto desde el campo opuesto, Linux 2.6 incluye por primera vez la capacidad de ser un dispositivo USB, en lugar de aparecer como servidor. Así se puede, por ejemplo, conectar una agenda electrónica corriendo Linux a un PC, y cada lado sabe qué protocolo usar. Es un campo nuevo, pero esencial para la aceptación de Linux en dispositivos embebidos.

Dispositivos Inalámbricos

Durante los últimos años, las tecnologías inalámbricas han llegado por fin al público. A menudo da la impresión de que los cables tienen las horas contadas -- salvo quizás el cable de corriente. La aplicación más vistosa está en el uso de redes inalámbricas, seguidas de cerca por dispositivos como PDAs.

Puede establecerse una distinción genérica entre largo alcance (como puede ser AX.25 sobre radio amateur) y corto alcance (normalmente basado en 802.11, aunque hay protocolos más antiguos). El soporte de ambos ha estado presente en Linux desde los primeros tiempos (v1.2), y los subsistemas correspondientes se han actualizado durante el desarrollo de la versión 2.6. El mayor cambio en el corto alcance es la integración de todos los protocolos y tarjetas bajo una interfaz común, como parte del subsistema inalámbrico. Así se resuelven unas cuantas incompatibilidades menores en la forma de tratar a cada dispositivo, y se refuerza el soporte de Linux para el subsistema mediante un conjunto de herramientas en espacio de usuario que funcionan con todos los dispositivos soportados. Aparte de esta estandarización, Linux 2.6 trae varias mejoras generales: capacidad de notificar un cambio de estado (como puede ser estado de roaming en teléfonos móviles), y un cambio en TCP para manejar correctamente los cortes y retrasos momentáneos, tan comunes en las comunicaciones inalámbricas. Debido a la presión de soportar dispositivos inalámbricos bajo Linux 2.4, los cambios ya se han adaptado a este kernel.

En el espacio genérico de dispositivos inalámbricos, hay avances similares. El protocolo de infrarrojos IrDA, así llamado por el grupo Infrared Data Associates, ha visto mejoras en la gestión de energía y su integración en el modelo de drivers del kernel. Los avances reales se han hecho en el campo de los dispositivos Bluetooth. El protocolo inalámbrico Bluetooth está diseñado para comunicaciones de corto alcance y bajo consumo, y no está limitado por la línea de visión como los infrarrojos. El protocolo en sí se ha diseñado para funcionar bajo cualquier condición, y se viene usando en PDAs, teléfonos móviles, impresoras, e incluso equipamiento más exótico, como en partes de automoción. Tiene dos modos de funcionamiento: SCO, "Orientado a Comunicación Síncrona" [Synchronous Connection Oriented], para aplicaciones de audio con pérdida; y L2CAP, o "Protocolo de Adaptación y Enlace Lógico" [Logical Link Control and Adaptation Protocol], para una conexión más robusta con retransmisión. El protocolo L2CAP tiene además otros subprotocolos (como son RFCOMM para redes punto a punto o BNEP para redes tipo Ethernet.) El soporte de Linux para aplicaciones Bluetooth sigue creciendo, y puede esperarse que madure de forma significativa según los dispositivos se vayan generalizando. Vale la pena mencionar que las últimas versiones del kernel 2.4 integran ya soporte Bluetooth limitado.

Soporte a Dispositivos de Bloque

Buses de Almacenamiento

Los buses de almacenamiento dedicado, como son IDE/ATA "Electrónica de Disco Integrada/Tecnología Avanzada de Conexión" [Integrated Drive Electronics/Advanced Technology Attachment] y SCSI, o "Interfaz Reducido de Sistema para Ordenadores" [Small Computer System Interface], también han sido actualizados durante el ciclo 2.6. Los cambios más grandes se centran en el subsistema IDE, reescrito (y vuelto a reescribir) durante el desarrollo del nuevo kernel, resolviendo los problemas de escalabilidad y eliminando otras limitaciones. Por ejemplo, las grabadoras de CD IDE pueden accederse ahora directamente a través del driver IDE, lo que resulta en una implementación mucho más limpia que antes. (Previamente se necesitaba usar también un driver especial de emulación SCSI, resultando en un proceso confuso y a menudo problemático.) Se ha añadido soporte para dispositivos de alta velocidad Serial ATA (S-ATA), con velocidades de transferencia superiores a 150 MB/s. Para SCSI, hay un gran número de mejoras a lo largo y ancho del sistema para ampliar el soporte y la escalabilidad. En sistemas antiguos, Linux soporta ahora dispositivos SCSI-2 multipath con más de 2 LUNs en el mismo dispositivo. (SCSI-2 es la versión anterior del estándar SCSI, desarrollado hacia 1994.) Otro cambio importante es que Linux puede ahora revertir a un modo de prueba de cambio, como Microsoft Windows, para ser compatible con los dispositivos que no siguen la especificacion al pie de la letra. Según se han ido estabilizando estas tecnologías, el soporte de Linux ha seguido el mismo camino.

Aunque no es un bus de almacenamiento propiamente dicho, Linux incluye ahora soporte para acceder la BIOS EDD, o "Dispositivo de Disco Mejorado" [Enhanced Disk Device], directamente en la máquina para ver cómo el servidor ve sus propios dispositivos. La BIOS EDD incluye información sobre todos los buses de almacenamiento disponibles en el sistema y accesibles por la BIOS, incluyendo IDE y SCSI. Además de obtener la configuración y otros datos de los dispositivos, hay varias ventajas adicionales. Por ejemplo, este nuevo interfaz permite que Linux sepa desde qué disco arrancó el sistema, lo cual puede ser útil en sistemas nuevos donde este dato no es tan obvio como podría parecer. Los programas de instalación inteligentes pueden así tenerlo en cuenta para instalar el cargador de arranque de Linux en el disco adecuado, por ejemplo.

Además de lo anterior, hay que resaltar de nuevo que todos los tipos de dispositivos (hardware, inalámbricos, y almacenamiento) han sido integrados en el subsistema de dispositivos de Linux. En algunos casos, los cambios son puramente de apariencia. En otros, hay cambios más importantes (llegando incluso a modificar la lógica de detección de dispositivos).

Sistemas de archivo

El uso más visible de dispositivo de bloque en un sistema Linux (y de hecho en cualquier sistema) es la creación de un sistema de archivos, y el soporte de sistemas de archivo en Linux ha mejorado bastante desde la versión 2.4 en varios sentidos. Destacamos entre ellos el soporte de atributos extendidos y de controles de acceso tipo POSIX.

Centrémonos de momento en los sistemas de archivo convencionales de Linux: los más asociados con un sistema Linux "puro" son el segundo y tercer sistema de archivos extendido, "ext2" y "ext3". (la siguiente opción más popular es ReiserFS). Ya que son los sistemas que más afectan a los usuarios, han sido los más retocados durante el desarrollo de Linux 2.6. Un cambio fundamental es el soporte de atributos extendidos, o metadatos que pueden insertarse en el sistema de archivos para un fichero cualquiera. Algunos de estos atributos extendidos serán utilizados por el sistema, y estarán disponibles solamente para root. Otros muchos sistemas operativos, como Windows y MacOS, ya utilizan atributos de este tipo en abundancia. Por desgracia, la herencia de sistemas operativos UNIX no trae en general soporte para atributos extendidos, y muchas utilidades de usuario (como 'tar') tendrán que ser actualizadas antes de poder leer y restaurar esta información adicional. El primer uso real del nuevo subsistema de atributos extendidos es implementar listas de control de acceso POSIX, una ampliación de los permisos estándar UNIX que permite un control más preciso. Además de estos cambios para ext3, hay otros menos importantes: el tiempo de ejecución del diario [journal] para el sistema de archivo es configurable, por ejemplo para usuarios de portátiles donde se tendría que poner en marcha el disco duro desde un modo de ahorro de energía; las opciones por defecto para montar una unidad pueden almacenarse dentro del propio sistema de archivos (de forma que no hay que especificar el directorio al montar); y se pueden marcar directorios como "indexados" para acelerar las búsquedas de ficheros en su interior.

Además de estos cambios hay un número de mejoras, tanto dentro como fuera del sistema de archivos, para aumentar la compatibilidad con los sistemas operativos dominantes en la plataforma PC. Para empezar, Linux 2.6 incluye soporte para el Gestor Lógico de Discos [Logical Disk Manager] de Windows (también conocido como "Discos Dinámicos"): la nueva tabla de particiones adoptada por Windows 2000 en adelante, que permite redimensionar y crear múltiples particiones. (Aunque, como es lógico, no es de esperar que los sistemas Linux lo utilicen en sistemas nuevos.) En Linux 2.6 se ha mejorado también (y reescrito) el soporte para el sistema de archivo NTFS, y es posible montar una unidad NTFS en modo lectura/escritura. (La posibilidad de escritura está todavía en fase experimental; es posible que no llegue a estar disponible en la versión final del kernel.) Por último, el soporte en Linux de FAT12 (el sistema de archivo DOS utilizado en sistemas DOS obsoletos y en discos flexibles) ha sido mejorado, para evitar errores presentes en algunos reproductores MP3 que utilizan este formato. Aunque no sea tan usado en general, se ha mejorado la compatibilidad de Linux con OS/2, añadiendo el uso atributos extendidos en el sistema de archivo HPFS. Como en versiones anteriores, las nuevas funcionalidades de Linux 2.6 resaltan la importancia de Linux como "navaja suiza" de los sistemas operativos, al ser compatible con muchos otros.

Por si fuera poco, hay un gran número de cambios dispersos en el soporte de sistemas de archivo en Linux. Se ha reescrito el sistema de cuotas, de acuerdo con el aumento en número de usuarios permitido en el sistema. Pueden marcarse directorios individuales como síncronos, de forma que todos los cambios (como ficheros adicionales) sean atómicos; una característica muy útil en programas de correo y bases de datos, además de permitir una recuperación más robusta en caso de fallo de disco. Se ha añadido compresión transparente (una extensión propia de Linux) al sistema de archivo ISO9660 utilizado en los CD-ROMs. Finalmente, se ha creado un nuevo sistema de archivo basado en memoria ("hugetlbfs"), exclusivamente para el uso de bases de datos de memoria compartida.

Soporte de Entrada / Salida

Todo ordenador tiene un lado "externo": dispositivos de entrada y salida, las piezas que siempre parecen menos importantes de lo que son. A este lado tenemos cosas obvias como ratones y teclados, tarjetas de audio y vídeo, y también otras menos aparentes como joysticks y dispositivos de accesibilidad. Muchos de los subsistemas de Linux han crecido durante el ciclo de desarrollo de la versión 2.6, aunque el soporte de los dispositivos más comunes ya estaba en un estado bastante maduro. En su mayoría, las mejoras de Linux 2.6 en estos dispositivos vienen dadas directamente por el soporte mejorado a buses externos, tales como teclados Bluetooh y similares. Hay sin embargo varias áreas en las que Linux ha progresado bastante.

Dispositivos de Interfaz Externa

Un gran cambio interno en Linux 2.6 es la reescritura de gran parte de la capa de interfaz externa. Esta capa es el centro de la interacción del usuario con un sistema Linux, incluyendo la salida de vídeo, ratón y teclado. En la nueva versión del kernel, esta capa se ha reestructurado para ser mucho más modular que antes. Es ahora posible crear un sistema Linux completamente "ciego", sin salida de vídeo ni nada parecido. El mayor beneficio de esta estructura modular será para los desarrolladores de sistemas embebidos, que fabrican dispositivos sólo accesibles mediante red o puerto serie; pero los usuarios corrientes verán mejoras derivadas de la modularización, ya que el sistema no da por hecho nada acerca de dispositivos o arquitecturas. Por ejemplo, antes se suponía siempre que un PC necesitaba un controlador estándar de teclado AT (i8042); la nueva versión de Linux elimina este requisito, lo que permite eliminar código innecesario de sistemas más modernos.

El manejo en Linux de la salida de vídeo ha sido también modificado, aunque muchos cambios sólo afectan a las configuraciones que utilizan el subsistema interno de framebuffer presente en el kernel. (La mayoría de las máquinas Intel con Linux no usan estas configuraciones, pero esto no es así en otras arquitecturas.) En mi opinión personal, el mejor cambio es que el logotipo de arranque (un pingüino muy chulo, por si acaso no lo has llegado a ver) soporta ahora resoluciones de hasta 24 bits por pixel. Aparte de esto, la consola tiene nuevas características como re-escalado y rotación (para PDAs y similares), y soporte de aceleración en más hardware. Y por último, Linux tiene ahora soporte para interrogar a los monitores VESA (Video Electronics Standard Association o "Asociación Estándar de Vídeo Electrónico") acerca de sus capacidades, aunque XFree86 y muchos instaladores de distribuciones cubren ya este detalle en el espacio de usuario.

Aparte de las mejoras grandes, Linux 2.6 tiene también ciertos cambios más modestos en la interacción con el usuario. Se incluye ahora soporte para pantallas táctiles. Los drivers de ratón y teclado se han actualizado también, y estandarizados para exportar un solo nodo de dispositivo ("/dev/input/mouse0", por ejemplo) sea cual sea el hardware o el protocolo. Se pueden utilizar en la nueva versión ratones exóticos con múltiples ruedas. El mapeo de teclado PC sigue ahora el "estándar" de Windows para teclas extendidas. El soporte de joystick se ha mejorado gracias no sólo a la inclusión de muchos drivers nuevos (incluyendo el gamepad de la X Box), sino también para utilizar características modernas como realimentación por fuerza [force-feedback]. Dejamos para el final el soporte del dispositivo braille TTY Tieman Voyager, que permite a los usuarios ciegos acceder a un sistema Linux. (Un aspecto tan crucial que ya se ha migrado a Linux 2.4.)

Como nota al margen, Linux ha cambiado también el interfaz de peticiones de sistema para permitir el uso de sistemas sin teclado conectado. El interfaz de peticiones de sistema ("sysrq") es un método para que los administradores de sistemas puedan no sólo obtener información de debug en la consola local, sino también forzar un reinicio, remontar los sistemas de archivo como sólo-lectura, y otras brujerías. Ya que Linux 2.6 puede ejecutarse en un sistema totalmente "ciego", es también posible disparar estos eventos desde el sistema de archivo /proc. (Por supuesto que si el sistema se cuelga y necesitas forzarlo a hacer cosas, no te va a servir de mucho.)

Audio y Multimedia

Una de las caracterísiticas nuevas de Linux 2.6 más esperadas por los usuarios de escritorio es la inclusión de ALSA (Advanced Linux Sound Architecture" o "Arquitectura Avanzada de Sonido Linux") en lugar del sistema de sonido antiguo. Conocido como OSS o "Sistema Abierto de Sonido" [Open Sound System], ha estado en Linux desde los primeros tiempos, con todas sus limitaciones de arquitectura. La primera mejora en el nuevo sistema es que se ha diseñado desde el principio para poder ser usado desde distintos hilos, procesos y procesadores, arreglando los problemas de los drivers antiguos que no funcionaban fuera del paradigma "un ordenador, un procesador". Aún mejor, los drivers se han diseñado de forma modular (los usuarios de versiones antiguas de Linux recodarán que la modularidad se metió con calzador en el sistema de sonido en los tiempos del kernel 2.2), de forma que se mejora el soporte de tarjetas de sonido múltiples (incluyendo distintos tipos de tarjeta). Sin importar lo bonito que sea por dentro, el sistema no sería una mejora para los usuarios si no tuviera funcionalidades con gancho; por suerte, hay un montón de éstas. Resaltaremos el soporte de nuevo hardware (incluyendo audio USB y dispositivos MIDI), reproducción y grabación full-duplex, mezcla no entrelazada por hardware, soporte para dispositivos de edición, y varias otras cosas. Tanto si eres un melómano como si sólo quieres reproducir MP3s, te gustará el soporte de sonido mejorado de Linux.

Estos días, los usuarios no se conforman con audio; también quieren soporte de hardware novedoso como webcams, adaptadores de radio y televisión, y cámaras de vídeo digital. En los tres casos, el soporte de Linux ha mejorado bastante para la versión 2.6. Aunque Linux haya permitido usar (más o menos) tarjetas de radio desde hace varias iteraciones, el soporte para tarjetas sintonizadoras de televisión y cámaras de vídeo apareció hace sólo una o dos versiones. Este susbistema, conocido como Video4Linux (V4L), ha sido actualizado a fondo durante la nueva edición del kernel, incluyendo una limpieza de la interfaz y soporte para más funcionalidades de las tarjetas. La nueva API no es compatible con la anterior; las aplicaciones que la usen tendrán que ser reescritas para el nuevo kernel. Y en un nuevo frente, Linux 2.6 incluye por primera vez soporte para hardware de Emisión de Vídeo Digital, o DVB [Digital Video Broadcasting]. Este tipo de hardware, común en los aparatos decodificadores, puede usarse para convertir un servidor Linux en un grabador al estilo Tivo [una grabadora digital programable de vídeo por cable], usando el software adecuado.

< HowTo sobre BBS en GNU/LiNUX (4 comments) | El Maravilloso Mundo de Linux 2.6 (3/3) (6 comments) >
Enlaces Relacionados
· la dirección del original
· 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 (2/3) | 0 comentarios ( temáticos, 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