Gostaria de convidar alguns voluntários

Aqui é o lugar para bater papo e trocar idéias sobre os mais variados assuntos

Moderador: Moderadores

Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Gostaria de convidar alguns voluntários

Mensagem por Stanis Luksys »

Olá pessoal, tudo bem?

Eu sei que aqui é um bom local para procurar por profissionais que manjam de xHarbour, e como é uma linguagem opensource, a qual me identifico muito, pois minha base profissional é de fato o Clipper, eu gostaria de convidar programadores que tiverem tempo disponível para participar de um mini-projeto meu, mais voltado ao aprendizado, ao espírito aventureiro, do que profissional propriamente.

Eu acabei esta semana de compilar todo um sistema básico Linux, mas básico mesmo, completamente cru, tendo com guia os ensinamentos do Linux From Scrach. Para quem não conhece, este é um projeto que ensina a criar uma distribuição GNU/Linux a partir dos códigos fontes de cada programa, do Kernel ao Bash, normalmente desenvolvidos em C. Evidente que por aventura realizei algumas alterações, incluindo alguns pacotes e retirando outros. Até me aventurei a alterar umas coisinhas nos códigos, traduzir as mensagens, essas coisas simples só pra dar uma fuçada.

Mas enfim, posso dar maiores detalhes depois, o que eu queria era montar um grupo de camaradas para desenvolver umas ferramentas legais, em xHarbour e C, a principio modo texto. Sim, é para reinventar a roda mesmo, fazer programas que já existem, mas numa linguagem que nunca foram feitos.

Acho que para quem quiser participar, é uma boa oportunidade de se aprofundar no conhecimento sobre processos do sistema opercional e acima de tudo, numa programação de mais baixo nível para tarefas simples, e nós sabemos que o xHarbour pode fazer isso. Eu mesmo estava tentando criar um programinha, que um shell script ja resolveria, mas depois de analizar a situação, cheguei na conclusão que minha maior facilidade seria fazer em xHarbour, então baixei os fontes lá e compilei, e ficou jóia!

Bom, é isso. Para começar eu planejo fazer um gerenciador de pacotes, o qual ainda estou estudando qual seria o melhor método entre os já disponíveis. Para quem não entende nadinha de linux, o gerenciador de pacotes é um "instalar e remover programas", o que no linux é um pouco mais complexo por que os programas compartilham bibliotecas e criam dependências mútuas ao invés de criarem uma pastinha só para eles.

Enfim, eu gostaria de fazer isso em xHarbour, e se alguém tiver tempo e coragem pra enfrentar essa tarefa, mesmo que entenda pouco ou nada de linux, eu posso ajudar com um basicão, inclusive disponibilizando já os códigos que usei pra montar o sistema, bem como ele funcionando (cerca de 500MB).

Uma partiçãozinha de 2 ou 3GB no HD também não mata ninguém né?

Abração e até mais!

PS: Apesar de ser xHarbour, não sei se esta é a melhor sessão, talvez seja a bate-papo. Enfim, qualquer problema, por favor mudem. Postei aqui porque deve ter maior visibilidade... rsrs


------
Fugindo um pouco do assunto, quem ainda acha que o linux é "complicado demais", pode ver esse videozinho meu no youtube, para comprovar que essa época ja passou.

Editado pela última vez por Toledo em 26 Ago 2010 19:30, em um total de 4 vezes.
Razão: O presente tópico foi movido da seção xHarbour, uma vez que seu conteúdo não tem relação com os objetivos daquela seção. E também foi editado para colocar a tag [ youtube ].
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: Gostaria de convidar alguns voluntários

Mensagem por Stanis Luksys »

Toledo,

Entendo que tenha sido movido, mas se não me engano postei na sessão xHarbour, e não na Clipper... rs.

De uma certa forma se enquadra mais em "Programação e desenvolvimento" do que em "Diversos".

Vamos ver se alguém adere ao meu chamado né... Estou empolgado cm essa idéia e já stou até começando alguma coisinha aqui... rs

O link do yutube não era minha intenção mesmo que aparecesse o vídeo na página, pois não se tratava do assunto em questão... Era só um parêntese opcional.

Valeu Toledão!
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
Toledo
Administrador
Administrador
Mensagens: 3133
Registrado em: 22 Jul 2003 18:39
Localização: Araçatuba - SP
Contato:

Re: Gostaria de convidar alguns voluntários

Mensagem por Toledo »

Stanis, já corrigi o texto da moderação!

Bom, eu infelizmente ainda não conheço nada de linux, então não poderei ajudar muito. Meu HD não cabe mais nada, então particionar vai ficar complicado.
Estou pensando em montar um outro micro para mexer um pouco com Linux (PHP, MySQL, Postgres), ai sim eu entro no projeto.

Stanis, muito boa sua iniciativa... parabéns! E aproveitando, fico contente com o seu retorno... a gente já estava sentindo sua falta.

Abraços,
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: Gostaria de convidar alguns voluntários

Mensagem por Stanis Luksys »

Haha!

Mas mesmo sumido, saiba que se você ver seus bancos de dados aí, vai ver que andei dando uma passeada pelo forum neste meio tempo. O Clipper é uma paixão da gente né. É o primeiro amor sabe... rs

O que me prende ao xHarbour é aquele lance assim, você precisa fazer algo e pensa, nossa, se fosse em Clipper eu faria em 5 minutos... Sabe como é né?

Bom, quanto ao projeto, é coisa simples, como eu disse, ele visa o aprendizado. Posso afirmar que quem participar terá muito a ganhar profissionalmente, em termos de conhecimento... E isso é o que vale mais né?

Abraços
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Stanis Luksys
Colaborador
Colaborador
Mensagens: 1329
Registrado em: 18 Jun 2005 03:04
Localização: São Paulo
Contato:

Re: Gostaria de convidar alguns voluntários

Mensagem por Stanis Luksys »

Puxa, eu não consigo editar o primeiro post né?

Eu queria trocar aquele vídeo por este porque saiu muito do assunto, mas então aqui vai o vídeo verdadeiro do sistema citado:



Abraços
Stanis Luksys
sites.google.com/hblibs

Apoiar e se utilizar de projetos opensource não é uma questão de boicote, mas sim de liberdade.
Utilize, aprimore e distribua.
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Gostaria de convidar alguns voluntários

Mensagem por bencz »

A idéia é muito boa, mas, pq não tentar criar um DO 0, basicamente em xHB/HB ?

http://www.osdevbrasil.net/
http://wiki.osdev.org/Expanded_Main_Page
http://forum.osdev.org/
http://wiki.osdev.org/Tutorials
http://wiki.osdev.org/Bare_Bones

é possivel criar um S.O até em C#, pq não em xHb ?
http://wiki.osdev.org/C_Sharp_Bare_Bones

Sendo que é possivel criar um sistema basico em C e Assembly, para dar o boot de tudo, e depois, começar as chamadas dos sistemas em xHb
Mas, eu por conhecer um pouco sobre o Code-Gen do compilador do xhb, teriamos um problema meio grande, até mesmo para a sua idéia de desenvolver um sistema com base UNIX, os códigos e processos do xhb, após compilados, se tornam muito grandes e lentos, para um S.O você precisa de algo mais rapido e funcional, lembrando que estamos a trabalhar com MT.
Imagem
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Gostaria de convidar alguns voluntários

Mensagem por bencz »

Considerando também, que o compilador do HB é o GCC do Mingw ( no windows ) e no linux é o GCC também, então, basta recriar um monte de coisas, aos poucos, ou mesmo, criar um boot em multiestagios, e fazer o kernel um EXE mesmo, mas, com as funções e tratamentos todas re-escritas, sem utilizar o padrão já criado para o Linux/Windows/Mac

Por exemplo, a função QOut ( ? ), simplesmente, ou, tentar re-escrever ela em C, para uma função equivalente ao printf ou, como for...

Então, a possibilidade de criar um S.O do 0, utilizando harbour, é possivel também, acho até mais complexo e interessante

Veja o material, link e anexo:
http://www.cs.bham.ac.uk/~exr/lectures/ ... os-dev.pdf
Anexos
WritingAnOs.pdf
(400.55 KiB) Baixado 85 vezes
Imagem
Avatar do usuário
bencz
Usuário Nível 4
Usuário Nível 4
Mensagens: 524
Registrado em: 28 Abr 2012 17:36
Contato:

Gostaria de convidar alguns voluntários

Mensagem por bencz »

Uma outra saida/possibilidade seria desenvolver um compilador de xBase simples, onde ele gera arquivo binario contendo as informações corretas, diretamente em assembly, e não em C como o compilador de Harbour faz, que gera um código em C e depois o compilador de C compila o código, onde o compilador de harbour gera 'instruções' para a propria VM do harbour, para representar aqui como exemplo, vou mostrar um simples código do harbour, e seu referente código em C, gerado pelo compilador de harbour.

Código: Selecionar todos

function start()
? "Ola mundo"
return nil
Este código compilado para C 'puro', gera o seguinte código....

Código: Selecionar todos

/*
 * xHarbour build 1.2.1 Intl. (SimpLex) (Rev. 9592)
 * Generated C source code from <main.prg>
 * Command: /gc3 main.prg 
 * Created: 2013.10.11 13:57:52 (XCC ISO C Compiler 2.70)
 */

#include "hbvmpub.h"
#include "hbxvm.h"
#include "hbapierr.h"
#include "hbinit.h"

#define __PRG_SOURCE__ "main.prg"

HB_FUNC( MAIN );
HB_FUNC( START );

HB_FUNC_EXTERN( QOUT );

#undef HB_PRG_PCODE_VER
#define HB_PRG_PCODE_VER 10

#include "hbapi.h"

HB_INIT_SYMBOLS_BEGIN( hb_vm_SymbolInit_MAIN )
{ "MAIN", {HB_FS_PUBLIC | HB_FS_LOCAL | HB_FS_FIRST}, {HB_FUNCNAME( MAIN )}, &ModuleFakeDyn },
{ "START", {HB_FS_PUBLIC | HB_FS_LOCAL}, {HB_FUNCNAME( START )}, &ModuleFakeDyn },
{ "QOUT", {HB_FS_PUBLIC}, {HB_FUNCNAME( QOUT )}, NULL }
HB_INIT_SYMBOLS_END( hb_vm_SymbolInit_MAIN )

#if defined( HB_PRAGMA_STARTUP )
   #pragma startup hb_vm_SymbolInit_MAIN
#elif defined( HB_DATASEG_STARTUP )
   #define HB_DATASEG_BODY    HB_DATASEG_FUNC( hb_vm_SymbolInit_MAIN )
   #include "hbiniseg.h"
#endif

HB_FUNC( MAIN )
{

   do {
	hb_xvmBaseLine( 1 );
	/* *** END PROC *** */
   } while ( 0 );

   hb_xvmExitProc();
}

HB_FUNC( START )
{

   do {
	hb_xvmBaseLine( 2 );
	hb_xvmPushSymbol( symbols + 2 );
	hb_xvmPushNil();
	hb_xvmPushStringConst( "Ola mundo", 9 );
	if( hb_xvmDo( 1 ) ) break;
	hb_xvmLineOffset( 1 );
	hb_xvmPushNil();
	hb_xvmRetValue();
	/* *** END PROC *** */
   } while ( 0 );

   hb_xvmExitProc();
}
Dentro da função start, temos os 'opcodes' das instruções da VM do harbour, vendo isso, temos algumas possibilidades, como por exemplo, portar tudo como o java funciona, onde apenas se altera a VM, e o código continua o mesmo, ou mesmo, como dito no inicio do tópico, desenvolver um compilador para uma sintaxe mais simples do xbase, para assim então, desenvolver um S.O em xBase/Clipper/Harbour e etc, onde o compilador iria gerar código binario puro, assembly já em opcodes e etc...
Imagem
Responder