mirror of
https://github.com/elua/elua.git
synced 2025-01-08 20:56:17 +08:00
54 lines
6.7 KiB
HTML
54 lines
6.7 KiB
HTML
$$HEADER$$
|
|
<p>É isso mesmo o que você está pensando: depois de seguir esse tutorial, o seu PC irá fazer o <b>boot</b> diretamente de Lua! Não haverá Sistema Operacional lá (isso explica porque o processo de <b>boot</b> é 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.</p>
|
|
|
|
<h2>Detalhes</h2>
|
|
|
|
<p>
|
|
Fazer o <b>boot</b> com Lua é necessário o uso do <a href="http://www.gnu.org/software/grub/">GRUB</a> para carregar o <a href="http://www.gnu.org/software/grub/manual/multiboot/">multiboot</a> que é um arquivo ELF contendo o nosso código <b>eLua</b>. Como o código <b>eLua</b> e as instruções de como fazer o <b>build</b> ainda não estão disponíveis, vou providenciar um <b>link</b> 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 "<b>drivers</b>" 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 <b>reset</b> por <b>hardware</b>, 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.
|
|
</p>
|
|
|
|
<h2>Observação</h2>
|
|
|
|
<p>
|
|
<strong>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 <a href="http://www.virtualbox.org/">VirtualBox</a> 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.
|
|
</strong></p>
|
|
|
|
<h2>Pré-Requisitos</h2>
|
|
|
|
<p>Para fazer o <strong>boot</strong> do seu computador em Lua será necessário:</p>
|
|
|
|
<ul>
|
|
<li>um computador com no mínimo uma arquitetura 386 ou maior para rodar *Linux*. Eu testei isto somente em computadores *Pentium*, mas deveria rodar sem problemas em arquitetura 386.</li>
|
|
|
|
<li><a href="http://www.gnu.org/software/grub/">GRUB</a>. Desde que, você esteja rodando <strong>Linux</strong>, é muito provável que o GRUB já seja o seu <strong>bootloader</strong>. Se não, você deve instalá-lo. Não necessidade de instalar o GRUB no HD; um <strong>floppy</strong>, um pen drive USB ou até mesmo um CDROM irá trabalhar muito bem. Eu não vou tratar neste documento, do procedimento de instalação do GRUB, simplesmente procure no <strong>google</strong> por "install grub on floppy/usb/cdrom" e certamente você irá encontrar o que está procurando. Você pode procurar por exemplos, <a href="http://orgs.man.ac.uk/documentation/grub/grub_3.html">aqui<a>, <a href="http://www.freesoftwaremagazine.com/articles/grub_intro/">aqui</a> ou <a href="http://www.mayrhofer.eu.org/Default.aspx?pageindex=6&pageid=45">aqui</a>.</li>
|
|
|
|
<li>O arquivo <strong>eLua</strong> ELF i386. Leia as instruções de como obter esse arquivo clicando <a href="http://elua.berlios.de/surprise">aqui</a>. Ou <a href="http://www.eluaproject.net/en/Downloads">baixe os fontes de eLua</a> e compile para a arquitetura i386 usando um toolchain que pode ser criado seguindo as instruções <a href="http://www.eluaproject.net/en/Building_GCC_for_i386">deste tutorial</a>.</li><li>Um editor de texto para alterar o seu arquivo de configuração do GRUB.</li>
|
|
</ul>
|
|
|
|
<p>O restante deste tutorial assume que você esteja usando o <strong>Linux</strong> com GRUB alocado em /boot/grub, esse caminho funciona na maioria das distribuições <strong>Linux</strong> (Eu estou usando Ubuntu 8.04).</p>
|
|
|
|
<h2>Vamos começar</h2>
|
|
|
|
<p>
|
|
Primeiro, copiar o <a href="http://elua.berlios.de/surprise">eLua ELF file</a> para o seu diretório "/boot":
|
|
</p>
|
|
<pre><code>$ sudo cp surprise /boot<br></code></pre>
|
|
|
|
<p>Em seguida, adicione outra entrada no menu de configuração do GRUB(/boot/grub/menu.lst). Edite-o e adicione esta entrada:</p>
|
|
|
|
<pre><code> title Surprise!<br> root (hd0,0)<br> kernel /boot/surprise<br> boot<br></code></pre>
|
|
|
|
<p>É possível que seja necessário alterar a linha "root (hd0,0)" acima para se ajustar ao seu <strong>dispositivo de boot</strong>. O melhor caminho para fazer isso é procurar no arquivo menu.lst por uma entrada que faz o <strong>boot</strong> do kernel do seu <strong>Linux</strong>. Deve ficar algo a isto:
|
|
</p>
|
|
|
|
<pre><code> title Ubuntu, kernel 2.6.20-16-generic<br> root (hd0,2)<br> kernel /boot/vmlinuz-2.6.20-16-generic<br> initrd /boot/initrd.img-2.6.20-16-generic<br> savedefault <br></code></pre>
|
|
|
|
<p>
|
|
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!</p>
|
|
|
|
<p>Se você precisar de mais detalhes, <a href="http://www.eluaproject.net/en/Contact">entre em contato conosco</a>.</p>
|
|
|
|
<p>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 :) ).
|
|
</p>
|
|
$$FOOTER$$
|