gnu/ linux o linux é um sistema operacional criado em 1991 por linus torvalds na universidade de...

48
Alunos: Elton Alexandre Gomes e osival Silva Professor: Hugo Vieira L. de Souza Disciplina: Sistemas Operacionais Descrição: Seminário de avaliação – Unidade II

Upload: internet

Post on 18-Apr-2015

107 views

Category:

Documents


1 download

TRANSCRIPT

  • Slide 1
  • Slide 2
  • GNU/ Linux
  • Slide 3
  • O Linux um sistema operacional criado em 1991 por Linus Torvalds na universidade de Helsinki na Finlndia. um sistema Operacional de cdigo aberto distribudo gratuitamente pela Internet. Seu cdigo fonte liberado como Free Software (software livre), sob licena GPL, o aviso de copyright do kernel feito por Linus descreve detalhadamente isto e mesmo ele no pode fechar o sistema para que seja usado apenas comercialmente. Isto quer dizer que voc no precisa pagar nada para usar o Linux, e no crime fazer cpias para instalar em outros computadores, inclusive a incentivo para que isso seja feito. Ser um sistema de cdigo aberto pode explicar a performance, estabilidade e velocidade em que novos recursos so adicionados ao sistema. O requisito mnimo para rodar o Linux depende do kernel que ser usado.
  • Slide 4
  • Para espao em disco requerido 500MB para uma instalao bsica usando modo texto com suporte a rede. O sistema segue o padro POSIX que o mesmo usado por sistemas UNIX e suas variantes. Assim, aprendendo o Linux voc no encontrar muita dificuldade em operar um sistema do tipo UNIX, FreeBSD, HPUX, SunOS, etc., bastando apenas aprender alguns detalhes encontrados em cada sistema. O Linux desenvolvido por milhares de pessoas espalhadas pelo mundo, cada uma fazendo sua contribuio ou mantendo alguma parte do kernel gratuitamente. Linus Torvalds ainda trabalha em seu desenvolvimento e na coordenao dos grupos de trabalho do kernel. O suporte ao sistema tambm se destaca como sendo o mais eficiente e rpido do que qualquer programa comercial disponvel no mercado. Existem milhares de consultores e empresas especializadas no suporte e treinamento espalhados ao redor do mundo.
  • Slide 5
  • O kernel o corao do Sistema Operacional Linux. Ele o responsvel por garantir que todos os programas tero acesso aos recursos de que necessitam (memria RAM, por exemplo) simultaneamente, fazendo com que haja um compartilhamento concorrente mas sem oferecer riscos integridade da mquina. O conjunto de um kernel e demais programas responsveis pela comunicao com este o que denominamos sistema operacional Kernel monoltico ou mono-bloco um kernel que implementa uma interface de alto nvel para possibilitar chamadas de sistema especficas para gesto de processos, concorrncia e gesto de memria por parte de mdulos dedicados que so executados com privilgios especiais. Desenvolvido por diversos programadores ao redor do mundo, no se pode ter um controle fino do que implementado no kernel, com isso no e comum se descobrir falhas graves de segurana.
  • Slide 6
  • Convivem sem nenhum tipo de conflito com outros sistemas operacionais. Multitarefa real. Multiusurio. Suporte a nomes extensos de arquivos e diretrios (255 caracteres). Conectividade com outros tipos de plataformas como Apple, Sun, Macintosh, Sparc, Alpha, PowerPc, ARM, Unix, Windows, DOS, etc. Utiliza permisses de acesso a arquivos, diretrios e programas em execuo na memria RAM. Proteo entre processos executados na memria RAM. Suporte a mais de 63 terminais virtuais (consoles). Modularizao - O Linux somente carrega para a memria o que usado durante o processamento, liberando totalmente a memria assim que o programa/dispositivo finalizado.
  • Slide 7
  • ARQUITETURA LINUX
  • Slide 8
  • Slide 9
  • Micro-kernel: uma poro mnima de cdigo responsvel por atividades bsicas, sendo os demais recursos providos por servidores localizados em espao de usurio; facilita a programao e aumenta a segurana, uma vez que ha menos cdigo dependente de hardware e em modo kernel. Monoltico: todas as atividades bsicas so executadas em modo kernel, sendo que novas funcionalidades so providas como mdulos de kernel, ao invs de servidores em espao de usurio; busca maior eficincia ao evitar trocas de contexto.
  • Slide 10
  • Sistema operacional composto de dois nveis.
  • Slide 11
  • Em uma viso mais rpida, o Linux pode ser dividido em alguns subsistemas principais:
  • Slide 12
  • PROCESSAMENTO LINUX
  • Slide 13
  • Na fase de inicializao do Linux a funo start_kernel responsvel por criar um thread, este o processo de nmero zero, o primeiro e o ascendente de todos os outros processos. Depois de inicializar toda a estrutura de dados para este processo, esta mesma funo responsvel por chamar a funo init que por sua vez utiliza a chamada de sistema execve para rodar o executvel init, que ser o processo nmero 1, mais conhecido como init. Estados : Uma das coisas que o escalonador precisa ter cincia em qual estado est cada processo, na estrutura que armazena os dados de cada processo temos um array de possveis estados onde apenas uma das opes abaixo estar ativa.
  • Slide 14
  • TASK_RUNNING Em execuo ou aguardando para ser executado. TASK_INTERRUPTIBLE O processo est suspenso at que determinada condio se torne verdadeira. TASK_STOPPED Execuo do processo foi parada. TASK_ZOMBIE O processo est terminado, mas o processo pai ainda no executou uma chamada de sistema para retornar informaes sobre o processo morto wait, as informaes no so descartadas pois ainda podem ser utilizadas.
  • Slide 15
  • LIMITE (recurso de processo) Por padro o Linux limita os recursos que cada processo pode ter. Isto , quanto de recursos do sistema ele pode utilizar. Isso uma proteo para que caso o usurio faa algo errado, no prejudique a estabilidade do sistema. VAMOS ANALISAR ALGUNS DESSES LIMITES RLIMIT_AS O tamanho mximo que um processo pode ter em bytes RLIMIT_CORE Quando um processo abortado, o kernel pode gerar um arquivo core contendo as informaes desse aborto.
  • Slide 16
  • RLIMIT_CPU O tempo mximo em segundos que um processo pode ser executado. RLIMIT_DATA O tamanho mximo do heap ou memria de dados em bytes. RLIMIT_FSIZE O tamanho mximo em bytes permitido para um arquivo. RLIMIT_NOFILE O nmero mximo de descritores de arquivos abertos. RLIMIT_NPROC O nmero mximo de processos que um usurio pode ter. RLIMIT_RSS A quantidade mxima de memria fsica que um processo pode ter.
  • Slide 17
  • Os processos do Linux so preemptivos, isso significa que quando um processo entra no estado TASK_RUNNING o kernel vai checar se existe alguma prioridade maior do que o processo corrente. Caso exista, o processo corrente interrompido e o que tem prioridade maior comea a rodar.
  • Slide 18
  • A prioridade de um processo no Linux est em constante alterao, o escalonador se mantm informado sobre o que os processos esto fazendo e assim torna-se possvel ajustar a prioridade. Dessa maneira os processos que ficaram proibidos de utilizar o CPU por um longo intervalo de tempo, tem sua prioridade incrementada automaticamente, contrariamente os processos que passaram um longo perodo dentro do CPU so penalizados tendo sua prioridade decrementada. Quando tocamos no assunto escalonamento importante notar que os processos so classificados como da Forma E/S e Forma CPU. O primeiro faz uso extenso dos recursos de entrada e sada, isso significa que grande parte do seu tempo utilizado no aguardo da concluso das operaes de Entrada e Sada, j o segundo so processos que necessitam de um longo tempo dentro do CPU.
  • Slide 19
  • Veremos 3 classes de processos de Classificao Alternativa: Processos Interativos - Os processos que esto em constante interao com o usurio, sendo assim eles perdem grande parte do tempo esperando uma atividade do usurio, como um clique do mouse ou o aperto de uma tecla. Quando qualquer dessas aes for recebida o sistema precisa responder de forma gil suspendendo qualquer processo que estiver rodando e colocar o processo interativo no CPU para processar a requisio solicitada pelo usurio, caso contrrio ele pode pensar que o sistema no est respondendo. Um bom tempo de resposta em torno de 50 e 150 ms.
  • Slide 20
  • Processos em Lote - No necessitam de nenhuma interao do usurio e por isso muitas vezes rodam em background. Como so processos de baixa prioridade, so freqentemente penalizados pelo escalonador. Programas de processamento em lote comuns so editores de texto, compiladores e programas grficos. Processos em Tempo Real - Esses processos nunca devem ser bloqueados por processos de baixa prioridade, precisam de um tempo de resposta super rpido e com uma variao bastante baixa. Alguns aplicativos que fazem uso do tempo real so som, vdeo, controladores de robs e equipamentos que envolvem a segurana humana.
  • Slide 21
  • O algoritmo de escalonamento do Linux funciona dividindo o tempo do CPU em fatias. Prioridade Esttica Definido pelo usurio para processos que necessitam de tempo real, os valores variam de 1 at 99 que nunca so modificados pelo escalonador. Prioridade Dinmica Esta aplicada para os processos convencionais. A prioridade dinmica dos processos convencionais sempre inferior aos processos com prioridade esttica. Se existir um processo com prioridade esttica no estado TASK_RUNNING nenhum processo dinmico ir rodar at que ele pare de executar.
  • Slide 22
  • MEMRIA
  • Slide 23
  • Cada processo no Linux possui prioridades com relao alocao de memria. O Linux tambm possui uma caracterstica de alocar determinados recursos dos processos que foram executados para garantir que estes retornem de maneira mais eficiente quando estes forem requisitados novamente. Caso a memria fsica (memria RAM) esteja totalmente carregada, iniciado um processo de operao com a memria virtual, a memria SWAP medida que mais processos vo sendo executados, e como estes tem preferncia de alocao na memria fsica, o Linux comea a jogar estes recursos alocados para a memria SWAP.
  • Slide 24
  • Somente os dados na memria RAM so processados pelo processador, por ser mais rpida. Desta forma quando voc est executando um programa e a memria RAM comea a encher, o GNU/Linux move automaticamente os dados que no esto sendo usados para a partio Swap e libera a memria RAM para a continuar carregando os dados necessrios. Quando os dados movidos para a partio Swap so solicitados, o GNU/Linux move os dados da partio Swap para a Memria. Por este motivo a partio Swap tambm chamada de Troca ou memria virtual. Esse sistema de paginao dividido em duas sees: o algoritmo de polticas, o qual responsvel por decidir qual pgina dever ser transferida para o disco e quando esta pgina deve ser transferida; e o sistema de paginao, o qual transfere os dados novamente para a memria fsica quando estes se tornam necessrios novamente
  • Slide 25
  • O Linux decide qual das pginas deve sofrer swapping atravs de um algoritmo chamado LFU, ou Least Frequently Used. Nesse algoritmo, as pginas com menor frequncia de utilizao so selecionadas para a realizao da operao de swapping, com intuito de realizar o menor nmero possvel de trocas de pginas.
  • Slide 26
  • ARQUIVOS
  • Slide 27
  • criado durante a formatao da partio de disco (quando se usa o comando mkfs.ext3). Aps a formatao toda a estrutura para leitura, gravao, permisses de arquivos e diretrios pelo sistema operacional estar pronta para ser usada. Normalmente este passo feito durante a instalao de sua distribuio GNU/Linux. Cada sistema de arquivos tem uma caracterstica em particular mas seu propsito o mesmo: Oferecer ao sistema operacional a estrutura necessria para ler/gravar os arquivos/diretrios. Entre os sistemas de arquivos existentes posso citar: EXT2; EXT3; EXT4.
  • Slide 28
  • Ext2 - Usado em parties Linux Nativas para o armazenamento de arquivos. identificado pelo cdigo 83. Seu tamanho deve ser o suficiente para acomodar todo os arquivos e programas que deseja instalar no GNU/Linux (voc encontra isto no manual de sua distribuio). Voc dever usar preferencialmente o ext3 para a instalao de seu sistema operacional. Ext3 - Este sistema de arquivos possui melhorias em relao ao ext2, como destaque o recurso de jornaling e suporte a arquivos de at 16Gb. Ele tambm identificado pelo tipo 83 e totalmente compatvel com o ext2 em estrutura. O journal mantm um log de todas as operaes no sistema de arquivos, caso acontea uma queda de energia eltrica (ou qualquer outra anormalidade que interrompa o funcionamento do sistema), o fsck verifica o sistema de arquivos no ponto em que estava quando houve a interrupo, evitando a demora para checar todo um sistema de arquivos.
  • Slide 29
  • Reiserfs - Possui os mesmos recursos do ext3, mas seu design bastante diferente. Bastante recomendvel para sistemas que possuem muitos arquivos pequenos (servidor web, etc). Possui o tempo de recuperao em caso de queda de energia menor que o ext3. Swap - Usado em parties Linux Swap para oferecer memria virtual ao sistema. Note que altamente recomendado o uso de uma partio Swap no sistema. proc - Sistema de arquivos do kernel.
  • Slide 30
  • FAT12 - Usado em disquetes no DOS. No possui suporte a permisses, journaling. FAT16 - Usado no DOS e oferece suporte at discos de 2GB. No possui suporte a permisses e journaling. FAT32 - Tambm usado no DOS e oferece suporte a discos de at 2 Terabytes. No possui suporte a permisses e journaling. NTFS - Formato nativo de discos de sistemas operacionais Windows XP e superiores. Possui suporte a permisses de acesso e compactao nativa.
  • Slide 31
  • A partio EXT2 o tipo usado para criar o sistema de arquivos Linux Native usado para armazenar o sistema de arquivos EXT2 (aps a formatao) e permitir o armazenamento de dados. Este tipo de partio normalmente identificado pelo cdigo 83 nos programas de particionamento de disco. Note que tambm possvel criar um sistema de arquivos EXT2 em um arquivo (ao invs de uma partio) que poder ser montado e acessado normalmente pelo sistema de arquivos. Logo que foi inventado, o GNU/Linux utilizava o sistema de arquivos Minix (e consequentemente uma partio Minix) para o armazenamento de arquivos. Com a evoluo do desenvolvimento, foi criado o padro EXT (Extended Filesystem) e logo evoluiu para o EXT2 (Second Extended Filesystem). O padro mais usado nos dias de hoje o EXT3 devido ao Journaling.
  • Slide 32
  • O sistema de journaling grava qualquer operao que ser feita no disco em uma rea especial chamada journal, assim se acontecer algum problema durante alteraes no disco, ele pode voltar ao estado anterior do arquivo, ou finalizar a operao. Desta forma, o journal acrescenta ao sistema de arquivos o suporte a alta disponibilidade e maior tolerncia a falhas. Aps uma falha de energia, por exemplo, o journal analisado durante a montagem do sistema de arquivos e todas as operaes que estavam sendo feitas no disco so verificadas. Dependendo do estado da operao, elas podem ser desfeitas ou finalizadas. O retorno do servidor praticamente imediato (sem precisar a enorme espera da execuo do fsck em parties maiores que 10Gb), garantindo o rpido retorno dos servios da mquina.
  • Slide 33
  • O sistema de arquivos ext3 faz parte da nova gerao extended file system do Linux, sendo o padro atual e tem como seu maior benefcio o suporte a journaling e armazenamento eficiente de arquivos com at 16Gb de tamanho. O uso deste sistema de arquivos comparado ao ext2, na maioria dos casos, melhora o desempenho do sistema de arquivos atravs da gravao seqencial dos dados na rea de metadados e acesso mhash a sua rvore de diretrios. Mas pode trazer impactos na performance no caso de dispositivos de memria flash e quando utiliza arquivos para armazenar o sistema de arquivos. A estrutura da partio ext3 semelhante a ext2, o journaling feito em um arquivo chamado.journal que fica oculto pelo cdigo ext3 na raiz da partio (desta forma ele no poder ser apagado, comprometendo o funcionamento do sistema).
  • Slide 34
  • Diretrio /etc/alternatives Este diretrio contm links para diversos aplicativos padres utilizados pelo sistema. Dentre eles so encontrados links para o editor do sistema e o xterm padro usado pelo sistema. Arquivo /etc/default/devpts Este arquivo contm algumas configuraes para os pseudo terminais em /dev/pts. Arquivo /etc/default/rcS Contm variveis padres que alteram o comportamento de inicializao dos scripts em /etc/rcS.d Arquivo /etc/console-tools/config Este arquivo contm configuraes padres do pacote console-tools para as fontes de tela e mapas de teclado usados pelo sistema. A fonte de tela especificada neste arquivo (as fontes disponveis no sistema esto localizadas em /usr/share/consolefonts
  • Slide 35
  • Journal: os metadados e os dados (contedo) dos arquivos so escritos no journal antes de serem de fato escritos no sistema de arquivos principal. Isso aumenta a confiabilidade do sistema com uma perda de desempenho, devido a necessidade de todos os dados serem escritos no disco duas vezes. Writeback: os metadados so escritos no journal mas no o contedo dos arquivos. Essa opo permite um melhor desempenho em relao ao modo journal, porm introduz o risco de escrita fora de ordem onde, por exemplo, arquivos que so apensados durante um crash podem ter adicionados a eles trechos de lixo na prxima montagem Ordered: como o writeback, mas fora que a escrita do contedo dos arquivos seja feita aps a marcao de seus metadados como escritos no journal. Esse considerado um meio-termo aceitvel entre confiabilidade e performance, sendo, portanto, o nvel padro.
  • Slide 36
  • Ext4 a evoluo do sistema de arquivos mais usados no Linux, o Ext3. De muitas maneiras, Ext4 uma profunda melhoria sobre o Ext3, sendo o Ext3, com muitas melhorias frente o Ext2. No Ext3 foi principalmente a adio de Journaling sobre o Ext2, mas Ext4 teve mudanas importantes na estrutura do sistema de arquivos destinado ao armazenamento de dados. O resultado um sistema de arquivos com um design aperfeioado, melhor performance, confivel e com muitos recursos. Um sistema de arquivos Ext3 existente, pode ser migrado para Ext4 com um procedimento fcil, onde consiste a execuo de um casal de comandos em modo read-only. Por meio disto voc melhora a performance, limites de armazenamentos e recursos do sistema de arquivos corrente, com ou sem a reformatao e/ou reinstalao do SO e softwares environment.
  • Slide 37 DIR >PRN: para imprimir a sada de um comando. A sintaxe dos shells unix a mesma (na verdade o msdos herdou-a do unix): hal:~$ ls -l >/dev/lp1">
  • Processos unix habitualmente possuem trs dispositivos de I/O padres, a "sada padro", a "entrada padro" e a "sada de erros". O sistema unix permite que esses dispositivos sejam definidos no momento da execuo, podendo ser o console, um "pipe", a impressora, um circuito virtual de rede conectando duas mquinas, uma linha fsica serial ou outras coisas para as quais haja suporte no sistema. Usurios de msdos talvez estejam habituados a fazer coisas como: C> DIR >PRN: para imprimir a sada de um comando. A sintaxe dos shells unix a mesma (na verdade o msdos herdou-a do unix): hal:~$ ls -l >/dev/lp1
  • Slide 38 /tmp/error A entrad"> /tmp/error A entrada pode ser redirecionada de forma semelhante: hal:~$ wc
  • Shells do estilo "bourne" como o bash permitem redirecionamento da sada de erros atravs da seguinte sintaxe: hal:~$ rm /bin/ls 2>/tmp/error A entrada pode ser redirecionada de forma semelhante: hal:~$ wc
  • Slide 39
  • SEGURANA
  • Slide 40
  • O kernel Linux por ser descendente da filosofia Unix pode ser considerado seguro. Porm como o projeto do kernel descentralizado e seu foco obter um grande suporte a hardware novos, no incomum se descobrir falhas do tipo buffer overflow, negao de servio (DOS) e alguns que levam at a privilgios de super usurio (root). Quando uma falha desses encontrada rapidamente liberado um patch para correo. O kernel do linux possui o firewall a nvel de pacotes Iptables. Ele bastante sofisticado e robusto. Possui filtro a nvel de pacotes, marcao de pacotes, nat, port redirection, ip redirection, source nat, destination nat entre muitas outras features.
  • Slide 41
  • BENEFCIOS
  • Slide 42
  • Custo baixo e gratuito Por serem baseadas em software livre, as distribuies Linux podem ser encontradas gratuitamente. Algumas distribuies, como o Ubuntu, disponibilizam em seus sites oficiais links de download das imagens dos CDs de instalao ou at mesmo disponibilizam um formulrio onde voc pode solicitar a entrega de mdias de instalao atravs do correio. Verses mais elaboradas, como aquelas dedicadas exclusivamente a servidores, podem apresentar um pequeno custo por causa da licena, mas esse custo ainda muito menor do que licenas de outros sistemas operacionais, como os sistemas da famlia Windows.
  • Slide 43
  • SEGURANA E ESTABILIDADE: Os sistemas Linux so mais estveis, pois conseguem gerenciar de maneira mais eficiente os recursos de hardware. Isso permite que at mquinas mais antigas possam rodar verses mais novas das distribuies. Alm disso, so mais seguros, pois o nmero de pragas virtuais para sistemas Linux ainda muito reduzido, alm de que cdigos que modifiquem qualquer parte do sistema sempre so interceptados com a autenticao obrigatria o superusurio (root). Esse recurso inclusive comeou a ser incorporado de maneira similar a partir do Windows Vista na famlia Windows, atravs do Controle de Conta de Usurio. COMUNIDADE EXTENSA: A comunidade Linux muito ativa. Manifesta-se atravs de fruns, listas de discusso e outros meios atravs da internet, meios de fcil acesso. Isso garante suporte quando necessrio, inclusive em portugus. Voc pode obter auxlio para problemas bem bsicos como para problemas mais complexos.
  • Slide 44
  • LIMITAES
  • Slide 45
  • INCOMPATIBILIDADE (equipamentos): Alguns fabricantes de equipamentos no escrevem drivers para o sistema Linux para seus equipamentos, como o caso de algumas impressoras da HP. Existem alternativas para estes casos, porm geralmente so tortuosas de serem implementadas e podem desencorajar os usurios a utilizarem as distribuies Linux. INCOMPATIBILIDADE (formatos de arquivos): Alguns formatos de arquivos, principalmente os proprietrios da Microsoft, no so executados com toda a fidelidade, como o caso do formato de vdeo WMV. Existem plug-ins para execut-los, mas estes no acabam oferecendo a mesma qualidade que se o arquivo estivesse sendo executado no Windows Media Player.
  • Slide 46
  • DIFICULDADE NO USO (usurio): Mesmo com o MODO esforo de algumas distribuies como o Ubuntu, o Linux no consegue oferecer a mesma facilidade de uso que o Windows. Isso talvez se deva mais a um fator cultural, mas o fato que se voc entregar um computador com Linux pra algum que trabalha com Windows, este certamente sentir um pouco de dificuldade, o que no acontece geralmente ao contrrio.
  • Slide 47
  • Conclumos que o sistema operacional Linux tem evoludo muito em suas funes, com muitas melhorias. Por ser um software livre, gratuito, no quer dizer que o sistema de m qualidade como muitas pessoas pensam. Com diversas distribuies, o Linux usado em varias empresas como: Banco do Brasil, Petrobrs, Casas Bahia, Lojas Colombo, Lojas Renner, Governo Federal, etc. O sistema roda tranquilamente com outros sistemas, isso quer dizer que a pessoa poder usar o Linux, sem trocar o seu sistema atual que sempre usa (Dual Boot).
  • Slide 48
  • www.ime.usp.br/~ueda/ldoc/es.htmlwww.ime.usp.br/~ueda/ldoc/es.html, guiaFoca + iniciante + intermediario, pdf Gonalves, A., Luvizotto, D., Nascimento, H., Santos, L., Martins, L.Sistemas Linux. Universidade Estadual de Londrina,Londrina, 2007. Jnior, J., Alvarez, D. Gerenciamento de memria no Linux. Instituto Tecnolgico da Aeronutica (ITA). So Jos dos Campos.