Home page da disciplina MAC 324 Mapa do sítio da disciplina


MAC 324: aulas de 19fev98 e 02mar98
Características importantes do Software que usamos


Alguns avisos:

Os alunos poderão usar as instalações dos Laboratórios do LARC. O LARC dispõe de Linux e de Java. Agradecemos a gentileza do Prof. Wilson Ruggiero pela disponibilização das instalações do LARC.

A utilização do LARC será nas terças, das 10:00 às 12:00 e nas sextas, das 16:00 às 18:00.

Todos devem preencher o primeiro questionário da disciplina..

O HyperNews do IME agora está equipado com um botão de busca (procure pela lupa). Isto é muito útil! Experimente buscar as mensagens na página de testes que contém a palavra Pai.

Foi instalada a página de Pronto-Socorro de Instalação do Linux. A partir desta página Você acessa um FAQ sobre os primeiros passos para a instalação do Linux.


Enquanto estas aulas foram dadas, foi lançado, em 23 fev98, o Movimento Open Source numa tentativa de influenciar o mundo empresarial para incrementar o uso de software de fonte aberta e até mesmo para adotar a abertura dos seus próprios programas fontes. Os argumentos principais são a força da parceria com a comunidade mundial e o estabelecimento de confiança pública nos softwares usados. Dois argumentos de peso, muito bem explicados e documentados!

Tarta-se de um movimento muito sério, apoiado pela Netscape, e que teria sido impensável alguns anos atrás, antes do advento e disseminação do Linux. Acredita-se que este movimento dará um novo impulso à qualidade do software que usamos e também à disseminação dos sistemas operacionais com a fonte aberta, como o Linux.

O site do Movimento, Open Source: the Future is Here, é extremamente informativo e serve de fonte de informação alternativa (muito melhor e mais rica) às notas destas duas aulas.

Recomendo fortemente a leitura daquela página!

Se Você quiser entender como os softwares de fonte aberta são desenvolvidos pela comunidade da Internet leia também o artigo The Cathedral and the Bazaar.


A finalidade destas duas aulas é bater um papo sobre as características importantes do software que usamos no dia a dia e apontar as opções disponíveis. Chamamos a atenção desde já para a importância do exercício consciente desta opção, já que estes softwares são usados com enorme frequência e mais cedo ou mais tarde cada um sentirá, em geral de forma aguda e contundente, as eventuais falhas causadas por uma opção inadequada ou precipitada.

Lembre-se de que não há solução perfeita para o uso de software, todos os sistemas tem vantagens e desvantagens. O importante é que cada usuário faça uma escolha ponderada do software que vai usar, tentando minimizar os aborrecimentos futuros. Isto é particularmente importante para profissionais, como Vocês serão.

Estas aulas servem ao mesmo tempo para apontar inúmeros programas que usam com abundância as estruturas de dados que encontraremos na disciplina.


Na primeira aula foi feita uma retrospectiva da história do Unix, desde a sua concepção em 1969. Revistamos o Multics, o Unix da Bell AT&T, o Unix de Berkeley (BSD), o papel da Sun, o Minix e o nascimento do Linux. Infelizmente não encontrei uma página na teia que contenha este histórico todo. Se Você souber de uma, me avise, por favor, para eu poder incluir aqui uma referência a ela. Enquanto isto, Você encontra partes da história contada nos livros abaixo:

A.S. Tanenbaum
Operating Systems: Design and Implementation
Prentice-Hall, Inc., 1986

S.J. Leffler, M.K. McKusick, M.J. Karels and J.S. Quarterman
The Design and Implementation of the 4.3BSD UNIX Operating System
Addison-Wesley Publishing Company, 1990

M. Welsh and L. Kaufman
Running Linux (2nd edition)
O'Reilly & Associates, Inc., 1996,
Este livro está traduzido para o português, como "Dominando o Linux".

Existem muitas modalidades de software, de acordo com os direitos que a gente adquire (ou perde) quanto à sua redistribuição, de acordo com a forma de retribuir o autor do software e de acordo com a quantidade de informação precisa que obtemos sobre a funcionalidade e a especificação dos arquivos usados pelo soft. Uma boa descrição das características do software comercial, shareware, freeware, software livre e software de domínio público Você encontra na página: Software Livre - Definição e Direções. Nesta página Você encontrará também muitos apontadores interessantes para aprofundar o seu entendimento do assunto. Outro repositório de idéias e apontadores sobre software livre Você encontra na página de Software Livre da Insite ou na página da Free Software Foundation.

Existe ainda o conceito de software aberto que não chega necessariamente à disponibilidade da fonte mas que conta com especificações muito precisas quanto ao seu comportamento e quanto a sua forma de codificar os dados do usuário. Muitas linguagens de programação são exemplos desta modalidade.

Queremos chamar a sua atenção aqui que é possível ganhar bastante dinheiro com software livre devido ao interesse cada vez maior pela sua utilização por entidades e pessoas que necessitam de algum tipo de assistência. Isto, aliás, está dentro de uma filosofia de uso e distribuição de software que Você provavelmente não conhece bem. Maiores detalhes podem ser encontrados, num artigo recente da Revista Exame: Mundo Digital, ou nas páginas já apontadas.


Na segunda aula revimos algumas características do software que devem ser levadas em conta ao exercitarmos a opção por um ou outro sistema.

Preço:

um fator importante na aquisição do software e na determinação da política de marketing das empresas. Lembre que existe software comercial gratuito (Internet Explorer) e existe software livre pago (Linux na Red Hat).

Graus de liberdade para o uso do software:

posso testar e jogar fora se não gostar? Posso emprestar aos amigos? Quantos aparelhos (hard locks) vou ter que usar para satisfazer o autor?

Facilidade para preservar a perenidade da informação:

um aspecto extremamente importante, afinal, eu vou querer recuperar os meus dados!

Existem dois grandes inimigos da perenidade: o meio físico em que o arquivo é armazenado (ninguém mais usa disco flexível 5 e 1/4, para não falar de cartão perfurado) e o formato binário (quase sempre um segredo protegido pelo proprietário) usado pelo software para codificar os arquivos do sistema. O formato ASCII puro, eventualmente intercalado com comandos numa linguagem aberta, como é o caso das páginas html, é a maior garantia da perenidade da sua informação.

Qual o grau de obsessão de troca de versão do autor?

Todo software deve evoluir e portanto deve ser sujeito a revisões de versões. Infelizmente alguns fabricantes trocam de versão regularmente, em geral uma vez por ano, mesmo que isto não seja necessário, para testar a fidelidade dos usários e exercitar um pouco a caixa registradora.

Qualidade e estabilidade do software:

software livre costuma ter uma qualidade excelente, refletida numa estabilidade inimaginável poucos anos atrás. Existem notícias de servidores Linux que rodaram por 458 dias antes de serem desligados para mudarem de sala. Veja esta notícia, numa página com novidades do Linux debian: Debian Stability.

Extensibilidade, adaptabilidade e aperfeiçoabilidade:

outra característica fundamental. O espírito do Unix, herdado pelo Linux, recebe altas notas em todos estes pontos. Um dos campeões da extensibilidade é o editor emacs, carro chefe do projeto GNU, muito usado por programadores.

Assistência técnica:

uma assistência técnica necessária é a correção de bugs no software. O software livre recebe notas boas neste ítem, embora algumas vezes o autor não tem tempo para atualizar o seu produto. No caso de produtos muito usados numa tal situação sempre se encontra um sucessor para o autor.

Outra modalidade de assistência técnica é o suporte ao usuário. O software livre não dispõe deste serviço em princípio. Existem porém dois substitutos cada vez mais disponíveis: um é a organização de comunidades virtuais para suporte do software, como é o caso da nossa página de Pronto Socorro de Instalação do Linux. O outro substituto é a compra de assistência técnica para o software livre em empresas dedicadas a esta finalidade. Eu suspeito que muitos de Vocês ainda vão ganhar dinheiro desta forma durante suas carreiras profissionais. Veja a página do Movimento Open Source: the Future is Here.

Facilidade de instalação e de aprendizagem do uso:

são características muito importantes para seduzir o usuário. Em geral o software comercial ganha neste quesito sobre o software livre, principalmente no caso de usuários com poucos conhecimentos de informática.

Documentação:

quão acessíveis e quão informativos são as documentações do sistema. Ítem de importância primordial para o usuário com bons conhecimentos de informática e indispensável para o profissional. Ainda neste ítem deve se avaliar a qualidade, agilidade e disponibilidade do sistema de ajuda ao usuário.

Portabilidade e disponibilidade em múltiplas plataformas:

portabilidade é a característica de podermos usar o sistema (ou outro sistema equivalente) em outros computadores e/ou outros sistemas operacionais. A disponibilidade do software em múltiplas plataformas, como é o caso do Linux ou do browser Netscape é um grande passo nesta direção.

Segurança:

quais as facilidades e garantias que o software oferece para aprimorar os aspectos de segurança, integridade e privacidade dos dados e do sistema? Uma questão imperativa, muito complexa, objeto de disciplinas inteiras, lamentavelmente pouco cultivada ainda entre nós.

Facilidade de automação de tarefas:

é a característica de podermos facilmente definir rotinas personalizadas para a execução de determinadas tarefas. Outra vez, o Unix tem altas notas neste quesito. O PERL é um grande campeão na facilitação desta tarefa.
Recentemente fiz uma pesquisa usando o advanced search da AltaVista, para obter uma contagem precisa do número de páginas cadastradas da teia contendo cada um dos nomes abaixo de sistemas operacionais.

Páginas Sistema Fabricante(s)
60.000 multics .
100.000 macos Apple (Macintosh)
250.000 GNU Free Software Foundation
250.000 vms Digital
300.000 solaris Sun
370.000 os/2 IBM
690.000 Linux .
1.570.000 unix .
1.710.000 nt Microsoft
2.070.000 dos Microsoft, Caldera, e outros fabricantes
3.780.000 windows Microsoft

Nesta tabela surpreende o número de páginas na teia mencionando o Linux. Pouco menos do que a metade do NT e pouco menos de que um quinto do Windows! Para efeito de comparação, a Usp é mencionada em 80.000 páginas.

O mundo Unix e o mundo da Internet, em particular o mundo da World Wide Web, abundam de exemplos de softwares livres de amplo uso. Alguns softwares livres notáveis são: Apache (mais da metade dos servidores de teia), PERL (linguagem muito usada para páginas de CGI), emacs (editor extensível), X-windows, Linux, bash (interpretador de comandos), TeX (sistema sofisticado para formatar textos, muito usado por cientistas), gnucc (compilador C, C++), gzip (compressor de arquivos), inúmeros utilitários do Unix, Mosaic (browser que popularizou a teia), DNS (banco de dados distribuído pelo mundo inteiro usado na determinação dos endereços de máquinas na Internet, este software não tem concorrentes comerciais), sendmail (sistema original de expedição de e-mail), qmail (um descendente mais moderno),

Para avaliar melhor a quantidade de software livre existente, visite as páginas da Free Software Foundation e do Movimento Open Source: the Future is Here. Visite também o Banco de Dados de Software livre do Linux: The Linux Software Map (LSM) e o espelho de software Linux do Instituto de Física da USP: Servidor de "Software" Linux do IFUSP. Uma bela página de documentação do software livre, usando o sistema "texinfo", disponível no emacs, encontra-se aqui: GNU manuals (and a few others).


Nesta disciplina tentaremos incentivá-lo a usar o sistema operacional Unix, devido às amplas possibilidades de configuração e automação que ele oferece. Em particular, iremos incentivar o uso do Linux, uma implementação completa do Unix e que no momento detém o maior número de instalações no mundo Unix. Ademais, o Linux pode ser obtido gratuitamente, com a fonte completa e com liberdade para a alteração e melhoria da fonte.

Para Você instalar o Linux, recomendamos a leitura prévia de um livro, como, por exemplo:

M. Welsh and L. Kaufman
Running Linux (2nd edition)
O'Reilly & Associates, Inc., 1996,
Este livro está traduzido para o português, como "Dominando o Linux".

Junto com esta etapa, procure se informar na Internet sobre as diversas opções à sua disposição. Uma possibilidade é ler este FAQ: Linux FAQ. Outro ponto de entrada no mundo Linux é pela porta do GUL: Grupo de Usuários Linux do IME, um grupo de alunos de graduação dedicados à disseminação do Linux: Grupo de Usuários Linux IME / USP. Recomendamos ainda Você visitar o espelho de software Linux da Física: Servidor de "Software" Linux do IFUSP.

Caso Você queira ver mais argumentos para se decidir pelo Linux (ou outro Unix que lhe seja disponível), leia estes artigos:

Artigo que apareceu na SunWorld, uma revista da empresa Sun: Linux lines up for the enterprise.

Uma história sobre o uso do Linux no filme Titanic: A Titanic Challenge to Microsoft.

Outro artigo interessante: Could You Get Fired for Choosing Linux?

Uma página muito rica e convincente é a home page da Red Hat: Red Hat Software Inc.


E não se esqueça: se encontrar dificuldades na instalação do Linux, experimente recorrer ao Pronto-Socorro de Instalação do Linux. Se Você for um expert na matéria, por favor visite aquela página e ajude os iniciantes, lembrando que mui provavelmente alguem te ajudou no começo também!


Sugestões para melhorar esta página são particularmente bemvindas.


Home page da disciplina MAC 324 Mapa do sítio da disciplina

e-mail: Imre Simon <is@ime.usp.br>

Last modified: Sun Mar 22 18:59:46 EST 1998