Abstract
Este documento é destinado a pessoas iniciantes no mundo Unix/Linux enfocando o Linux como plataforma de desenvolvimento de software e como servidor web. Listei diversos aplicativos disponíveis gratuitamente que costumo usar no dia a dia. Desta forma, pode-se ter uma visão rápida e global do mundo Unix. Nesta página são apresentados 4 itens:
- 1. Motivos pessoais para abandonar a plataforma Microsoft
- 2. O Linux como plataforma de desenvolvimento de software
- 3. O Linux como webserver
- 4. Sensação pessoal após ter migrado de plataforma.
1.1 - gerenciamento de memoria:certos programas C abertos não rodavam no ambiente DOS/windows mesmo que passassem pela compilação: turboC, visual C++, etc.1.2 - ausência de ferramentas de desenvolvimento de software:é necessario comprar.1.3 - eterna dependência:necessidade de compras constantes de compiladores a cada nova versao de sistema operacional. A Microsoft nao respeita os seus proprios formatos: vide word97 x word6.
2.1 - diversos compiladores/interpretadores disponíveis. Por exemplo:2.2 - edição de programas:
- gcc (o melhor compilador C),
- Perl,
- shell's, etc.
2.3 - gerenciamento de versões: RCS.emacs - entre outras coisas, faz a identação automaticamente durante a edição do programa o que permite visualizar erros de digitação rapidamente.
- Pode-se controlar a geração de versões, recuperar versões antigas, comparar diferenças entre uma versão e outra, marcar os autores das atualizações, etc.
2.4 - interligacao de software:
- pipes: ligar a saída padrão de um programa à entrada padrão de outro
- arquivos texto: a maioria dos programas podem ser comandados por interface texto, o que permite a criação de scripts. Por exemplo: o browser lynx que pode ser manipulado por outros programas.
- emacs: além de ser um ótimo editor de programas (adaptável a diversas linguagens) fornece uma interface para debugers, disparo de compilação, geração de documentos latex, etc. O emacs é altamente configurável e possibilita a criação de macros em Lisp.
- perl: Esta linguagem nasceu no mundo Unix e possui interface com diversos pacotes conhecidos no Unix (ex: GDBM).
- shells: Os comandos utilizados pelo usuário normal podem ser transformados em um arquivo-programa (vide arquivos .bat do DOS).
3.1 - scripts cgi em perl; por que perl?
- manipulacao de strings através de expressões regulares. Um script CGI basicamente faz uma manipulação de strings: obtém os parâmetros passados do ambiente (env), acessa um banco de dados e formata o resultado gerando uma página HTML. Todo este processo envolve busca de padrões dentro de uma string (dada por uma expressão regular: exemplo - todas palavras que começam com uma determinada string e terminam com outra string, etc.) e substituição de strings por outras; estas tarefas são facilmente gerenciadas pelo Perl. Esta característica por si só já faz com que seja muito mais rápido escrever programas em Perl do que várias outras linguagens como o C, e assemelhados.
- hash - estrutura tipo dicionário: chave e conteúdo. Semelhante a uma array, só que no lugar do índice como um número pode ser, por exemplo, uma string.
- as hashs podem ser mapeadas em bancos de dados "leves" (gdbm, sdbm). Este tipo de banco de dados não possui interface SQL o é muito bom dependendo da aplicação. Este tipo de banco de dados apenas relaciona uma chave com o seu conteúdo. Toda a busca e manipulação dos dados pode ser feita pelo Perl.