El Kernel

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • Cadarlion
    Tecnohippie
    • 09-03-2004
    • 12908

    #1

    El Kernel

    Que es el kernel?


    El kernel o nucleo de linux se podria definir como el corazon de este sistema operativo. Es el encargado de que el software y el hardware de tu ordenador puedan trabajar juntos.



    Las funciones mas importantes del mismo, aunque no las unicas, son:


    • Administracion de la memoria, para todos los programas en ejecucion.
    • Administracion del tiempo de procesador, que estos programas en ejecucion utilizan.
    • Es el encargado de que podamos acceder a los perifericos/elementos de nuestro ordenador de una manera comoda.
    Existen dos versiones del Linux kernel:

    • Version de produccion: La version de produccion, es la version estable hasta el momento. Esta version es el resultado final de las versiones de desarrollo o experimentales. Cuando el equipo de desarrollo del kernel experimental, decide que ha conseguido un kernel estable y con la suficiente calidad, se lanza una nueva version de producion o estable. Esta version es la que se deberia utilizar para un uso normal del sistema, ya que son las versiones consideradas mas estables y libres de fallos en el momento de su lanzamiento.
    • Version de desarrollo: Esta version es experimental y es la que utilizan los desarrolladores para programar, comprobar y verificar nuevas caracteristicas, correcciones, etc. Estos nucleos suelen ser inestables y no se deberian usar, a no ser que sepas lo que haces.
    Como interpretar los numeros de las versiones:

    • Las versiones del kernel se numeran con 3 numeros, de la siguiente forma: XX.YY.ZZ XX: Indica la serie principal del kernel. Hasta el momento solo existen la 1 y 2. Este numero cambia cuando la manera de funcionamiento del kernel ha sufrido un cambio muy importante.



      YY: Indica si la version es de desarrollo o de produccion. Un numero impar, significa que es de desarrollo, uno par, que es de produccion.



      ZZ: Indica nuevas revisiones dentro de una version, en las que lo unico que se ha modificado, son fallos de programacion/bugs.
    • Unos ejemplos nos ayudaran a entenderlo mejor: ej1: version del kernel 2.4.0: Kernel de la serie 2 (XX=2), version de produccion 4 (YY=4 par), primera version de 2.4 (ZZ=0)



      ej2: version del kernel 2.4.1: Kernel de la serie 2, version 4, en el que se han corregido errores de programacion presentes en la version 2.4.0 (ZZ=1)



      ej3: version del kernel 2.5.0: version 0 del kernel de desarrollo 2.5.
    Donde conseguir el kernel


    El kernel se puede bajar de un gran numero de servidores en internet. En el directorio del kernel en este servidor, podras bajar las ultimas versiones del Kernel, bajadas directamente de http://www.kernel.org/.

    En este enlace tienes la lista internacional oficial de servidores espejos, de donde es posible bajarse cualquier version del kernel (ultima y antiguas).

    Configuracion e instalacion de un nuevo kernel


    Este es uno de los temas que asustan a los nuevos usuarios de Linux. Lo primero deciros que no hay razon para asustarse, la configuracion e instalacion de un nuevo kernel en nuestro sistema es mas facil de lo suena.

    Lo que si hay que hacer es tener claro una serie de cosas antes de ponernos a trabajar, para asi evitar problemas. A continuacion tienes una pequena guia sobre como configurar e instalar un nuevo kernel en tu sistema.

    Has decidido instalar un nuevo kernel en tu sistema, que es lo que tenemos que hacer?
    1. Bajarte la ultima version. De donde? Leete la seccion anterior. NOTA: Si vais a instalar un kernel de las ultimas series de produccion, teneis que tener en cuenta que algunas distribuciones (si son antiguas) pueden no estar preparadas para hacer uso de estas series. Si vuestra distribucion no viene preparada para soportar los ultimos kernels, teneis que actualizar una serie de paquetes/programas antes de instalar el nuevo kernel (mas informacion en la documentacion que acompaña al kernel). o actualizar a una distribucion o version de vuestra distribucion que los soporte.
    2. Tener claro lo que vamos a hacer, leete el documento HOWTO sobre el kernel (Ingles / Castellano)
    3. Tener claro las opciones que tenemos que configurar, para poder utilizar el hardware de nuestro sistema, asi como las caracteristicas que queremos utilizar. Por ejemplo, si no utilizamos un dispositivo SCSI, no tenemos que configurar nada en el apartado SCSI de nuestro kernel. Asi nos ahorramos espacio y tiempo.
    4. Entrar como root: su root
    5. Copiar el archivo que te has bajado al directorio /usr/src/ cp linux-xx.xx.xx.tar.bz2 /usr/src/
    6. Descomprimirlo y desempaquetarlo: tar -xvzpf linux-xx.yy.zz.tar.gz NOTA IMPORTANTE: El archivo linux-xx.yy.zz.tar se desempaquetara en el directorio /usr/src/linux



      Si ya existe un directorio llamado linux en tu sistema, renombralo, p.ej: mv linux linux-old . En algunas distribuciones, linux es un enlace simbolico a linux-xx.yy.zz, borra este enlace simbolico. Es importante que no exista ningun directorio/enlace simbolico llamado linux, antes de desempaquetar la nueva version.
    7. Entrar en /usr/src/linux: cd /usr/src/linux
    8. Configurar el kernel, esto se puede hacer de tres maneras diferentes: make config (modo texto)







      make menuconfig (modo texto con menus)



















      make xconfig (X-windows version)







    9. Os recomiendo el ultimo comando o el segundo, totalmente desaconsejado usar el primero.
    10. Os recomiendo que las opciones que vienen por defecto no las toqueis, si no sabeis lo que haceis. Configurar las opciones que quereis tener en vuestro nuevo kernel. Una vez terminada la configuracion, grabar los cambios y salir del programa de configuracion.
    11. Una vez terminado el proceso de configuracion, tenemos que compilar nuestro nuevo nucleo. Para ello hay que hacer lo siguiente: make dep



      make clean



      make bzImage
    12. Si en el proceso de configuracion, elegimos alguna opcion como modulo, tendremos que compilar/instalar dichos modulos: make modules



      make modules_install







      NOTA: No olvidar ejecutar como root el comando depmod -a la primera vez que arranqueis con vuestro nuevo kernel, para computar las dependencias entre modulos.
    13. Ya tenemos el kernel y los modulos compilados, ahora tenemos que instalarlo. Casi todo el mundo utiliza LILO para arrancar el sistema, por ello explicare como instalarlo utilizando LILO. Todavia estamos en /usr/src/linux ejecutar el comando make install , esto copiara el kernel que acabamos de crear, a el directorio /boot de nuestro sistema, con el nombre vmlinuz., o como un enlace simbolico vmlinuz -> vmlinuz-xx.yy.zz
    14. Ahora tenemos que configurar LILO para que reconozca el nuevo kernel. Tendremos que modificar el fichero /etc/lilo.conf Aqui teneis un ejemplo, del fichero /etc/lilo.conf antes de modificarlo:







      boot=/dev/hda



      prompt



      timeout=50



      image=/boot/vmlinuz-2.0.34



      label=linux



      root=/dev/hda1



      read-only







      Y aqui como quedaria despues de la modificacion para que reconozca nuestro nuevo kernel al arrancar:







      boot=/dev/hda



      prompt



      timeout=50



      image=/boot/vmlinuz



      label=nuevokernel



      root=/dev/hda1



      read-only



      image=/boot/vmlinuz-2.0.34



      label=linux



      root=/dev/hda1



      read-only
    15. Ahora solo tenemos que ejecutar el comando /sbin/lilo y arrancar el sistema de nuevo. Si tuviesemos algun problema con el nuevo kernel, siempre podriamos arrancar con el antiguo escribiendo linux <ENTER> cuando arrancamos y nos sale en pantalla lilo: De esta manera podemos entrar y ver que es lo que ha fallado. NOTA: Recordar que existen multitud de opciones para configurar LILO, y que los ejemplos anteriores, son ejemplos. Puede que vuestro sistema necesite diferentes parametros y opciones. Leeros los documentos HOWTOS sobre el kernel y LILO antes de cambiar nada en vuestro sistema. Al final de esta pagina teneis enlaces a los mismos. Suerte y espero que tengais las cosas un poco mas claras.

    Parches (patches) para el Kernel


    • Que son los parches y para que sirven: Un parche para el kernel no es mas que un fichero, que solamente contiene informacion sobre las lineas de codigo que han cambiado desde la version precedente del nucleo. De esta manera, solamente te tienes que bajar un fichero con los cambios, en vez del nucleo al completo. El ahorro en cantidad de Mb bajados es bastante considerable, sobre todo para aquellos que dependen del modem y no tiene una conexion rapida a internet.







      Algo a tener muy en cuenta si vais a actualizar el nucleo por medio de parches en vez de bajaros el nucleo al completo, es que teneis que ir actualizando de version a version. Para que se entienda un poco mejor, aqui teneis un ejemplo:







      Si teneis el nucleo 2.2.0 y vais a actualizarlo al 2.2.1, os podeis bajar el fichero patch-2.2.1.gz [70Kb] en vez, del nucleo 2.2.1 al completo [12.5Mb]. Pero si teneis el nucleo 2.2.0 y vais a actualizar al 2.2.4, NO os vale bajaros el fichero patch-2.2.4.gz nada mas, tendriais que bajaros el 2.2.1, 2.2.2, 2.2.3 y 2.2.4. Esto es porque los ficheros patch solamente contienen los cambios de version a version.







      Si la diferencia entre la version que teneis y la que quereis instalar, es muy grande (p.ej: del 2.2.0 al 2.2.35), no os merece la pena actualizar por medio de parches, en este caso bajaros la version completa.
    • Que hacer con un fichero patch-XX.YY.ZZ.gz?: Ya te has bajado el fichero patch (se pueden bajar del mismo subdirectorio donde esta la version completa), que necesitas para actualizar el kernel, y ahora que haces?. Ahora, hay que aplicarlo al nucleo que tienes y compilar de nuevo. El procedimiento para actualizar el nucleo por medio de ficheros patch es el siguiente:
      1. Copia el fichero patch-XX.YY.ZZ.gz al directorio /usr/src : cp patch-XX.YY.ZZ.gz /usr/src/
      2. Cambia a este subdirectorio y descomprime el fichero: gunzip patch-XX.YY.ZZ.gz
      3. Aplica el parche: patch -s -p0 < patch-XX.YY.ZZ
      4. La opcion -s hara que solo se impriman mensajes de error. Si no recibes ningun mensaje de error (como deberia de ser ;-)) solamente te queda entrar en /usr/src/linux: cd /usr/src/linux
      5. Y ejecutar make clean, make xconfig, make dep, make bzImage, el resto es igual que en la seccion anterior a partir del punto 12)
    Consejos




    • Pregunta: Necesito actualizar el kernel que utilizo, cada vez que una nueva version aparece? Respuesta: NO. Porque? La explicacion es la siguiente:







      Cuando un nuevo kernel aparece, puede ser por las siguientes causas:
      • Nuevas caracteristicas se han anadido.
      • Fallos de programacion se han corregido
      • Fallos de seguridad se han corregido.
      • Nuevo hardware es soportado.
      Si las caracteristicas que se han anadido, no las vamos a utilizar, es evidente que no necesitamos actualizar.
      Si los fallos de programacion que se han corregido, afectan a caracteristicas/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 kernel afectan a caracteristicas/funciones/hardware que utilicemos.

      El codigo esta ahi, libre y esperando a ser compilado en un nuevo ordenador, cada usuario debe de decidir cuando es hora de una actualizacion.
    • Pregunta: Soy nuevo en Linux y acabo de instalar una distribucion, como actualizo el kernel? Respuesta: Te aconsejo que esperes un poquito. La distribucion que acabas de instalar (si es de las ultimas) viene con un kernel de los "ultimos", 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, actualiza el kernel. Un buen punto de partida para encontrar informacion sobre el kernel, lo tienes en estas paginas.
    Enlaces sobre el kernel





    -------------------------------------------------------------------------
    Esta informacion fue sacada de El rincon de Linux
    Editado por última vez por Cadarlion; 12-01-2005, 10:37 PM.

    Si Hoc Legere Scis Nimium Eruditionis Habes
  • Cadarlion
    Tecnohippie
    • 09-03-2004
    • 12908

    #2
    Aca esta la actualizacion que posteo EstebanTorre, proximamente voy a complementarla con mas datos.

    Originalmente publicado por EstebanTorre
    Cadarlion tendiras que agregar que cuando el kernel es 2.6 en adelante cuando se compila se hace:
    "make && make modules_install"
    nada mas que eso (para compilar, lo de instalacion queda igual), y no se hace mas make modules . Otro detalle mas, no esta la configuracion para grub que ahora esta siendo mas usado que el lilo en algunas distros, es simple de configurar, el grub:

    archivo /boot/grub/grub.conf *aveces la particion boot no se encuentra montada, antes mandate un mount /boot xD


    default 0 --> aca va el numero en la lista de abajo del so que inicia por defecto
    timeout 2 --> Tiempo que espera el grub para que selecciones en segundos
    splashimage=(hd0,5)/grub/splash.xpm.gz --> Aveces aparece aveces no, es para seleccionar la imagen de fondo que queda linda


    title=Gentoo Linux 2.6.10-r6 --> El titulo puede ser cualquiera que elijas
    root (hd0,5) --> Donde recida tu directorio /boot
    kernel /kernel-2.6.10-gentoo-r6 root=/dev/hda8 vga=788 --> aca pone el nombre de la bzImage de tu kernel en root la particion que tengas como "/" y vga es por el framebuffer, si tenes framebuffer pone eso, sino ignoralo

    title=Windows XP--> Dual boot
    rootnoverify (hd0,0)-->Particion de tu windows
    makeactive-->
    chainloader +1-->Estas dos lineas tienen que estar si queres que ande el windows xD

    Explicacion sobre (hdx,y) x es la ubicacion del disco, del 0 a 3 seian primario master primario slave, secundario master y secundario slave.
    y que es la particion bueno es lo mismo que en cualquier cosa de linux solo que en vez de contar desde 1 contamos desde 0.

    Bueno ahora si, creo que no me falto nada xD.

    Si Hoc Legere Scis Nimium Eruditionis Habes

    Comentario

    • Cadarlion
      Tecnohippie
      • 09-03-2004
      • 12908

      #3
      Nuevas vulnerabilidades en las versiones 2.4 y 2.6

      Originalmente publicado por Hispasec
      Se han descubierto diversas vulnerabilidades en los kernel 2.4 y 2.6
      de Linux que puede ser explotado por usuarios maliciosos para acceder
      a información sensible, provocar denegaciones de servicio, realizar
      escaladas de privilegios y, en ultima instancia, comprometer un
      sistema afectado.

      La primera se debe a algunos errores sin especificar en el componente
      que trata el sistema de archivos ISO9660, incluyendo las extensiones
      Rock Ridge y Juliet. Esto puede ser explotado con un sistema de
      archivos especialmente creado a tal efecto para provocar denegaciones
      de servicio o, potencialmente, corromper zonas de memoria y con ello
      ejecutar código arbitrario.

      Otro problema detectado se debe a un error de tratamiento de signos en
      la función 'bluez_sock_create()' cuando se crean sockets bluetooth.
      Esta circunstancia podría ser explotada para conseguir privilegios de
      root en un sistema vulnerable.

      Otro error detectado es una fuga de información en ext2 cuando se
      crean nuevos directorios. Este problema puede explotarse para acceder
      a memoria de kernel.

      Finalmente, se ha detectado un error en load_elf_library que puede ser
      explotado para provocar denegaciones de servicio.

      Se recomienda actualizar a la versión 2.6.11.6 , disponible en la
      siguiente dirección:


      También se han corregido las vulnerabilidades en la versión
      2.4.30-rc2.

      Si Hoc Legere Scis Nimium Eruditionis Habes

      Comentario

      • Teban
        -Behind The Sun-
        • 16-08-2004
        • 11363

        #4
        Capooo! =D

        Ahora mismo estoy viendo esto y me RE sirve de ayuda..

        Gracias!
        _________________
        ________________
        _______________

        Comentario

        • EstebanTorre
          Away
          • 10-10-2004
          • 3038

          #5
          Ext2 ya casi ni se usa, solo aveces en la particion boot que siempre se tiene desmontada si tu instalacion esta hecha de la manera correcta; lo de buetooth si puede ser peligroso si tenes bluetooth, yo no tengo :P. Lo del Iso 9660 es si alguien crea un "CD malicioso" *cuac*, lo de los elf bueh si te bajas un ejecutable para linux de cualquier pagina pueden hacer cosas peores jejeej, sino por ejemplo en mi gentoo todo lo que isntalo esta probado y verificado antes de ser incluido en el portage cosa que me copa. En fin, esto es lo que microsoft llama muchos exploits de linux que ademas, se arreglan todos asinomas casi nunca hay retraso, en vez ellos tubieron hasta un bug que con un jpg te metian virus :S:S:S:S:S:S:S. Yo actualizo por gentoo igual los bugs de gentoo no son los mismos que los de el resto de las distros porque tiene sus solucionadores de bugs aparte ademas de estar al tanto de lo oficial.

          Comentario

          • SinSe
            NOT
            • 04-09-2004
            • 5058

            #6
            GRACIAS!
            Editado por última vez por SinSe; 16-04-2005, 06:05 PM.

            Comentario

            Trabajando...