Kernel 2.6.24.3

26 02 2008

Y más, y más, y más, se encuentra disponible una nueva versión estable del núcleo, en concreto hablamos del Kernel 2.6.24.3. El desarrollo del núcleo del sistema operativo del pingüino sigue imparable y a buen ritmo.

Para conocer todas las novedades que incorpora la lista de cambios del kernel:

* 2.6.24.3.

Para descarga directa de la presente versión:

* kernel 2.6.24.3.

Para saber más sobre él: kernel.org.

fuente: fentlinux

SAlu2 😉 😉 😉





Al final publicado el kernel 2.6.24

26 01 2008

«Ayer se publicó la nueva versión 2.6.24 del kernel de Linux. Linus espera que este kernel sea bueno, ya que la mayoría de los desarrolladores estarán de viaje la próxima semana y es posible que el próximo parcheado se retrase unos días más allá de las dos semanas comunes.»

En la mejoras hay muchas cosas que destacar : Mejoras del gestor de procesos, soporte de Tickless para varias arquitecturas, unificación de las fuentes de x86-32 y x86-64, puntos de montaje «bind» de solo lectura, espacios de nombres para los PIDs y la pila de red (vserver/openvz), límites de memoria «sucia» para cada dispositivo, en lugar de exclusivamente globales como hasta ahora, autorización para USB, soporte SPI/SDIO en la capa MMC, Markers (una de las partes que conforma lo que podríamos llamar el «Dtrace de linux») y reducción de la fragmentación de la memoria, entre otros, así como numerosos drivers de WiFi que usan la nueva stack de wireless mac80211 introducida en el 2.6.22.

via Barrapunto

SAlu2 😉 😉 😉





Lo que traerá el kernel 2.6.24

21 12 2007

 

Este es un resumen de lo que traerá Linux 2.6.24.

  • Mejoras del gestor de procesos: Además de mejoras de rendimiento y de tamaño de código que ponen a CFS al nivel del antiguo gestor de procesos (e incluso un poco mejor), en 2.6.24 se podrá configurar cómo particionar el tiempo de CPU entre usuarios o grupos. Hay dos métodos para particionar la cpu: uno que lo particiona por cada usuario, es decir, si un usuario ejecuta un programa con un bucle cerrado y otro usuario ejecuta dos, el primer usuario tendrá un 50% para su programa y el otro el otro 50% para sus dos programas. El otro sistema es completamente configurable: Se pueden crear “grupos de control de recursos”, asignarles unos recursos de cpu, y asignar un PID cualquiera a ese grupo, y el PID heredará las propiedades del grupo automaticamente. Este último sistema está basado en los “task control groups”, que tambien es nuevo y se comentan en el siguiente punto.
  • Task Control Groups, o grupos de control de procesos. Esta es una caracterísitica que sirve para la asignación y control de recursos a grupos de procesos, que es algo que algunos UNIX tienen hace tiempo y que Linux, aunque lleva años pensando el como y tiene mil implementaciones, añade finalmente en esta versión despues de años de discusión. La idea es crear “grupos de control de procesos”, algo que en la práctica consiste crear un directorio en un sistema de archivos virtual especial. Ese directorio contiene por defecto un monton de archivos. Leyendo o escribiendo a esos archivos, uno configura las propiedades del grupo: Ej, el tiempo de CPU, como se explicaba en el punto anterior. Pero tambien se pueden configurar otras cosas, como las CPUs o nodos de memoria en los que quieres que se ejecuten los procesos del grupo. Para añadir procesos a un grupo, se escribe su PID en un archivo del directorio (ignoro si hay alguna manera de crear patrones para añadir procesos automáticamente). De manera que puedes hacer cosas como que unos procesos que a ti te caen bien tengan el doble de tiempo de CPU que un proceso normal, se ejecuten solo en las CPUs 1, 2, 5, 10 y 11, y que su memoria se ubique solamente en el nodo de memoria 1. Esta version solo tiene clientes cgroups de esas cosas, pero es de suponer que en el futuro se añadan más, como prioridad de I/O y de QoS de red, y cosas así.
  • Soporte de Tickless para x86-64, PPC, UML, ARM, MIPS….por cierto, tambien está “cpuidle”, una nueva infraestructura para gestionar el tiempo muerto de la CPU, con una política (opcional) optimizada para NO_HZ. En resumen, que sirve, como titulaba una charla un tipo de Intel, para…How to do nothing…efficiently.
  • Reunificación x86-32 y x86-64: Ya no hay arch/i386 y arch/x86_64, hay arch/x86 (aunque se conservan algunos enlaces simbólicos por compatibilidad). En realidad buena parte del código sigue sin compartirse; se han movido todos los archivos a un mismo directorio añadiendo sufijo “_32.c” y “_64.c”, la compartición de código se va haciendo lentamente.
  • Puntos de montaje “bind” de solo lectura: A día de hoy existe, aunque no se utilize mucho, la opcion “mount –bind”. Bien, pues ahora se pueden hacer monturas –bind de solo lectura.
  • Espacios de nombres para los PIDs y la pila de red: Esto tiene que ver con la virtualización a nivel de sistema operativo, tipo vserver o openvz, las “jails” de los BSDs o los “containers” de solaris. Como tantas otras cosas, esto estaba disponible hace años en forma de vserver/openvz, pero solo ahora forma parte del kernel principal.
  • Límites de memoria “sucia” para cada dispositivo: Aunque parezca raro, hasta el día de hoy Linux mantenía un límite global de la cantidad de memoria que puede estar “sucia” (sin escribir a disco). Esto tiene unos efectos divertidísimos cuando tienes en una máquina dispositivos como ej: un disquete y unos discos ultra rápidos, que “limpian” la memoria a velocidades muy diferentes. Y no cuento nada en el caso de dispositivos de bloques “anidados”, como es el caso de cualquier máquina con LVM/MD. En 2.6.24 los límites son independientes para cada dispositivo y se calculan dinámicamente teniendo en cuenta el ritmo de escritura de cada dispositivo. Esto mejora el rendimiento en muchas configuraciones.
  • Soporte SPI/SDIO en la capa MMC: ¿Sabían ustedes que las mierdas de ranuras donde se meten las tarjetas de memoria MMC en las camaras digitales pueden actuar como bus si al fabricante le da la gana añadir los cables y chips necesarios, y que se les puede conectar tarjetas de red y cosas así? El diablo no dejará nunca de sorprendernos. En cualquier caso, ahora Linux soporta esa tecnología diabólica.
  • Autorización USB: Pues resulta que, como parte de los esfuerzos para soportar USB wireless, ahora la pila USB puede configurarse a través de sysfs para que los dispositivos USB conectados al sistema no esten “autorizados” para funcionar. Esto es muy útil, además de para no permitir a los dispositivos USB wireless que pasen por tu lado conectarse automaticamente, para crear configuraciones “kiosk” en cibers o en “clientes tontos” en los que sea imposible conectar cosas a la torera.
  • Markers: Esta es una de las partes que conforma lo que podríamos llamar “Dtrace de linux”, es decir, systemtap (la otra es kprobes, que ya está; ya solo falta utrace). Un sistema como systemtap puede insertar “probes” en cualquier lado dinámicamente, pero hay puntos del kernel (ej; donde se gestionan los “fallos de página”, para contarlos) que por su importancia se tiende a insertar “probes” muchas veces en ellos: Por eso es más práctico añadir un “probe” estático, que además es más eficiente.
  • Antifragmentación de la memoria: tres años, tres, ha estado un tipo implementando unos parches que reduzcan la fragmentación de la memoria, es decir, que permitan satisfacer grandes asignaciones de memoria contigua despues de que el sistema lleve mucho tiempo siendo utilizado. Y es que se trata de una mejora que afecta a la asignación de memoria al más bajo nivel posible, y ha habido mucha discusión sobre como debía hacerse, y los parches se han rehecho mil veces, incluso ha habido parches implementado más de una alternativa. El caso es que por fin se ha incluido, que mucha falta hace (la fragmentación en Linux sin estos parches es horrible) .
  • Drivers para dispositivos inalámbricos: En Linux se añaden drivers continuamente, pero en esta ocasión se ha añadido una buena cantidad: 8, 2.3 MB de código en C, soportando una amplia variedad de dispositivos: Intel PRO/Wireless 3945ABG/BG, Intel Wireless Wifi Link AGN (4965), rt2400 pci/pcmcia, rt2500 pci/pcmcia, rt61 pci/pcmcia, rt2500 usb, rt73 usb, BCM43xx IEEE 802.11G, prism54….además de esos, se incluyen otros cuantos de red pero no-wireless; Intel(R) 82598 PCI-Express 10GbE, E1000E pci-express, IP1000A….

Lista completa de cambios.

escrito por Diego Calleja aki: http://diegocg.blogspot.com

SAlu2 ;)





Como reaccionar cuando el kernel/linux se te queda congelado?

21 12 2007

Si bien no son muchas las veces en donde el kernel se quede congelado o bloqueado la alternativa que yo uso es la combinación de mantener apretadas las teclas Ctr-Alt-Backspace, pero hubo veces que esto no me funciono.

La Segunda alternativa, y esta si que nunca me fallo es hacer lo siguiente:

Presionamos simultáneamente las teclas “Alt” y la tecla no muy conocida ” Print Screen” (ubicada arriba de la tecla insert generalmente) y sin soltarlas escribimos R E I S U Bkerneltux

Resumen:
ALT + PRINTSCREEN + REISUB

Seguramente cunado bayas haciendo la secuencia arriba descripta no notaras nada, pero ni bien termines de apretar la ultima tecla (la B) el kernel empezara a matar todos los procesos, cerrará todos los puertos, librerías, archivos, etc, y apagara por completo el ordenador, algo mucho mejor que presionar de una el botón reset o el de apagado.

Luego volvemos a prender la PC y continuamos trabajando.

de http://blackflash.com.ar/

SAlu2 😉





¿Que novedades traerá el kernel 2.6.23?

21 12 2007

He aquí un resumen de la lista de cambios de Linux 2.6.23, que no ha salido aun pero hace mucho que cerró la fase de introducción de cambios.

* El gestor de procesos CFS: Consiste en el rediseño de los algoritmos encargados de decidir qué proceso se va a ejecutar en cada momento (ver detalles en la lista de cambios). La cuestión es que tenemos un gestor de procesos infinitamente más sólido, que da una sensación de respuesta mucho mejor en escritorios. Es, francamente, una maravilla.

* Rediseño del sistema de read-ahead por un apodado «On demand read-ahead». Es un sistema mucho más simple que al anterior, que conserva el mismo rendimiento en tareas típicas, mejoras el benchmark MySQL sysbench/OLTP un 8%, y mejora los casos de readahead thrashing (casos en los que se hace readhead y, debido a la falta de memoria, la gestión de memoria decide descartarlas antes de que sean necesitadas) un 300%. Ademas, es una infraestrutura muy flexible que permitirá ir añadiendo más mejoras fácilmente en las próximas versiones

* fallocate(): fallocate() es una llamada al sistema cuya funcionalidad es requerida por POSIX (y actualmente simulada por la glibc, aunque a partir de ahora la glibc utilizará fallocate) cuyo objetivo es preasignar espacio a los archivos. Es decir, que los sistemas de archivos que implementen esta funcionalidad asignarán a un archivo el espacio que se les pida con fallocate(), aunque no utilize ni un solo byte. Esto es útil para dos cosas: Primero, que un programa pueda reservarse un espacio y estar completamente seguro de que va a disponer siempre de él, aunque se acabe el espacio en el sistema de archivos (algo muy lógico por ejemplo en un programa de tiempo real). Y segundo, como el espacio se reserva de una sola vez y de manera contigua, reduce la fragmentación

* Virtualización: lguest: lguest es un hypervisor basado en paravirt_ops que permite arrancar kernels linux virtualizados. Es decir, no necesita soporte de virtualización por hardware. El autor lo considera un hypervisor de ejemplo: consta de 5.000 líneas y es muy simple, no tiene tanto rendimiento como pudiera; el autor anima a la gente a forkearlo para crear una versión mejorada

* Virtualización: Xen: Una parte de Xen ha sido incluida, por fin. Pero esto no es el hypervisor, solamente es el código necesario para funcionar como invitado.

* Máxima cantidad de parámetros variable: Como dijo Rob Pike, no tiene sentido que en máquinas con GB de memoria el tamaño máximo de parámetros que puedes pasar a un proceso esté limitado a unos pocos KB, tal como lo está en Linux y todos los UNIX de los que yo he oido hablar. Ese límite se alcanza (incluso en escritorios, a día de hoy) demasiado fácilmente. ¿Quien no ha visto alguna vez un «argument list too long»? Linux 2.6.23 asigna el tamaño máximo reservado para los parámetros dinámicamente, para evitar este problema.

* Tunelación de PPP sobre L2TP. LT2P (RFC 2661) es un reemplazo de PPTP, más información en openl2tp.sf.net

* Carga automática de módulos acpi: a día de hoy los módulos acpi (entre los que se encuentran algunos módulos para portátiles de marcas específicas) no están integrados con el resto de infraestructra de udev&sysfs….en 2.6.23 estos módulos serán cargados automáticamente por udev.

* Framework para implementar drivers simples en espacio de usuario: Que no tienen nada que ver con los microkernels

* Mejoras de XFS y Ext4: XFS tiene un nuevo sistema para evitar la fragmentación cuando varios procesos están escribiendo grandes cantidades de datos, y algunas mejoras de escalabilidad. En Ext4, que es inestable y no debe ser utilizado excepto en pruebas, se rompe el límite de 65.000 y se mejora el soporte de extents.

Esas son las mejoras mas notables. Hay más -filtros para los volcados de memoria, protecciones SELinux, muchos drivers nuevos, implementación interna de sendfile() basada en splice, mejoras de splice- pero no son tan relevantes

de http://morfeox69.blogcindario.com

SAlu2 😉





¿Qué es el kernel?

21 12 2007

El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.

Las funciones más importantes del mismo, aunque no las únicas, son:

  • Administración de la memoria para todos los programas y procesos en ejecución.
  • Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.
  • Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.

Hasta que empezó el desarrollo de la serie 2.6 del núcleo, existieron dos tipos de versiones del núcleo:

  • Versión de produccion: La version de produccion, era la version estable hasta el momento. Esta version era el resultado final de las versiones de desarrollo o experimentales.Cuando el equipo de desarrollo del núcleo experimental, decidia que tenia un núclo estable y con la suficiente calidad, se lanzaba una nueva versión de producción ó estable. Esta versión era la que se debia utilizar para un uso normal del sistema, ya que eran las versiones consideradas más estables y libres de fallos en el momento de su lanzamiento.
  • Versión de desarrollo: Esta versión era experimental y era la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas características, correcciones, etc. Estos núcleos solian ser inestables y no se debian usar sin saber lo que se hacia.

Como interpretar los numeros de las versiones de las series por debajo de la 2.6:

  • Las versiones del núcleo se numeraban con 3 numeros, de la siguiente forma: AA.BB.CCAA: Indicaba la serie/versión principal del núcleo. Solo han existido la 1 y 2. Este número cambiaba cuando la manera de funcionamiento del kernel habia sufrido un cambio muy importante.
    BB
    : Indicaba si la versión era de desarrollo ó de producción. Un número impar, significaba que era de desarrollo, uno par, que era de producción.
    CC: Indicaba nuevas revisiones dentro de una versión, en las que lo único que se habia modificado eran fallos de programación.
  • Unos ejemplos nos ayudaran a entenderlo mejor:ej1: versión del núcleo 2.4.0: Núcleo de la serie 2 (AA=2), versión de producción 4 (BB=4 par), primera versión de la serie 2.4 (CC=0)
    ej2
    : versión del núcleo 2.4.1: Núcleo de la serie 2, versión 4, en el que se han corregido errores de programación presentes en la version 2.4.0 (CC=1)
    ej3
    : versión del núcleo 2.5.0: versión 0 del núcleo de desarrollo 2.5.

Con la serie 2.6 del núcleo, el sistema de numeración asi como el modelo de desarrollo han cambiado. Las versiones han pasado a numerarse con 4 digitos y no existen versiones de produccion y desarrollo.

 

 

  • Las versiones del núcleo se numeran hoy en dia con 4 digitos, de la siguiente forma: AA.BB.CC.DD.AA: Indica la serie/versión principal del núcleo.
    BB: Indica la revision principal del núcleo. Numeros pares e impares no tienen ningun significado hoy en dia.
    CC: Indica nuevas revisiones menores del núcleo. Cambia cuando nuevas caracteristicas y drivers som soportados.
    DD: Este digito cambia cuando se corrigen fallos de programación o fallos de seguridad dentro de una revisión.

 

Hoy en dia se suele usar el nucleo distribuido con la distribucion que el usuario utiliza. Son las distribuciones las encargadas de distribuir núcleos estables a sus ausuarios y estos nucleos se basan en el núcleo («vanilla») distribuido por Linux Torvalds y el equipo de programadores del núcleo.

 

 

 

 

Dónde conseguir el núcleo

El núcleo denominado «vanilla» (sin alteraciones y suministrado por Linux Torvalds) se puede bajar de un gran número de servidores en internet pero el sitio oficial es http://www.kernel.org/. En este enlace tienes la lista internacional oficial de servidores espejos, de donde es posible bajarse cualquier versión del núcleo (última y antigüas). A continuacion teneis una tabla resumen con las ultimas versiones del kernel:

Ultima version estable del kernel: 2.6.23.1
Ultima version alpha de la serie 2.6: 2.6.24-rc1
Ultima version estable de la serie 2.4: 2.4.35.3
Ultima version alpha de la serie 2.4: 2.4.36-pre1
Ultima version estable de la serie 2.2: 2.2.26
Ultima version alpha de la serie 2.2: 2.2.27-rc2

Cada distribución distribuye sus nucleos por los canales de actualización habituales para cada una de ellas.

Configuración e instalación de un nuevo núcleo

Este es uno de los temas que asustan a los nuevos usuarios de Linux. Lo primero, deciros que no hay razón para asustarse, la configuración e instalación de un nuevo núcleo en nuestro sistema es mas fácil de lo suena. Lo segundo, es que podeis tener un sistema estable, actualizado y que funcione sin problemas durante meses sin tener que compilar un solo núcleo, siempre y cuando utiliceis los núcleos distribuidos con vuestra distribución.

Es muy recomendable el utilizar los núcleos distribuidos por la distribución que utiliceis. Estos núcleos tienen muy buena calidad y son muy completos y con esto os evitais el trabajo de configurar, compilar y mantener nuevas versiones del núcleo. Si sois de los que os gustan experimentar y aprender nuevas cosas, adelante, nadie os impide bajaros el último núcleo y experimentar con el, esto era mucho más común hace unos años y una tarea casi imprescindible en muchos casos.

Para los interesados en el tema existen dos documentos muy buenos que podeis utilizar para aprender a como compilar un núcleo, FAQ/Kernel compilation y el Kernel Rebuild Guide

Consejos

  • Pregunta: Necesito actualizar el núcleo que utilizo, cada vez que una nueva versión aparece?Respuesta: No. La explicacion es la siguiente:Cuando un nuevo núcleo aparece, puede ser por las siguientes causas:
    • Nuevas características se han añadido.
    • Fallos de programación se han corregido
    • Fallos de seguridad se han corregido.
    • Nuevo hardware es soportado.

    Si las características que se han añadido, no las vamos a utilizar, es evidente que no necesitamos actualizar. Si los fallos de programacion que se han corregido, afectan a características/drivers que no utilizamos, no necesitamos actualizar. Si no utilizamos el nuevo hardware soportado, tampoco necesitamos actualizar.

    De todas maneras es recomendable, actualizar de vez en cuando, sobre todo cuando se corrigen fallos de seguridad o cuando los cambios en el nuevo núcleo afectan a caracteristicas/funciones/hardware que utilicemos.

  • Pregunta: Soy nuevo en Linux y acabo de instalar una distribucion, como compilo un nuevo núcleo?Respuesta: Te aconsejo que esperes un poco. La distribución que acabas de instalar (si es de las últimas) viene con un kernel de los «últimos», totalmente funcional y que te sirve sin problemas.Utiliza el sistema un tiempo, familiarizate con el nuevo sistema que acabas de instalar, y cuando comprendas un poco mas como funcionan las cosas, compila el núcleo si te apetece y sabes que estas haciendo. Un buen punto de partida para encontrar informacion sobre el núcleo, lo tienes en estas páginas.

Enlaces sobre el kernel

03-kernelpio.giffuente: linux-es.org

SAlu2 😉





Lo que traerá el kernel 2.6.24

5 12 2007

escrito por Diego Calleja aki: http://diegocg.blogspot.com

Este es un resumen de lo que traerá Linux 2.6.24.

  • Mejoras del gestor de procesos: Además de mejoras de rendimiento y de tamaño de código que ponen a CFS al nivel del antiguo gestor de procesos (e incluso un poco mejor), en 2.6.24 se podrá configurar cómo particionar el tiempo de CPU entre usuarios o grupos. Hay dos métodos para particionar la cpu: uno que lo particiona por cada usuario, es decir, si un usuario ejecuta un programa con un bucle cerrado y otro usuario ejecuta dos, el primer usuario tendrá un 50% para su programa y el otro el otro 50% para sus dos programas. El otro sistema es completamente configurable: Se pueden crear «grupos de control de recursos», asignarles unos recursos de cpu, y asignar un PID cualquiera a ese grupo, y el PID heredará las propiedades del grupo automaticamente. Este último sistema está basado en los «task control groups», que tambien es nuevo y se comentan en el siguiente punto.
  • Task Control Groups, o grupos de control de procesos. Esta es una caracterísitica que sirve para la asignación y control de recursos a grupos de procesos, que es algo que algunos UNIX tienen hace tiempo y que Linux, aunque lleva años pensando el como y tiene mil implementaciones, añade finalmente en esta versión despues de años de discusión. La idea es crear «grupos de control de procesos», algo que en la práctica consiste crear un directorio en un sistema de archivos virtual especial. Ese directorio contiene por defecto un monton de archivos. Leyendo o escribiendo a esos archivos, uno configura las propiedades del grupo: Ej, el tiempo de CPU, como se explicaba en el punto anterior. Pero tambien se pueden configurar otras cosas, como las CPUs o nodos de memoria en los que quieres que se ejecuten los procesos del grupo. Para añadir procesos a un grupo, se escribe su PID en un archivo del directorio (ignoro si hay alguna manera de crear patrones para añadir procesos automáticamente). De manera que puedes hacer cosas como que unos procesos que a ti te caen bien tengan el doble de tiempo de CPU que un proceso normal, se ejecuten solo en las CPUs 1, 2, 5, 10 y 11, y que su memoria se ubique solamente en el nodo de memoria 1. Esta version solo tiene clientes cgroups de esas cosas, pero es de suponer que en el futuro se añadan más, como prioridad de I/O y de QoS de red, y cosas así.
  • Soporte de Tickless para x86-64, PPC, UML, ARM, MIPS….por cierto, tambien está «cpuidle», una nueva infraestructura para gestionar el tiempo muerto de la CPU, con una política (opcional) optimizada para NO_HZ. En resumen, que sirve, como titulaba una charla un tipo de Intel, para…How to do nothing…efficiently.
  • Reunificación x86-32 y x86-64: Ya no hay arch/i386 y arch/x86_64, hay arch/x86 (aunque se conservan algunos enlaces simbólicos por compatibilidad). En realidad buena parte del código sigue sin compartirse; se han movido todos los archivos a un mismo directorio añadiendo sufijo «_32.c» y «_64.c», la compartición de código se va haciendo lentamente.
  • Puntos de montaje «bind» de solo lectura: A día de hoy existe, aunque no se utilize mucho, la opcion «mount –bind». Bien, pues ahora se pueden hacer monturas –bind de solo lectura.
  • Espacios de nombres para los PIDs y la pila de red: Esto tiene que ver con la virtualización a nivel de sistema operativo, tipo vserver o openvz, las «jails» de los BSDs o los «containers» de solaris. Como tantas otras cosas, esto estaba disponible hace años en forma de vserver/openvz, pero solo ahora forma parte del kernel principal.
  • Límites de memoria «sucia» para cada dispositivo: Aunque parezca raro, hasta el día de hoy Linux mantenía un límite global de la cantidad de memoria que puede estar «sucia» (sin escribir a disco). Esto tiene unos efectos divertidísimos cuando tienes en una máquina dispositivos como ej: un disquete y unos discos ultra rápidos, que «limpian» la memoria a velocidades muy diferentes. Y no cuento nada en el caso de dispositivos de bloques «anidados», como es el caso de cualquier máquina con LVM/MD. En 2.6.24 los límites son independientes para cada dispositivo y se calculan dinámicamente teniendo en cuenta el ritmo de escritura de cada dispositivo. Esto mejora el rendimiento en muchas configuraciones.
  • Soporte SPI/SDIO en la capa MMC: ¿Sabían ustedes que las mierdas de ranuras donde se meten las tarjetas de memoria MMC en las camaras digitales pueden actuar como bus si al fabricante le da la gana añadir los cables y chips necesarios, y que se les puede conectar tarjetas de red y cosas así? El diablo no dejará nunca de sorprendernos. En cualquier caso, ahora Linux soporta esa tecnología diabólica.
  • Autorización USB: Pues resulta que, como parte de los esfuerzos para soportar USB wireless, ahora la pila USB puede configurarse a través de sysfs para que los dispositivos USB conectados al sistema no esten «autorizados» para funcionar. Esto es muy útil, además de para no permitir a los dispositivos USB wireless que pasen por tu lado conectarse automaticamente, para crear configuraciones «kiosk» en cibers o en «clientes tontos» en los que sea imposible conectar cosas a la torera.
  • Markers: Esta es una de las partes que conforma lo que podríamos llamar «Dtrace de linux», es decir, systemtap (la otra es kprobes, que ya está; ya solo falta utrace). Un sistema como systemtap puede insertar «probes» en cualquier lado dinámicamente, pero hay puntos del kernel (ej; donde se gestionan los «fallos de página», para contarlos) que por su importancia se tiende a insertar «probes» muchas veces en ellos: Por eso es más práctico añadir un «probe» estático, que además es más eficiente.
  • Antifragmentación de la memoria: tres años, tres, ha estado un tipo implementando unos parches que reduzcan la fragmentación de la memoria, es decir, que permitan satisfacer grandes asignaciones de memoria contigua despues de que el sistema lleve mucho tiempo siendo utilizado. Y es que se trata de una mejora que afecta a la asignación de memoria al más bajo nivel posible, y ha habido mucha discusión sobre como debía hacerse, y los parches se han rehecho mil veces, incluso ha habido parches implementado más de una alternativa. El caso es que por fin se ha incluido, que mucha falta hace (la fragmentación en Linux sin estos parches es horrible) .
  • Drivers para dispositivos inalámbricos: En Linux se añaden drivers continuamente, pero en esta ocasión se ha añadido una buena cantidad: 8, 2.3 MB de código en C, soportando una amplia variedad de dispositivos: Intel PRO/Wireless 3945ABG/BG, Intel Wireless Wifi Link AGN (4965), rt2400 pci/pcmcia, rt2500 pci/pcmcia, rt61 pci/pcmcia, rt2500 usb, rt73 usb, BCM43xx IEEE 802.11G, prism54….además de esos, se incluyen otros cuantos de red pero no-wireless; Intel(R) 82598 PCI-Express 10GbE, E1000E pci-express, IP1000A….

Lista completa de cambios.

SAlu2 😉





Como reaccionar cuando el kernel/linux se te queda congelado?

30 11 2007

Si bien no son muchas las veces en donde el kernel se quede congelado o bloqueado la alternativa que yo uso es la combinación de mantener apretadas las teclas Ctr-Alt-Backspace, pero hubo veces que esto no me funciono.

La Segunda alternativa, y esta si que nunca me fallo es hacer lo siguiente:

Presionamos simultáneamente las teclas “Alt” y la tecla no muy conocida ” Print Screen” (ubicada arriba de la tecla insert generalmente) y sin soltarlas escribimos R E I S U Bkerneltux

Resumen:
ALT + PRINTSCREEN + REISUB

Seguramente cunado bayas haciendo la secuencia arriba descripta no notaras nada, pero ni bien termines de apretar la ultima tecla (la B) el kernel empezara a matar todos los procesos, cerrará todos los puertos, librerías, archivos, etc, y apagara por completo el ordenador, algo mucho mejor que presionar de una el botón reset o el de apagado.

Luego volvemos a prender la PC y continuamos trabajando.

de http://blackflash.com.ar/

SAlu2 😉





¿Que novedades traerá el kernel 2.6.23?

23 11 2007

He aquí un resumen de la lista de cambios de Linux 2.6.23, que no ha salido aun pero hace mucho que cerró la fase de introducción de cambios.

* El gestor de procesos CFS: Consiste en el rediseño de los algoritmos encargados de decidir qué proceso se va a ejecutar en cada momento (ver detalles en la lista de cambios). La cuestión es que tenemos un gestor de procesos infinitamente más sólido, que da una sensación de respuesta mucho mejor en escritorios. Es, francamente, una maravilla.

* Rediseño del sistema de read-ahead por un apodado «On demand read-ahead». Es un sistema mucho más simple que al anterior, que conserva el mismo rendimiento en tareas típicas, mejoras el benchmark MySQL sysbench/OLTP un 8%, y mejora los casos de readahead thrashing (casos en los que se hace readhead y, debido a la falta de memoria, la gestión de memoria decide descartarlas antes de que sean necesitadas) un 300%. Ademas, es una infraestrutura muy flexible que permitirá ir añadiendo más mejoras fácilmente en las próximas versiones

* fallocate(): fallocate() es una llamada al sistema cuya funcionalidad es requerida por POSIX (y actualmente simulada por la glibc, aunque a partir de ahora la glibc utilizará fallocate) cuyo objetivo es preasignar espacio a los archivos. Es decir, que los sistemas de archivos que implementen esta funcionalidad asignarán a un archivo el espacio que se les pida con fallocate(), aunque no utilize ni un solo byte. Esto es útil para dos cosas: Primero, que un programa pueda reservarse un espacio y estar completamente seguro de que va a disponer siempre de él, aunque se acabe el espacio en el sistema de archivos (algo muy lógico por ejemplo en un programa de tiempo real). Y segundo, como el espacio se reserva de una sola vez y de manera contigua, reduce la fragmentación

* Virtualización: lguest: lguest es un hypervisor basado en paravirt_ops que permite arrancar kernels linux virtualizados. Es decir, no necesita soporte de virtualización por hardware. El autor lo considera un hypervisor de ejemplo: consta de 5.000 líneas y es muy simple, no tiene tanto rendimiento como pudiera; el autor anima a la gente a forkearlo para crear una versión mejorada

* Virtualización: Xen: Una parte de Xen ha sido incluida, por fin. Pero esto no es el hypervisor, solamente es el código necesario para funcionar como invitado.

* Máxima cantidad de parámetros variable: Como dijo Rob Pike, no tiene sentido que en máquinas con GB de memoria el tamaño máximo de parámetros que puedes pasar a un proceso esté limitado a unos pocos KB, tal como lo está en Linux y todos los UNIX de los que yo he oido hablar. Ese límite se alcanza (incluso en escritorios, a día de hoy) demasiado fácilmente. ¿Quien no ha visto alguna vez un «argument list too long»? Linux 2.6.23 asigna el tamaño máximo reservado para los parámetros dinámicamente, para evitar este problema.

* Tunelación de PPP sobre L2TP. LT2P (RFC 2661) es un reemplazo de PPTP, más información en openl2tp.sf.net

* Carga automática de módulos acpi: a día de hoy los módulos acpi (entre los que se encuentran algunos módulos para portátiles de marcas específicas) no están integrados con el resto de infraestructra de udev&sysfs….en 2.6.23 estos módulos serán cargados automáticamente por udev.

* Framework para implementar drivers simples en espacio de usuario: Que no tienen nada que ver con los microkernels

* Mejoras de XFS y Ext4: XFS tiene un nuevo sistema para evitar la fragmentación cuando varios procesos están escribiendo grandes cantidades de datos, y algunas mejoras de escalabilidad. En Ext4, que es inestable y no debe ser utilizado excepto en pruebas, se rompe el límite de 65.000 y se mejora el soporte de extents.

Esas son las mejoras mas notables. Hay más -filtros para los volcados de memoria, protecciones SELinux, muchos drivers nuevos, implementación interna de sendfile() basada en splice, mejoras de splice- pero no son tan relevantes

de http://morfeox69.blogcindario.com

SAlu2 😉





Qué es el kernel?

1 11 2007

El kernel ó núcleo de linux se puede definir como el corazón de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.

Las funciones más importantes del mismo, aunque no las únicas, son:

  • Administración de la memoria para todos los programas y procesos en ejecución.
  • Administración del tiempo de procesador que los programas y procesos en ejecucion utilizan.
  • Es el encargado de que podamos acceder a los periféricos/elementos de nuestro ordenador de una manera cómoda.

Hasta que empezó el desarrollo de la serie 2.6 del núcleo, existieron dos tipos de versiones del núcleo:

  • Versión de produccion: La version de produccion, era la version estable hasta el momento. Esta version era el resultado final de las versiones de desarrollo o experimentales.Cuando el equipo de desarrollo del núcleo experimental, decidia que tenia un núclo estable y con la suficiente calidad, se lanzaba una nueva versión de producción ó estable. Esta versión era la que se debia utilizar para un uso normal del sistema, ya que eran las versiones consideradas más estables y libres de fallos en el momento de su lanzamiento.
  • Versión de desarrollo: Esta versión era experimental y era la que utilizaban los desarrolladores para programar, comprobar y verificar nuevas características, correcciones, etc. Estos núcleos solian ser inestables y no se debian usar sin saber lo que se hacia.

Como interpretar los numeros de las versiones de las series por debajo de la 2.6:

  • Las versiones del núcleo se numeraban con 3 numeros, de la siguiente forma: AA.BB.CCAA: Indicaba la serie/versión principal del núcleo. Solo han existido la 1 y 2. Este número cambiaba cuando la manera de funcionamiento del kernel habia sufrido un cambio muy importante.
    BB
    : Indicaba si la versión era de desarrollo ó de producción. Un número impar, significaba que era de desarrollo, uno par, que era de producción.
    CC: Indicaba nuevas revisiones dentro de una versión, en las que lo único que se habia modificado eran fallos de programación.
  • Unos ejemplos nos ayudaran a entenderlo mejor:ej1: versión del núcleo 2.4.0: Núcleo de la serie 2 (AA=2), versión de producción 4 (BB=4 par), primera versión de la serie 2.4 (CC=0)
    ej2
    : versión del núcleo 2.4.1: Núcleo de la serie 2, versión 4, en el que se han corregido errores de programación presentes en la version 2.4.0 (CC=1)
    ej3
    : versión del núcleo 2.5.0: versión 0 del núcleo de desarrollo 2.5.

Con la serie 2.6 del núcleo, el sistema de numeración asi como el modelo de desarrollo han cambiado. Las versiones han pasado a numerarse con 4 digitos y no existen versiones de produccion y desarrollo.

 

 

  • Las versiones del núcleo se numeran hoy en dia con 4 digitos, de la siguiente forma: AA.BB.CC.DD.AA: Indica la serie/versión principal del núcleo.
    BB: Indica la revision principal del núcleo. Numeros pares e impares no tienen ningun significado hoy en dia.
    CC: Indica nuevas revisiones menores del núcleo. Cambia cuando nuevas caracteristicas y drivers som soportados.
    DD: Este digito cambia cuando se corrigen fallos de programación o fallos de seguridad dentro de una revisión.

 

Hoy en dia se suele usar el nucleo distribuido con la distribucion que el usuario utiliza. Son las distribuciones las encargadas de distribuir núcleos estables a sus ausuarios y estos nucleos se basan en el núcleo («vanilla») distribuido por Linux Torvalds y el equipo de programadores del núcleo.

 

 

 

 

Dónde conseguir el núcleo

El núcleo denominado «vanilla» (sin alteraciones y suministrado por Linux Torvalds) se puede bajar de un gran número de servidores en internet pero el sitio oficial es http://www.kernel.org/. En este enlace tienes la lista internacional oficial de servidores espejos, de donde es posible bajarse cualquier versión del núcleo (última y antigüas). A continuacion teneis una tabla resumen con las ultimas versiones del kernel:

Ultima version estable del kernel: 2.6.23.1
Ultima version alpha de la serie 2.6: 2.6.24-rc1
Ultima version estable de la serie 2.4: 2.4.35.3
Ultima version alpha de la serie 2.4: 2.4.36-pre1
Ultima version estable de la serie 2.2: 2.2.26
Ultima version alpha de la serie 2.2: 2.2.27-rc2

Cada distribución distribuye sus nucleos por los canales de actualización habituales para cada una de ellas.

Configuración e instalación de un nuevo núcleo

Este es uno de los temas que asustan a los nuevos usuarios de Linux. Lo primero, deciros que no hay razón para asustarse, la configuración e instalación de un nuevo núcleo en nuestro sistema es mas fácil de lo suena. Lo segundo, es que podeis tener un sistema estable, actualizado y que funcione sin problemas durante meses sin tener que compilar un solo núcleo, siempre y cuando utiliceis los núcleos distribuidos con vuestra distribución.

Es muy recomendable el utilizar los núcleos distribuidos por la distribución que utiliceis. Estos núcleos tienen muy buena calidad y son muy completos y con esto os evitais el trabajo de configurar, compilar y mantener nuevas versiones del núcleo. Si sois de los que os gustan experimentar y aprender nuevas cosas, adelante, nadie os impide bajaros el último núcleo y experimentar con el, esto era mucho más común hace unos años y una tarea casi imprescindible en muchos casos.

Para los interesados en el tema existen dos documentos muy buenos que podeis utilizar para aprender a como compilar un núcleo, FAQ/Kernel compilation y el Kernel Rebuild Guide

Consejos

  • Pregunta: Necesito actualizar el núcleo que utilizo, cada vez que una nueva versión aparece?Respuesta: No. La explicacion es la siguiente:Cuando un nuevo núcleo aparece, puede ser por las siguientes causas:
    • Nuevas características se han añadido.
    • Fallos de programación se han corregido
    • Fallos de seguridad se han corregido.
    • Nuevo hardware es soportado.

    Si las características que se han añadido, no las vamos a utilizar, es evidente que no necesitamos actualizar. Si los fallos de programacion que se han corregido, afectan a características/drivers que no utilizamos, no necesitamos actualizar. Si no utilizamos el nuevo hardware soportado, tampoco necesitamos actualizar.

    De todas maneras es recomendable, actualizar de vez en cuando, sobre todo cuando se corrigen fallos de seguridad o cuando los cambios en el nuevo núcleo afectan a caracteristicas/funciones/hardware que utilicemos.

  • Pregunta: Soy nuevo en Linux y acabo de instalar una distribucion, como compilo un nuevo núcleo?Respuesta: Te aconsejo que esperes un poco. La distribución que acabas de instalar (si es de las últimas) viene con un kernel de los «últimos», totalmente funcional y que te sirve sin problemas.Utiliza el sistema un tiempo, familiarizate con el nuevo sistema que acabas de instalar, y cuando comprendas un poco mas como funcionan las cosas, compila el núcleo si te apetece y sabes que estas haciendo. Un buen punto de partida para encontrar informacion sobre el núcleo, lo tienes en estas páginas.

Enlaces sobre el kernel

03-kernelpio.giffuente: linux-es.org

SAlu2 😉





El kernel 2.6.23 lanzado

19 10 2007

Despues de 3 meses de trabajo Linus Torvalds nos a publicado el kernel 2.6.23

caracteristicas:

* El nuevo y brillante CFS.
* Un simple mecanismo read-ahead .
* El hypervisor de paravirtualización “Linux-on-Linux” Iguest.
* Soporte de huespedes de XEN.
* Soporte de huespedes smp de KVM.
* Un tamaño de argumentos de los procesos variable.
* SLUB es ahora el asignador slab predeterminado.
* Protección de mano de SELinux.
* Mejoras en XFS y ext4.
* Soporte de PPP sobre L2TP.
* El algoritmo de reclamo “lumpy”.
* El flag O_CLOEXEC descriptor de ficheros.
* Un nuevo syscall fallocate().
* Estadísticas cerradas.
* Varios drivers nuevos.

descargarlo aki

SAlu2 ;););)