Breve Histórico do Unix e do Linux Versão original desenvolvida por Ken Thompson (Bell) Estudo de Caso: Sistema Operacional Unix Prof. Alexandro M. S. Adário URI – Campus de Erechim Assembly para PDP-7, logo portada para o PDP-11 Baixa Portabilidade → Mudança para código em “B” Denis Ritchie desenvolve o C, escreve o compilador Unix é licenciado para universidades pela AT&T Berkeley desenvolve o 1BSD que evolui para produtos de grande sucesso (4BSD e releases) Microsoft lança o Xenix AT&T consegue entrar no mercado e evolui até o System V POSIX (Portable Operating System) é uma iniciativa de padronização Minix: versão didática desenvolvida por Tanenbaum Linux é baseado no Minix, como um clone do Unix. Camadas de um Sistema Unix Estrutura do Núcleo do 4.4BSD Interface de usuário Chamadas ao sistema Usuários Interface de biblioteca Interface de chamadas ao sistema Tratamento de terminais Programas-padrão utilitários (shell, editores, compiladores, etc.) Modo usuário Biblioteca-padrão (open, close, read, write, fork, etc.) Sistema Operacional Unix (gerenciamento de processo, gerenciamento de memória, sistema de arquivos, E/S, etc.) Hardware (CPU, memória, discos, terminais, etc.) Sinais Exigidos pela Norma POSIX Modo kernel Terminais tty Terminais preparados tty naturais Tratamento de linhas Dispositivos de caracteres Interrupção e traps Sockets Nomeação Mapea- Faltas de de arquivos mento página Protocolos de rede Sistemas Memória de arquivos Virtual Cache de buffer Roteamento Drivers de Rede Cache de páginas Drivers de disco Criação e Tratamento término de de sinais processos Escalonamento de processos Despacho de processos Hardware Chamadas de Sistema – Gerenc. Processos 1 Exemplo de Chamadas de Sistema Implementação de Threads POSIX Implementa uma shell básica simplificada Execução de um “ls” na Shell Fila de Escalonamento Unix Processos esperando no modo kernel O escalonador do Unix é baseado em uma estrutura de fila multinível Gerência de Memória e File Sharing Sistema de Paginação do 4BSD Usado quando o bloco de página está na lista de livres 2 Sistema de Paginação do Linux Entrada e Saída no Unix O Linux usa tabelas de páginas de três níveis 3