Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis...

22
Visão Geral do Unix e Linux Visão Geral do Unix e Linux

Transcript of Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis...

Page 1: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Visão Geral do Unix e LinuxVisão Geral do Unix e Linux

Page 2: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

HistóriaHistória

Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell; características incorporadas de outros sistemas operacionais, especialmente o MULTICS.

A terceira versão foi escrita em C, que foi desenvolvida no Bell Labs especificamente para o UNIX.

BSD foi o sistema Unix mais influente que não fazia parte do Bell Labs e do grupo da AT&T UNIX e sim da Universidade da California em Berkeley (Berkeley Software Distributions). 4BSD UNIX resultou do financiamento da DARPA para

desenvolver um sistema UNIX padrão para uso governamental. Desenvolvido para o VAX, o 4.3BSD é uma das versões

principais e foi portada para várias outras plataformas (incluindo o PC).

Vários projetos de padronização buscam consolidar os vários tipos de variantes de UNIX levando a uma interface de programação para o mesmo.

Page 3: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

História das versões do UNIXHistória das versões do UNIX

Page 4: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Vantagens iniciais do UNIXVantagens iniciais do UNIX

Escrito em uma linguagem de alto nível.

Distribuído com o arquivo fonte.

Fornece primitivas de sistema operacionais poderosas em plataformas baratas.

Projeto modular, tamanho reduzido e clareza.

Page 5: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Princípios de projeto do UNIXPrincípios de projeto do UNIX

Projetado para ser um sistema de tempo compartilhado.

Tem uma interface padrão com o usuário simples (shell) que pode ser substituída.

Sistema de arquivos com diretórios multiníveis estruturados em árvores.

Os arquivos são suportados pelo núcleo como uma sequência não-estruturada de bytes.

Fornece suporte a vários processos, tendo o processo a capacidade de criar facilmente novos processos.

Prioridade maior para tornar o sistema interativo e para fornecer facilidades para o desenvolvimento de programas.

Page 6: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Interface de programaçãoInterface de programação

Kernel: tudo que fica abaixo da interface da chamada ao sistema e acima do nível de hardware.

Fornece o sistema de arquivos, escalonamento de UCP, gerência de memória e outras funções de sistema através das chamadas.

Programas de sistema: utiliza as chamadas ao sistema do kernel para fornecer funções úteis, tais como a compilação de programas e a manipulação de arquivos.

Como outros sistemas computacionais, o UNIX consiste de duas partes separadas:

Page 7: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Estrutura de camadas do 4.4BSDEstrutura de camadas do 4.4BSD

Page 8: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Estrutura de diretório UNIX típicaEstrutura de diretório UNIX típica

Page 9: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

História do LinuxHistória do Linux

Linux é um sistema operacional de código aberto, moderno, baseado nos padrões do UNIX.

Primeiramente desenvolvido como um núcleo pequeno mas auto-contido em 1991 por Linus Torvalds, com um objetivo maior de projeto de compatibilidade com o UNIX.

Sua história têm sido um exemplo de colaboração de muitos usuários espalhados pelo mundo, correspondendo-se quase que exclusivamente através da Internet.

Foi projetado para executar de forma confiável e eficiente em um hardware comum de PC, mas também executa em uma grande variedade de outras plataformas.

O núcleo do sistema operacional Linux é inteiramente original, mas ele pode executar muito do software de código livre do UNIX, resultando em um sistema operacional tipo UNIX de código aberto.

Possui um grande e variado número de Distribuições Linux incluindo o núcleo, aplicações e ferramentas de gerência.

Page 10: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

O núcleo do LinuxO núcleo do Linux

A versão 0.01 (maio 1991) não tem rede, executava apenas em processadores compatíveis com o Intel 80386 e em hardware de PC, tinha suporte de dispositivo extremamente limitado e apresentava apenas o sistema de arquivos Minix.

Linux 1.0 (março 1994) incluía essas novas características: Suporte para padrões UNIX de protocolos de rede TCP/IP.

Interface de soquete compatível com BSD para programação em rede.

Suporte de driver para executar IP sobre Ethernet

Sistema de arquivos melhorado

Suporte para uma variedade de controladores SCSI para alto desempenho de acesso à disco

Extra suporte de hardware

Versão 1.2 (março 1995) foi a última versão de núcleo para PC apenas.

Page 11: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Linux 2.0Linux 2.0

Disponibilizado em Junho de 1996, 2.0 adicionou as duas novas grandes capacidades: Suporte para arquiteturas múltiplas, incluindo uma portabilidade

para Alpha. Suporte para arquiteturas multiprocessadas.

Outras características novas incluíram: Melhoria no código de gerência à memória. Melhoria no desempenho do TCP/IP. Suporte para threads de núcleo internas, para tratamento

automático de dependências em módulos carregáveis e por carga automática de módulos sob demanda.

Interface de configuração padronizada. Disponível para processadores da série Motorola 68000, sistemas Sun

Sparc, e para sistemas de PC e PowerMac. 2.4 e 2.6 aumentaram do suporte SMP, adicionaram o sistema de

arquivos journaling, núcleo preemptivo e suporte de memória de 64 bits.

Page 12: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

O sistema LinuxO sistema Linux

Linux usa muitas ferramentas desenvolvidas como parte do sistema operacional BSD de Berkeley, o sistema de janelas Xwindows do MIT e o projeto GNU da Free Software Foundation's GNU.

O sistema de bibliotecas foi originado pelo projeto GNU, com melhoramentos providos pela comunidade Linux.

As ferramentas de administração de rede foram derivadas do código do 4.3BSD; derivações recentes do BSD tais como o Free BSD pegaram código emprestado do Linux como retorno.

O sistema Linux é mantido por um conjunto de desenvolvedores trabalhando de forma livre através da Internet, com um pequeno número de sites públicos FTP agindo como repositórios padrão de fato.

Page 13: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

As distribuições LinuxAs distribuições Linux

Um conjunto de pacotes padrões pré-compilados ou distribuições incluem o sistema básico Linux, um sistema de instalação e de utilitários de gerência e pacotes prontos para instalação das ferramentas comuns do UNIX.

As primeiras distribuições gerenciavam estes pacotes através simplesmente do fornecimento de um meio para desempacotar todos os arquivos nos lugares apropriados; as distribuições modernas incluem gerência avançada de pacotes.

As primeiras distribuições incluíam o SLS e Slackware

Red Hat e Debian são distribuições populares de fontes comerciais e não-comerciais, respectivamente.

O formato de arquivos do pacotes RPM permite compatibilidade entre as várias distribuições Linux.

Page 14: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Licenças LinuxLicenças Linux

O núcleo do Linux é distribuído sob a licença GNU General Public License (GPL), que tem um conjunto de requisitos estabelecidos pela Free Software Foundation.

Qualquer um usando Linux ou criando código a partir do Linux não pode tornar o produto derivado proprietário; software disponibilizado sob a licença GPL não pode ser distribuído apenas na forma binária.

Page 15: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Princípios de projetoPrincípios de projeto

O Linux é um sistema multiusuário e multitarefa com todo um conjunto de ferramentas compatíveis com o UNIX.

Seu sistema de arquivos adere à semântica tradicional do UNIX e implementa de forma completa o modelo de rede do UNIX.

Os principais objetivos de projeto são a velocidade, eficiência e padronização.

O Linux é projetado para ter conformidade com os documentos relevantes do POSIX; pelo menos duas distribuições do Linux conseguiram a certificação oficial POSIX.

A interface de programação do Linux adere à semântica do SVR4 UNIX, ao invés de ter comportamento BSD.

Page 16: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Componentes de um sistema LinuxComponentes de um sistema Linux

Page 17: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Componentes de um sistema LinuxComponentes de um sistema Linux

Assim como a maioria das implementações de UNIX, o Linux é composto de 3 partes principais de código, sendo mais importante a distinção entre o núcleo e os outros componentes

O kernel (núcleo) é responsável por manter as abstrações importantes do sistema operacional

O código do núcleo executa em modo núcleo ou privilegiado com total acesso aos recursos físicos ou hardware do sistema computacional.

Todo o código do núcleo e suas estruturas de dados são mantidas em um espaço de endereçamento único.

Page 18: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Componentes de um Sistema LinuxComponentes de um Sistema Linux

As bibliotecas do sistema definem um conjunto de funções padronizadas através das quais as aplicações interagem com o núcleo, e que implementam uma grande parte da funcionalidade do sistema que não necessita dos privilégios de execução em modo núcleo.

Os utilitários do sistema são responsáveis por tarefas individuais especializadas.

Page 19: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Diagramas de WaterlooDiagramas de Waterloo

Conceitual Concreto

fs

sched

mm net

ipc

sched

mm

ipcvfs

net

Page 20: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Diagrama de TweedieDiagrama de Tweedie

Scheduler TrapsVMSyscalls

User Processes

ProcessManager

VFSSocket

ManagerMemoryAllocator

MathSupport

NetworkProtocols

FileSystems

IO RequestorPacket Requestor

Char Devices

Block Devices

Net Devices

Page 21: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

Diagram de Vahalia Diagram de Vahalia

core utilities

virtualmemory

framework

vnode/vfsinterface

execswitch

blockdeviceswitch

schedulerframework

STREAMS

disk

tapenetwork tty

NFS

FFS

s5fs

elfa.out cofffile

device

anonymous

time-sharing

real-time

system

Page 22: Visão Geral do Unix e Linux. História Primeiramente desenvolvido em 1969 por Ken Thompson e Dennis Ritchie do grupo de pesquisas do laboratório Bell;

NúcleoNúcleoApplications

System Libraries (libc)

System Call Interface

Hardware

Architecture-Dependent Code

I/O Related Process RelatedScheduler

Memory Management

IPC

File Systems

Networking

Device Drivers

Mod

ules