SISTEMAS OPERACIONAIS DE ARQUITETURA ABERTA Prof. Ulisses Cotta Cavalca <[email protected]> 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 Software Livre ● Executar para qualquer propósito ● 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. Projeto GNU “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 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 executável de um programa Diretrizes ● 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 20 iniciantes. 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 Hardware Esquema entre servidor gráfico, kernel e gerenciador de ambiente Criar comunicação com os dispositivos físicos Kernel 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 Gráfico Gerenciador de ambiente Servidor X GNOME KDE XFce No Linux isso tudo é configurável, diferentemente do Windows que embute o servidor gráfico no seu kernel. ● 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 26 SWAP). 6. Memória virtual O que é memória virtual? ● Armazenamento em dois níveis: Processador Processador Caches L1 e L2 Armazenamento principal Armazenamento secundário 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. 27 ● MS Windows utiliza técnica de SWAP em arquivo. 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 ● 28 Toda área de SWAP definida será gerenciada pelo SO. 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 de35 arquivos e banco de dados baseados em Linux. 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 37 ambiente, spool de impressões, etc.. 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 39 Identificador único do dispositivo Ponto de montagem → diretório GNU/Linux Sistema de arquivo 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