UNIX: Uma Breve Apresentação



Documentos relacionados
PLANO DE AULA. Ambiente Operacional Unix Profa. Morganna

Sistemas Operacionais

História dos SOs. Tópicos

Sistemas Operacionais Arquitetura e organização de sistemas operacionais: Introdução. Prof. MSc. Hugo Souza

Introdução ao Sistema UNIX

UNIX & Linux. Histórico, distribuição licença, características. Taisy Weber

Prof. Antonio Fundamentos de Sistemas Operacionais UNIP/2015

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 3

Introdução a Banco de Dados Aula 03. Prof. Silvestri

Conceitos Básicos sobre Sistemas Operacionais

Prof. Luis Nícolas de Amorim Trigo

Sumário. Organização de Computadores Módulo 3. Primeira Geração Válvulas ( ) Primeira Geração Válvulas ( )

SISTEMAS OPERACIONAIS

Sistemas Operacionais. Professor Leslier Soares Corrêa

ORGANIZAÇÃO DE COMPUTADORES MÓDULO 1

Montagem e Manutenção. Luís Guilherme A. Pontes

UFRJ IM - DCC. Sistemas Operacionais I. Unidade I Introdução. 11/02/2014 Prof. Valeria M. Bastos

Computador Digital Circuitos de um computador (Hardware)

UFRJ IM - DCC. Sistemas Operacionais I

Conceitos Básicos de Rede. Um manual para empresas com até 75 computadores

Metadados. 1. Introdução. 2. O que são Metadados? 3. O Valor dos Metadados

Cursos de Computação. Sistemas Operacionais. Prof. M.Sc. Sérgio Teixeira. Aula 01 - História e Funções dos Sistemas Operacionais

soluções inovadoras para desafios de negócios Manual explicativo do quadro do modelo de negócios passo a passo com exemplos

Aula 2. Objetivo: Saber qual a funcionalidade de um sistema operacional de rede.

UNICE Ensino Superior Linguagem de Programação Ambiente Cliente Servidor.

Sistemas Operacionais

ADMINISTRAÇÃO I. Família Pai, mãe, filhos. Criar condições para a perpetuação da espécie

Introdução à Informática

Sistemas Operacionais

UNIP - UNIVERSIDADE PAULISTA. Arquitetura de computadores

ZF apresenta soluções para frotas em uma das principais feiras de ônibus da Europa

Sistemas Operacionais. Prof. André Y. Kusumoto

Introdução a Computação

Figura 01 Kernel de um Sistema Operacional

SISTEMAS OPERACIONAIS. Apostila 03 Estrutura do Sistema Operacional UNIBAN

CONCEITOS BÁSICOS DE UM SISTEMA OPERATIVO

CABEAMENTO ESTRUTURADO INTRODUÇÃO E HISTÓRICO. Professor Carlos Muniz

Conceitos e Evolução Capítulos 1 e 2

No projeto das primeiras redes de computadores, o hardware foi a principal preocupação e o software ficou em segundo plano.

Introdução à Computação: Sistemas de Computação

INTRODUÇÃO À LINGUAGEM C/C++

Visão do Sistema Operacional

Arquitetura dos Sistemas Operacionais

Martin Vincent Bloedorn. GNU/Linux

Curso Introdução ao Linux. Desmistificando o Software Livre. Nícholas André nicholas@iotecnologia.com.

BACHARELADO EM SISTEMAS DE INFORMAÇÃO EaD UAB/UFSCar Sistemas de Informação - prof. Dr. Hélio Crestana Guardia

Roteiro para apresentação do Plano de Negócio. Preparamos este roteiro para ajudá-lo(a) a preparar seu Plano de Negócio.

Introdução à Sistemas Operacionais. Glauber Magalhães Pires

Introdução a Sistemas Operacionais Aula 04. Prof. Msc. Ubirajara Junior biraifba@gmail.com

NORMA TÉCNICA PARA IMPLANTAÇÃO DE NOVOS SISTEMAS OU APLICAÇÕES NO BANCO DE DADOS CORPORATIVO

REDES DE COMPUTADORES HISTÓRICO E CONCEITOS

CC Montagem e manutenção de hardware Docente: Nataniel Vieira 1 sem Técnico em Informática Roteiro 06: Atividade sobre o Documentário RevolutionOS

1. Explicando Roteamento um exemplo prático. Através da análise de uns exemplos simples será possível compreender como o roteamento funciona.

BREVE HISTÓRIA DA LINGUAGEM FORTRAN

Agenda do Mini-Curso. Sérgio Yoshio Fujii. Ethan Boardman.

SOP Sistemas Operacionais Módulo 03: História e Evolução

Nível do Sistema Operacional

Engenharia de Requisitos

Sistema Operacional. História Sistema Operacional 1. QI Escolas e Faculdades Apostila de Linux

Nove Motivos do Porque as Soluções de Implementação Rápida SAP Podem Facilitar a Sua Vida Chegue Onde Quer Chegar, Um Passo de Cada Vez

PORTABILIDADE NUMÉRICA UMA SOLUÇÃO ORIENTADA PELA SIMPLICIDADE, QUALIDADE E BAIXO CUSTO

Objetivos Específico

Arquitetura de Sistemas Operacionais Machado/Maia. Arquitetura de Sistemas

Sistemas Distribuídos

MODELAGEM E SIMULAÇÃO

A Evolução dos Sistemas Operacionais

3 Qualidade de Software

5 Apresentando a linguagem C

Máquinas Virtuais: Windows 2008 Server

Introdução à Arquitetura de Computadores. Renan Manola Introdução ao Computador 2010/01

Fina Flor Cosméticos obtém grande melhoria nos processos e informações com suporte SAP Business One

16:21:50. Introdução à Informática com Software Livre

Teste de Usabilidade BEEQO. Data Versão do wireframe Descrição

Resolução da lista de exercícios de casos de uso

QUALIDADE DE SOFTWARE

Cabeamento Estruturado O Cabeamento

Computador E/S, Memória, Barramento do sistema e CPU Onde a CPU Registradores, ULA, Interconexão interna da CPU e Unidade de controle.

ORIENTAÇÕES BÁSICAS PARA COMPRA DE TÍTULOS NO TESOURO DIRETO

Sistemas Operacionais

FMU - FACULDADES METROPOLITANAS UNIDAS E-COMMERCE, SOCIAL COMMERCE, MOBILE MARKETING E MARKETING DE PERMISSÃO.

Aula 2 Revisão 1. Ciclo de Vida. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW. Processo de Desenvolvimento de SW

SISTEMAS DISTRIBUIDOS. Prof. Marcelo de Sá Barbosa

O Processo de Engenharia de Requisitos

1 Introdução. Componentes Usuários. Provedor de Serviços. Figura 1.1 Ambiente de oferecimento de serviços

Arquitetura de Computadores II

Sistemas Operacionais

Banco de Dados Orientado a Objetos

Introdução a Computação

Empreenda! 8ª Edição Roteiro de Apoio ao Plano de Negócios. Preparamos este roteiro para ajudá-lo(a) a desenvolver o seu Plano de Negócios.

perspectivas e abordagens típicas de campos de investigação (Senra & Camargo, 2010).

Introdução à Engenharia de Computação

O que se tem, na prática, é a utilização do protocolo TCP/IP na esmagadora maioria das redes. Sendo a sua adoção cada vez maior.

IFPE. Disciplina: Sistemas Operacionais. Prof. Anderson Luiz Moreira

Gerenciamento de memória

Otimizada para Crescimento:

5.1 Sistemas de Arquivos

7 perguntas para fazer a qualquer fornecedor de automação de força de vendas

SERVIDORES REDES E SR1

Transcrição:

Material Complementar EA869 (Prof. Von Zuben DCA/FEEC/Unicamp) 1 1. Introdução Este documento procura explorar os aspectos históricos envolvidos no desenvolvimento do sistema operacional UNIX com o objetivo de compreender melhor os princípios básicos associados a este sistema operacional interativo, de tempo compartilhado e multiprogramado (paralelismo aparente utilizando um único processador). Os pontos fortes do sistema operacional UNIX estão em sua portabilidade através de múltiplas plataformas de hardware, sua interface de programação de aplicativos e sua adoção como sistema operacional de um grande número de sistemas de computadores independentes. A essência do UNIX está no fato dele ter sido projetado por programadores para programadores, com o objetivo de apresentar um pequeno número de elementos básicos que possam ser combinados de diversas formas na realização dos mais variados tipos de tarefas. No entanto, é fato que as versões mais recentes do UNIX refletem cada vez menos os aspectos associados com sua idéia original de simplicidade e portabilidade, apresentando inclusive problemas de padronização e versões incompatíveis. Apesar disso, as diversas versões do UNIX ainda rodam em mais arquiteturas de computador do que qualquer outro sistema operacional conhecido, tendo inclusive sobrevivido a diversas mudanças tecnológicas ocorridas desde seu lançamento. 2. Breve relato da história do UNIX Boa parte dos textos que se ocupam em descrever o sistema operacional UNIX apresentam inicialmente um relato dos aspectos históricos envolvidos em seu desenvolvimento, sem, no entanto, explicar por que a história do UNIX é importante para o seu entendimento. Todos os pontos fortes e fracos do UNIX podem ser diretamente relacionados com a história do seu desenvolvimento, que teve início em meados dos anos 60 com a criação de um projeto conjunto entre Massachusetts Institute of Technology (MIT), General Electric e Bell Labs (mais especificamente Bell Telephone Laboratories, companhia controlada pela AT&T) para o desenvolvimento de um sistema operacional com compartilhamento de tempo. Este sistema operacional foi denominado MULTICS (MULTiplexed Information and Computing Service), não tendo o sucesso esperado, principalmente porque o projeto era muito ambicioso para a época e, além disso, o sistema operacional foi escrito em uma linguagem muito pesada, com compilador ineficiente (TANENBAUM, 1992). A equipe da Bell Labs abandonou o projeto em 1969. Mas Ken Thompson, um dos membros desta equipe e conhecedor do potencial do MULTICS, sentiu a necessidade de desenvolver um sistema operacional com os mesmos propósitos, mas de uma forma bem mais simples e utilizando linguagem assembly. Como o sistema desenvolvido por Thompson funcionou muito bem, ele começou a atrair a atenção de seus colegas da Bell Labs, sendo que um deles, Brian Kernighan, chamou-o de UNICS (UNiplexed Information and

Material Complementar EA869 (Prof. Von Zuben DCA/FEEC/Unicamp) 2 Computing Service), parodiando MULTICS. Esta denominação pegou, sendo, mais tarde, reduzida definitivamente para UNIX. Conforme o sistema UNIX ia sendo transportado para arquiteturas de computador cada vez mais poderosas, ficou evidente que era preciso eliminar a necessidade de se reescrever todo o sistema operacional em linguagem assembly para cada nova máquina. Esta foi uma visão inovadora, pois até então a linguagem assembly era considerada indispensável para garantir funcionalidade efetiva e acesso irrestrito ao hardware. Depois de uma tentativa sem muito sucesso de reescrever o UNIX em uma linguagem de alto nível desenvolvida pelo próprio Ken Thompson (denominada linguagem B), foi seu colega Dennis Ritchie quem projetou uma linguagem especificamente voltada para a implementação de um sistema operacional, a qual ele denominou linguagem C. A linguagem C é uma linguagem de alto nível, mas apenas o suficiente para manter a portabilidade junto a várias arquiteturas de computador. Uma vez implementado o compilador C, Ritchie e Thompson reescreveram a maior parte do UNIX em C (RITCHIE & THOMPSON, 1974). Em linhas gerais, a versão original do sistema operacional UNIX satisfazia os seguintes requisitos, considerados inovadores no contexto de sistemas operacionais: simplicidade e elegância; escrito quase que totalmente em uma linguagem de alto nível (linguagem C). Apenas uma pequena parte do código do sistema UNIX teve que ser escrita em linguagem assembly (denominada núcleo do sistema operacional), por depender das características da máquina alvo. Destacam-se como códigos dependentes da máquina as rotinas para tratamento de interrupção, parte das rotinas para gerência de memória e drivers de dispositivos do sistema de entrada/saída; permissão de reutilização de código. Uma vez controlada pela AT&T, monopólio da área de telecomunicações, a Bell Labs não tinha permissão para operar comercialmente na área de computação. Sendo assim, a Bell Labs não impunha muitos obstáculos para licenciar o UNIX, o que motivou muitas universidades a solicitarem cópias deste sistema operacional. Foram três as principais razões para o enorme sucesso do UNIX junto às universidades: a última implementação do UNIX na Bell Labs havia sido desenvolvida para a máquina PDP-11, a qual equipava boa parte dos departamentos de computação das universidades; o sistema operacional original da PDP-11 era muito ruim; o UNIX era fornecido com o código-fonte completo, o que permitiu que novas idéias e muitos melhoramentos fossem rapidamente incorporados ao sistema. Com acesso ao código-fonte e contando com a presença de Ken Thompson em seu ano sabático, a University of California at Berkeley ganhou condições para desenvolver mais rapidamente sua própria versão do UNIX, que gradativamente adicionou recursos como o editor vi, o C shell, memória virtual,

Material Complementar EA869 (Prof. Von Zuben DCA/FEEC/Unicamp) 3 envio de mensagens eletrônicas e suporte para TCP/IP (Transmission Control Protocol/Internet Protocol). Por outro lado, a AT&T se desmembrou em 1984, por imposição do governo norte-americano, em várias companhias independentes. Uma destas companhias foi a UNIX System Laboratories (USL) 1. Como conseqüência destes acontecimentos, o UNIX passou a apresentar duas versões principais: System V: mais conservativa, comercial e com melhor suporte, desenvolvida pelo UNIX System Laboratories (USL); BSD (Berkeley Software Distribution): desenvolvida na University of California at Berkeley. Há muitas outras versões além destas duas, mas que geralmente derivam de uma delas. Recentemente, as versões de UNIX que são efetivamente empregadas incorporam características das duas versões principais, sendo que o UNIX de hoje é bem diferente do UNIX do início dos anos 70, tendo sofrido desde então um processo evolutivo contínuo, com suas principais fases ilustradas na figura 1. UNICS (1969) 5 a edição (1973) 6 a edição (1976) 7 a edição (1978) SVR5 (1983) BSD (1979) SunOS 5.x/Solaris (SUN) HP-UX (HP) AIX (IBM) IRIX (SGI) Digital UNIX (DEC) SunOS 4.x (SUN) ULTRIX (DEC) NextStep (NeXT) Figura 1 - A árvore genealógica do UNIX 2.1. A padronização do UNIX Até por volta de 1988, o UNIX não conseguia emplacar fora do meio acadêmico e das grandes empresas comerciais, principalmente devido à existência de duas versões principais incompatíveis: System V e BSD. Isto porque não era possível que fornecedores de software escrevessem pacotes de programas UNIX que rodassem em qualquer sistema UNIX, como ocorre com o Windows. 1 A UNIX System Laboratories (USL) passou em 1993 a ser uma subsidiária da Novell (maior fornecedora mundial de softwares de rede). Em 1995, a SCO (Santa Cruz Operation), empresa de Douglas Michels no norte da Califórnia, adquiriu da Novell os direitos de licenciamento do código-fonte do UNIX.

Material Complementar EA869 (Prof. Von Zuben DCA/FEEC/Unicamp) 4 O Comitê de Padronização do IEEE representou a primeira tentativa séria em estabelecer um padrão para o sistema operacional UNIX. O nome escolhido para o projeto foi POSIX (Portable Operating System), com o sufixo IX lembrando UNIX. A linguagem C também foi padronizada pela ISO e pela ANSI. No entanto, para rivalizar com a AT&T, um grupo de empresas liderado por IBM, DEC e Hewlett-Packard (HP) formou o consórcio OSF (Open Software Foundation), cujo objetivo era seguir não apenas o padrão POSIX, mas padrões adicionais para definição de janelas, interface gráfica e processamento distribuído. A reação da AT&T foi a formação de seu próprio consórcio, o UI (UNIX International). Os padrões definidos por estes dois consórcios estão evoluindo em direções diferentes, o que certamente não trará benefícios para usuários e fornecedores de software para UNIX. 3. A linguagem C e a interface de programação de aplicativos Muitos sistemas operacionais apresentam uma visão simplificada do conjunto de operações a serem realizadas por um aplicativo. Um aplicativo típico lê algum dado em disco, fita ou terminal e realiza algum processamento. A saída é produzida em disco, fita, terminal ou impressora. Sendo assim, os sistemas operacionais geralmente fornecem recursos implementados otimamente e de fácil acesso para suportar estes tipos de operações. No entanto, quando as operações se tornam mais sofisticadas, um sistema operacional necessita de novos recursos, como acesso à rede, gerenciamento simultâneo de múltiplas tarefas e comunicação entre processos. Em sistemas operacionais tradicionais, estes novos recursos não estão diretamente disponíveis, não são bem documentados e são implementados apenas em linguagem assembly. Com isso, quando um aplicativo precisa recorrer a estas operações sofisticadas, os programas associados podem ser muito mais complexos e de difícil manutenção. Pelo fato da linguagem C ter sido escrita especificamente para ser utilizada na implementação de um sistema operacional, ao invés de atender apenas às aplicações tradicionais de entrada-processamentosaída, o uso destes novos recursos pode ser implementado diretamente, sem recorrer a qualquer tipo de código em linguagem assembly. Além disso, a documentação associada a estas operações sofisticadas está no mesmo formato e localização que a documentação associada aos aplicativos normais. O padrão de desenvolvimento do UNIX fornece uma interface de programação de aplicativos que permite, com base na linguagem de programação C, o acesso imediato a estas novas facilidades. Isto possibilita que aplicativos muito mais sofisticados sejam prontamente desenvolvidos. Como exemplo, boa parte dos pacotes de software disponíveis para UNIX e de domínio público são distribuídos como programas em linguagem C, que devem ser compilados antes de serem utilizados. Logo, os desenvolvedores de sistemas UNIX e de aplicativos (para sistema operacional UNIX) escrevem seus programas na mesma linguagem e utilizando a mesma interface de programação. Este quadro se opõe àquele existente no caso de sistemas operacionais tradicionais, em que os desenvolvedores do sistema operacional programam em linguagem assembly e têm acesso a inúmeros recursos não disponíveis aos desenvolvedores de aplicativos.

Material Complementar EA869 (Prof. Von Zuben DCA/FEEC/Unicamp) 5 4. A popularidade do UNIX estão: Dentre os motivos mais empregados para justificar o sucesso do sistema operacional UNIX apenas uma pequena parcela do código do UNIX é escrito em linguagem assembly, o que aumenta a portabilidade de hardware (capacidade de rodar nos mais variados tipos de sistemas de computadores); sua interface de programação de aplicativos permite que os mais diferentes tipos de aplicativos sejam facilmente implementados sob o sistema operacional UNIX sem a necessidade de se recorrer à linguagem assembly. Com isso, a portabilidade destes aplicativos junto a diferentes plataformas de hardware é relativamente elevada; como muitas empresas de computadores adotaram o sistema UNIX, é possível construir redes compostas por múltiplos sistemas de computadores; a interface do UNIX com o ambiente de rede já é parte integrante do sistema operacional, permitindo, por exemplo, uma implementação eficiente de correio eletrônico e conexão via Internet; como a filosofia do UNIX é projetar cada programa para desempenhar otimamente uma única função, ele é flexível e fácil de adaptar para necessidades específicas. Com isso, o UNIX pode ser considerado um sistema aberto, que permite portabilidade de hardware, de aplicativos e de usuário (apresentando a mesma interface com o usuário independente da máquina). Embora os usuários finais não sejam os beneficiários diretos da portabilidade de hardware e da portabilidade de aplicativos, a existência de diversas empresas fornecendo o mesmo sistema operacional e as mesmas soluções de software contribuiu para uma queda acentuada no custo dos sistemas de computação. Este é um dos pontos chaves para explicar o sucesso do sistema operacional UNIX. O UNIX representou um papel decisivo no processo de substituição gradual dos grandes computadores (mainframes) por computadores de mesa, dotados de hardware mais rápido, mais moderno e mais barato. A importância do UNIX neste processo se deve aos seguintes fatores: boa parte das bem-sucedidas empresas de computação, que emergiram a partir do início dos nos 80, produziam um melhor hardware que as grandes fabricantes, como DEC e IBM; estas mesmas empresas emergentes de computação não podiam arcar com os custos de tempo e dinheiro para desenvolver um sistema operacional proprietário, e acabaram recorrendo ao UNIX. Portanto, principalmente a partir de 1985, se alguém precisasse adquirir um computador moderno e barato, esta pessoa certamente iria adquirir um computador rodando UNIX. Um outro fator importante para o sucesso do UNIX é o papel representado pelas universidades. Por questões históricas, já mencionadas anteriormente, o UNIX teve uma grande aceitação no meio acadêmico, fazendo com que praticamente todos os alunos vinculados à área de computação entrassem em contato com este sistema operacional. Sendo assim, a cada ano as universidades têm fornecido ao

Material Complementar EA869 (Prof. Von Zuben DCA/FEEC/Unicamp) 6 mercado de trabalho uma legião de especialistas em UNIX. Com isso, empresas que operam com o sistema operacional UNIX não têm qualquer dificuldade em encontrar mão-de-obra qualificada, atualizada e imediatamente disponível. Um último fator decisivo tem sido o processo de contínua evolução do sistema operacional UNIX, para atender inovações tecnológicas que geram demandas por novos recursos. Enquanto os usuários reclamam por novos recursos, os desenvolvedores de versões do UNIX são compelidos a criar novos recursos que impulsionem suas vendas com base em requisitos de marketing. No entanto, a incorporação sem critérios de novos recursos não é um ponto positivo do UNIX, que vai ganhando versões mais complexas e com portabilidade reduzida, além do perigo representado pela evolução das diversas versões em direções distintas. Apesar disso, o sistema operacional UNIX não pode prescindir deste processo evolutivo sob pena de perder sua atratividade em comparação com outros sistemas operacionais concorrentes. 5. Referências bibliográficas TANENBAUM, A.S. Modern Operating Systems. Prentice Hall Inc., 1992. RITCHIE, D.M. and THOMPSON, K. The UNIX Timesharing System. Commun. of the ACM, vol. 17, pp. 365-375, 1974.