$$HEADER$$

É isso mesmo o que você está pensando: depois de seguir esse tutorial, o seu PC irá fazer o boot diretamente de Lua! Não haverá Sistema Operacional lá (isso explica porque o processo de boot é tão rápido), somente você e Lua. Você será capaz de usar o interpretador Lua para escrever os seus programas e até mesmo usar o "dofile" para executar o código Lua.

Detalhes

Fazer o boot com Lua é necessário o uso do GRUB para carregar o multiboot que é um arquivo ELF contendo o nosso código eLua. Como o código eLua e as instruções de como fazer o build ainda não estão disponíveis, vou providenciar um link direto para o arquivo ELF. O código roda em modo protegido, dessa forma você terá acesso a toda memória. O código não possibilita acesso a qualquer dispositivo de armazenamento (HD, CDROM, floppy), ou seja, se você estiver preocupado que isso possa causar algum problema em seu sistema, pode relaxar agora :) Eu somente estou usando um teclado bem básico e "drivers" VGA, mas pode existir um risco de parada no sistema (embora isso seja pouco provável de acontecer). Se isso acontecer, tenha certeza de usar o reset por hardware, pois as teclas CTRL+ALT+DEL não são consideradas pelo código. Na dúvida, veja também a próxima seçõo.

Observação

Como já mencionado, o código não tentará acessar qualquer tipo de sistema de armazenamento tais como HD, CDROM e floppy, nem mesmo para leitura, dessa forma, você não precisará se preocupar com isso. Também não irá reprogramar os registradores da sua placa de vídeo, logo, esse código não causará qualquer dano a sua placa de vídeo ou ao seu monitor. Ele implementa somente um "driver de teclado em modo protegido", que dessa forma, não pode causar qualquer dano físico ao seu sistema. Em resumo, me esforcei ao máximo para fazer um código tão inofensivo quanto possível. Este código foi testado em 5 diferentes computadores e em 2 emuladores VirtualBox e nada de errado aconteceu. Como já foi dito antes, não existe garantia de qualquer espécie. É muito pouco provável que algo de errado possa acontecer ao seu sistema, no entanto, caso aconteça, não posso ser responsabilizado.

Pré-Requisitos

Para fazer o boot do seu computador em Lua será necessário:

O restante deste tutorial assume que você esteja usando o Linux com GRUB alocado em /boot/grub, esse caminho funciona na maioria das distribuições Linux (Eu estou usando Ubuntu 8.04).

Vamos começar

Primeiro, copiar o eLua ELF file para o seu diretório "/boot":

$ sudo cp surprise /boot

Em seguida, adicione outra entrada no menu de configuração do GRUB(/boot/grub/menu.lst). Edite-o e adicione esta entrada:

  title Surprise!
root (hd0,0)
kernel /boot/surprise
boot

É possível que seja necessário alterar a linha "root (hd0,0)" acima para se ajustar ao seu dispositivo de boot. O melhor caminho para fazer isso é procurar no arquivo menu.lst por uma entrada que faz o boot do kernel do seu Linux. Deve ficar algo a isto:

  title           Ubuntu, kernel 2.6.20-16-generic
root (hd0,2)
kernel /boot/vmlinuz-2.6.20-16-generic
initrd /boot/initrd.img-2.6.20-16-generic
savedefault

Depois que encontrá-la, simplesmente copie a linha "root (hdx,y)" (root (hd0,2) no exemplo acima) e substitua pela sua nova entrada criada "root (hd0,0)". É isso aí! Agora pode rebootar o seu computador, e quando o menu do GRUB aparecer, escolha "Surprise!". Você pode até mesmo digitar dofile "/rom/bisect.lua" para executar o arquivo de teste "bisect.lua". Aproveite!

Se você precisar de mais detalhes, entre em contato conosco.

Além disso, se você quiser que o seu próprio PenDrive inicialize com Lua, vamos ver. Caso outras pessoas manisfestem o mesmo desejo, incluirei outro tutorial descrevendo como fazer isto (É claro que já tenho um PenDrive que da boot com Lua :) ).

$$FOOTER$$