introdução a informática e sistemas operacionais · introdução a informática e sistemas...

28
Introdução a Informática e Sistemas Operacionais Professor: Alexssandro Cardoso Antunes Software Livre

Upload: lykhue

Post on 12-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Introdução a Informática e Sistemas

Operacionais

Professor: Alexssandro Cardoso Antunes

Software Livre

O que é um Sistema

Operacional ?

Um computador moderno consiste em:

Um ou mais processadores;

Memória principal;

Discos;

Impressoras;

Diversos dispositivos de entrada e saída.

Para gerenciar todos esses componentes é necessária uma camada de

software (sistema operacional).

Sistema OperacionalControla todos os recursos do computador e

forma a base sobre a qual os programas

aplicativos são escritos.

Esconde a complexidade do hardware,

facilitando a vida do usuário (final).

Histórico dos

Sistemas Operacionais

Década de 60

O primeiro sistema a apresentar o conceito de “multitarefa” foi o CTSS

(Compatible Time-Sharing System), desenvolvido pelo MIT.

MIT (Massachussets Institute of Technology), Bell Labs (uma subsidiária

da AT&T) e a General Electric (GE) se uniram para desenvolver o MULTICS

(MULTIplexed Information and Computing Service), sucessor do CTTS.

Ken Thompson (pesquisador da Bell Labs), com base no MULTICS

desenvolveu a sua própria versão do sistema operacional, o UNICS (Uniplexed

Information and Computing Service), posteriormente Unix (linguagem

assembly) para um minicomputador PDP7 (Digital).

Década de 70

Thompson e Dennis Ritchie (também da Bell Labs) reescreveram o

sistema para uma linguagem chamada B, modificada deu origem a linguagem

C, reescrito e portado para um minicomputador PDP11.

A AT&T, onde ambos trabalhavam, licenciou o novo sistema para várias

Universidades (receberam o código fonte) uma vez que não podia

comercializá-lo na época devido às leis americanas antimonopólio.

Histórico dos

Sistemas Operacionais

Década de 70

Da universidade de Berkeley surgiu o BSD (Berkeley Software

Distribution) em 1978, levando a outra vertente de sistemas padrão UNIX.

Ainda havia o compartilhamento do código entre Unix da AT&T e o BSD.

Década de 80

O rompimento do compartilhamento do código ocorreu quando a AT&T

(1983) foi autorizada pelo governo americano a comercializar o sistema que

havia desenvolvido.

O BSD se reestruturou (o código era pertencente a AT&T)

através de contribuições públicas (código fonte) recebidas

pela Internet.

Década de 90

O BSD (início desta década) foi portado para a plataforma Intel 386,

gerando o 386/BSD, primeiro sistema Unix para um computador pessoal a ser

distribuído pela Internet. Consolida-se o que viria a ser chamada licença BSD.

Nascimento da primeira versão do Linux (1994) por Linus Torvalds tendo

como base o MINIX desenvolvido pelo professor Andrew Tanenbaum na

década de 80.

Linus Torvalds

Linus Torvalds

Criador do Linux (núcleo).

Engenheiro de Software.

Empregado da Fundação Linux.

Desenvolve, protege e padroniza o

Linux.

http://www.linuxfoundation.org/

Página familiar (blog).

torvalds-family.blogspot.com

cs.helsinki.fi/u/torvalds

Jon A. Hall

Jon A. Hall

(maddog)

Diretor Executivo da Linux

Internacional.

Associação sem fins lucrativos

(empresas renomeadas de TI).

Ajuda de forma econômica os

programadores bem como o

Linux através de divulgação

(feiras, fóruns, ...).

http://www.li.org/

Figura respeitada no movimento de

Software Livre.

Richard M. Stallman

Richard M. Stallman

Criador da Fundação e Movimento

Software Livre.

http://www.fsf.org/

Criador (idealizador) do Projeto

(sistema operacional) GNU.

http://www.gnu.org/

Autor da GNU (General Public License),

GNU GPL ou GPL.

Página pessoal (blog).

http://www.stallman.org/

http://www.fsf.org/blogs/rms/

Código Aberto versus

Software Livre

Código Aberto

O produto de código aberto é aquele em que existe, à

disposição do usuário, o código do produto em

linguagem de programação, de forma gratuita ou a

custos razoáveis.

Software Livre

É um tipo de software de código aberto.

Na prática, é um movimento, um tipo de software

produzido sob a licença GPL e derivadas.

Portanto, as abordagens não são sinônimas...

Produção do Software

de Código Aberto

O software de código aberto é um modo de produção que tem

seu foco na colaboração entre pessoas.

Com o advento da Internet, impulsionou a produção

(colaboração) e divulgação do software de código aberto.

Os códigos são armazenados em servidores juntamente com a

documentação, arquivos de configuração e versões.

A WIKI (http://www.wikipedia.org/) é um exemplo de

ferramenta de colaboração, onde é possível contribuir através

de informações (textos, figuras, links, índices, etc...).

A maioria dos desenvolvedores de software de código aberto

são profissionais de TI (tecnologia da Informação) que doam

seus trabalhos (códigos) de forma voluntária aos projetos

emocionalmente envolvidos.

Kernel

Aplicativos

Comando de linha GUI

Kernel

UCP DispositivosMemória

Para que os aplicativos

tenham acesso a outras

partes da máquina, como

memória, teclado, discos,

CPU, etc, precisam de

uma camada (kernel) que

coordene estes, de modo

que todos os aplicativos

e sistemas funcionem ao

mesmo tempo.

Kernel, trata-se da

camada mais próxima ao

hardware.

Software

Proprietário

Modelo de negócio

Possui como pré-requisito a geração de lucros.

Quanto menor a divulgação do seu meio de produção,

maior será vantagem competitiva (comercial).

A proteção do código fonte é uma característica essencial.

O Código fonte são linhas de código que, interpretadas ou

compiladas, dão origem ao programa executável ou código

binário. É escrito em uma linguagem de programação, como por

exemplo, Pascal, C, C++, Java.

Existem investimentos em ações de marketing, mão de

obra especializada (analistas, projetistas, programadores,

suporte, ...) bem como infraestrutura (instalações físicas,

servidores, estações de trabalho, links, ...)

Software

Proprietário

Possíveis desconfortos:

Custo de software (licenças) e de hardware (renovação

da infra-estrutura a cada nova versão);

Alienação (engessamento) por parte da empresa

(pública e/ou privada) ao fabricante do software

proprietário;

Prejuízo social, pois não estará incentivando a

liberdade de expressão e o compartilhamento de

conhecimento;

Em caso de migrações, poderá ocorrer a perda de dados

(conversão).

Software Gratuito

Existem programas que são distribuídos de forma gratuita, mas

que não incluem o código fonte.

Exemplos: freeware e shareware.

O freeware tem seu código executável distribuído gratuitamente e

não contém restrições de uso, mas pode ser uma versão menos

completa de um produto comercial.

O shareware geralmente funciona por um tempo, mas requer um

pagamento, na maioria das vezes simbólico, para continuar

funcionando ou eliminar propagandas que surgem no meio de

sua operação (execução).

Modificações ou aprimoramentos dependem do autor, portanto,

não há garantias de que será continuado bem como estará

disponível em futuras versões.

Licença BSD

Usualmente, pode ser feito quase tudo com o código, até mesmo

incluir em um software proprietário e vendê-lo.

Toda a redistribuição do código fonte deve conter a nota

(indicação de que foi criado na universidade de Berkeley) e

deixar inteira a mesma sobre a propriedade do código fonte.

Toda a redistribuição em forma binária deve ser acompanhada

da nota em sua documentação ou outros materiais que

acompanham o produto.

Não podem ser usados nem o nome da universidade nem de seus

colaboradores em propaganda de promoção de produtos

contendo código sob esta licença, exceto em caso de permissão

escrita.

http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5

http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6

Licença GPL

Originalmente idealizada por Richard M. Stallman.

Uma vez usado o código, este contamina o produto final e

o transforma em código aberto (cláusula viral).

Disponibilidade do código fonte.

Não é permitido distribuir um produto, seja de forma

gratuita ou não, e impedir que outros tenham acesso ao

código fonte.

São do tipo copyleft, exigem que toda cópia, modificação e

inclusão do produto em outro sejam passadas adiante com

os mesmos direitos (trabalhos derivados).

http://www.gnu.org/licenses/gpl.html

Licença GPL

A intenção no GPL é que “free” tenha o sentido de liberdade, ou

seja, a liberdade de estudar e modificar o código fonte.

Não há na licença a intenção de que o software seja gratuito.

Liberdades fundamentais defendidas pela Licença GNU GLP:

A liberdade de executar o programa, para qualquer propósito

(liberdade número 0);

A liberdade de estudar como o programa funciona, e adaptá-

lo para as suas necessidades (liberdade número 1). Acesso ao

código-fonte é um pré-requisito para esta liberdade;

A liberdade de redistribuir cópias de modo que você possa

ajudar seu próximo (liberdade número 2);

A liberdade de aperfeiçoar o programa e liberar os seus

aperfeiçoamentos, de modo que toda a comunidade se beneficie

(liberdade número 3). Acesso ao código-fonte é um pré-requisito

para esta liberdade.

Licença OSI

A iniciativa da OSI (Open Source Initiative) é indicar licenças

que permitem o uso híbrido (software proprietário e

software de código aberto).

A cláusula viral (GPL) influenciou a criação desta iniciativa,

uma vez que restringe as empresas a participarem de

projetos de software de código aberto.

Influenciou na propagação/desenvolvimento do GNU/Linux

através da utilização do X11 (distribuições Linux).

Outras licenças compatíveis (requisitos OSI)

http://opensource.org/licenses/alphabetical

Lista de licenças (compatíveis ou incompatíveis GPL)

http://www.gnu.org/licenses/license-list.html

Sustentabilidade em

Software de Código Aberto

Vendas de CDs e DVDs

http://linuxcentral.com/_v3/

Instalação e Manutenção

Primeiras distribuições (difíceis de usar, modo texto).

Suporte e Consultoria

Processos de Missão Crítica (empresas - 24x7).

Outros modelos de negócio

Isca (fornecem gratuitamente um produto e vendem produtos

adicionais que se integram a ele, como consultoria e módulos

adicionais).

Acessórios (vendem um acessório físico que torna o produto

mais atraente ou mais fácil de usar, como livros e manuais).

Extensão (visando a sua comercialização, estendem um produto

de software de código aberto, como versões embarcadas de linux

para execução em hardwares específicos).

Seleção de Software

de Código Aberto

Os itens (aspectos relevantes) durante o processo de

avaliação de sistemas (software de código aberto e

proprietário) deverão contemplar:

Identificação;

Soluções utilizando Código Aberto.

http://freshmeat.net/

Repositório de Projetos de Software de Código Aberto.

http://sourceforge.net/

Listas de Discussão.

http://listas.softwarelivre.org/

Avaliação e Comparação de produtos;

Utilizar revistas (versões eletrônicas) bem como

consultar profissionais de TI (cases).

Dica (utilizar soluções comprovadas em sistemas

operacionais, serviços de rede, aplicações para desktops,

banco de dados e ambientes de desenvolvimento).

Seleção de Software

de Código Aberto

Análise de atributos.

Utilizar a página oficial do projeto, usualmente, o

mesmo contempla informações detalhadas (descrição,

objetivos, funcionalidades, faqs e documentação).

Verifique outros atributos, como a força da comunidade

livre, suporte, confiabilidade, possibilidade de

personalização do software as necessidades suas ou da

empresa, treinamento, instalação, atualização,

manutenção e por fim, possíveis custos na adoção da

solução (processo de migração de software proprietário

para software de código aberto).

Custos

Divergências entre produtos proprietários e de códigos abertos

Depende do ambiente em que é empregado bem como a

disponibilidade de mão de obra especializada.

Custos básicos (licenças, hardware, suporte e manutenção) são

fáceis de calcular. Quantificar os custos de mão de obra, consultoria,

treinamento, etc... é difícil de estimar.

Custo total de propriedade (Total Cost of Ownership - TCO)

Custo de aquisição e implantação de um sistema de informação.

Possíveis Etapas:

Prospecção (custo envolvido no levantamento de soluções possíveis);

Instalação e Configuração (passos a serem realizados por um

programa instalador, participação de consultorias especializadas);

Integração (avaliação cuidadosa poderá evitar problemas sérios);

Operação e Manutenção (são praticamente idênticos);

Migração (se os formatos dos dados são conhecidos, mais facilmente

a transição ocorre).

Exemplos de SL

Propósito Geral

Pacote de Escritório (OpenOffice)

http://www.libreoffice.org.br/

Navegador Web (Firefox)

http://br.mozdev.org/

Leitor de E-mail (Thunderbird e Evolution)

http://br.mozdev.org/thunderbird/

http://projects.gnome.org/evolution/

Manipulação Digital (GIMP)

http://www.gimp.org/

Antivírus (Clamwin)

http://www.clamwin.com/

Exemplos de SL

Ambientes (Sistemas) para

Desenvolvimento

GCC

http://gcc.gnu.org/

Eclipse

http://eclipse.org/

Netbeans

http://netbeans.org/

Diagramação de propósito geral (Dia)

http://live.gnome.org/Dia

Editor de páginas WEB (NVU)

http://www.nvu.com/

Diagramação Universal (ArgoUML)

http://argouml.tigris.org/

Exemplos de SL

Sistemas Operacionais

SuSe

http://www.opensuse.org/pt-br/

RedHat

http://www.redhat.com/

Fedora

http://fedoraproject.org/

Mandriva

http://www.mandriva.com/

Debian

http://www.debian.org/

Slackware

http://www.slackware.com/

Ubuntu

http://www.ubuntu-br.org/

Exemplos de SL

Sistemas Operacionais

OpenBSD

http://www.openbsd.org/

FreeBSD

http://www.freebsd.org/

NetBSD

http://www.netbsd.org/

Lista de Distribuições Linux

http://www.icewalkers.com/Linux/Distributions/

Exemplos de SL

Serviços de Rede e Gerenciadores de BD

Samba

http://www.samba.org/

Gerenciador de Banco de Dados (MySQL

e Postgresql)

http://www.mysql.com/

http://www.postgresql.org/

Servidor WEB APACHE

http://www.apache.org

Filtro de E-mail

http://spamassassin.apache.org/

Gerenciador de Banco de Dados MySQL

(PhpMyAdmin)

http://www.phpmyadmin.net/

Referência Básica

TANENBAUM, Andrew S. Sistemas Operacionais Modernos. 3 ed. São

Paulo: Pearson Prentice Hall, 2009.