Sistemas Operacionais FreeBsd Facol - Faculdade Osman Lins 1 História: O Projeto FreeBSD teve seu nascimento no início de 1993. Criadores: Jordan Hubbard, Nate Williams e Rod Grimes, nome sugerido por David Greenman. Derivado do BSD (Berkeley Software Distribution). Teve grande ajuda do CSRG (Computer Science Research Group). Teve seus fontes inteiramente baseados no 4.4BSD-Lite e melhorias do NetBSD, OpenBSD, 386BSD e da FSF (Fundação do Software Livre). Os objetivos do projeto FreeBSD são de oferecer Software que pode ser utilizado para qualquer propósito, sem restrições impeditivas. Facol - Faculdade Osman Lins 2 História: Distribuido sob licença GNU ( GLP – General Public License). A versão 1.0 foi laçada em dezembro de 1993 e atualmente foi lançada a versão 9.1 em dezembro de 2012. A versão atual adicinou novas características no kernel para suportar novas extensões e melhorias para o IPV6 dentre outras. Lema : The Power to Serve (O Poder de Servir). Logo: Daemon (Diabinho) se referindo a programas que rodam na memória autonomamente para servir requisições. Facol - Faculdade Osman Lins 3 História: Disponível para Intel x86, DEC Alpha, Sparc, PowerPC, PC98 baseados em 32 bits e para 64 bits IA-64 e AMD64. Robusto, Estável, normalmente utilizado em servidores, Servidores web e Proxies. Estrutura Organizacional: Facol - Faculdade Osman Lins 4 Características: Multiusuário. Multitarefa. Sistema de arquivo próprio FFS (Fast File System). Utiliza um sistema de Ports, (sistema de instalação de pacotes). Compatibilidade binária com Linux – Programas geralmente comerciais que são distribuídos em forma Binária. Facol - Faculdade Osman Lins 5 Hierarquia/Arquitetura: O que é o Kernel? Quando um programa quer a memória, o kernel lida com todos os detalhes de baixo nível de acessar o chip de memória física e alocação de recursos para o trabalho. Ele traduz um arquivo de MP3 para um fluxo de zeros e uns que a sua placa de som entende. Quando um programa solicita tempo de CPU, o kernel é responsavel por gerenciar o tempo para isso. Em suma, o kernel oferece todas as interfaces de software que programas precisam, a fim de acessar os recursos de hardware. Facol - Faculdade Osman Lins 6 Hierarquia/Arquitetura: Embora a função do núcleo é fácil definir (pelo menos neste modo simplista) é realmente uma tarefa complicada. Diferentes programas esperam que o kernel forneça diferentes interfaces para o hardware, e visse versa. Por exemplo, o FreeBSD suporta algumas dezenas famílias de placas Ethernet, cada um com suas próprias exigências que o kernel deve lidar. Se o kernel não pode falar com a placa de rede, o sistema não poderá se conectar na rede. A maneira como o kernel investigaalgum hardware durante a seqüência de inicialização define como o hardware se comporta. Facol - Faculdade Osman Lins 7 Hierarquia/Arquitetura: Sysctl permite espreitar os valores usados pelo kernel e, em alguns casos, para defini-los. sysctl é um poderoso recurso, porque, em muitos casos, possibilita resolver problemas de desempenho sem a reconstrução do kernel ou reconfigurar um aplicativo. Facol - Faculdade Osman Lins 8 Processamento: O FreeBSD é um sistema operacional multi-tarefa. Cada processo é identificado de forma única com um número, que é chamado de identificação do processo, ou process ID, ou então a forma abreviada e mais comum PID. A maioria dos processos tem ainda um processo pai, o processo pai é o processo que iniciou. Facol - Faculdade Osman Lins 9 Processamento: Facol - Faculdade Osman Lins 10 Processamento: A única exceção é um processo especial chamado de init(8). init é sempre o primeiro processo do sistema, portanto seu PID é sempre 1. O init é executado automaticamente pelo kernel quando o FreeBSD é iniciado. Facol - Faculdade Osman Lins 11 Processamento: Dois comandos são particularmente úteis para verificar os processos ativos no sistema, o ps(1) e o top(1). O comando ps é usado para apresentar uma lista estática dos processos sendo executados. O Comando top(1) mostra por padrão a quantidade de memória utilizada pelo Processo, quantos processos estão sendo executados e o estado dos processos. Facol - Faculdade Osman Lins 12 Processamento: Exemplo do comando ps: Facol - Faculdade Osman Lins 13 Processamento: Exemplo do comando top: Facol - Faculdade Osman Lins 14 Processamento: SIGTERM é uma maneira educada de matar um processo. Em alguns casos um processo pode ignorar o SIGTERM. SIGKILL é a maneira bruta de matar um processo. Este é o sinal que diz ao processo, ``Eu não me importo com o que você esteja fazendo, pare agora mesmo''. Facol - Faculdade Osman Lins 15 Memória: Cada processo tem seu próprio espaço de endereço privado. O espaço de endereçamento é inicialmente dividido em três segmentos lógicos: Textos: Leitura Dados: Leitura e Escrita. Pilhas: Leitura e Escrita. O FreeBSD usa bem mais espaço de Swap do que o Linux? Facol - Faculdade Osman Lins 16 Memória: Quando os recursos do sistema são escassos, o sistema utiliza uma abordagem manter os recursos disponíveis: Memória Swap Se uma pequena quantidade de memória disponível, o sistema irá recorrer a trocar todo o contexto de um processo para armazenamento secundário. A paginação por demanda e troca é feito pelo sistema e são efetivamente transparentes aos processos. Um processo pode, no entanto, o aconselhar o sistema sobre a utilização da memória futura esperada como um auxílio de desempenho. Facol - Faculdade Osman Lins 17 Memória: Gerenciamento de Memória Dentro do Kernel O kernel muitas vezes faz alocações de memória que são necessários apenas para a duração de uma única chamada de sistema. Como o núcleo tem uma pilha de tempo de tiragem limitada, não é possível atribuir nem blocos de tamanho moderado da memória. Facol - Faculdade Osman Lins 18 Arquivos: UFS (Unix File System). Suporta Journaling e Soft Updates. Soft Updates – é uma tecnologia para organizar gravações de disco para que o sistema de arquivos metadados permaneçam consistentes em todos os momentos. Um volume UFS é composto das seguintes partes: Alguns blocos no inicio da partição reservados para blocos de boot (os quais devem ser inicializados separadamente do sistema de arquivos); Um superbloco, contendo um número mágico identificando-o como um sistema de arquivos UFS, e alguns outros números virtuais descrevendo sua geometria, estatísticas e parâmetros de ajuste comportamental; Uma coleção de grupos de cilindros. Cada grupo contendo os seguintes componentes: Facol - Faculdade Osman Lins 19 Arquivos: Uma cópia de segurança do superbloco; Um cabeçalho de grupo de cilindros, com estatísticas, listas livres etc, sobre o grupo de cilindros, similar a àqueles no superbloco; Um número de nós-i, cada qual contendo atributos de arquivos; Um número de blocos de dados; Os Nós-i, do inglês i-nodes, são numerados seqüencialmente. Os vários nós-i iniciais são reservados por razões históricas, seguidos pelo nó-i do diretório root. Arquivos do tipo diretório contêm apenas a lista de nomes de arquivos no diretório e o nó-i associado a cada arquivo. Todos os metadados são mantidos no nó-i. Facol - Faculdade Osman Lins 20 Arquivos: O sistema de arquivos do FreeBSD nativo é o UFS (Unix File System) que foi modernizado como UFS2. Desde o FreeBSD 7.0, também está o sistema de arquivos ZFS, Desenvolvido pela Sun. Além de seus sistemas de arquivos nativos, FreeBSD suporta uma grande variedade de outros sistemas de arquivos para que os dados de outros sistemas operacionais pode ser acessado localmente, como dados armazenados em dispositivos conectados localmente, armazenamento USB, pen drives e discos rígidos. Isso inclui suporte para o sistema de arquivos Linux ® Extended (EXT) eo New Technology File System Microsoft ® (NTFS), ZFS (Zettabyte File System), XFS, ReiserFS, NFS. Existem diferentes níveis de suporte FreeBSD para os vários sistemas de arquivos. Alguns requerem um módulo do núcleo a ser carregado e outros podem necessitar de um conjunto de ferramentas para ser instalado. Alguns suporte ao sistema de arquivos não-nativa é cheio de leitura e escrita, enquanto outros são somente leitura. Facol - Faculdade Osman Lins 21 Arquivos: Estruturas de Diretórios e Arquivos: Facol - Faculdade Osman Lins 22 E/S: Segue o mesmo modelo dos derivados do Unix. É uma sequência de bytes que podem ser acessados randomicamente ou sequencialmente. Diferentes programas esperam vários níveis de estrutura, mas o kernel não impõe estrutura de I/O. As operações de I/O em Streams são bufferizadas – isto é, existe sempre um buffer, para e de onde são efetuadas as transferências de informação para os dispositivos que os Streams representam. Facol - Faculdade Osman Lins 23 E/S: Melhorias nos dispositivos USB. Suporte as Firewire e Bloetooth – Firewire barramento de altíssima velocidade e Bloetooth é o padrão para comunicação de periféricos sem fio. Facol - Faculdade Osman Lins 24 Segurança: Gerenciamento do Usuário Padrão do Unix. Somente o Root pode adicinar Usuário. Grupo Padrão de Usuário. Geração aleatória de Senhas. O Kernel do FreeBSD pode rodar em até 5 níveis de segurança, onde o -1 é o mais baixo até o 3 que é o mais alto. Por default esse valor é o -1. Facol - Faculdade Osman Lins 25 Segurança: Nível -1: Modo default, sem segurança de kernel, A única segurança encontrada nesse nível é em relação à permissão tradicionial do sistema Unix. Nível 0: Apenas usado quando o sistema está sendo inicializado pela primeira vez, e não possui alguma característica especial. Não há motivos especiais para utilizar este nível. Nível 1: Nesse nível você realmente começa a ter segurança. Não é possivel carregar módulos ao kernel. Nenhum programa pode escrever diretamente a memória do sistema. Discos que foram montados não podem ser escritos diretamente, não sendo possível formatar partições nesses discos. O gerenciador de janelas X não pode ser iniciado. Facol - Faculdade Osman Lins 26 Segurança: Nível 2: As mesmas características do modo 1 alêm de: Impossibilidade de escrever direto a sistemas de arquivos montados ou desmontados (Exceto pelo Mount), Impossibilita alterar a estrutura do sistemas de arquivos, redefinir ou modificar opções de montagem e também formatar newfs, quando o sistema estiver em multi-user. A hora somente poderá ser alterada de 1 em 1 segundo. Nível 3: As mesmas características do nível 2 além de proibir aletrações das definições de regras de firewall, seja o firewall ipfw, pfctl ou ipf, e também proibe modificações nas disciplinas alternativas de enfileiramento, com altq ou dummynet. Facol - Faculdade Osman Lins 27 Conclusão: Sistema completo, robusto, seguro, pronto para proteger as mais diversas informações com seus níveis de segurança elevado e gerenciamento de arquivos, características de confiabilidade que o capacita em ser usado em praticamente todas os setores da informática. Alta Complexidade de Instalação e Configuração. Facol - Faculdade Osman Lins 28 Bibliografia: LUCAS, Michael W. Absolute FreeBSD. 2ª ed. San Francisco. 2007 FreeBSD Handbook – Documentação Oficial Facol - Faculdade Osman Lins 29