• Nenhum resultado encontrado

Unix História e Visão Geral. Geraldo Braz Junior

N/A
N/A
Protected

Academic year: 2021

Share "Unix História e Visão Geral. Geraldo Braz Junior"

Copied!
39
0
0

Texto

(1)

Geraldo Braz Junior

Unix

(2)
(3)

Histórico

 Na década de 60, SOs eram predominantemente do

tipo batch;

 Estes sistemas eram pouco produtivos para os

programadores;

 Surgimento de sistemas de tempo compartilhado:

Dartmouth College (Dartmouth) e MIT (CTSS);

 CTSS se tornou um sucesso na comunidade científica;  MIT, Bell Labs e General Eletric iniciaram o projeto de

um novo sistema, o MULTICS (multi-plexed information and computing service)

 A Bell Labs posteriormente abandonou o projeto

(4)

Histórico

 Kent Thompson resolveu escrever em

linguagem de montagem um MULTICS mais enxuto para o minicomputador PDP-7;

 Brian Kernighan, em tom de brincadeira,

chamou o sistema de UNICS (uniplexed information and computing service);

 A ortografia foi posteriormente trocada para

(5)

Histórico

Unix PDP-11

 O Unix impressionou e a Bell Labs, recebendo a adesão

de Dennis Ritchie e posteriormente todo um departamento;

 O Unix foi portado para o PDP-11/20 e, posteriormente,

para o PDP-11/45 e PDP-11/70;

 As duas últimas dominaram o mundo dos

minicomputadores na década de 70;

 Poderosas, possuiam grande memória para a época (256

KB e 2 MB, respectivamente), hardware de proteção de memória e 16 palavras de bits. No entanto, limitavam os processos a 64 KB de espaço de instruções e 64 KB de dados.

(6)

Histórico

Unix em C

 A dificuldade de reescrever o sistema para

cada nova máquina fez com que Thompson reescrevesse o Unix na linguagem B;

 B não dispunha de estruturadas e Ritchie

projetou uma sucessora denominando-a de C;

 Escrito o compilador, Thompson e Ritchie

reescreveram o Unix em C;

 Em 1974 Ritchie e Thompson publicaram

um artigo sobre o Unix que ganhou o prêmio Turing da ACM;

(7)

Histórico

Unix nas Universidades

 A detentora da Bell Labs, a AT&T, possuía

monopólio regulamentado na área de

telecomunicações, não podendo atuar no ramo de computadores;

 O Unix foi, então, distribuído (inclusive o

código fonte) para as universidades por uma taxa modesta;

 O PDP-11 era um computador muito usado

nas universidades e os sistemas

operacionais que o acompanhavam eram considerados terríveis;

(8)

Histórico

Unix na Indústria

 Numerosos encontros científicos eram organizados em

função do Unix;

 A versão 6 possuía 8200 linhas em C e 900 em

linguagem de montagem;

 A versão 7 possuía 18.800 linhas em C e 2.100 em

linguagem de montagem;

 Os estudantes que usavam Unix se formaram e

passaram a trabalhar na indústria;

 No meio da década de 80 o Unix era amplamente

utilizado em minicomputadores e estações de trabalho de vários fabricantes;

 Várias empresas criaram suas próprias versões do Unix;  Um pequeno grupo (Microsoft) comercializou a versão 7

sob o nome de XENIX até que seus interesses mudaram…

(9)

Unix Portátil

 Portar o Unix para uma nova máquina

requer:

1. Escrever um compilador C para a nova

máquina

2. Escrever drivers de dispositivos específicos

(terminais, impressoras, discos, etc…)

3. Reescrever a parte do Unix dependente de

máquina (como tradutores de interrupção e algumas rotinas para gerenciamento de

(10)

Unix em Diferentes Versões

 Em 1984 a AT&T foi formalmente liberada para ativar

uma subsidária de computadores;

 Em seguida foi lançado seu primeiro produto Unix

comercial, o System III;

 Ele foi rapidamente substituido pelo System V;  A AT&T decidiu atuar apenas no mercado de

comunicações e vendu seus negócios Unix para a Novell em 1993;

 A Novell por sua vez vendeu para a Santa Cruz em

1995;

 A essa altura, era irrelevante saber quem era o

proprietário do Unix já que todas as maiores companhias já tinham suas próprias licenças.

(11)

Unix de Berkeley

 Uma das maiores universidades a adquirir a versão 6

do Unix foi a Universidade da Califórina em Berkeley;

 Ela modificou o sistema substancialmente, auxiliada

por financiamentos da ARPA (advanced research

projets agency) do Departamento de Defesa dos EUA;

 A versão do Unix de Berkeley foi chamada BSD

(Berkeley software distribution);

 Na 4BSD foi incluído o uso de memória virtual e

paginação, nomes de arquivos maiores foram permitidos e o sistema de arquivos tornou-se

consideravelmente mais rápido. Foi introduzido o uso de redes e o protocolo utilizado, o TCP/IP, tornou-se o padrão de fato da Internet;

 Berkeley introduziu diversos utilitários para o Unix,

como o vi, csh, compiladores Pascal e Lisp e muitos outros.

(12)
(13)

Unix Padrão

 No final da década de 80, duas versões do

Unix parcialmente incompatíveis eram muito utilizadas: 4.3BSD e o System V;

 Além disto, cada fabricante incluía seus

próprios aprimoramentos não padronizados;

 Com isto, era impossível escrever programas

que executassem em qualquer sistema Unix;

 Várias tentativas de padronização falharam. A

AT&T lançou a SVID (System V interface definition), ignorada pelos sistemas BSD;

 A Comissão de Padrões do IEEE criou o projeto

(14)

Unix Padrão

 O padrão POSIX 1003.1 define um conjunto

de procedimentos de biblioteca que cada chamada Unix deve suprir;

 A maioria destes procedimentos realiza

uma chamada ao sistema;

 Procedimentos típicos são open, read e

fork;

 O objetivo é permitir ao desenvolvedor

escrever um programa usando somente os procedimentos definidos no 1003.1 sem se preocupar em qual versão de Unix seu

(15)

Padrão POSIX

1003.0 Visão geral

1003.1 Chamdas ao sistema 1003.2 Shell e utilitários

1003.3 Testes e conformidade

1003.4 Extensões para tempo real 1003.5 Bindings para Ada

1003.6 Extensões de segurança 1003.7 Administração do sistema

1003.8 Acesso transparente à arquivos 1003.9 Bindings para Fortran 77

(16)
(17)

Objetivos

 Sistema operacional interativo projetado

para o uso de vários usuários simultaneamente;

 Projetado por e para programadores;

 Disponibiliza ferramentas para que vários

usuários possam trabalhar em conjunto, compartilhando informações de forma controlada.

(18)

Objetivos

 O que programadores esperam do sistema?  Simplicidade e consistencia: por exemplo, no

nível mais baixo um arquivo deve ser

simplesmente uma coleção de bytes. Diferentes classes de arquivo (sequencial, aleatório,

chaveado, etc…) incomoda

Desempenho e flexibilidade: peuqno número

de elementos básicos que podem ser combinados de diferentes maneiras

Sem redundância: exemplo: grep ard f

A outra opção:

 executar grep

 grep perguntaria: “Oi. Sou o grep. Procuro cadeias

(19)

Interfaces para o Unix

(20)

O Shell

 O Unix possui um ambiente gráfico (X

Windows) mas muitos programadores abrem várias janelas de console;

 Vários interpretadores de comando estão

disponíveis: Bourne, C e Korn são os mais comuns;

 Alguns comandos simples:  l s *. c

 cp sr c d e s t  p w d

(21)

Estrutura de

Diretórios

(22)

O Shell

 Quando um programa inicia, ele

automaticamente tem acesso a:

 Arquivo de entrada-padrão (para leitura)  Arquivo de saída-padrão (para escrita)

 Arquivo de erro-padrão (para escrita de msgs de

erro)

 Em geral eles são associados a entrada

pelo teclado e saída para a tela;

 Exemplo: sort

 Lê linhas do terminal (até que se digite CTRL-D),

(23)

Redirecionadores e Pipes

 Redirecionador de entrada-padrão (<)  Redirecionador de saída-padrão (>)  Redirecionadores

sort <in >out

 Pipes

ls -l | more

sort < in | he ad –30

grep te r *.t | sort | head – 20 | tail –5 > foo

 Execução em segundo plano (background)

wc –l < a >b & sort <x |head &

(24)

Utilitários Unix

 Categorias:

 Comandos para manipulação de arquivos e

diretórios

 Filtros

 Ferramentas de desenvolvimento de programas

(como editores e compiladores)

 Processamento de texto  Administração de sistema  miscelâneas

(25)

Comandos de Arquivos e

Diretórios

 cp  mv  rm  mkdir  rmdir  chmod

(26)

Comandos Filtros

 grep  sort  head  tail

(27)

Edição e Processamento de

Texto

 vi

 emacs  LaTeX

(28)

Compiladores

 Gcc, g+ +  Javac  Pearl  Phyton  Fortran  Etc...

(29)

Comandos de Administração do

Sistema

 useradd  usermod  userdel  groupad d  groupmo d  groupde l

(30)

Comandos de Administração do

Sistema

 uptime  ps  pstree  top  kill  df  edquota  quota  tar  man

(31)
(32)

Núcleo (kernel) do Unix

(33)

Núcleo: Parte Inferior

 Camada mais inferior:

◦ Drivers

 Caractere e bloco

 Tecnicamente dispositivos de rede são orientados a

caractere, mas trabalham de forma diferente, por isso melhor separá-los

◦ Despacho de processos

 Durante uma interrupção, código de baixo nível para o

processo, salva todas as suas variáveis e estado na tabela de processos do núcleo e inicia o driver

apropriado

 Código em linguagem de montagem e é diferente de

(34)

Núcleo: Partes (1)

 Acima da camada superior estão:

 Tratadores de entradas por caracter e por

linha

 Shell usa tratamento por linhas de comando

seguidas de enter

 Vi e Emacs preferem por caracter

 Roteamento

 Garante que os pacotes corretos cheguem ao

dispositivo ou tratador correto

 Unix possui todo o código de um roteador embora

não seja tão eficiente quanto implementações em hardware

(35)

Núcleo: Partes (I1)

 Acima do código do roteador está o

tratamento de protocolos (TCP/IP)

 No topo de drivre´s de bloco (Discos) está

o cache de buffer e o cache de páginas

 Não existe um limite fixo na memória para o

tamanho do cache em implementações modernas

(36)

Núcleo: Partes (I1I)

 No topo do cache de buffer está o Sistema

de Arquivos

 A maioria dos sistemas UNIX suporte vários

tipos de sistemas de arquivos

 Acima do sistema de arquivos está a

nomeação de arquivos:

 Gerenciamento de diretório  Ligação simbólica e física

(37)

Núcleo: Partes (IV)

 No topo do cache de páginas está o

sistema de memória virtual

 Algoritmo de substituição de páginas

 Acima está o mapeamento de arquivos em

memória virtual e o código de

gerenciamento de falta de página

 Decide o que fazer durante a ocorrência de

(38)

Núcleo: Partes (V)

 Última coluna, módulo de gerenciamento

de processos

 Escalonador de processos

 Threads em alguns UNIX são vistos no núcleo

 Tratamento de sinais

(39)

Núcleo: Partes (VI)

 A camada mais superior

 Interface de Chamadas ao Sistema

 Todos as chamadas chegam a essa interface e são

redirecionadas para as camadas abaixo

Referências

Documentos relacionados

- Toxicidade para órgãos-alvo específicos (STOT), a exposição repetida: Com base nos dados disponíveis, os critérios de classificação não são preenchidos, no entanto,

Apenas a paixão de Frey re pela descrição e pelo detalhe, colocada a serv iço de uma empresa tão árdua quanto apresentar um painel da formação da família e da sociedade

D. HELENA Certamente que não, mas os casamentos não se improvisam nem se projetam na cabeça; são atos do coração, que a Igreja santifica. LEONOR Que é?.. HELENA Reconciliemo-nos com

1 - O imóvel é adjudicado provisoriamente, pela Comissão, a quem tiver oferecido o preço mais elevado, ou ao preferente que tiver exercido esse direito, que deverá, de

O objetivo deste trabalho é estudar as propriedades tecnológicas de cerâmica vermelha incorporada com diferentes proporções de resíduo de rocha ornamental oriundo de tear de

ESTUDO SOBRE AS DIFERENÇAS DE DESEMPENHO ENTRE PEQUENAS E MÉDIAS EMPRESAS BRASILEIRAS: UMA. ABORDAGEM DA VISÃO BASEADA EM RECURSOS (VBR)

the infantile population attending nursery schools in Botucatu, São Paulo State, to investigate possible associations between occurrence of enteroparasites and the socioeconomic

Revista Científica Eletrônica de Medicina Veterinária é uma publicação semestral da Faculdade de Medicina Veterinária e Zootecnia de Garça – FAMED/FAEF e Editora FAEF,