- Coreboot
-
Coreboot
CoreBoot es un proyecto que se conocía con el nombre de LinuxBIOS, siendo de software libre, respaldado por la Free Software Foundation (FSF),[1] dirigido a reemplazar el firmware no libre de los BIOS propietarios encontrados en la mayoría de los computadores, por un BIOS ligero diseñado para realizar solamente el mínimo de tareas necesarias para cargar y correr un moderno sistema operativo de 32 bits.
Su existencia no se basa en una necesidad tecnológica, sino en una ética, ya que para los miembros de la FSF es importante que todo el software del PC sea libre, y el BIOS ha sido el único que ha quedado olvidado. Los autores esperan que en los próximos años algunos fabricantes estén dispuestos a distrubuirlo en sus máquinas, debido a su carácter gratuito.
El proyecto de LinuxBIOS fue iniciado en el invierno de 1999 en el Advanced Computing Laboratory[2] en Los Alamos National Laboratory,[3] y en 2006 se liberó su primera versión estable, lista para producción. Está licenciado bajo la GNU GPL. Los contribuyentes principales han sido LANL, AMD,[4] coresystems gmbH y Linux Networx, Inc, así como los vendedores de tarjetas madres MSI, Gigabyte y Tyan, ofreciendo el linuxBIOS al lado del BIOS propietario estándar o proporcionando las especificaciones de las interfaces del hardware para algunas de sus recientes tarjetas madre. Sin embargo, Tyan parece haber abandonado el soporte para el LinuxBIOS. Google es patrocinante del proyecto del LinuxBIOS.[5]
Contenido
Información general
La LinuxBIOS fue creada en un principio para arrancar sistemas operativos con núcleo Linux, pero actualmente puede cargar cualquier otro ejecutable stand-alone (independiente) de ELF, como por ejemplo el etherboot, que puede cargar Linux desde un servidor de cargador o de un ADLO que puede cargar Microsoft Windows 2000, OpenBSD. El LinuxBIOS también puede cargar gestores de arranque, como LILO, GRUB u otros firmwares como OpenBIOS, Open Firmware o SmartFirmware, y casi cualquier sistema operativo de cualquier dispositivo soportado, como Myrinet, Quadrics, o interconecciones de cluster SCI. Algunos sistemas operativos requieren funciones heredadas del BIOS (como Windows XP) y no correrán sin una adaptación.
La LinuxBIOS hace cualquier inicialización del hardware que Linux no hace y deja a Linux finalizar la inicialización del hardware.
Una notable característica única del LinuxBIOS es que la versión x86 corre en modo de 32 bits después de ejecutar solamente dieciséis instrucciones (casi todos los otros BIOS de x86 corren exclusivamente en modo de 16 bits). Se ha creado con la intención de que realice su cometido en el mínimo de instrucciones posible. Al trabajar en modo de 32 bits hace que corra muy rápido[cita requerida], su record actual de arranque en frío es de 3 segundos hasta la interface de comando.
Aunque "Linux" está en el nombre, LinuxBIOS puede cargar otros núcleos, o, en lugar de ello, pasar el control a un cargador para arrancar un núcleo o imagen. El LinuxBIOS también puede cargar directamente el núcleo de Plan 9. Todavía está en desarrollo un LinuxBIOS capaz para la versión de grub2.
Desarrollando y depurando el LinuxBIOS
Puesto que el LinuxBIOS debe inicializar desde el simple hardware, debe ser portado hacia todos los chipset de tarjetas madres que soporte. Antes de inicializar la RAM, LinuxBIOS inicializa el puerto serial (direccionando solamente el caché y los registros), de tal manera que pueda enviar texto de depuración a un emulador de terminal conectado. El LinuxBIOS también puede enviar códigos de bytes al puerto 0x80 que son mostrados en una pantalla de dos dígitos hexadecimales de una tarjeta POST conectada. Otra ayuda es el BIOS Savior,, que es una combinación de dos dispositivos de BIOS que se enchufan en el zócalo del BIOS y tienen un interruptor manual para seleccionar entre ellos. Un alternativa más costosa es un programador EPROM/Flash. Hay también emuladores de CPU que, o substituyen al CPU, o se conectan mediante un puerto de JTAG. El código se puede construir o descargarlo a los emuladores del BIOS en lugar de flashearlo en el dispositivo BIOS.
Inicializando la memoria DRAM
El hardware más difícil que inicializa el LinuxBIOS son el controlador de DRAM y la memoria DRAM. En algunos casos, la documentación técnica de cómo hacer esto no está disponible o está protegida por un NDA (acuerdo de confidencialidad), por ello, haciéndolo imposible construir un LinuxBIOS. La disposición de la memoria RAM es particularmente difícil porque hasta que la RAM sea inicializada, no hay RAM disponible para ser usada. La forma de inicializar los controladores de la DRAM sin usar la memoria RAM (por el programa) es utilizar los registros de propósito general del CPU. Para hacer esta dura tarea fácil, fue construido un compilador C, llamado romcc, que usa los registros en vez de la RAM. Usando el romcc, es relativamente fácil hacer los accesos de SMBus a las ROM de SPD de los DIMMs de DRAM, lo que permite que la RAM sea utilizada. Con recientes procesadores x86, el Caché del procesador puede ser usado como RAM hasta que es inicializada la DRAM. El caché del procesador también tiene que ser inicializado en el modo Caché-como-RAM, pero esto necesita menos instrucciones que la inicialización de la DRAM.
Véase también
- OpenBIOS
- OpenBook Project
- LinuxBIOS
- BIOS
- Open Firmware
- Extensible Firmware Interface
- Firmware
Referencias
- ↑ The Free Software Foundation's Campaign for Free BIOS
- ↑ Plantilla:Citation needed
- ↑ LinuxBIOS FAQ: Who is working on LinuxBIOS?
- ↑ Plantilla:Citation needed
- ↑ Google Sponsors the LinuxBIOS project
Enlaces externos
- Página oficial de LinuxBIOS (inglés)
- Campaña de la FSF por una BIOS libre (inglés)
- Open BIOSes for Linux", by Peter Seebach
- LinuxBIOS ready to go mainstream", by Bruce Byfield
- First desktop motherboard supported by LinuxBIOS: GIGABYTE M57SLI-S4", by Brandon Howard
- Video recording of Ron Minnich's LinuxBIOS talk from FOSDEM 2007
- LinuxBIOS with X Server Inside (YouTube Video)
- OLPC booting with LinuxBIOS (YouTube Video)
- Web CoreBoot.org
- Noticia en /.
Categorías: Linux | BIOS
Wikimedia foundation. 2010.