1
0
mirror of https://github.com/elua/elua.git synced 2025-01-08 20:56:17 +08:00
elua/doc/pt/tut_bootpc.html

54 lines
6.7 KiB
HTML
Raw Normal View History

2009-09-26 17:00:44 +00:00
$$HEADER$$
<p>&Eacute; isso mesmo o que voc&ecirc; est&aacute; pensando: depois de seguir esse tutorial, o seu PC ir&aacute; fazer o <b>boot</b> diretamente de Lua! N&atilde;o haver&aacute; Sistema Operacional l&aacute; (isso explica porque o processo de <b>boot</b> &eacute; t&atilde;o r&aacute;pido), somente voc&ecirc; e Lua. Voc&ecirc; ser&aacute; capaz de usar o interpretador Lua para escrever os seus programas e at&eacute; mesmo usar o "dofile" para executar o c&oacute;digo Lua.</p>
<h2>Detalhes</h2>
<p>
Fazer o <b>boot</b> com Lua &eacute; necess&aacute;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 &eacute; um arquivo ELF contendo o nosso c&oacute;digo <b>eLua</b>. Como o c&oacute;digo <b>eLua</b> e as instru&ccedil;&otilde;es de como fazer o <b>build</b> ainda n&atilde;o est&atilde;o dispon&iacute;veis, vou providenciar um <b>link</b> direto para o arquivo ELF. O c&oacute;digo roda em modo protegido, dessa forma voc&ecirc; ter&aacute; acesso a toda mem&oacute;ria. O c&oacute;digo n&atilde;o possibilita acesso a qualquer dispositivo de armazenamento (HD, CDROM, floppy), ou seja, se voc&ecirc; estiver preocupado que isso possa causar algum problema em seu sistema, pode relaxar agora :) Eu somente estou usando um teclado bem b&aacute;sico e "<b>drivers</b>" VGA, mas pode existir um risco de parada no sistema (embora isso seja pouco prov&aacute;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&atilde;o s&atilde;o consideradas pelo c&oacute;digo. Na d&uacute;vida, veja tamb&eacute;m a pr&oacute;xima se&ccedil;&otilde;o.
</p>
<h2>Observa&ccedil&atilde;o</h2>
<p>
<strong>Como j&aacute; mencionado, o c&oacute;digo n&atilde;o tentar&aacute; acessar qualquer tipo de sistema de armazenamento tais como HD, CDROM e floppy, nem mesmo para leitura, dessa forma, voc&ecirc; n&atilde;o precisar&aacute; se preocupar com isso. Tamb&eacute;m n&atilde;o ir&aacute; reprogramar os registradores da sua placa de v&iacute;deo, logo, esse c&oacute;digo n&atilde;o causar&aacute; qualquer dano a sua placa de v&iacute;deo ou ao seu monitor. Ele implementa somente um "driver de teclado em modo protegido", que dessa forma, n&atilde;o pode causar qualquer dano f&iacute;sico ao seu sistema. Em resumo, me esforcei ao m&aacute;ximo para fazer um c&oacute;digo t&atilde;o inofensivo quanto poss&iacute;vel. Este c&oacute;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&aacute; foi dito antes, n&atilde;o existe garantia de qualquer esp&eacute;cie. &Eacute; muito pouco prov&aacute;vel que algo de errado possa acontecer ao seu sistema, no entanto, caso aconte&ccedil;a, n&atilde;o posso ser responsabilizado.
</strong></p>
<h2>Pr&eacute;-Requisitos</h2>
<p>Para fazer o <strong>boot</strong> do seu computador em Lua ser&aacute; necess&aacute;rio:</p>
<ul>
<li>um computador com no m&iacute;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&ecirc; esteja rodando <strong>Linux</strong>, &eacute; muito prov&aacute;vel que o GRUB j&aacute; seja o seu <strong>bootloader</strong>. Se n&atilde;o, voc&ecirc; deve instal&aacute;-lo. N&atilde;o necessidade de instalar o GRUB no HD; um <strong>floppy</strong>, um pen drive USB ou at&eacute; mesmo um CDROM ir&aacute; trabalhar muito bem. Eu n&atilde;o vou tratar neste documento, do procedimento de instala&ccedil;&atilde;o do GRUB, simplesmente procure no <strong>google</strong> por "install grub on floppy/usb/cdrom" e certamente voc&ecirc; ir&aacute; encontrar o que est&aacute; procurando. Voc&ecirc; 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&amp;pageid=45">aqui</a>.</li>
<li>O arquivo <strong>eLua</strong> ELF i386. Leia as instru&ccedil;&otilde;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&ccedil;&otilde;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&ccedil;&atilde;o do GRUB.</li>
</ul>
<p>O restante deste tutorial assume que voc&ecirc; esteja usando o <strong>Linux</strong> com GRUB alocado em /boot/grub, esse caminho funciona na maioria das distribui&ccedil;&otilde;es <strong>Linux</strong> (Eu estou usando Ubuntu 8.04).</p>
<h2>Vamos come&ccedil;ar</h2>
<p>
Primeiro, copiar o <a href="http://elua.berlios.de/surprise">eLua ELF file</a> para o seu diret&oacute;rio "/boot":
</p>
<pre><code>$ sudo cp surprise /boot<br></code></pre>
2009-09-26 17:00:44 +00:00
<p>Em seguida, adicione outra entrada no menu de configura&ccedil;&atilde;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>
2009-09-26 17:00:44 +00:00
<p>&Eacute; poss&iacute;vel que seja necess&aacute;rio alterar a linha "root (hd0,0)" acima para se ajustar ao seu <strong>dispositivo de boot</strong>. O melhor caminho para fazer isso &eacute; 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>
2009-09-26 17:00:44 +00:00
<p>
Depois que encontr&aacute;-la, simplesmente copie a linha "root (hdx,y)" (root (hd0,2) no exemplo acima) e substitua pela sua nova entrada criada "root (hd0,0)". &Eacute; isso a&iacute;! Agora pode rebootar o seu computador, e quando o menu do GRUB aparecer, escolha "Surprise!". Voc&ecirc; pode at&eacute; mesmo digitar dofile "/rom/bisect.lua" para executar o arquivo de teste "bisect.lua". Aproveite!</p>
<p>Se voc&ecirc; precisar de mais detalhes, <a href="http://www.eluaproject.net/en/Contact">entre em contato conosco</a>.</p>
2009-09-26 17:00:44 +00:00
<p>Al&eacute;m disso, se voc&ecirc; quiser que o seu pr&oacute;prio PenDrive inicialize com Lua, vamos ver. Caso outras pessoas manisfestem o mesmo desejo, incluirei outro tutorial descrevendo como fazer isto (&Eacute; claro que j&aacute tenho um PenDrive que da boot com Lua :) ).
</p>
$$FOOTER$$