Visão Geral do Unix e Linux

Slides:



Advertisements
Apresentações semelhantes
Sistemas Operacionais
Advertisements

Sistemas Distribuídos
DESENVOLVIMENTO DE SISTEMAS PARA INTERNET
Noções de Sistemas Operacionais
Informática Aplica Prof.: Bruno Rafael de Oliveira Rodrigues.
Sistemas Operacionais
Processos no Unix e Linux
História do Windows XP Significa Windows “eXperience”.
Amanda Espíndola Elias Mainetti Erick Mandarino Luiza Herback
Sistemas Operacionais
Threads Estagiário: Bruno Guazzelli Batista Slides de autoria do Prof Drº Marcos José Santana baseados no livro Sistemas Operacionais Modernos de A. Tanenbaum.
Device Drivers no Windows e Linux Visão Geral e Boas Práticas
Sistema Operacional LINUX
Estudo de Caso 1: UNIX e LINUX
Concepts and Capabilities
Arquitetura de Sistemas Operacionais
Curso Técnico em Manutenção e Suporte em Informática
Escola de Ensino Fundamental e Médio "Professora. Maura Abaurre"
Fundamento à Informática
09/03/10 20:13 Claudio de Oliveira – 1/21.
FUNDAMENTOS DE SOFTWARE
Threads.
Aula 6 – Sistema Operacional
LINUX.
Sistemas Operacionais
Faculdade Cambury Sistemas Operacionais
Concorrência entre Threads Java
Conhecendo os Sistemas Operacionais
Universidade Federal Fluminense Escola de Engenharia Departamento de Engenharia de Telecomunicações Sistemas de Computação para Telecomunicações Autores:
Sistemas Operacionais
Faculdade Cambury Sistemas Operacionais
SISTEMAS OPERACIONAIS
Módulos de um S.O. Tiago Gomes Nº21 11ºi.
Sistema Operacional FreeBSD.
Sistemas Operacionais Linux
Linux Prof.: Antonio Reis Escola Brasileira. Histórico  Richard Stallman Personalidade importante da comunidade do software livre Ingressou no MIT em.
Noções de Sistema Operacional Linux
Definição A rigor, tudo o que pode ser armazenado eletronicamente pode ser chamado de software. Consideraremos aqui, como software, apenas os conjuntos.
Sistemas Operacionais
Universidade de Mogi das Cruzes Tec
Sistemas Operacionais
SISTEMAS OPERACIONAIS I
Tópicos em Sistemas Operacionais (LINUX) Prof:. Msc. Arimatéia Junior Fortaleza-2011.
Sistemas operacionais
Processos.
Software livre Uma visão geral: dos primórdios dos gnus ao atual habitat dos pingüins.
Zeque - Grad. CC1 Sistemas Operacionais Curso de Ciência da Computação da UFPE Prof. José Queiroz - ZEQUE.
Administração de Sistemas Operacionais Não Proprietários 2ºSemestre Aula 01 Prof. Carlos Vinícius SERVIÇO NACIONAL DE APRENDIZAGEM.
Administração de Sistemas Operacionais Não Proprietários: Introdução
Subsistema de Entrada e Saída do Kernel
Integração de Ferramentas CASE
FUNDAMENTOS DE COMPUTAÇÃO
Introdução ao Linux Histórico e desenvolvimento
SISTEMAS OPERACIONAIS MACH EPOS
Introdução à Computação - Jorge Macêdo1 ICC – Software Jorge Macêdo.
OpenBSD * A sigla BSD “ Berkeley Software Distributions”, na verdade é referente ao UNIX desenvolvido pela Universidade da Califórnia, em Berkeley; * Criado.
Sistemas Operacionais
INTRODUÇÃO À COMPUTAÇÃO
Sistemas Operacionais PLATAFORMALINUX PLATAFORMALINUX Ricardo de Oliveira Joaquim TECNOLÓGICOS.
Capítulo 5 Entrada/Saída 5.1 Princípios do hardware de E/S
Sistemas Operacionais Faculdade de Ciências Aplicadas e Sociais de Petrolina - FACAPE Ciência da Computação Professora: Cynara Carvalho
Estruturas de Sistemas Operacionais. Componentes Comuns do Sistema Administração de Processos Administração da Memória Principal Administração do Armazenamento.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Bruna Cavallero Martins Universidade Católica de Pelotas.
Visão Geral do Sistema Operacional Linux Elisabete Tomomi Kowata UnUCSEH - Anápolis.
Tipos de Suportes para Tempo real Aluno: Ritiele M. Aldeburg Curso: Engenharia da Computação.
Sistemas Operacionais de Redes Introdução ao Linux IGOR ALVES.
GNU/Linux LEONARDO ESTRELA, Nº20, 10ºITM Índice Introdução História Software Livre Download Kernel Linux Ubuntu Unix Conclusão Interface do GNOME, uma.
Capítulo 4 Estrutura do Sistema Operacional
Linux Mint Trabalho realizado por: Luís Oliveira 11ºitm nº24.
Transcrição da apresentação:

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

História das versões do UNIX

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.

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.

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.

Estrutura de camadas do 4.4BSD

Estrutura de diretório UNIX típica

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.

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.

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.

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.

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.

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.

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.

Componentes de um sistema Linux

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.

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.

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

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

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

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