SISTEMAS OPERACIONAIS DE ARQUITETURA ABERTA Prof. Ulisses Cotta Cavalca <ulisses.cotta@gmail.com> Belo Horizonte/MG 2015 1
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 2
1. História do GNU/Linux Sistema 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. 3
1. História do GNU/Linux Sistema 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. 4
1. História do GNU/Linux O 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). 5
1. História do GNU/Linux Distribuiçõ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... 6
1. História do GNU/Linux Distribuições Linux 7
1. História do GNU/Linux Linha do tempo das principais distro 8
2. Licenças de softwares Histó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? 9
2. Licenças de softwares Liberdades do Software Livre Executar para qualquer propósito Software Livre Estudar e adaptar Redistribuir cópias Aperfeiçoá-lo 10
2. Licenças de softwares Free Software Fundation Criada por Richard Stallman em 1984. Trabalho colaborativo pela comunidade de informática. Editores de textos (EMACS) Projeto GNU GNU is not Unix Compiladores GCC (GNU Compiler Collection) Shell Bash (Bourme-Again Shell) GNU File Utils (comandos básicos) Kernel Hurd 11
2. Licenças de softwares GNU não é Unix Boi Gnu 12
2. Licenças de softwares GPL General Public License Copyleft: Todos os direitos revertidos GPL é um instrumento legal para implementar o conceito de copyleft Acesso ao código fonte Copiar e distribuir o código fonte e Diretrizes executável de um programa Modificar o código fonte Permissão de cobrança por produtos, suporte ou distribuição. 13
3. Aspectos GNU/Linux Qual 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? 14
3. Aspectos GNU/Linux Algumas 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 15
3. Aspectos GNU/Linux Algumas 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. 16
3. Aspectos GNU/Linux Algumas 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...) 17
4. Comparação com Windows Principais 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... 18
4. Comparação com Windows Principais 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. 19
4. Comparação com Windows Principais 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. 20
5. Kernel x Ambiente gráfico Servidor 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. 21
5. Kernel x Ambiente gráfico Esquema entre servidor gráfico, kernel e gerenciador de ambiente Hardware Criar comunicação com os dispositivos físicos Kernel Mecanismo para gerenciar janelas diretamente com o kernel do SO. Servidor Gráfico Servidor X No Linux isso tudo é configurável, diferentemente do Windows que embute o servidor gráfico no seu kernel. Interface gráfica final com o usuário, além de outras finalidades que auxiliam o uso do Linux. Gerenciador de ambiente GNOME KDE XFce 22
5. Kernel x Ambiente gráfico GNOME 23
5. Kernel x Ambiente gráfico KDE 24
5. Kernel x Ambiente gráfico XFce 25
6. Memória virtual O 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). 26
6. Memória virtual O que é memória virtual? Armazenamento em dois níveis: Processador Armazenamento principal Armazenamento secundário Processador Caches L1 e L2 Memória principal Discos Memória virtual 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. 27
6. Memória virtual Verificando 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. 28
7. Sistemas de arquivos O 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). 29
7. Sistemas de arquivos Como funciona um sistema de arquivos? Sistema de arquivos após a formatação Ocupação no disco após gravação do 1º arquivo 30
7. Sistemas de arquivos Como 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 31
7. Sistemas de arquivos O dilema da fragmentação de disco Situação típica Novo arquivo com2 blocos de tamanho Essa é a solução ideal? 32
7. Sistemas de arquivos Fragmentaçã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. 33
7. Sistemas de arquivos Journal ou journaling 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 34 disco sofra alteração.
7. Sistemas de arquivos Fragmentação de espaço 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. 35
8. Estrutura de diretórios Principais 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 36 mídia removível
8. Estrutura de diretórios Principais 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.. 37
8. Estrutura de diretórios Principais 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) 38 /usr/src: código fonte de pacotes de software não-locais
8. Estrutura de diretórios Principais diretórios e sistemas de arquivos Arquivo /etc/fstab Identificador único do dispositivo Ponto de montagem diretório GNU/Linux Sistema de arquivo 39
8. Estrutura de diretórios Principais 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) 40 /usr/src: código fonte de pacotes de software não-locais
41