Professional Documents
Culture Documents
Roteiro
Histria Caractersticas Gerais Kernel Sistema Operacional GNU/Linux
Histria
1970
MIT + Bell Labs + General Electric = MULTICS (multiplexed information and computing service) Com o fracassado do projeto MULTICS, a Bell manteve o pesquisador Ken Thompson, que escreveu um MULTICS mais enxuto, o qual foi apelidado por Brian Kernighan de UNICS (uniplexed information and computing service), e posteriormente mudou a ortografia para UNIX
Dennis Ritchie aderiu ao projeto, onde o Unix foi reescrito em linguagem C com 10.000 linhas de cdigo, tornando-se muito complexo (Unix PDP-11);
1978
Histria
Andrew Tanenbaum
Desenvolve o Minix, um sistema com as caractersticas parecidas com as do Unix. Objetivo: Estimular o aprendizado de sistemas operacionais. O cdigo reduzido e mais limitado;
1991
Linus Torvalds precisava utilizar o Unix para trabalhos acadmicos, porm a disponibilidade de acesso era limitada, restando ento a alternativa de se ter o Unix em casa
Linus cria ento um SO com um kernel mais poderoso, compatvel com o Unix, e com cdigo aberto: nasce o Linux, em sua primeira verso;
Inspirado no Minix
Histria
Distribuio do Linux
O kernel bsico do sistema operacional Linux o 2.6 A verso 2.4 do kernel ficou sob responsabilidade de um brasileiro, Marcelo Tossati. Perodo: 2001-2006
O fato do controle do ncleo ser centralizado faz com que as atualizaes lanadas sejam estveis;
Histria
Distribuies: Red Hat (Fedora, Mandriva), SuSE, Debian (Ubuntu), Slackware, e muitas outras
Caractersticas Gerais
Desenvolvido voluntariamente por programadores de todo o mundo; Multiusurio; Obedece aos padres POSIX, ANSI, ISO, IETF e W3C; Executa em praticamente qualquer tipo de processador (depende da interface), com arquiteturas diferentes
Kernel monoltico
O kernel projetado para ser um conjunto de mdulos individualmente carregveis Cada mdulo possui uma interface bem definida que mostra como suas funcionalidades podem ser chamadas e como seus dados podem ser acessados por outros mdulos De modo oposto, a interface tambm mostra as funcionalidades e dados dos outros mdulos que podem ser usados por esse mdulo
Kernel monoltico
Poucos mdulos so carregados no momento do boot, sendo que novos mdulos necessrios so carregados dinamicamente No entanto, eles tm que ser integrados com os mdulos que j esto carregados na memria, de modo que os mdulos possam funcionar coletivamente como um kernel monoltico
Kernel 2.6
O kernel 2.5 era no-preemptivo no sentido de tarefas de altas e baixas prioridades, ou seja, se uma tarefa do kernel de baixa prioridade estava sendo executada, a de alta prioridade do kernel tinha que esperar
http://en.wikipedia.org/wiki/Linux_kernel http://www.forumpcs.com.br/noticia.php?b=83702
Arquitetura do Kernel
Gerenciamento de processo Comunicao interprocesso Gerenciamento de memria Gerenciamento de sistema de arquivo Gerenciamento de E/S Gerenciamento de rede
Gerenciamento de Processos
No linux, tanto processos quanto threads so denominados tarefas Um processo representado por uma estrutura de dados especial chamada de descritor de processos (task_struct):
Mantm informaes de alto e baixo nvel, desde cpia de registradores de hardware at o i-node do diretrio de trabalho para o processo (BCP);
Ficam armazenadas em uma tabela de processos (reside em uma pgina de memria reservada), de tamanho finito (default 512K);
Gerenciamento de Processos
Assim que um processo criado, recebe uma identificao (pid); Permite manipulao de threads;
Escalonamento baseado em threads; Processos interativos; Processos batch; Processos em tempo real; I/O bound (privilegiados pelo escalonador); CPU bound;
Gerenciamento de Processos
Executando: em execuo na CPU ou pronto para ser executado; Esperando (adormecido): equivalente a processo bloqueado, aguardando algum evento ou recurso; Parado: parado devido a ter recebido um sinal de interrupo; Zombie: um processo j encerrado, mas que por algum motivo ainda possui uma estrutura alocada;
Ocorre quando o processo pai ainda no leu seu cdigo de sada, permitindo que o kernel limpe a estrutura alocada;
Escalonamento baseado em prioridade, sendo que essa prioridade afeta o tamanho de seu perodo de tempo e a ordem em que ela executa O escalonador reconhece 40 nveis distintos de prioridade que vo de 20 a 19, sendo que a 20 a de mais alta prioridade Se o processo for interrompido por E/S, o escalonador eleva dinamicamente a prioridade da tarefa, diminuindo o valor da prioridade esttica
Polticas:
SCHED_FIFO:
SCHED_RR:
Para processos em tempo real; Prioridade com quantum para cada processo; Escalonador chamado quando:
Processo terminou seu quantum; Processo com maior prioridade est pronto para ser executado; Processo libera espontaneamente o processador para processos com mesma prioridade; Quando um processo sendo executado termina ou bloqueado;
SCHED_OTHER:
Gerenciamento de Memria
LMM (Linux Memory Manager): prov mecanismos que permitem que a memria do sistema possa ser utilizada da melhor maneira possvel; SO encarrega-se de fornecer para cada processo um espao suficiente para que ele possa ser executado, garantindo proteo;
Gerenciamento de Memria
Texto: cdigo processo; Dados no inicializados/inicializados : espao de armazenamento necessrio s variveis alocadas estaticamente no processo; Pilha: espao de memria necessrio s variveis locais, para passagem de parmetros e para salvar e restaurar endereos de retorno;
Gerenciamento de Memria
3Gb para processos; 1Gb para tabelas de pginas e outros dados do kernel;
SO mantm na memria somente as partes de cdigo, dados e pilha que um processo est utilizando em um determinado tempo;
Mantm apenas uma estrutura interna que descreve a memria virtual do processo, indicando o que est carregado na memria e o que est no disco;
Divide toda a memria disponvel em pginas de tamanho fixo (4k p/ Pentium) e mantm uma tabela das pginas na memria;
medida que os processos so executados, eles so carregados em pginas na memria, e a tabela atualizada;
Diretrio Global
Tabela de Pginas
Pginas
Alocar e liberar pginas fsicas: algoritmo Buddy; Controle de reas de memria livres e alocadas feito usando um vetor, no qual cada elemento uma lista encadeada (free-area); Quando um processo precisa de informaes que no esto presentes na memria ele causa uma falta de pgina e o SO encarregado de buscar essa informao no disco (Pager);
Poltica para substituir pginas: LRU combinado com o algoritmo do relgio (ordem de endereo virtual);
Gerenciamento de E/S
Requisies so realizadas por meio de chamadas de sistema (primitivas); Cada dispositivo tratado como um arquivo especial /dev;
Tipo: caracter ou bloco; Maior: identifica classe (1-255); mesmo device driver; Menor: identifica um dispositivo especfico; Cada arquivo est associado a uma partio lgica do disco;
Gerenciamento de E/S
Nome /dev/fd0 /dev/hda Tipo Bloco Bloco Maior 2 3 Menor 0 0 Descrio Unidade de disquete 0 Disco IDE primrio
/dev/hda1
Bloco
/dev/hda2
Bloco
/dev/lp1 /dev/console
Caracter Caracter
4 1
0 1
Gerenciamento de E/S
Processo 1 Processo 1 ... Processo n
Dispositivos Bloco
Driver Disco
Driver impressora
tty0
tty1
impressora
Disco IDE
Ceagesp Band CELEPAR Casas Bahia Banco do Brasil Ita Bradesco Embraer Metr SP Sabesp
Casas Bahia
Maior rede varejista do pas em setores de eletrodomsticos e eletroeletrnicos 477 lojas em todo o Brasil
So Caetano do Sul SP Incio em 2005 Tudo roda em LINUX (de estaes de trabalho, terminais remotos e servidores)
Economia na compra de computadores mais simples e baratos No pagamento de licenas Melhor disponibilidade da infraestrutura de TI Melhor desempenho com mquinas mais baratas e antigas O lucro certamente tambm maior
Certificaes
A primeira certificao (contedo bsico e resoluo de problemas mais simples) Instalao, configurao, etc.
Design de infraestrutura de TI
CLP Novell Certified Linux Professional CLE Novell Certified Linux Engineer
Certificaes
Caractersticas:
Inclui 3 nveis
Certificaes
LPIC Level 1
Certificaes
301
Conceito e arquitetura, Replicao de sites, design de diretrio, migrao de NIS para LDAP, integrao com samba, tuning de performance, desenvolvimento de scripts Conceitos do protocolo SMB/CIFS, integrao e configurao de diferentes clientes CIFS, administrao avanada de recursos compartilhados, integrao com kerberos, clustering
302
Certificaes
http://www.lpibrasil.com.br
LPI Linux Certification in a Nutshell OReilly Artigos sobre as provas de nvel 1
http://www/oreilly.com/catalog/lpicertnut2
http://focalinux.cipsga.org.br/download-lpi.html
Foca Linux
https://group.lpi.org/cgi-bin/publicwiki/view/Examdev
http://list.lpi.org/cgi-bin/mailman/listinfo/lpi-brasil
Lista de Discusso
http://www.makelinux.net/kernel_map#sd