A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Visão Geral do Unix e Linux

Apresentações semelhantes


Apresentação em tema: "Visão Geral do Unix e Linux"— Transcrição da apresentação:

1 Visão Geral do Unix e Linux

2 Histó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.

3 História das versões do UNIX

4 Vantagens 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.

5 Princí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.

6 Interface de programação
Como outros sistemas computacionais, o UNIX consiste de duas partes separadas: 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.

7 Estrutura de camadas do 4.4BSD

8 Estrutura de diretório UNIX típica

9 Histó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.

10 O núcleo do Linux A versão 0.01 (maio 1991) não tem rede, executava apenas em processadores compatíveis com o Intel 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.

11 Linux 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.

12 O 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.

13 As 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.

14 Licenç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.

15 Princí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.

16 Componentes de um sistema Linux

17 Componentes 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.

18 Componentes 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.

19 Diagramas de Waterloo mm fs ipc sched vfs sched ipc mm net net
Conceitual Concreto

20 Diagrama de Tweedie User Processes Scheduler Syscalls VM Traps Process
Manager Socket Manager VFS Memory Allocator Math Support Network Protocols File Systems Char Devices Block Devices Packet Requestor IO Requestor Net Devices

21 Diagram de Vahalia elf a.out coff file NFS device FFS s5fs anonymous
exec switch NFS device virtual memory framework vnode/vfs interface FFS s5fs anonymous core utilities block device switch scheduler framework time-sharing disk STREAMS real-time tape system network tty

22 Núcleo Applications System Libraries (libc) System Call Interface
I/O Related Process Related File Systems Scheduler Modules Networking Memory Management Device Drivers IPC Stephen Tweedie claims “All kernel code executes in a process context (except during startup)”. He also says that it is possible for an interrupt to occur during a context switch. So it is uncommon for there to be no user process mapped. The real problem is not knowing what process is mapped. Kernel mode, system context activities occurs asynchronously and may be entirely unrelated to the current process. Architecture-Dependent Code Hardware


Carregar ppt "Visão Geral do Unix e Linux"

Apresentações semelhantes


Anúncios Google