tag:blogger.com,1999:blog-60260668718919245042024-03-16T20:54:03.947-03:00Lucky Labs<b>O menor Blog de Tecnologia da Internet.</b><br>
Onde "de tudo" e "o nada" estão presentes.<br>Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.comBlogger80125tag:blogger.com,1999:blog-6026066871891924504.post-43178445572162787002024-03-16T20:53:00.001-03:002024-03-16T20:53:11.779-03:00Novo Teste de Feed RSS para o Servidor do Discord<p> Esse post será apago em breve, somente para teste...<br /></p>Luciano Gonçalezhttp://www.blogger.com/profile/14813586999484545544noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-75726707919370210162024-03-10T15:02:00.002-03:002024-03-10T15:02:30.998-03:00Somente para teste de RSS<p> Esta postagem é somente para teste de um bot de discord para acompanhamento de RSS. Será excluída em breve...<br /></p>Luciano Gonçalezhttp://www.blogger.com/profile/14813586999484545544noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-50598064228626391252024-01-28T15:54:00.001-03:002024-01-28T15:54:34.967-03:00O Mundo não para...<p>Pois é...</p><p>Já se passou quase um ano da última postagem...</p><p>Nenhum das expectativas sobre o blog se cumpriu...<br /></p><p>Mas para mim muita coisa mudou, o Mundo não para de girar...</p><span><a name='more'></a></span><p><br /></p><p style="text-align: justify;">Desde a última postagem muita coisa aconteceu. Só fiz uma breve referência que eu estava cursando Engenharia Civil lá por volta de 2014, mas nunca entrei em detalhes sobre isso. Mas no último anos as coisas começaram a se encaixar muito bem. </p><p style="text-align: justify;">Entre 2014 e 2019 eu cursei Engenharia Civil, me formando em 2019. Desde lá até meados do ano passado eu continuei trabalhando fora da área (com renda baixa). No mesmo ano (2019) eu prestei um concurso na prefeitura de uma cidade vizinha a minha (cerca de 40km daqui), mas não fui um dos primeiros colocados, o que me fez até esquecer do concurso.</p><p style="text-align: justify;">Mas devido à pandemia o concurso foi prorrogado e acabei sendo convocado no meio do ano passado. Como era uma oportunidade que eu não poderia perder, agarrei com as duas mãos...</p><p style="text-align: justify;">Mas resultado, hoje estou com uma renda bem melhor, mas totalmente sem tempo, com menos tempo que tinha quando escrevi a última postagem, ano passado, agora já estou acostumando com a rotina, mas tem muito trabalho para executar lá e, inclusive, estou fazendo muitas horas extras. Juntando o tempo que estou trabalhando com o de viajem já me consome quase todo o dia, o pouco que sobra é até pouco para que eu possa descansar.</p><p style="text-align: justify;">No final das contas, por enquanto, não consigo fazer qualquer coisas fora das atividades de trabalho e de casa, os meus hobbies estão todos parados e não tenho previsão para retornar a eles.</p><p style="text-align: justify;">Assim que as coisas acabarem de se encaixar, com o trabalho fluindo melhor, e com a possibilidade de que eu volte aos meus hobbies, voltarei aos projetos.</p><p style="text-align: justify;">Estou pensando inclusive em expandir os assuntos aqui no blog, então, provavelmente, terão alguns posts diferentes por aqui, conforme o tempo for passando eu vou decidir se continuo as postagem diversas ou não. Vamos ver que rumo o blog toma...</p><p style="text-align: justify;">Até breve.<br /></p><p style="text-align: justify;"><br /></p><p style="text-align: left;"><br /></p>Luciano Gonçalezhttp://www.blogger.com/profile/14813586999484545544noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-36390882872831078332023-03-09T20:52:00.006-03:002023-03-09T20:55:35.892-03:00O Tempo passa rápido demais...<p>Dizem que o Tempo é relativo... <br /></p><p></p><p>Passa-se rápido um segundo, um minuto, uma hora...</p><p>Passa-se logo um dia, uma semana, um mês...</p><p>E não demora muito, passa-se um ano ou <b><span style="color: red;">uma </span></b><span style="color: red;"><b>década</b></span>! <br /></p><span><a name='more'></a></span><p> </p><p>Sim. Desde que comecei o projeto já se passaram <b><span style="color: red;">10 </span><span style="color: red;">ano</span><span style="color: red;">s</span></b>.</p><p>Há exatamente 10 anos eu postava<i> <u>a primeira postagem</u></i><u> </u>nesse blog sobre o <b>LuckyOS </b>(<a href="http://lucky-labs.blogspot.com/2013/03/introducao.html" target="_blank">Faça seu próprio sistema operacional - Introdução</a>). Isto sem contar o tempo que estudei sobre SOs antes de tornar o projeto público.<br /></p><p>Gostaria muito de estar postando uma boa notícia hoje, como uma versão avançada do sistema, mas nem operacional ele está ainda, isto por que só consegui dedicar pouco tempo ao LOS. As minhas obrigações e prioridades sempre foram outras, como deixei bem claro lá no começo, isso seria apenas um hobby.</p><p>Desculpas à parte, por que não irão mudar em nada, eu tinha várias metas e não consegui cumprir nenhuma até agora.</p><p>E pior, até o que já foi feito não está legal. Por que quando comecei não utilizava o git, depois tentei mudar completamente para ele, mas não fiz como deveria e ficou tudo bem bagunçado, depois tentei consertar e ficou pior...</p><p>E pra ajudar estou completamente sem tempo (<span style="color: #ffa400;"><i>alguma novidade?!?!</i></span>) para organizar as coisas.</p><p>Só passei por aqui para que esta data não ficasse em branco, não trago novidade alguma no momento, mas o ano ainda não acabou. Espero evoluir alguma coisa no LOS ainda esse ano para não deixar os <b><span style="color: red;">10 anos</span></b> passar vazio. Gostaria muito de lançar a <b>versão 1.0</b> mas não sei se vou conseguir.<br /></p><p>Um até breve à todos...<br /></p><p><br /></p>Luciano Gonçalezhttp://www.blogger.com/profile/14813586999484545544noreply@blogger.com1tag:blogger.com,1999:blog-6026066871891924504.post-45180789434096955222019-07-21T17:52:00.000-03:002019-07-21T17:59:08.021-03:00Organizando a casa<div style="text-align: justify;">
Depois de quase 5 anos com o projeto praticamente parado, e eu quase formado (só falta pegar o diploma...), agora posso continuar com o LOS nas horas vagas.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Porém não é possível continuar na mesma linha de raciocínio que eu seguia há 5 anos, já perdi essa linha a muito tempo...</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
</div>
<a name='more'></a>Nesse tempo não fiquei completamente parado, mas também não desenvolvi nada que pudesse acrescentar algo de imediato ao sistema. Porém tenho um monte de rascunhos aqui e pretendo implementá-los em breve.<br />
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
A primeira coisa a fazer (e que já fiz) é pôr a "casa em ordem". Organizei os repositório no Github já que será meu ponto concentração dos fontes. Aboli completamente o sistema antigo em que eu fazia o versionamento manual, pois além de trabalhoso não serve como backup. Trabalhar com o Github me permite implementar em vários lugares sem a necessidade de ficar carregando arquivo comigo.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Substituí os repositórios pessoais por repositórios de organização pois me permite organizar melhor, mantendo todos os repositórios do projeto sob um mesmo lugar, sem causar confusão com outros repositórios que não pertencem ao projeto.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Também estou utilizando o recurso do submódulo do git, que permite a utilização de outros repositórios como parte de um principal, indexando de maneira correta e automática os submódulos necessários para cada compilação.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Também estou utilizando <b>makefiles</b>, agora, em vez de <i>shell scripts</i>. As vantagens são muitas, torna o processo de compilação e manutenção muito mais simples.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Para quem quiser acompanhar, a partir de agora, não estarei gerando mais pacotes fontes ou binários. Será necessário clonar o repositório e compilar na sua máquina. Para isso é conveniente que esteja utilizando Linux, tenha o NASM e FPC instalados, sendo que o FPC deve ser (até o momento) na versão 2.4.4 de 32 bits, outras versões não funcionam devido ao LOS ter sua própria RTL.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
No final, a organização resultou na versão <b>0.7</b> do sistema, que será o divisor de águas do projeto. Esta versão está no branch <b>Master</b> do repositório principal e será o ponto de partida desta nova fase. Não há qualquer mudança de funcionalidade em relação à versão anterior, mas está pronta para seguir o caminho de agora em diante.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Sobre a compilação desta versão, somente o kernel é compilado automaticamente, o bootloader ainda continua da mesma forma que o antigo. Isto é uma das coisas que pretendo mudar de imediato (<i>spoilers... rsrs</i>) e portanto não irei perder tempo com ele. Se quiser testar a v0.7 é só utilizar o bootloader binário que ainda está disponível para download (<a href="http://lucky-labs.blogspot.com/2013/03/downloads.html" target="_blank">aqui</a>).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Bem... acho que é isso... </div>
<div style="text-align: justify;">
Em breve mais novidade!</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: right;">
<br />
Próximo - Surpresa ... >></div>
<div style="text-align: left;">
<br />
<< Anterior - <a href="http://lucky-labs.blogspot.com/2014/12/kernel-fase-5-adornando-o-caminho.html">Kernel, fase 5 - Adornando o caminho</a></div>
<div style="text-align: center;">
<br />
Voltar a <a href="http://lucky-labs.blogspot.com.br/2013/03/faca-seu-proprio-sistema-operacional.html">Faça seu próprio sistema operacional</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
<br /></div>
Luciano Gonçalezhttp://www.blogger.com/profile/14813586999484545544noreply@blogger.com3tag:blogger.com,1999:blog-6026066871891924504.post-21042233557397019282019-01-25T00:31:00.003-02:002019-01-25T00:31:29.230-02:00Estamos voltando...Só passando aqui para avisar o pessoal que em breve estarei trabalhando no projeto novamente.<br />
<br />
Agora, provavelmente, terei mais tempo livre e, portanto, maior possibilidade de avançar o LOS.<br /><br />O maior problema vai ser "encaixar" as ideias novamente, isso talvez seja o que vai dar mais trabalho...<br /><br />Assim que tiver novidades voltarei aqui.<br />Até mais pessoal.Luciano Gonçalezhttp://www.blogger.com/profile/14813586999484545544noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-6599848450363634302018-12-12T19:24:00.000-02:002018-12-12T19:24:08.161-02:00Onde estou?Onde estou? Quem sou eu?<br />
<br />
Piadas à parte... não faço a menor ideia de onde parei e o que ia fazer... Bora ler um pouco de código...Luciano Gonçalezhttp://www.blogger.com/profile/14813586999484545544noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-56205680061116504332016-01-31T09:49:00.001-02:002016-01-31T09:50:45.355-02:00Já começa a ter uma vaga lembrança<p dir="ltr">Nesses últimos dias tenho implementado o gerenciador de memória. Ele começa a ter forma, mas ainda está longe de ser funcional. Realmente foi a parte mais difícil até agora. Em breve farei uma postagem mais detalhada sobre o andamento do projeto.</p>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-25782339676012740302016-01-09T23:50:00.000-02:002016-01-09T23:54:51.172-02:00Aproveitando as férias da facul...<div style="text-align: justify;">
Esse ano que passou estive longe, por diversos motivos, sendo a universidade a principal causa. Até terminá-la será sempre assim, somente vou fazer algo no sistema durantes as férias :whew: .<br />
<br /></div>
<div style="text-align: justify;">
</div>
<span style="text-align: justify;">Agora, de férias da faculdade, estou tentando implementar mais alguma coisa no sistema - o gerenciador de memória, que ainda não terminei.</span><br />
<div style="text-align: justify;">
<br />
<a name='more'></a>Com um pouco mais de tempo vim dar uma olhada no blog e vejo que o movimento aqui cresceu, mais de 30k visitas e 17 membros. Obrigado pessoal :y: .</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Olhando minha caixa de entrada, encontrei um email que ainda não tinha visto (meio óbvio isso, rsrs), de março de 2015 :$ , nele quem enviou avalia como positivo o projeto e se dispõe como colaborador. Respondi de boa vontade, e logo após fui pesquisar quem era a pessoa e, para minha surpresa, é autor de um curso de Assembly que me foi muito útil durante minha "iniciação" nessa linguagem :o .</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Ainda não obtive a resposta, do Sr. <b>Frederico Pissarra</b>, se ainda tem interesse em colaborar mas já adianto que o mesmo já tem uma parcela de colaboração indireta no projeto.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Pesquisando mais um pouco encontrei um blog de qual nosso amigo é colaborador: <a href="https://bitismyth.wordpress.com/" target="_blank">Bit is Myth</a>, juntamente com seu amigo <b>MaRZ</b>. Lendo algumas matérias conclui que lá há muitas, mas muitas mesmo, matérias interessantes sobre programação, tanto que até adicionei ao "Recomendo" e vai ser uma nova fonte de informação :clap: .<br />
<br />
As novidades relevantes posto aqui, para "bobeiras" continuo usando a página do Facebook (link no menu acima).<br />
<br />
Até mais pessoal, e mantenham a esperança, que logo o sistema passa a ser operacional B) .<br />
<br /></div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-52367504245723057622014-12-25T10:51:00.002-02:002014-12-25T10:51:36.659-02:00NovisBem pessoal, quais as novidades... Eu estou fazendo faculdade, e isso tem me tomado todo o tempo, agora que estou de férias vou ter algum tempo para voltar ao projeto.<br />
<br />
Agora estamos com mais de 20.000 visitas :o :D B)<br />
<br />
E isso que não fiz nada novo nesse meio tempo :wasntme:<br />
<br />
E agora estamos com 12 membros no blog, bem vindo pessoal :handshake:<br />
<br />
E... vamos fazer algo útil? :?Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-90834931589777951342014-12-24T23:07:00.000-02:002019-07-21T17:54:07.057-03:00Kernel, fase 5 - Adornando o caminho (enfeitando, se não entendeu)<div style="text-align: justify;">
<i>Depois de mais de um ano parado, estou de volta a mexer no sistema, mas somente enquanto estiver de férias da faculdade, mas isso é uma história para outro post...</i><br />
<br />
O que temos de novidade? Nenhuma novidade surpreendente, mas ao menos interessante. O foco seria desenvolver o gerenciamento de memória, mas tive algumas ideias que me fez fazer algo antes. Melhorei um pouco mais a ABORT.<br />
<br />
<a name='more'></a>ABORT está muito mais refinada. Agora é possível além do código de erro, informar o local do código fonte que é gerado o erro. Isso é extremamente útil já que encontrar o ponto do erro se torna mais simples. E ainda é possível informar uma mensagem de erro amigável ao usuário (desde que não seja “Esse programa executou uma operação ilegal e será fechado”, rsrs).<br />
<br />
Outra melhora é que tornei mais legível a leitura dos flags da CPU, que agora são informados, também, através de suas abreviaturas, bem como o ring atual (IOPL) do processo. A pilha de chamada continua da mesma forma.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/System.006-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/System.006-1.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/System.006-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/System.006-2.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/System.006-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/System.006-3.png" width="400" /></a></div>
<br />
<br />
Quanto a versão final do kernel, ele informa basicamente os mesmos parâmetros da versão anterior. Esses parâmetros serão usados para a implementação do gerenciador de memória, na próxima fase.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/System.006-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/System.006-4.png" width="400" /></a></div>
<br />
<br />
<b>Download dos fontes e binários:</b><br />
<div>
<ul style="text-align: start;">
<li><a href="https://sites.google.com/site/luckylabshome/files/luckyos/packages/loadlos.015.zip" target="_blank">LoadLOS.015</a></li>
<li><a href="https://sites.google.com/site/luckylabshome/files/luckyos/packages/kernel.006-2.zip" target="_blank">Kernel.006-2</a>;</li>
</ul>
<ul style="text-align: start;">
<li><a href="https://sites.google.com/site/luckylabshome/files/luckyos/packages/system.006-2.zip" target="_blank">System.006-2</a>;</li>
</ul>
</div>
<div style="text-align: right;">
<br />
Próximo - <a href="https://lucky-labs.blogspot.com/2019/07/organizando-casa.html#more">Organizando a casa</a> >></div>
<div style="text-align: left;">
<br />
<< Anterior - <a href="http://lucky-labs.blogspot.com.br/2013/09/kernel-fase-4-limpando-o-caminho.html">Kernel, fase 4 - Limpando o caminho</a></div>
<div style="text-align: center;">
<br />
Voltar a <a href="http://lucky-labs.blogspot.com.br/2013/03/faca-seu-proprio-sistema-operacional.html">Faça seu próprio sistema operacional</a>.</div>
</div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com8tag:blogger.com,1999:blog-6026066871891924504.post-877557602197558882014-07-01T20:56:00.002-03:002014-07-01T20:59:25.425-03:00Tudo parado!<div style="text-align: justify;">
Bem pessoal, depois de um tempo longe estou passando aqui para dizer como andam as coisas... Estive nesses últimos meses demasiadamente atarefado, resolvendo diversos problemas pessoais, tentando entrar para a faculdade...
<br />
<br />
<a name='more'></a>Os problemas pessoais ainda me tomarão uma boa parcela do tempo, mas o que mais irá me tomar tempo daqui em diante é a faculdade. Sim, vou fazer... Não era exatamente a que queria, mas dentro do meu leque de escolhas foi a que mais se adequou.<br />
<br />
Eu gostaria de fazer Ciências da Computação, mas a mais próxima de minha casa fica a 85 KM, ou seja, teria que viajar 170 KM todo dia... Praticamente impossível. Então a escolha recaiu em outro curso, Engenharia Civil, na cidade vizinha. Portanto a partir de Agosto estarei completamente sem tempo.
<br />
<br />
O LOS, está parado, estava implementando o gerenciador de memória mas parei no meio (por falta de tempo). Irei tentar terminar essa parte antes de Agosto para que o projeto não fique parado em um ponto crítico, e complexo, como esse.</div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com2tag:blogger.com,1999:blog-6026066871891924504.post-35919152981453195492014-04-22T19:13:00.002-03:002014-04-22T19:21:25.951-03:00Desenvolvimento via GitHub<div style="text-align: justify;">
Alguns meses depois... Finalmente iniciei a implementação do Gerenciador de Memória.<br />
<br />
<a name='more'></a>Porem ainda estou bem no começo e tem muita coisa a implementar. Mas quem quiser seguir o meu progresso é só acessar o branch "<a href="https://github.com/LucGoncalez/los-kernel/tree/dev" target="_blank">dev</a>" do repositório LOS-Kernel.<br />
<br />
Nesse branch está todo o "código vivo" de desenvolvimento do kernel, nele empurro o código para cada fase do desenvolvimento.<br />
<br />
Explicações do que eu fiz somente quando tiver um release pronto, que farei em uma postagem da série.<br />
<br />
Dica: Para quem não conhece bem o GitHub, a opção "Network" (dos repositórios) mostra a árvore de commits, assim é possível ver, graficamente, quais foram as modificações.<br />
<br />
Fiquem ligados ;)</div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-16435416519894597422014-04-13T23:42:00.000-03:002014-04-22T19:14:53.934-03:00LOS on GIT<div style="text-align: justify;">
Depois de um tempo estudando o GIT, descobrindo as suas muitas funcionalidades, estou usando essa poderosa ferramenta para controlar meu código fonte.
<br />
<br />
<a name='more'></a>Agora posso manter meu trabalho "online" lá no github.com. Onde qualquer um pode ter o "código vivo" de desenvolvimento.<br />
<br />
Qualquer um pode criar "um fork" dos repositórios e fazer suas alterações, talvez para corrigir algum bug ou adicionar alguma funcionalidade. Depois disso também pode me enviar "um pull request" que poderei analisar e TALVEZ faça "um merge" no meu repositório, aceitando assim a contribuição.<br />
<br />
Enfim, agora podemos realmente trabalhar em grupo, ou ter os arquivos atualizados antes que eu lance uma nova versão.<br />
<br />
Durante esta semana irei analisar o que já está feito, talvez corrigir alguma coisa que tenha passado despercebido, organizar algo no código, para no final de semana dar início ao desenvolvimento do - tão esperado - gerenciador de memória.<br />
<br />
Para quem utiliza Linux (uso links simbólicos em várias partes que não irão funcionar no Windows) é só ter o GIT instalado e fazer "um clone" do repositório <a href="https://github.com/LucGoncalez/LuckyOS.git" target="_blank">https://github.com/LucGoncalez/LuckyOS.git</a>, após o clone basta entrar no diretório LuckyOS e executar o script "./getlos" que todos os repositórios serão clonados automaticamente :)<br />
<br />
Por enquanto é isso... até.<br />
<br /></div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-55152374745549396002014-03-16T20:04:00.000-03:002014-03-16T20:08:36.167-03:00LOS Reloaded<div style="text-align: justify;">
Olá pessoal, depois de um tempo "trabalhando" em outro projeto, enfim estou retornando ao LOS.
<br />
<br />
<a name='more'></a>Essa semana vou organizar os arquivos aqui, criar repositórios no github, relembrar o que tinha feito e onde estava parado. Espero que em breve eu já tenha alguma novidade no projeto.<br />
<br />
E já estamos com quase 13.500 acessos :)<br />
<br />
Até breve!</div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-68119184898956535922014-03-01T23:43:00.000-03:002014-03-01T23:43:19.220-03:00Chat<div style="text-align: justify;">
A tempos queria disponibilizar um chat aqui no blog, porem todos os que encontrei eram pesados, demasiadamente enfeitados e complicados.
<br />
<br />
<a name='more'></a>Hoje, procurando outra coisa no Google, acabei encontrando esse, que usa o protocolo XMPP (Jabber). Leve, simples, sem muitas delongas...<br />
<br />
A sala pode ser acessada tanto pelo mini-chat (esse aqui embaixo) que acessa via login anônimo. Ou via <a href="https://jappix.com/" target="_blank">https://jappix.com</a>, no qual deve ser feito o registro e login com conta, ou até por um mensageiro que suporte XMPP.<br />
<br />
O endereço da sala de chat é <a href="mailto:lucky-labs@muc.jappix.com" target="_blank">lucky-labs@muc.jappix.com</a> para quem for acessar com conta.<br />
<br />
Quem criar um login no jappix.com também pode me adicionar como amigo: <a href="mailto:master-lucky@jappix.com" target="_blank">master-lucky@jappix.com</a>.<br />
<br />
Vamos ver se o chat fica legal e vai ter alguma funcionalidade, enquanto isso vou terminar uns scritps...<br />
<br />
Até breve.</div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-84796915959856296182014-01-25T09:12:00.001-02:002014-01-25T17:06:49.961-02:00Lucky Labs on Facebook!<div style="text-align: justify;">
Estamos chegando a quase 12000 visitas, porem não tem havido uma interação dos leitores. Para resolver isso criei uma página no Facebook (quem não tem Facebook...).
<br />
<br />
<a name='more'></a>Continuarei postando aqui todos os passos do desenvolvimento do LOS, pretendo deixar somente as postagens técnicas, retirando aquelas somente informativas, assim o Blog ficará bem mais limpo e fácil de acessar.<br />
<br />
O Facebook irei usar como um canal de notícias, nele irei postar as novidades, o que aqui está como off-topic (normalmente o "estou enrodado..." :) ), enfim tudo que for tecnicamente-inútil :P .<br />
<br />
Então, quem tiver Facebook é só curtir a página <a href="https://www.facebook.com/LuckyLabsBR" target="_blank">https://www.facebook.com/LuckyLabsBR</a> para ficar sempre atualizado do que estou fazendo.<br />
<br />
Até mais.<br />
<br />
PS. Lembrem de "curtir" a página.</div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com1tag:blogger.com,1999:blog-6026066871891924504.post-23817211625901672752014-01-17T23:16:00.001-02:002014-01-17T23:17:23.433-02:00E mais uma semana se passou, logo se vai Janeiro e eu enrolado...<div style="text-align: justify;">
Só passando pra dizer que estou contente com a quantidade de visitas que o blog anda recebendo, já passamos das 11.600.<br />
<br />
<a name='more'></a>Mas estaria, também, bem mais contente se tivesse com tempo para avançar o projeto. Hoje, plena sexta-feira, estou tentando organizar as ideias aqui, pois não deu tempo algum durante a semana.<br />
<br />
Ainda estou trabalhando sobre os scripts-utilitários para Linux, gostaria de conseguir terminá-lo nesse final de semana, vamos ver o que dá para fazer...</div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-36009939321781184692014-01-10T20:18:00.000-02:002014-01-10T20:18:02.618-02:00Enem e nada...<div style="text-align: justify;">
Notícia ruim pessoal... Não fui bem no Enem e não consegui a tão esperada vaga onde eu queria :(
<br />
<br />
<a name='more'></a>Mas fazer o que né? Depois de mais de dez anos que terminei o 2º Grau (sim, ainda era assim), sem ter tempo para re-estudar tudo o que precisava, sem ter feito qualquer prova de dois dias até o momento...<br />
<br />
Mas bola pra frente... sem desanimar! Agora só na próxima :)</div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-46441069957929155552013-12-25T17:43:00.000-02:002013-12-25T17:43:14.066-02:00Feliz NatalAe galera! Como estão? (com certeza esperando uma postagem nova sobre o LOS :P )<br />
<br />
<a name='more'></a>Bem, eu, como de costume, estou sem tempo... Mas já resolvi alguns problemas da minha lista, logo devo estar com tempo livre para continuar com o projeto :)<br />
<br />
Hoje, estou passando aqui somente para desejar a quem acompanha o blog, um Feliz Natal e um Próspero Ano Novo, muita Paz, Saúde, e Prosperidade a todos.<br />
<br />
Abraços, até logo pessoal!Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-52922281329589823562013-12-01T11:43:00.000-02:002013-12-01T11:44:21.878-02:0010.000 visitasChegamos às 10.000 visitas :D<br />
<br />
<a name='more'></a>Embora eu esteja bem enrolado e sem desenvolver qualquer coisa no sistema, estou conseguindo organizar as coisas por aqui e aprendendo a usar o git.<br />
<br />
Já tenho uma conta no github (<a href="https://github.com/LucGoncalez" target="_blank">https://github.com/LucGoncalez</a>) e estou reescrevendo uns scripts em shell que tenho (<a href="https://github.com/LucGoncalez/lkscripts" target="_blank">https://github.com/LucGoncalez/lkscripts</a>), que servem para organizar meus arquivos. Logo que estiver tudo organizado, crio os repositórios do LOS.<br />
<br />
Minha meta é terminar de organizar tudo esse mês e recomeçar a desenvolver o sistema em Janeiro.<br />
<br />
Até.Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-18368941970963739192013-11-07T12:07:00.000-02:002013-11-07T12:18:22.070-02:00Enquetes<div style="text-align: justify;">
Aqui vou manter o resultado de todas as enquetes encerradas, para liberar espaço na barra da direita. :)<br />
<br />
<a name='more'></a><br />
<b>Qual o seu interesse em Sistemas Operacionais?</b><br />
<ul>
<li>Data de abertura: 24/06/2013</li>
<li>Data de fechamento: 31/07/2013</li>
<li>Total de votos: 21</li>
</ul>
<div>
<ol>
<li>Construir um SO: 11 votos (52%);</li>
<li>Entender como funciona: 6 votos (28%);</li>
<li>Obter conhecimento avançado: 4 votos (19%);</li>
<li>Utilização normal: 0;</li>
<li>NDA. : 0;</li>
</ol>
</div>
<div>
<i>Obs: O pessoal quer fazer um SO mesmo hein?</i> :D</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<b>Qual é o seu Sistema Operacional favorito? (em PCs)</b></div>
<ul>
<li>Data de abertura: 24/06/2013</li>
<li>Data de fechamento: 31/07/2013</li>
<li>Total de votos: 18</li>
</ul>
<div>
<ol>
<li>Linux: 12 votos (66%);</li>
<li>Windows: 5 votos (27%);</li>
<li>Outro: 1 voto (5%);</li>
<li>MacOS: 0;</li>
<li>Unix/(Outros *nix): 0;</li>
</ol>
</div>
<div>
<i>Obs: Um voto a 'outro' graças ao meu amigo Guh... ;)</i></div>
<div>
<br />
<div>
<b><br class="Apple-interchange-newline" />Qual é o seu nível de conhecimento em programação?</b></div>
<ul>
<li>Data de abertura: 22/09/2013</li>
<li>Data de fechamento: 31/10/2013</li>
<li>Total de votos: 14</li>
</ul>
<div>
<ol>
<li>Avançado: 5 votos (35%);</li>
<li>Intermediário: 3 votos (21%);</li>
<li>Básico: 3 votos (21%);</li>
<li>Nenhum: 2 votos (14%);</li>
<li>Iniciante: 1 voto (7%);</li>
</ol>
</div>
<br />
<div>
</div>
<br />
<div style="-webkit-text-stroke-width: 0px; color: black; font-family: 'Times New Roman'; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: justify; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<div style="margin: 0px;">
<b>Qual linguagem de programação você domina?</b></div>
</div>
<ul>
<li>Data de abertura: 22/09/2013</li>
<li>Data de fechamento: 31/10/2013</li>
<li>Total de votos: 14</li>
</ul>
<div>
<ol>
<li>C / C++: 7 votos (50%);</li>
<li>Web (HTML, Javascritp, PHP): 4 votos (28%);</li>
<li>Outra (não Web): 4 votos (28%);</li>
<li>Assembly: 3 votos (21%);</li>
<li>Basic / Virtual Basic: 2 votos (14%);</li>
<li>Pascal: 1 voto (7%);</li>
<li>Outra (Web): 1 voto (7%);</li>
</ol>
<div>
<br /></div>
</div>
<br /></div>
<div>
<span style="text-align: start;">Voltar a </span><a href="http://lucky-labs.blogspot.com.br/p/series-do-blog.html" style="text-align: start;">Séries do Blog</a><span style="text-align: start;">.</span></div>
</div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-64022025048400633902013-10-28T22:47:00.002-02:002013-10-28T22:47:15.792-02:00Recomeçar...<div style="text-align: justify;">
Bem pessoal, agora que estou "mais livre", estarei voltando a implementar o sistema.<br />
<br />
<a name='more'></a>Depois de concurso dalí e daqui, enem e mais algumas coisas terei um pouco mais de tempo agora, ainda tenho algumas coisas a serem feitas que requerem certa atenção, mas já dá para relaxar um pouco.<br />
<br />
Ainda não vou recomeçar a mexer no sistema por dois motivos:<br />
<br />
Primeiro que meu computador está precisando de uma faxina, fazer uns backups, gravar uns arquivos para DVD, liberar espaço.<br />
<br />
Segundo que estou aprendendo a usar o GIT, pois pretendo usá-lo para controle e compartilhamento do código em desenvolvimento (o que possibilita que mais alguém me ajude na implementação), portanto ainda tenho reorganizar as versões que tenho para que fiquem corretas no histórico do git.<br />
<br />
Assim que eu tiver terminado de organizar tudo por aqui e upado (push_ado) todas as versões eu passo o link git para quem quiser acompanhar...<br />
<br />
Até.</div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-63838787690876066272013-10-05T14:02:00.000-03:002013-10-05T14:09:13.118-03:00Considerações sobre o linker<div style="text-align: justify;">
Nesta postagem irei tratar de algumas considerações sobre o linker, informações prática, etc...<br />
<br />
<a name='more'></a><br />
<b>Sessões:</b><br />
<br />
Um arquivo objeto é composto por sessões, cada uma com uma finalidade específica. As principais são:<br />
<br />
TEXT :<br />
<br />
É a sessão que possui o código executável do programa, normalmente a região da memória onde é carregada é configurada para somente leitura, de modo que não possa ser modificada.<br />
<br />
DATA:<br />
<br />
É a sessão que contem as variáveis estáticas inicializadas. Tem acesso de leitura e gravação.<br />
<br />
RODATA:<br />
<br />
É a sessão que, normalmente, contem as constantes. Tem acesso de somente leitura e normalmente é colocada junto (logo após) com a sessão TEXT.<br />
<br />
BSS:<br />
<br />
É a sessão que contem as variáveis estáticas não inicializadas. É uma sessão que sempre está vazia no arquivo objeto, onde somente há a informação do seu tamanho, pois ela somente é inicializada na memória.<br />
<br />
<br />
Quando "linkamos" os arquivos-objeto, gerando uma imagem binária, a ordem e configurações das sessões são definidas pelo script de linkagem. As sessões são copiadas para a imagem na seguinte ordem (crescente), segundo o nosso script (LOS):<br />
<br />
TEXT<br />
RODATA<br />
DATA<br />
BSS<br />
<br />
No ambiente de execução há também mais duas "sessões":<br />
<br />
HEAP<br />
STACK<br />
<br />
A ordem do Heap e da Pilha depende de como o espaço de memória foi configurado.<br />
<br />
Considerando que o Heap cresce para cima e a Pilha para baixo, a melhor forma de aproveitar todo o espaço da memória é a Pilha iniciando no topo da memória. Porem se a intenção é dividir a memória, talvez seja melhor definir um tamanho para a Pilha e colocá-la antes do Heap.<br />
<br />
Quando o linker gera uma imagem binária, ele copia as sessões do arquivo objeto para esta imagem, porem a sessão BSS não existe fisicamente, pois são de dados não-inicializados, há somente metadados (informação de tamanho). Isto gera um arquivo menor que a imagem na memória.<br />
<br />
Exitem outras sessões, estas normalmente não são copiadas para uma imagem binária. Porem qualquer sessão pode ser descartada utilizando a sessão '/DISCARD/' no arquivo de scritp, que fará com que qualquer sessão atribuída a ela seja explicitamente descarta.<br />
<br />
<br />
<b>Símbolos:</b><br />
<br />
Os símbolos criados pelo linker, por um arquivo de script, são símbolo globais que podem ser acessados em qualquer lugar dentro do programa, tanto em Assembly quanto em Pascal.<br />
<br />
Em Pascal basta definir um procedimento externo com o nome do símbolo, e para obter o endereço utiliza-se o operador '@' que retorna o endereço do símbolo. Pode-se também definir como sendo uma variável externa, mas em ambos os casos deve-se utilizar o operador '@', pois o que nos interessa é o endereço, não o que está no endereço.</div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com0tag:blogger.com,1999:blog-6026066871891924504.post-78929965985336994782013-09-25T12:04:00.002-03:002014-12-24T23:42:00.760-02:00Kernel, fase 4 - Limpando o caminho<div style="text-align: justify;">
Conforme vamos implementando uma coisa ou outra surgem pequenos detalhes que inicialmente nem percebemos, mas que podem se tornar um grande impedimento no futuro. E esse futuro já seria o próximo passo, a implementação dos gerenciadores de memória. Para sanear isso implementei uma nova versão antes...<br />
<br />
<a name='more'></a>O primeiro problema a resolver é justamente o do linker não criar a sessão BSS na imagem do kernel, se bem que isso na verdade não é um problema (é uma vantagem, já que a imagem fica menor). O problema em si é que o bootloader não sabe sobre a sessão BSS e então não atribui corretamente o espaço de memória à imagem do kernel, remontando a sessão BSS e o Heap (ou a Pilha, dependendo da configuração do kernel).<br />
<br />
A maneira com a qual resolvi esse problema foi utilizando os símbolos criados pelo linker, que como pensava são globais, ou seja, podem ser acessados em qualquer parte do código, tanto em Pascal quanto em Assembly. Depois de alguns testes conclui também que é possível utilizar símbolos diretamente na nossa tabela de kernel.<br />
<br />
A tabela de kernel, foi remodelada e agora funciona de modo diferente, ela deixou de ser simplesmente uma tabela que poderia ser "ignorada" passando a ser um cabeçalho de arquivo. Agora não há mais o jmp inicial e a tabela, obrigatoriamente, tem que ser lida para encontrar o ponto de entrada do código.<br />
<br />
O cabeçalho do arquivo do kernel começa no primeiro byte do arquivo, possui uma assinatura e alguns campos fixos, que determinam o seu "tipo", o que possibilita que diversos formatos de arquivos sejam criados com um cabeçalho padrão do sistema.<br />
<br />
Alguns campos foram adicionados na nova tabela, entre eles a Arquitetura, Início e Fim da imagem, Ponto de Entrada, Início das sessões: Code, Data e BSS.<br />
<br />
Os campos de endereços são atribuídos durante a montagem do código Assembly e são automaticamente realocados pelo linker utilizando símbolos criados durante a linkedição. Dessa forma não é necessário se preocupar com o tamanho final da imagem a cada recompilação, pois tudo é feito de automaticamente.<br />
<br />
Devido a essa mudança realizada no arquivo de kernel, o bootloader na versão 0.14 não é mais capaz de carregar o kernel e portanto foi necessário uma nova versão dele. Como já havia notado que algumas informações úteis ficaram de fora dos parâmetros, que são passados ao kernel, resolvi implementar algumas mudanças nesses parâmetros nesta nova versão do bootloader, desta forma já resolvi dois problema de uma só vez.<br />
<br />
O segundo problema é que a única informação sobre a memória inferior que tinhamos era a sua quantidade. Isso nem seria um problema se o boot tivesse ocorrido diretamente pela BIOS, mas como ainda utilizamos um boot-parasita e teremos que utilizar o modo real, para as chamadas de BIOS, não podemos simplesmente sobrescrever o que estiver na memória inferior.<br />
<br />
Abaixo os snapshots da nova versão do bootloader (no modo de depuração), observe os dados coletados do arquivo de kernel e os parâmetros passado a ele:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/loadlos.015-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/loadlos.015-1.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/loadlos.015-2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/loadlos.015-2.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/loadlos.015-3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/loadlos.015-3.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/loadlos.015-4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="263" src="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/loadlos.015-4.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/loadlos.015-5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/loadlos.015-5.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/loadlos.015-6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/loadlos.015-6.png" width="400" /></a></div>
<br />
<br />
Não tirei um snapshot no modo normal, pois como o kernel ocupa toda a tela nada aparecerá alem das informações impressas pelo kernel, como segue abaixo:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/system.005.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://sites.google.com/site/luckylabshome/files/luckyos/snapshots/system.005.png" width="400" /></a></div>
<br />
<br />
Bem, esse foi o resultado de uma passadinha rápida por aqui, agora acho que a próxima só em novembro mesmo.. ;)<br />
<br />
<br />
<b>Edit: </b><i>Após organizar os repositórios no github, modifiquei a funcionalidade dos pacotes (seguindo os repositórios), assim o pacote "kernel" tem somente o kernel do SO, e o pacote "system" possui agora todas as partes necessárias para funcionamento do sistema (ex.: kernel, bootloader, shell, ...).</i><br />
<i><br /></i>
<b>Download dos fontes e binários:</b><br />
<div>
<ul style="text-align: start;">
<li><a href="https://sites.google.com/site/luckylabshome/files/luckyos/packages/loadlos.015.zip" target="_blank">LoadLOS.015</a> (necessário para carregar o novo kernel);</li>
<li><a href="https://sites.google.com/site/luckylabshome/files/luckyos/packages/kernel.005.zip" target="_blank">Kernel.005</a>;</li>
</ul>
<ul style="text-align: start;">
<li><a href="https://sites.google.com/site/luckylabshome/files/luckyos/packages/system.005.zip" target="_blank">System.005</a>;</li>
</ul>
</div>
<div style="text-align: right;">
<br />
Próximo - <a href="http://lucky-labs.blogspot.com.br/2014/12/kernel-fase-5-adornando-o-caminho.html">Kernel, fase 5 - Adornando o caminho</a> >></div>
<div style="text-align: left;">
<br />
<< Anterior - <a href="http://lucky-labs.blogspot.com.br/2013/09/kernel-fase-3-construindo-alicerces.html">Kernel, fase 3 - Construindo alicerces</a></div>
<div style="text-align: center;">
<br />
Voltar a <a href="http://lucky-labs.blogspot.com.br/2013/03/faca-seu-proprio-sistema-operacional.html">Faça seu próprio sistema operacional</a>.</div>
<br /></div>
Master Luckyhttp://www.blogger.com/profile/05458182880016698288noreply@blogger.com2