1 / 22

Visão Geral do Unix e Linux

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; características incorporadas de outros sistemas operacionais, especialmente o MULTICS.

Download Presentation

Visão Geral do Unix e Linux

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  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 ipc fs sched vfs sched ipc net mm 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 exec switch device FFS virtual memory framework vnode/vfs interface s5fs anonymous core utilities scheduler framework block device switch 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 Architecture-Dependent Code Hardware

More Related