SISTEMAS OPERACIONAIS DE ARQUITETURA...

41
1 SISTEMAS OPERACIONAIS DE ARQUITETURA ABERTA Prof. Ulisses Cotta Cavalca <[email protected]> Belo Horizonte/MG 2015

Transcript of SISTEMAS OPERACIONAIS DE ARQUITETURA...

1

SISTEMAS OPERACIONAIS DE ARQUITETURA ABERTA

Prof. Ulisses Cotta Cavalca<[email protected]>

Belo Horizonte/MG2015

2

SUMÁRIO

1. Histórico do sistema operacional

2. Licença de softwares

3. Aspectos técnicos do GNU/Linux

4. Comparação com Windows

5. Kernel x ambiente gráfico

6. Memória virtual

7. Sistemas de arquivo

8. Estrutura de diretórios

3

1. História do GNU/LinuxSistema Operacional UNIX

● Desenvolvido por Ken Thompson e Dennis Ritchie na década de 70.

● Proposta de sistema operacional simples, versátil e moderno

● Idéia do time-sharing (compartilhamento de tempo e tarefas)

● Portabilidade entre computadores● Licença comercial e código fechado.

4

1. História do GNU/LinuxSistema Operacional Minix (“mini-Unix”)

● Alternativa em relação ao Unix para estudo de sistemas operacionais.

● Desenvolvido em 1986 por Andrew Tanenbaum da Universidade de Vrije, Amsterdã.

● Ideia de ser pequeno o bastante para que qualquer pessoa possa entender o seu funcionamento.

5

1. História do GNU/LinuxO kernel Linux

● Kernel é camada de software mais próximo do hardware, responsável pelo gerenciamento de memória, processadores, etc.

● O kernel Linux foi desenvolvido em 1991 por Linus Tolvards, da Universidade de Helsinque, Finlândia.

● Adota padrão POSIX (Portable Operating System Interface) do IEEE (Institute of Electrical ans Electronics Engineers).

6

1. História do GNU/LinuxDistribuições Linux

● O kernel por si só não é suficiente para sistemas operacionais serem funcionais.

● Associado a servidores gráficos, aplicativos e configurações específicas, o kernel Linux tem características próprias, criando então uma distribuição.

● Atende interesses de grupos, pessoas, empresas, etc...

7

1. História do GNU/LinuxDistribuições Linux

8

1. História do GNU/LinuxLinha do tempo das principais “distro”

9

2. Licenças de softwaresHistória do Software Livre

● Inicialmente, mercado de informática limitado a venda de hardware. Software como acessório.

● Problemática se inicia quando software são vendidos separadamente do hardware.

● Software tornaram-se fechados como proteção à competidores em potenciais

● Surge o Movimento do Software Livre para garantir essas liberdades.

Quais liberdades?

10

2. Licenças de softwaresLiberdades do Software Livre

SoftwareLivre

● Executar para qualquer propósito

● Estudar e adaptar

● Redistribuir cópias

● Aperfeiçoá-lo

11

2. Licenças de softwaresFree Software Fundation● Criada por Richard Stallman em 1984.● Trabalho colaborativo pela comunidade de informática.

ProjetoGNU

“GNU is not Unix”

● Editores de textos (EMACS)

● Compiladores GCC (GNU

Compiler Collection)

● Shell Bash (Bourme-Again Shell)

● GNU File Utils (comandos básicos)

● Kernel Hurd

12

2. Licenças de softwaresGNU não é Unix

Boi Gnu

13

2. Licenças de softwaresGPL – General Public License

Diretrizes

● Acesso ao código fonte

● Copiar e distribuir o código fonte e

executável de um programa

● Modificar o código fonte

● Permissão de cobrança por produtos,

suporte ou distribuição.

● Copyleft: Todos os direitos revertidos● GPL é um instrumento legal para implementar

o conceito de copyleft

14

3. Aspectos GNU/LinuxQual distribuição utilizar?

● Voltada para usuários comuns ou experts?● Existem muitas fontes de consulta na internet?● Fontes de consultas estão em português, ou outro

idioma que domine?● É consagrada a pelo menos 5 anos no mundo

GNU Linux?● Gratuita ou paga (suporte)?● Voltada para servidores, desktop ou ambos?● Possui sistema de atualizações on-line?

15

3. Aspectos GNU/LinuxAlgumas vantagens

● É livre e desenvolvido voluntariamente por programadores experientes, hackers, e contribuidores.

● Utiliza permissões de acesso a arquivos, diretórios e programas em execução na memória RAM.

● Modularização.● Suporte nativo a virtualização

16

3. Aspectos GNU/LinuxAlgumas vantagens

● O crescimento e novas versões do sistema não provocam lentidão.

● Não é requerido pagamento de licença para usá-lo.

● O LINUX É MENOS VULNERÁVEL A VÍRUS!● Rede TCP/IP mais rápida que no Windows e

tem sua pilha constantemente melhorada.● Roda aplicações Windows através do WINE.

17

3. Aspectos GNU/LinuxAlgumas vantagens

● Os sistemas de arquivos usados pelo GNU/Linux organiza os arquivos de forma inteligente evitando a fragmentação.

● Sistema operacional de código aberto.● Suporte a diversos dispositivos e periféricos no

mercado, por trabalhar com drivers genéricos.● Executado em 16 arquiteturas de hardware

diferentes (Intel, AMD, etc...)

18

4. Comparação com WindowsPrincipais vantagens

● Fácil montagem de sistema operacional devido drivers genéricos, enquanto Windows precisa da sua instalação manual. Detalhe: condicionada ao fabricante.

● Obtenção gratuita do software, e de seu código fonte. Liberdade de uso e desenvolvimento garantida, perante a imposição da propriedade intelectual, patentes, direitos reservados, etc...

19

4. Comparação com WindowsPrincipais vantagens

● Linux apresenta velocidade da rede ethernet mais rápida, pois o Windows precisa da biblioteca WinSock

● Segurança no que se refere a vírus, trojans, worms, ataques dentre outras ameaças digitais, seja a nível de servidor ou usuário comum.

● Fácil instalação de programas com os repositórios apt, aptitude, ou yum.

20

4. Comparação com WindowsPrincipais desvantagens

● Dificuldade na instalação de alguns drivers devido a imposição dos fabricantes.

● Alguns softwares livre apresentam interface pouco amigável, em comparação a software proprietários.

● Recursos de áudio e vídeo apresentam maior performance, embora esses dispositivos tenham maior atenção nos últimos anos.

● Maior dificuldade de aprendizado por usuários iniciantes.

21

5. Kernel x Ambiente gráficoServidor gráfico e gerenciador de ambiente

● Função do servidor gráfico é criar interface com hardware para posicionamento de janelas, tamanho, além de “desenhá-las”.

● Sua funcionalidade é completada com os gerenciadores de ambiente, que criará a interface com os usuários, além de trazer aplicativos e funcionalidades que auxiliam seu uso.

22

5. Kernel x Ambiente gráficoEsquema entre servidor gráfico, kernel e gerenciador de ambiente

Kernel

Har

dw

a re

ServidorGráfico

Gerenciadorde ambiente

Criar comunicação

com os dispositivos

físicos

Mecanismo para gerenciar janelas diretamente com o kernel do SO.

Interface gráfica final com o usuário, além de outras finalidades que

auxiliam o uso do Linux.

Servidor X GNOMEKDEXFce● No Linux isso tudo é configurável,

diferentemente do Windows que embute o servidor gráfico no seu kernel.

23

5. Kernel x Ambiente gráficoGNOME

24

5. Kernel x Ambiente gráficoKDE

25

5. Kernel x Ambiente gráficoXFce

26

6. Memória virtualO que é memória virtual?

● O termo memória virtual é normalmente associado com a habilidade de um sistema endereçar muito mais memória do que realmente a fisicamente disponível (Deitel, p. 215).

● Conhecido também como técnica de reserva parte da memória secundária para ser uma extensão da RAM

● Quando houver necessidade de esvaziar memória RAM, parte dos dados serão transferidos para memória secundária (área de SWAP).

27

6. Memória virtualO que é memória virtual?

● Armazenamento em dois níveis:

● SWAP pode ser criado a partir de um arquivo, o que não é a melhor opção em função da velocidade.

● MS Windows utiliza técnica de SWAP em arquivo.

Armazenamento secundário

Discos

Armazenamento principal

Memória principal

Processador

CachesL1 e L2

Processador

Memória virtual

28

6. Memória virtualVerificando SWAP

● Qual tamanho ideal da memória SWAP?● Lenda de que SWAP é o dobro da memória RAM● Uso da área de SWAP indica falta de memória RAM● Toda área de SWAP definida será gerenciada pelo SO.

29

7. Sistemas de arquivosO que é um sistema de arquivos?

● Forma como os dados são armazenados, organizados e acessados no disco.

● A formatação de disco consiste, na prática, na criação de blocos para armazenamento dos dados.

● O sistema de arquivos é uma implementação imposta pelo sistema operacional, e não pelo hardware (HD – Hard Disk).

30

7. Sistemas de arquivosComo funciona um sistema de arquivos?

● Sistema de arquivos após a formatação

● Ocupação no disco após gravação do 1º arquivo

● Sistema de arquivos após a formatação

31

7. Sistemas de arquivosComo funciona um sistema de arquivos?

● Ocupação no disco após gravação do 2º arquivo

● Ocupação no disco após gravação do 3º arquivo

32

7. Sistemas de arquivosO dilema da fragmentação de disco

● Situação típica

● Novo arquivo com2 blocos de tamanho

Essa é a solução ideal?

33

7. Sistemas de arquivosFragmentação de espaço

● Solução adotada, em geral, pelo GNU/Linux

● Com a fragmentação de arquivo, tempo de acesso aos arquivos aumenta.

● Como o disco terá que fazer a leitura dos dados em blocos distantes, isso diminui a vida útil do cabeçote de leitura do HD.

34

● Journal refere-se a sistemas de arquivos que provê mecanismo de proteção à desligamento abrupto.

● Sistemas de arquivos são baseados em inodes, que representa informações referente a um arquivo (metadatados), tais como permissões, hora de criação, dono, disco que se encontra, etc.

● Desligamento abrupto do sistema causa inconsistência entre arquivos e tabela inode.

● Journaling cria atualizados dos metadados em um log serial no disco, antes que blocos de dados no disco sofra alteração.

7. Sistemas de arquivosJournal ou journaling

35

● Linux reconhece a grande maioria dos sistemas de arquivos (Ext2, Ext3, ReiserFS, XFS, JFS, etc...) enquanto que o Windows lê apenas FAT16, FAT32 e NTFS.

● Computador com dual boot (dois sistemas operacionais).

● Com processos de desfragmentação de disco no Linux, obtém-se aumento em torno de 1% no disco.

● Performance dos sistemas de arquivos EXT3 e ReiserFS garante confiabilidade em servidores de arquivos e banco de dados baseados em Linux.

7. Sistemas de arquivosFragmentação de espaço

36

8. Estrutura de diretóriosPrincipais diretórios do Gnu/Linux

● /bin: Arquivos executáveis;

● /boot: Contém arquivos do kernel e inicialização do sistema operacional;

● /dev: Arquivos de ligação com hardware;

● /etc: Contém maioria dos arquivos de configuração;

● /home: Arquivos, documentos e configurações de usuários cadastrados.

● /lib: Módulos do kernel dentre outras bibliotecas.

● /media: pontos de montagem para sistema de arquivos em mídia removível

37

8. Estrutura de diretóriosPrincipais diretórios do Gnu/Linux

● /opt: Diretório para armazenagem dos programas que não fazem parte da distribuição;

● /proc: informações sobre todos os processos em execução

● /root: Pasta para informações para superusuário (root). Por segurança, não está em /home;

● /sbin: comandos para iniciar, reparar e recuperar sistema

● /tmp: arquivos temporários do sistema operacional;

● /usr: hierarquia de arquivos e comandos secundários

● /var: Contém arquivos variáveis, como log, variáveis de ambiente, spool de impressões, etc..

38

8. Estrutura de diretóriosPrincipais diretórios do Gnu/Linux

● /usr:

● /usr/lib: maioria dos arquivos executáveis e comandos

● /usr/local: software local (que pode ser gravado ou instalado) ← usuário

● /usr/man: páginas de manual online

● /usr/sbin: comandos menos essenciais para adminstração do sistema

● /usr/share: itens que podem ser comuns (e compartilhados) a vários sistemas (somente leitura)

● /usr/src: código fonte de pacotes de software não-locais

39

8. Estrutura de diretóriosPrincipais diretórios e sistemas de arquivos

Identificador único do dispositivo

Ponto de montagem → diretório GNU/Linux

Sistema de arquivo

Arquivo /etc/fstab

40

8. Estrutura de diretóriosPrincipais diretórios do Gnu/Linux

● /usr:

● /usr/lib: maioria dos arquivos executáveis e comandos

● /usr/local: software local (que pode ser gravado ou instalado) ← usuário

● /usr/man: páginas de manual online

● /usr/sbin: comandos menos essenciais para adminstração do sistema

● /usr/share: itens que podem ser comuns (e compartilhados) a vários sistemas (somente leitura)

● /usr/src: código fonte de pacotes de software não-locais

41