Projeto de Documentação Rede Livre

Faz bastante tempo, eu havia escrito um material relativamente grande sobre Redes de Computadores, Gerenciamento, Implementação de Serviços de Alto Nível e Segurança para um público específico que fazer uso em um curso.

O material em algumas partes está desatualizado, é claro, mas creio que esta seja uma grande oportunidade para mobilizar a todos para que inicialmente coloquem toda a documentação num Wiki, e posteriormente começem a colaborar abrilhantando os documentos.

Creio que seja de grande valia para todos, afinal, pode servir como uma fonte centralizada de estudos, não somente para os cursos, mas para todos que desejarem obter este nível de informação.

Portanto, fica aqui meu apelo para que os interessados entrem em contato com o Gabriel (criador do Blogger) para que possamos fazer este trabalho em conjunto.

Obrigado,

- Cassio

Ambiente Linux-like no Windows

Para aqueles que precisam de alguma forma utilizar o Microsoft Windows por dependência de algum software relacionado ao dia-a-dia mas não querem deixar de lado muitas facilidades que padrões POSIX oferecem, o Cygwin parece uma solução bastante interessante.

O objetivo do Cygwin é criar um ambiente Linux-like dentro do Windows permitindo que diversas aplicações possam ser instaladas sobre a própria plataforma. O mais interessante é que muitas aplicações estão, de fato, disponíveis.

Eu particularmente utilizei o Cygwin durante algum tempo, garantindo que pudesse fazer uso do GNU Build System (para quem não conhece, leia "Conhecendo o autoconf e automake") dentro do Windows Vista quando utilizava o laptop na bateria (infelizmente existem muitas optimizações para controle de energia feitas entre fabricantes e Microsoft, e eu não poderia perder minhas 7 horas de autonomia).

Desta forma, eu poderia usar o Eclipse/Emacs completamente integrado com as ferramentas, fazendo com que meu dia-a-dia de desenvolvimento não fosse tão contrastante, e realmente, a coisa funciona.

Talvez uma pergunta, por que não usar algum virtualizador? A resposta é simples, virtualizadores consomem bastaaaaaaante recurso do equipament, e isso conseqüentemente caíria sobre o tempo de autonomia da bateria.

Mas bem, a instalação do Cygwin é bastante simples. Um instalador é copiado diretamente do site www.cygwin.com e a partir dele são categorizados todos os softwares (similar a instalações antigas de distribuições GNU/Linux) para que possam ser instalados.

Depois do processo de instalação, existe um shell do Cygwin, mas as ferramentas, dentro do possível, também ficam disponíveis através do cmd.exe. É possível trabalhar inclusive com o X Window System, mas pra mim já seria demais :-)

O mais importante, no meu caso, é que o Cygwin emula toda a API de desenvolvimento por instalar também a (g)libc. Desta forma, tanto o código de Hello world quanto o Makefile funcionariam perfeitamente dentro do Windows.

Bom, estes são meus 50 centavos!

- Cassio

Conhecendo o autoconf e automake

Complementando a postagem entitulada "Resolvendo dependências com o auto-apt", os três passos básicos para a instalação de um programa a partir do código fonte são gerados através de ferramentas GNU, dentre as mais importantes estão autoconf, automake e libtool.

Estas ferramentas possuem arquivos próprios de entrada que muitas vezes não são distribuídos pelos pacotes de software: configure.ac e Makefile.am.

O arquivo configure.ac possui instruções de macros (M4) definidas pelo usuário, permitindo que o autoconf ao ser chamado crie um arquivo de saída, com instruções em shell script, denominado configure.

Este arquivo, por sua vez, fará verificações de bibliotecas, cabeçalhos e qualquer outra particularidade que o usuário definiu para personalizar o processo de compilação do software. A entrega (saída) do configure é gerar os arquivos necessários para compilação de acordo com os parâmetros enviados a ele, em especial, os Makefiles.

A ferramenta automake, não menos importante, é responsável por ler o Makefile.am e criar uma saída denominada Makefile.in. Esta saída, por sua vez, será utilizada pelo configure para criar os Makefiles (invocados pelo comando make e make install).

Para quem desejar aprofundar-se no assunto, exportando os códigos criados para fazer uso destas ferramentas de desenvolvimento, chamadas GNU Build System, existem ótimas referências:

[1] http://www.gnu.org/software/autoconf;
[2] http://www.gnu.org/software/automake;
[3] http://sourceware.org/autobook/;

Vale lembrar que é difícil visualizar a necessidade destas ferramentas em projetos pequenos, que possuem poucos arquivos e trabalham somente sob um único sistema operacional. Entretanto, gerenciar vários fontes, portáveis a diversos sistemas operacionais, torna-se inviável sem o suporte fornecido pelas mesmas.

Para finalizar, quem quiser pular as etapas e fazer algo mais simples, escrevendo um Makefile diretamente, eis um exemplo para o programa Hello world, mostrado na postagem "Compilando e executando programas em C no linux":

CFLAGS = -Wall -O3
LDFLAGS =

install: hello

hello: hello.c

clean:
rm -f *.o
rm -f hello


Basta salvar com o nome Makefile e digitar make que o código será compilado. Ao digitar make clean o mesmo é removido. Até!

- Cassio