Universidade Federal Fluminense Escola de Engenharia Departamento de Engenharia de Telecomunicações Sistemas de Computação para Telecomunicações Autores: Bruno Peres Karina Damasceno Cunha Mariana da Costa Santos Victor Ribeiro Leite do Amaral Sistema UNIX Padrão POSIX Projeto GNU Relação entre UNIX e Linux ◦ Ano 1969 – AT&T Bells Labs ◦ Ano 1976 - Universidades ◦ Ano 1991 – Linus Torvalds Distribuições do Linux Tabela 1: Distribuições do Sistema Linux Facilidade de instalação; Opção de ser o único Sistema operacional ou não; Diversos meios de instalação: ◦ Live CD/DVD; ◦ Live USB; ◦ Diretamente no HD. Instalação e desinstalação de programas; Diversas distribuições; Não é de domínio público; O kernel do Linux é distribuído sob GPL (General Public License); Duas formas: automática e manual; Inicialização do kernel: Configuração de Hardware; ◦ Dispositivos físicos; ◦ Drivers. Threads de kernel ◦ Processos filhos; ◦ Fork(); ◦ Processo init Intervenção do Operador; Execução de scripts de inicialização; ◦ Níveis de execução: Nível Nível Nível Nível 0; 1; 2 a 5; 6. Operação multiusuário. Histórico: Minix e EXT Principais características do ext2: Nomes de arquivos até 255 caracteres; Tamanho máximo por arquivo: 16GB a 2TB; Tamanho máximo de partição 2 a 32TB. O ext3 e o journaling. Desvantagens do ext3: Limite de 31.998 subdiretórios por diretório; Não há suporte para recuperação de arquivos deletados; Ausência do checksum no journaling. O sucessor ext4: Suporta até 16GB por arquivo; Totalmente compatível com as versões anteriores; Limite de 64.000 subdiretórios por diretório; Journal checksumming. Diretório raiz “/” Sistema de arquivos bagunçado: arquivo regular, diretório, pipes, link simbólico, etc. Analisar o tipo de arquivo: ls -l Tabela 2: Análise tipo de arquivo. O que são chamadas de sistema O que é uma API Tipos de chamadas de sistema: Controle de processos Manipulação de arquivos Manipulação de dispositivos Manutenção de informação Comunicações Proteção Controla quais partes da memória está em uso e quais não estão; Possui dois componentes: ◦ Lida com Liberação e alocação da memória física; ◦ Manipula a memória virtual; A memória física é dividida em 3 regiões: ◦ Zone_DMA; ◦ Zone_NORMAL; ◦ Zone _HIGHMEM. As zonas são específicas da arquitetura; Alocador de páginas:principal gerenciador de memória física; Utilização de sistemas de pares; Diversos subsistemas especializados de gerenciamento de memória utilizam o alocador de página para gerenciar: ◦ ◦ ◦ ◦ Sistema de memória virtual; Cache de páginas; Alocador de tamanho variável; Alocação de placas. Linux é um sistema operacional com memória virtual paginada; Gerencia o conteúdo do espaço de endereçamento virtual de cada processo; Mantém visível o espaço de endereçamento para cada processo; Possui duas visões do espaço de endereçamento de um processo: ◦ Conjunto de regiões separadas; ◦ Conjunto de páginas. Criação de processo Descritores de processo e estrutura de tarefas Figura 2: Descritores Estados do processo do kernel do Linux Figura 3: Estados do processo. Contexto do Processo Árvore do Processo Threads Chamadas de sistema clone() : ◦ clone(CLONE_VM |CLONE_FS|CLONE_SIGHAND); ◦ CLONE_VM:pai e filho compartilham o espaço de endereçamento; ◦ CLONE_FS:pai e filho compartilham informações do sistema de arquivos; ◦ CLONE_FILES:pai e filho compartilham arquivos abertos; ◦ CLONE_SIGHAND:pai e filho compartilham tratadores de sinais bloqueados. No Linux tem dois algoritmos de escalonamento: ◦ Compartilhamento de tempo: Valor altos → baixa prioridade ->tempo menor. Valor baixos → alta prioridade ->tempo maior. ◦ Baseado em prioridade de tempo real. Família de chamada de sistema para gerenciar o escalonador: Tabela 3: Estados do processo Sincronização de processo é feita por spinlock e semáforos; Comunicação interprocesso: pipes e memória compartilhada. Dois problemas: ◦ Autenticação: Arquivo de senhas; Combinação de caracteres com “salt”; O problema; O mecanismo PAM. ◦ Controle de acesso: Dois identificadores (UID & GID); Aplicação em diversos objetos; Máscara de proteção; Qual é o primeiro processo a ser inicializado no Linux? Cite as duas formas de algoritmo de escalonador. Cite os principais componentes do kernel. Qual a principal vantagem que o algoritmo ext3 trouxe ao sistema de arquivos? Quais são os dois componentes de gerenciamento de memória do Linux?