www.cliqueapostilas.com.br ÉRIKA LOPES VILELA SISTEMAS OPERACIONAIS COLAtInA - ES 2009 www.cliqueapostilas.com.br Governo Federal Ministério da Educação Secretaria de Educação a Distância Professora - Autora Érika Lopes Vilela Equipe Técnica Danielli Veiga Carneiro Revisão Antonio Jonas Pinotti João Henrique Caminhas Ferreira Projeto Gráico Equipe CEAD Diagramação Edson Maltez Heringer Juliana Cristina da Silva Crédito de Imagens (Capa e Interior) Fonte: site sxc.hu Ilustrador(es) Equipe CEAD V699s VILELA, Érika Lopes. Sistemas operacionais / Érika Lopes Vilela. –. – Colatina: CEAD / Ifes, 2009. 148p. ; il. 1. Sistemas operacionais (Computadores) 2. Informática. 3. Ensino à distância. 4. Ensino técnico. I. título. CDD - 005.43 www.cliqueapostilas.com.br Caros alunos, Bem-vindos ao Curso Técnico de Informática que o Instituto Federal de Educação, Ciência e Tecnologia do Espírito Santo (Ifes) lhes oferece, contando com a parceria das Prefeituras e do Governo Federal. Vocês estão de parabéns por optarem pelo ensino a distância, modalidade que está, a passos rápidos, incorporando-se à nossa cultura. O avanço acelerado das tecnologias de informação e de comunicação tem colocado as possibilidades de acesso ao conhecimento à disposição de um contingente cada vez maior de pessoas interessadas em ampliar seu campo educacional. A velocidade com que os equipamentos na área da informática têm evoluído e o aprimoramento das conexões com a web tornaram o ensino a distância uma proposta eiciente de se ensinar e de se aprender. Muitos de vocês já navegam pela rede, utilizando-se de e-mails, chats, blogs, pesquisa on-line e cursos dados por videoconferência, tornando o ambiente virtual tão familiar quanto era a sala de aula para os mais velhos. Este curso oferecerá a vocês, alunos, material impresso e virtual de aprendizagem. Em ambos haverá teoria e variadas atividades para ixação do conhecimento. Sucesso a todos! www.cliqueapostilas.com.br ICONOGRAFIA Veja, abaixo, alguns símbolos utilizados neste material para guiá-lo em seus estudos. Fala do professor. Conceitos importantes. Fique atento! Atividades que devem ser elaboradas por você, após a leitura dos textos. Indicação de leituras complementares, referentes ao conteúdo estudado. Destaque de algo importante, referente ao conteúdo apresentado. Atenção! Relexão/questionamento sobre algo importante, referente ao conteúdo apresentado. Espaço reservado para as anotações que você julgar necessárias. www.cliqueapostilas.com.br SuMáRIO 1. VISÃO GERAL DE SIStEMAS OPERACIOnAIS ............................................9 1.1. COnCEItOS BÁSICOS................................................................................9 1.2. funçõES PRInCIPAIS .............................................................................10 1.3. MÁQuInA DE nÍVEIS ..............................................................................13 1.4. HIStÓRICO .................................................................................................17 1.5. tIPOS DE SIStEMAS OPERACIOnAIS .................................................22 2. COnCEItOS DE HARDWARE E SOftWARE ...............................................27 2.1. HARDWARE................................................................................................27 2.1.1 - unidade Central de Processamento (CPu) ....................................27 2.1.2 - Memórias .........................................................................................28 2.1.3 - Dispositivos de entrada e saída ......................................................31 2.1.4 - Outros componentes e conceitos ....................................................33 2.2. SOftWARE .................................................................................................34 2.2.1 - Conceito de software utilitário .......................................................35 2.2.2 - Software de apoio à programação ..................................................35 2.2.3 - Linguagem de controle ...................................................................39 2.2.4 - Programas de sistema ou utilitários ...............................................40 2.2.5 - Linguagem de máquina...................................................................41 2.3. COnCORRênCIA (IntERRuPçÃO E OPERAçõES DE E/S) ............44 2.3.1 - Introdução ........................................................................................44 2.3.2 - Mecanismo de Interrupção..............................................................44 2.3.3 - Operações de entrada e saída (E/S) ................................................46 3. EStRutuRA DO SIStEMA OPERACIOnAL.................................................51 3.1. SIStEMAS EM LOtE E MuLtIPROGRAMAçÃO ...............................52 3.1.1 - Sistemas em lote (batch) .................................................................52 3.1.2 - Escalonamento de tarefas e multiprogramação ..............................53 3.1.3 - Sistemas de tempo compartilhado ..................................................55 3.2. SERVIçOS DE SIStEMAS OPERACIOnAIS .........................................57 3.3. MODOS DE ACESSO E “SYStEM CALLS” ..........................................58 3.3.1 - Modos de acesso .............................................................................58 3.3.2 - System calls (chamadas ao sistema)...............................................60 3.4. ARQuItEtuRAS DOS SIStEMAS OPERACIOnAIS ..........................64 3.4.1 - Sistemas monolíticos.......................................................................64 3.4.2 - Sistemas em camadas......................................................................65 3.4.3 - Sistemas cliente-servidor (microkernels) .......................................67 3.5. IntERPREtADOR DE COMAnDOS.......................................................70 4. IntRODuçÃO À GERênCIA DE PROCESSOS, MEMÓRIA E ARQuIVOS ..................................................................................71 4.1. GERênCIA DE PROCESSOS ....................................................................71 4.2. GERênCIA DA MEMÓRIA PRInCIPAL .................................................74 4.3. GERênCIA DE ARQuIVOS ......................................................................76 4.4. GERênCIA DE DISPOSItIVOS (DE E/S Ou I/O) .................................79 4.5. SIStEMA DE PROtEçÃO ........................................................................82 www.cliqueapostilas.com.br 5. IntRODuçÃO AO SIStEMA OPERACIOnAL LInuX ................................84 5.1. CARACtERÍStICAS DO LInuX .............................................................85 5.1.1 - Distribuições do Linux....................................................................85 5.1.2 - Organização no Desenvolvimento do Linux ..................................86 5.1.3 - Principais características do Kernel Linux .....................................86 5.1.4 - Interfaces Disponíveis .....................................................................87 5.1.5 - O Linux e seus dispositivos ............................................................88 5.2. InStALAnDO O Gnu/LInuX .................................................................88 5.2.1 - Requisitos de Hardware para Instalação ........................................89 5.2.2 - Particionando o disco rígido ...........................................................89 5.2.3 - Vantagens e Desvantagens dos esquemas de particionamento .........................................................90 5.3. SIStEMA DE ARQuIVOS .........................................................................91 5.3.1 - Estrutura de diretórios .....................................................................92 5.3.2 - Propriedades dos Arquivos .............................................................94 5.4. COMAnDOS DO LInuX ..........................................................................95 5.4.1 - Iniciando e Encerrando o Sistema ..................................................95 5.4.2 - Manipulando diretórios e arquivos .................................................96 6. utILIZAçÃO DO LInuX ..................................................................................99 6.1. COMAnDOS BÁSICOS E DE MAnIPuLAçÃO DE ARQuIVOS .....100 6.1.1- Interfacegráica .............................................................................100 6.1.2 - Shell ...............................................................................................101 6.1.3 - Comandos de sessão e de terminal ...............................................104 6.1.4 - Comandos de ajuda .......................................................................106 6.1.5 - Comandos para diretórios .............................................................107 6.1.6 - Comandos para manipular arquivos .............................................110 6.2. GEREnCIAMEntO DE PERMISSõES .................................................119 6.2.1 - Introdução ......................................................................................119 6.2.2 - Permissões de arquivos .................................................................120 6.2.3 - Listando o conjunto de permissões dos arquivos ........................122 6.2.4 - Comandos de gerenciamento de permissões ................................125 6.3. GEREnCIAMEntO DE uSuÁRIOS E GRuPOS .................................132 6.3.1 - usuários e grupos..........................................................................132 6.3.2 - Comandos de gerenciamento de usuários. ...................................134 6.3.3 - Comandos de gerenciamento de grupos .......................................138 6.3.4 - Outros comandos relacionados a usuários e grupos ....................141 6.3.5 - Exemplos .......................................................................................143 REfERênCIAS ......................................................................................................148 www.cliqueapostilas.com.br Caro Aluno, Meu nome é Érika Lopes Vilela, responsável pela disciplina Sistemas Operacionais. Atuo como professora do Ifes, campus Colatina, desde 2001. Ministro aulas para o curso técnico em informática e tecnólogo em redes. Atualmente sou responsável pelas disciplinas introdução a redes, fundamentos de redes e redes TCP/ IP. Sou graduada em Processamento de Dados (1998) e especialista em Redes de Computadores (2000). Quando falamos em sistema operacional, estamos falando daquele que rege todo o gerenciamento dos recursos de hardware e software. Podemos dizer que estamos falando do maestro que rege toda a orquestra em um concerto. Cada instrumento tem sua particularidade, mas a orquestra não funciona sem a presença do maestro. Ele dá a harmonia ao conjunto. E a beleza da sinfonia vem dessa comunicação entre maestro e músicos. Nesta disciplina você conhecerá as responsabilidades do sistema operacional e verá que está intimamente ligado ao Hardware. É importante que você faça uma breve revisão dos conceitos abordados na disciplina Fundamentos de hardware, para melhor aproveitamento de nossa disciplina. A primeira parte do nosso conteúdo é teórica, já em um segundo momento iremos apresentar alguns exemplos práticos, como a instalação de um sistema GNU/Linux e o uso de comandos básicos para a sua utilização. Para ser bem sucedido neste curso, é importante fazer os exercícios e estudar regularmente, evitando, dessa forma, o acúmulo de tarefas. Fique atento aos prazos de sedimentação dos conteúdos e resolução das atividades avaliativas, para que você não se sobrecarregue nem perca o ritmo de estudo. Esperamos que você aproveite o curso para enriquecer seus conhecimentos, seus horizontes e sua visão de Sistemas Operacionais! Bons estudos e sucesso em sua caminhada! Professora Érika Lopes Vilela www.cliqueapostilas.com.br . www.cliqueapostilas.com.br Sistemas Operacionais 1. VISÃO GERAL DE SISTEMAS OPERACIONAIS Caro Aluno, Você já viu no semestre anterior ou em outras matérias que o computador só trabalha executando programas e que é exatamente para isto que ele serve. Neste capítulo, vamos começar o estudo do principal programa executado pelos computadores, o Sistema Operacional. Vamos iniciar conceituando os sistemas operacionais e mostrando as diversas camadas que os compõem. Um pouco de sua história também ajudará a ixar estes conceitos. Assim, leia atentamente e não deixe de entender as explicações apresentadas; a compreensão dos conceitos estudados em um capítulo é a base para o entendimento dos capítulos posteriores. Bons estudos! 1.1. COnCEItOS BÁSICOS Diferentemente do que muitas pessoas imaginam, o computador não faz nada sozinho. Ele apenas processa uma série de informações inseridas pelo usuário para então fornecer os resultados. As informações inseridas e os resultados que recebemos precisam estar num formato que nós humanos conseguimos entender. Para facilitar essa comunicação entre homem e computador, foram criados os softwares ou programas de computador. na realidade, tudo que fazemos com um computador é através da execução destes programas. Segundo o Aurélio (verbete sistema), sistema operacional é um conjunto integrado de programas básicos, projetado para supervisionar e controlar a execução de programas de aplicação em um computador. Já para Silberschatz, um sistema operacional é um programa que atua como intermediário entre o usuário e o hardware de um computador. O propósito de um sistema operacional é propiciar um ambiente no qual o usuário possa executar outros programas de forma conveniente, por esconder detalhes internos de funcionamento e eiciente,porprocurargerenciardeformajustaosrecursos do sistema. [fonte: Silberschatz, Galvin e Gagne, 2000. Adaptação. Capítulo 1 Página 3] Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 9 www.cliqueapostilas.com.br Curso Técnico em Informática Vamosestenderesteconceitoaolongodocurso,massimpliicando,um sistema operacional é um conjunto de rotinas executado pelo processador. Sua principal função é controlar o funcionamento do computador, gerenciando os diversosrecursosdisponíveisnosistema.Naigura1vemos a posição que um Sistema Operacional ou simplesmente “SO” ocupa dentre os vários elementos que compõem um sistema de computação. Você deve observar que a palavra “usuários” está sendo usada com dois sentidos diferentes: para as pessoas que utilizam o computador e para os programas e utilitários instalados no computador. figura 1: Visão do Sistema Operacional Fonte: Machado e Maia, 2004. Adaptação 1.2. funçõES PRInCIPAIS Na igura 1 foi destacado o controle do hardware. Esta é uma das funções básicas do SO e pode ser desmembrada em: Página 10 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais • Facilidade de acesso aos recursos do sistema um sistema de computação possui, normalmente, diversos componentes, como monitores, impressoras e discos rígidos. Quando utilizamos um desses dispositivos, não nos preocupamos com a maneira como é realizada esta comunicação e os inúmeros detalhes envolvidos. uma operação frequente como, por exemplo, a leitura de um arquivo em um CD ou disco pode parecer simples. na realidade, existe um conjunto derotinasespecíicas,controladaspelosistemaoperacional,responsáveis por acionar a cabeça de leitura e gravação da unidade de disco, posicionar na trilha e setor onde estão os dados, transferir os dados do disco para a memóriae,inalmente,informaraoprogramaachegadadosdados. Estes conceitos “setor” e “trilha” não serão aqui abordados. Você poderá pesquisar na apostila da disciplina fundamentos de Hardware ou em outros livros. O sistema operacional, então serve de interface entre o usuário e os recursos de hardware, tornando esta comunicação transparente (ou imperceptível) e permitindo ao usuário um trabalho mais eiciente e com menores chances de erros. Este conceito de ambiente simulado, criado pelo sistema operacional, é denominado máquina virtual (virtual machine) e está presente, de alguma forma, na maioria dos sistemas atuais. [fonte: Machado e Maia, 2004. Adaptação. Capítulo 1 Páginas 1 a 3] • Compartilhamento de recursos de forma organizada e protegida Se imaginarmos, por exemplo, que uma impressora pode ser utilizada por vários usuários do sistema, deverá existir algum controle para impedir que a impressão de um usuário interrompa a impressão de outro. O sistema operacional é o responsável por permitir o acesso organizado a este e a outros recursos. O compartilhamento de recursos permite a diminuição de custos, na medida em que mais de um usuário pode utilizar as mesmas facilidades concorrentemente, tais como discos, impressoras, linhas de comunicação, etc. Com isto, uma mesma impressora (ou linha de comunicação ou outro recurso) pode atender a vários usuários. não é só no controle do acesso a hardware compartilhado que o sistema operacional atua, mas o computador nos permite executar várias tarefas, como imprimir um documento, copiar um arquivo pela internet ou processar uma planilha, aparentemente tudo ao mesmo tempo. O SO deve ser capaz de controlar a execução concorrente de todas essas tarefas. Ainda podemos dizer que, embora alguns programas sejam escritos baseados nas instruções de um determinado processador, será respon- Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 11 www.cliqueapostilas.com.br Curso Técnico em Informática sabilidade do sistema operacional executar tarefas básicas do micro, ou seja, ensinar ao processador como desenhar uma janela ou imprimir um documento. De um modo geral, os programas que os usuários executam não são escritos para um processador, mas sim para um SO. Isto facilita a comunicação do programa com o hardware do computador. As tarefas são executadas pelo SO, tornando os programas menores e mais fáceis de serem programados. [fonte: Machado e Maia, 2004. Adaptação. Capítulo 1 Páginas 1 a 3] Conformemostraaigura2,oSOéointermediárioentrehardware e programas utilizados pelos usuários. figura 2: O SO é a interface entre o hardware e os programas executados pelo usuário Em uma situação ideal, somente o sistema operacional deve ter acesso ao hardware do computador. um programa que desejasse, por exemplo, fazer um desenho no vídeo, obrigatoriamente teria de repassar esta tarefa ao sistema operacional. O sistema operacional, por sua vez, iria analisar o pedido do programa e, considerando o pedido válido, o executaria. Caso um determinado programa resolvesse fazer um pedido estranho, (por exemplo, apagar todos os dados do disco rígido), o SO simplesmente poderia ignorar tal pedido, terminar a execução do programa e informar a ocorrência ao usuário. Esta é a condição ideal de um sistema operacional EStÁVEL e SEGuRO. Esta condição acontece, sobretudo, em sistemas operacionais para gerenciamento de rede local (Windows Server e o unix e suas versões, como o Linux) e entre os sistemas operacionais para PCs que não foram desenvolvidos para serem servidores de rede como o MacOS e Windows nas suas versões XP e Vista. O antigo DOS não trabalhava nessas condições. na época em que foi criado, o PC tinha pouquíssima memória RAM (1 MB) e o sistema operacional,comoicavaresidenteemmemória,tinhadeseromenor possível. uma solução para diminuir o tamanho do SO foi permitir Página 12 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais aos programas que acessassem diretamente o hardware do micro para tarefasespeciais,comodesenhargráicosouenviardadosàimpressora. Aigura3ilustraisto. figura 3: O DOS permitia acesso direto ao hardware aos programas dos usuários no entanto, isto acabava gerando um problema maior: se um programa izesse um acesso indevido diretamente ao hardware do computador ou se o programa não estivesse bem escrito, isto inevitavelmente era reletido no hardware, fazendo com que o programa parasse por travamento. Este problema continuou em versões do Windows 3.x, 95, 98 e ME, por utilizarem o mesmo núcleo do DOS, permitindo acessos direto ao hardware. nas conversas sobre informática, frequentemente alguém usa a expressão “meu computador travou”. Isto caracteriza uma situação que o SO não conseguiu resolver. um caso típico destes travamentos é causado pela permissão de acesso direto ao hardware. 1.3. MÁQuInA DE nÍVEIS A linguagem entendida pelo computador é uma linguagem binária de difícil entendimento pelos seres humanos, sendo chamada de linguagem de “baixo nível” ou “de máquina”. As linguagens mais próximas aos sereshumanossãoclassiicadascomolinguagensde“altonível”.Os computadores entendem apenas programas feitos em sua linguagem binária. Os seres humanos, no entanto, elaboram programas em linguagens de alto nível. um computador visto somente como um gabinete composto de circuitos eletrônicos, cabos e fontes de alimentação (hardware) não tem nenhuma utilidade. É através de programas (software) que o computador consegue armazenar dados em discos, imprimir relatórios, gerar gráficos, realizar cálculos, entre outras funções. O hardware é o responsável pelaexecuçãodasinstruçõesdeumprograma,comainalidadedese realizar alguma tarefa. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 13 www.cliqueapostilas.com.br Curso Técnico em Informática nos primeiros computadores, a programação era realizada em painéis, atravésdeios,exigindoumgrandeconhecimentodohardware e de linguagem de máquina. Isso trazia uma grande diiculdade para os programadores da época, que normalmente eram os próprios engenheiros projetistas e construtores destes computadores. A solução para esse problema foi o surgimento do Sistema Operacional, que tornou a interação entre usuário e computador mais simples, coniável e eiciente.A partir desse acontecimento, não existia mais a necessidade de o programador se envolver com a complexidade do hardware para poder trabalhar; ou seja, a parte física do computador tornou-se transparente para o usuário. Podemos considerar o computador como uma máquina de níveis ou camadas, onde inicialmente existem dois níveis: o nível 0 (hardware) e o nível 1 (sistema operacional). Desta forma, o usuário pode enxergar a máquina como sendo apenas o sistema operacional, ou seja, como se o hardware não existisse. Esta visão modular e abstrata é chamada máquina virtual. Para o sistema operacional, o programador e os programas também são usuários, pois usam recursos disponibilizados pelo SO. Em vários pontos deste texto, você poderá ver que a palavra usuário se aplica a programador ou a programa. na realidade, um computador não possui apenas dois níveis, e sim tantos níveis quantos forem necessários para adequar o usuário às suas diversas aplicações. Quando o usuário está trabalhando em um desses níveis, não necessita saber da existência das outras camadas, acima ou abaixo de sua máquina virtual. Atualmente, a maioria dos computadores possui a estrutura mostrada na igura 4, podendo conter mais ou menos camadas.A linguagem utilizada em cada um desses níveis é diferente, variando da mais elementar(baixonível)àmaissoisticada(altonível).Osaplicativos são programas executados pelo usuário. Os utilitários são programas de uso genérico e frequente, geralmente fornecidos junto com o SO. Cada um destes tópicos será abordado mais detalhadamente nos próximos capítulos. Página 14 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Alto nível Baixo nível figura 4: O computador como máquina de níveis Umsistemaoperacionalpodeentãoserdeinidosobdois aspectos: como uma máquina estendida ou máquina virtual e como um gerenciador de recursos. O sistema operacional, como uma máquina virtual, esconde do programador detalhes do hardware, apresentando uma visão simples deste hardware, mais conveniente e mais fácil de utilizar. O sistema operacional, como um gerenciador de recursos, fornece uma alocação controlada e ordenada dos recursos do computador entre os vários programas que competem por esses recursos. Os recursos incluem processadores, memórias, dispositivos de E/S (unidades de disco, impressoras, mouse, etc.), interfaces de rede, dentre outros. Quando um computador tem vários usuários, existe a necessidade de se proteger a memória, os dispositivos de E/S e os outros recursos. O sistema operacional então mantém informação sobre quem está usando qual recurso (para garantir os recursos a quem precisa deles), contabilizar o uso (para evitar que um usuário use por um período injustamente longo) emediarquandohápedidosconlitantessobreummesmorecurso. Compare esta nova definição dada para SO como máquina de níveis com as principais funções abordadas no item 1.2. Você acha que houve a inclusão de novas funções para o SO ou apenas as mesmas funções foram explicadas de forma diferente? Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 15 www.cliqueapostilas.com.br Curso Técnico em Informática ATIVIDADE 1 1. Diferencie software aplicativo de software utilitário e cite dois exemplos de cada. 2. De acordo com os nossos estudos, cite as funções do Sistema Operacional. 3. O que você entende por linguagem de máquina? 4. Explique o conceito “Máquina de níveis”. 5. Diferencie linguagem de alto nível de linguagem de baixo nível. 6. O que é máquina virtual? E quais as vantagens do modelo de máquina virtual? ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Página 16 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ 1.4. HIStÓRICO Vimos que o sistema operacional interage diretamente comohardwaree,comisso,éinluenciadodiretamente pela evolução do mesmo. Portanto, a evolução dos sistemas operacionais está, em grande parte, relacionada ao desenvolvimento de equipamentos cada vez mais velozes, compactos e de custos baixos e à necessidade de aproveitamento e controle destes recursos. Assim, ao falar sobre o histórico dos sistemas operacionais, estaremos recordando um pouco a evolução do hardware. Devemos lembrar que as datas das fases da evolução são aproximadas. Desde os tempos do computador programado por chaves e cabos até o surgimento do teclado e impressora de caracteres, procurou-se ao longo do processo evolutivo do computador tornar a sua utilização maisamigável,precisa,rápidaeeicaz. O conjunto de equipamentos e recursos utilizados para que o homem possa controlar o computador é genericamente denominado interface. O aprimoramento da interface atingiu o ponto em que o usuário passou a interagir com pequenos desenhos ou símbolos de objetos comuns ao seu trabalho. Pensou-se em representar, por exemplo, a tarefa de impressão de documentos pelo desenho de uma pequena impressora e a eliminação de um documento por uma pequena lixeira. Surgiram os ícones. O histórico da evolução foi dividido em fases, cada uma marcada pela evoluçãosigniicativadohardware, do software, da interação com o sistema ou por aspectos de conectividade. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 17 www.cliqueapostilas.com.br Curso Técnico em Informática • Primeira Fase (1945-1955) Válvulas e Painéis de Programação no início da Segunda Guerra Mundial, surgiram os primeiros computadores digitais, formados por milhares de válvulas, que ocupavam áreas enormes, sendo de funcionamento lento e duvidoso. na matéria fundamentos de Hardware você foi apresentado ao EnIAC (Electronic Numerical Integrator and Computer) o primeiro computador digital de propósito geral. Criado para a realização de cálculos balísticos, sua estrutura possuía 17.468 válvulas, 10 mil capacitores, 70 mil resistores e pesava 32 toneladas. Quando em operação era capaz de realizar 5 mil adições por segundo. Aprogramaçãoerafeitaempainéis,atravésdeios,utilizandolinguagem de máquina. não existia o conceito de “sistema operacional”. Outros computadores foram construídos nessa época, mas eram utilizados apenas em universidades e órgãos militares. Muitas empresas foram fundadas ou investiram no setor, como, por exemplo, a IBM, o que levou à criação dos primeiros computadores para aplicações comerciais. Aproveite: releia e compare o histórico da evolução dos computadores que você estudou na matéria fundamentos de Hardware. Lembre-se que o nosso conhecimento é cumulativo e, quanto mais relacionamento você fizer com outras matérias, mais fácil será guardar este conhecimento. • Segunda Fase (1956-1965) Transistores e Sistemas em Lote (batch) A criação do transistor e das memórias magnéticas contribuiu para o enorme avanço dos computadores da época. O transistor permitiu o aumento da velocidade e da coniabilidade do processamento; as memórias magnéticas permitiram o acesso mais rápido aos dados, maior capacidade de armazenamento e computadores menores. Surgiram os primeiros sistemas operacionais, para tentar automatizar as tarefas manuais até então realizadas e as primeiras linguagens de programação, como Assembly e fortran. Os programas deixaram de ser feitos diretamente no hardware, o que facilitou enormemente o processo de desenvolvimento de programas. Surgiu o processamento em batch, onde um lote (batch) de programas e de dados era submetido ao computador por vez. Os programas passaram a ser perfurados em cartões que, submetidos a uma leitora, eram processados e gravados em uma ita de entrada (acompanhe na figura 5). A fita de entrada, então, era lida pelo computador, que executava um programa de cada vez, processando egravandooresultadoemumaitadesaída.Aotérminodetodosos Página 18 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais programas,asitasdesaídaeramlidaseprocessadasnovamentepara serem impressas, gerando assim os relatórios. figura 5: Ciclos de processamento na segunda fase fonte: Machado e Maia, 2004. Adaptação Com o processamento em batch, um grupo de programas era submetido de uma só vez, o que diminuía o tempo existente entre a execução dos programas, permitindo, assim, melhor uso do computador. Os sistemas operacionais passaram a ter seu próprio conjunto de rotinas para operações de entrada/saída, o que veio facilitar bastante o processo de programação. Essa facilidade de comunicação com os periféricos de entrada/saída criou um conceito de independência de dispositivos. • Terceira Fase (1966-1980) Circuitos Integrados e Multiprogramação Através dos circuitos integrados e, posteriormente, dos microprocessadores, foi possível viabilizar e difundir o uso de sistemas computacionais por empresas, devido à diminuição de seus custos de aquisição. Houve um aumento no poder de processamento e diminuição no tamanho dos equipamentos. A evolução dos processadores de entrada/saída permitiu que, enquanto um programa esperasse por uma operação de leitura/gravação, o processador executasse um outro programa. Para tal, a memória foi Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 19 www.cliqueapostilas.com.br Curso Técnico em Informática dividida em partições, onde cada programa esperava sua vez para ser processado. A essa técnica de compartilhamento da memória principal e processador deu-se o nome de multiprogramação. Comasubstituiçãodasitaspordiscosnoprocessodesubmissãodos programas,oprocessamentobatchtornou-semaiseiciente,poispermitiaa alteração na ordem de execução das tarefas, até então somente sequencial. A essa técnica de submissão de programas chamou-se spooling, que, mais tarde, também viria a ser utilizada no processo de impressão. Os sistemas operacionais, mesmo com a evolução do processamento batch e a multiprogramação, ainda estavam limitados a processamentos que não exigiam comunicação com o usuário. Para permitir a interação rápida entre o usuário e o computador, foram adicionados terminais de vídeo e teclado (interação on-line). A multiprogramação evoluiu, preocupada em oferecer aos usuários tempos de resposta razoáveis e uma interface cada vez mais amigável. Para tal, cada programa na memória utilizaria o processador em pequenos intervalos de tempo. A esse sistema de divisão de tempo do processador chamou-se time-sharing (tempo compartilhado). Outro fato importante nessa fase foi o surgimento do sistema operacional unIX. Aoinaldestafase,comaevoluçãodosmicroprocessadores,surgiram os primeiros microcomputadores, muito mais baratos que qualquer um dos computadores até então comercializados. • Quarta Fase (1981-1990) Computadores Pessoais Os mini e superminicomputadores se firmaram no mercado e os microcomputadores ganharam um grande impulso. Surgem as estações de trabalho (workstations) que, apesar de monousuárias, permitem que se executem diversas tarefas concorrentemente, criando o conceito de multitarefa. No inal dos anos 80 os computadores tiveram um grande avanço, decorrente de aplicações que exigiam um enorme volume de cálculos. Para acelerar o processamento, foram adicionados outros processadores, exigindo dos sistemas operacionais novos mecanismos de controle e sincronismo. Com o multiprocessamento, foi possível a execução de mais de um programa simultaneamente, ou até de um mesmo programa por mais de um processador. foram introduzidos processadores vetoriais e técnicas de paralelismo de processamento, fazendo com que os computadores se tornassem ainda mais poderosos. O uso das redes distribuídas se difundiu por todo o mundo, permitindo o acesso a outros sistemas de computação, independentemente de cidade, país e, até mesmo, fabricante. Os softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada máquina e surgem os sistemas operacionais de rede. Página 20 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais • Quinta Fase (1991-2000) Houve grandes avanços em termos de hardware, software e telecomunicações como consequência da evolução das aplicações, que necessitavam cada vez mais de capacidade de processamento e armazenamento de dados. Sistemas especialistas, sistemas multimídia, bancosdedadosdistribuídos,inteligênciaartiicialeredesneuraissão apenas alguns exemplos da necessidade cada vez maior de informação e de capacidade de processamento. O conceito de processamento distribuído é explorado nos sistemas operacionais, de forma que suas funções estejam espalhadas por vários processadores através de redes de computadores. A arquitetura cliente-servidor passa a ser oferecida em redes distribuídas, permitindo que qualquer pessoa tenha acesso a todo tipo de informação, independentemente de onde esteja armazenada. Adécadade90foideinitivaparaaconsolidaçãodossistemasoperacionais baseados em interfaces gráicas. [fonte: tanenbaum, Andrews S., 2000. Sistemas Operacionais Modernos. Adaptação. Capítulo 1 - Páginas 4 a 12] ATIVIDADE 2 1. Agora vamos destacar os principais tópicos da evolução dos sistemas operacionais de acordo com as fases. no quadro abaixo, cite duas características importantes da evolução de hardware e software. Primeira Segunda Terceira Quarta Quinta Fase Fase Fase Fase Fase ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 21 www.cliqueapostilas.com.br Curso Técnico em Informática 1.5. tIPOS DE SIStEMAS OPERACIOnAIS Os tipos de sistemas operacionais e sua evolução estão relacionados diretamente com a evolução do hardware e das aplicações por ele suportadasepodemserclassiicadosdaseguinteforma: figura 6: Tipos de sistemas operacionais fonte: Machado e Maia, 2004. Adaptação. Considerandooprocessamento,podemosclassiicarossistemasoperacionais de acordo com a quantidade de tarefas que podem ser executadas simultaneamente. Monoprogramáveis ou Monotarefa: podem executar apenas um programa por vez. Para que um usuário possa executar outro programa, deverá aguardarainalizaçãodoprogramacorrente.Estaeraumacaracterística dos primeiros sistemas operacionais que estavam relacionados ao surgimento dos primeiros computadores na década de 60. Sistemas monoprogramáveis ou monotarefa são aqueles em que é executado, por vez, um único programa ou uma única tarefa. Caracterizavam-se por permitir que todos os recursos de hardware ficassem exclusivamente dedicados a um único programa. Em conseqüência, sua principal desvantagem residia no fato de que enquanto um programa aguardava por um evento externo, como a digitação de um caracter do teclado, o processador permanecia ocioso. Além disso, tanto a memória principal quanto os recursos de E/S como impressoras e discos eram subutilizados, uma vez que todos estariam dedicados a umúnicoprogramacomomostraaigura7. Página 22 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais figura 7: Sistema monoprogramável ou monotarefa. fonte: Machado e Maia, 2004. Adaptação. Multiprogramáveis ou Multitarefa: os recursos computacionais são compartilhados entre os diversos usuários e suas aplicações. Podemos observar o compartilhamento de memória e do processador. nesse caso, o compartilhamento de tempo no processador é distribuído. Assim, o usuário tem a impressão que vários processos estão sendo executados simultaneamente. um dos processos ocupa o processador enquanto os outrosicamenileirados,aguardandoasuavezdeentraremexecução. Cabe ao Sistema Operacional o papel de gerenciar de forma ordenada e protegida o acesso concorrente aos recursos disponíveis. Sistemas multiprogramáveis ou multitarefa permitem o compartilhamento dos recursos computacionais entre diversos usuários e aplicações, permitindo sua execução concorrente. A vantagem desse tipo de sistema é uma melhor utilização dos recursos disponíveis, o que resulta em menor tempo de resposta das aplicações. Além de um custo reduzido, uma vez que haverá o compartilhamento dos recursos entre as diferentes aplicações e aumento da produção do usuário. Graças aos sistemas multiprogramáveis é possível editar um documento no word, navegar na internet, ouvir música, utilizar os mensageiros instantâneos (MSn), tudo ao mesmo tempo! Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 23 www.cliqueapostilas.com.br Curso Técnico em Informática figura 8: Sistema multiprogramável ou multitarefa. fonte: Machado e Maia, 2004. Adaptação. Sistemas com Múltiplos Processadores: o Sistema Operacional distribui as tarefas entre dois ou mais processadores. A vantagem desse tipo de sistema é permitir que mais de um programa possa ser executado simultaneamente ou que um mesmo programa seja dividido em várias partes e executado simultaneamente nos vários processadores, aumentando o desempenho. Sistemas com múltiplos processadores caracterizam-se por possuir duas ou mais CPu’s interligadas e trabalhando de forma conjunta na solução de um problema. Esse tipo de sistema surgiu da necessidade de aplicações que requeriam um grande poder computacional, como sistemas de previsão do tempo, modelagens, simulações, desenvolvimento aeroespacial, entre outros. Com múltiplos processadores, é possível reduzir drasticamente o tempo de processamento destas aplicações. Inicialmente, as conigurações limitavam-se a poucos processadores, mas, atualmente existem sistemas com milhares de processadores. Página 24 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Os sistemas com múltiplos processadores podem ser classiicados em fortemente acoplados e fracamente acoplados, em função da comunicação entre CPu’s e o grau de compartilhamento da memória. Em sistemas fortemente acoplados, há uma única memória principal compartilhada por todos os processadores, enquanto em sistemas fracamente acoplados cada sistema tem sua própria memória. Com isso, a taxa de transferência entre processadores em sistemas fortemente acoplados é bem maior que em sistemas fracamente acoplados. ATIVIDADE 3 1. Qual a grande diferença entre sistemas monoprogramáveis e sistemas multiprogramáveis? 2. Quais as vantagens dos sistemas multiprogramáveis? ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 25 www.cliqueapostilas.com.br Curso Técnico em Informática ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Página 26 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 2. CONCEITOS DE HARDWARE E SOFTWARE Caro Aluno, Você viu no capítulo anterior as principais funções dos SOs. Neste capítulo vamos revisar uma série de conceitos de hardware e software; esses conceitos deverão ser relembrados, pois são base para o entendimento do funcionamento e das diversas partes que compõem os SOs. Mais uma vez, parte destas explicações foi dada na matéria de Fundamentos de Hardware. Aproveite para fazer uma releitura com outros olhos. Bons estudos! 2.1. HARDWARE O hardware do computador é constituído por um conjunto de componentes interligados: processadores, memória principal, registradores, terminais, impressoras e discos magnéticos, além de outros dispositivos físicos. Os componentes físicos do computador são agrupados em três subsistemas básicos: • UnidadeCentraldeProcessamento(CPU); • Memória; • DispositivosdeEntradaeSaída. 2.1.1 - unidade Central de Processamento (CPu) ACPUtemcomofunçãoprincipaluniicartodoosistema,controlando as funções realizadas em cada unidade funcional. É responsável pela execução de todos os programas, que obrigatoriamente deverão estar armazenados na memória principal. A unidade central de processamento é dividida em dois componentes básicos: • Unidadedecontrolee • Unidadelógicaearitmética. A Unidade de controle é responsável por controlar as atividades de todos os componentes do computador, mediante a emissão de pulsos elétricos (sinais de controle) gerados por um dispositivo chamado clock. Este controle pode ser exercido, por exemplo, sobre a gravação de um dado no disco ou a busca de uma instrução na memória. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 27 www.cliqueapostilas.com.br Curso Técnico em Informática A Unidade lógica e aritmética é responsável pela realização de operações lógicas (testes e comparações) e aritméticas (somas e subtrações). A velocidade de processamento de uma unidade central de processamento é determinada pelo número de instruções que o processador executa por unidade de tempo, normalmente em segundos. A unidade de medida é MIPS (milhões de instruções por segundo). • Clock A transmissão de dados entre o receptor e o transmissor é controlada por um sinal de controle chamado clock. Este sinal é usado para sincronizar o transmissor com o receptor, isto é, para informar ao receptor que um dado está sendo transmitido. É utilizado pela unidade de controle para a execução das instruções. O clock é um dispositivo localizado na unidade central de processamento, que gera pulsos elétricos síncronos em um determinado intervalo de tempo (sinal de clock). A quantidade de vezes que este pulso se repete emumsegundodeineafrequência do clock. toda transmissão paralela utiliza um sistema de clock. Esses sistemas de clock, entretanto, são independentes, isto é, o sistema de clock usado na transmissão de dados entre o processador e a memória RAM não é o mesmo usado na transmissão de dados entre o disco rígido e a placa-mãe, por exemplo. 2.1.2 - Memórias A memória tem por função armazenar internamente toda informação que é manipulada pelo computador: os programas e os dados. A memóriapodeserclassiicadaquantoàsuavelocidade(outempo)de acesso, capacidade de armazenamento, custo e volatilidade. Em função destas características, pode-se estabelecer uma hierarquia de tipos de memórias(igura9): • • • • registradores; memóriacache; memóriaprincipal; memóriasecundária. figura 9: Comparativo dos diversos tipos de memória fonte: Machado e Maia, 2004. Página 28 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais • Registradores Sãodispositivosdealtavelocidade,localizadosisicamentenaunidade central de processamento, para armazenamento temporário de dados. O número de registradores varia em função da arquitetura de cada processador.Existemregistradoresdeusoespecíico(compropósitos especiais) e de uso geral. Osregistradoresdeusoespecíicosão: • Contadordeinstruções:Responsávelporarmazenaroendereço da próxima instrução que a unidade central de processamento deverá executar. toda vez que uma instrução já está sendo processada o endereço da próxima instrução a ser processada é armazenado no contador de instruções. • Apontadordepilha:Responsávelporarmazenaroendereçode memória do topo da pilha. Pilha é uma estrutura de dados onde o sistema mantém informações sobre tarefas que estavam sendo processadas, mas que por algum motivo tiveram que ser interrompidas. • Registradordeestado:responsávelporarmazenarinformações sobre a execução do programa (status do programa). A cada instrução executada, o registrador de estado é alterado conforme o resultado gerado pela instrução. • Memória Cache É uma memória volátil de alta velocidade. Quando o processador faz referênciaaumdadoarmazenadonamemóriaprincipal,veriicaantes se este dado não está armazenado na memória cache. Ao encontrar o dado armazenado na memória cache, o processador não acessa a memória principal, diminuindo o tempo de processamento. • Memória Principal É a memória responsável pelo armazenamento dos programas que estão sendo executados pela CPu em um certo instante, bem como dos dados utilizados pelos programas em execução. Para que um programa possa ser executado pela CPu é necessário que ele seja previamente armazenado na memória principal. Existem ainda dois tipos de memória: ROM (read only memory) e RAM (random access memory). Quando usamos o termo “memória” para um computador, normalmente estamos nos referindo à sua memória RAM. Se um programa que o usuário pretenda executar não estiver na memória RAM, então ele deve ser transferido de um sistema de memória secundário (como discos rígidos, unidades de CD-ROM e etc.) para a memória RAM. A RAM é um tipo de circuito eletrônico de memória que permite a leitura e a escrita de dados em seu interior. Só que ela é uma memória volátil Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 29 www.cliqueapostilas.com.br Curso Técnico em Informática (como os registradores e a cache), isto é, cortando-se sua alimentação elétrica, apagamos os dados que estavam nela armazenados. Já a característica principal da ROM é que o seu conteúdo não é perdido quando cortamos a sua fonte de alimentação e por isso é utilizada para manter os programas iniciais do computador. Quando ligamos o micro, o processador não sabe o que fazer; ele precisa executar um programa; este programa necessário para dar o boot é gravado em uma memória ROM localizada na placa-mãe do computador. um programa armazenado em ROM recebe o nome de irmware. na memória ROM do micro há basicamente três programas (irmware) principais: • BIOS(Basic Input/Output System, Sistema básico de Entrada/ Saída); • POST(Power On Self Test, Autoteste ao Ligar); • Setup(programaquepermitealterarváriositensdaconiguração do computador). A memória principal é composta por unidades de acesso chamadas células, cada uma capaz de armazenar um determinado número de bits. Cadacélulatemumendereço,verigura10,queéumareferênciaà posição da célula dentro da memória, como o endereço de uma casa. Quando um programa deseja ler ou escrever um dado em uma célula, deve primeiro especiicar qual o endereço de memória desejado. O endereçodacélulaaseracessadaicaarmazenadoemumregistrador denominado registrador de endereço de memória. figura 10: Células de memória e seus endereços fonte: Machado e Maia, 2004. Adaptação • Memória Secundária Memória secundária é um termo genérico para designar diversos componentes que permitem gravar e ler dados permanentes. O seu acesso é lento, se comparada com as memórias cache ou principal, porém relati- Página 30 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais vamente apresentam custo mais baixo e capacidade de armazenamento superior. Exemplos de memória secundária são as itas magnéticas, discos rígidos (HDs), CDs, DVDs, etc. 2.1.3 - Dispositivos de entrada e saída Permitem a comunicação entre o computador e o mundo externo. Alguns dispositivos servem para a comunicação homem-máquina, como teclados, monitores de vídeo, impressoras, plotters, entre outros. A implementação de interfaces mais amigáveis permite cada vez mais que pessoassemconhecimentoespecíicosobreinformáticapossamutilizar o computador. Scanner, caneta ótica, mouse, dispositivos sensíveis à voz humana e etc. são alguns exemplos desses tipos de dispositivos. Você talvez já tenha visto citar unidades de CD, DVD e etc. como unidades de entrada e saída. E isto está correto, pois realmente estas unidades permitem entrada e saída de dados do computador. Por outro lado, a “bolacha” do CDouDVDéumamemóriaexterna,poisnelaicam permanentemente gravados os dados. ATIVIDADE 4 1. Quais os componentes de um processador e quais são suas funções? 2. Como a memória principal de um computador é organizada? 3. Diferencie memórias voláteis das memórias nãovoláteis. 4. Existem três tipos de barramentos, que se diferenciam uns dos outros de acordo com o que é transportado. Citeasclassiicaçõesesuascaracterísticas. 5. Os registradores podem ser classiicados quanto ao seuuso.Citeasclassiicaçõesesuascaracterísticas. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 31 www.cliqueapostilas.com.br Curso Técnico em Informática ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Página 32 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 2.1.4 - Outros componentes e conceitos • Barramento A CPu, a memória principal e os dispositivos de E/S são interligados através de linhas de comunicação denominadas barramentos, barras ou vias. um barramento é um conjunto de ios paralelos (linhas de comunicação), onde trafegam informações, como dados, endereços ou sinaisdecontrole.Umesquemagráicodeumbarramentoémostrado naigura11. Obarramentopodeserclassiicadocomounidirecional (transmissão em um só sentido) ou bidirecional (transmissão em ambos os sentidos). Existem três tipos de barramentos, que se diferenciam uns dos outros de acordo com o que transportam: • Barramento de dados: transmite informações entre a memória principal e a unidade central de processamento; • Barramentodeendereços:utilizadopelaunidadecentraldeprocessamento para especiicar o endereço da célula de memória que será acessada; • Barramentodecontrole:éporondeaunidadecentraldeprocessamento envia os pulsos de controle relativos às operações de leitura e gravação. figura 11: Esquema gráico dos barramentos fonte: Machado e Maia, 2004. Adaptação • Pipelining O conceito de processamento pipeline é a divisão de uma tarefa em uma sequência de subtarefas. O processador, através de suas várias unidades funcionais pipeline, funciona de forma a permitir que, enquanto uma instrução se encontra na fase de execução, uma outra instrução possa estar na fase de busca. A técnica de pipelining pode ser empregada em sistemas com um ou mais processadores, em diversos níveis, e tem sido a técnica de paralelismo mais utilizada para maior desempenho dos sistemas de computadores. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 33 www.cliqueapostilas.com.br Curso Técnico em Informática Pipelining: Você pode fazer a semelhança com um motor de carro de quatro tempos e vários cilindros. Enquanto um cilindro está na fase de alimentação, outro está na fase de compressão, outro na de explosão e assim por diante.Istoaumentabastanteaeiciênciadomotor. • Ativação do Sistema toda vez que um computador é ligado, é necessário que o sistema operacional seja carregado da memória secundária para a memória principal. Este processo, denominado ativação do sistema (boot), é realizadoporumprogramalocalizadoemumaposiçãoespecíicado disco (boot block ou setor de boot). A matéria fundamentos de Hardware abordou este assunto, mostrando o passo a passo da realização do boot. não deixe de relê-la. Além de carregar o sistema operacional, a ativação do sistema também consiste na execução de arquivos de inicialização. nestes arquivos são especiicados procedimentos de inicialização e coniguração de hardware e softwareespecíicosparacadaambiente. nas versões mais antigas do Windows havia uma série de arquivos, com terminação .ini, que cumpriam esta tarefa. nas versões mais recentes estes arquivos ainda existem,masestesprocedimentosdeconiguraçãovêm sendo cada vez mais centralizados em um grande arquivo denominado Registro. 2.2. SOFTWARE Naigura4vimostrêscamadas(ouníveisdesoftware): aplicativos, utilitários e sistema operacional. Os software ou programas executados pelos usuários são atualmente chamados aplicativos. Antigamente se chamavam simplesmente programas. Quase tudo que o usuário consegue fazer utilizando o computador necessita de um aplicativo. Estes programas podem ser, por exemplo, um editor de textos, uma planilha ou um programa de imposto de renda, de controle de estoques ou de contas a receber. neste tópico vamos abordar especialmente os utilitários, pois o SO propriamente dito, desmembrado em cada uma das suas funções ou serviços, será tratado em detalhes em cada uma das próximas sessões. Página 34 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 2.2.1 - Conceito de software utilitário Antigamente havia uma distinção mais nítida entre os aplicativos e os utilitários, pois havia um personagem a mais no cenário: o operador do computador.Esteexecutavaalgumasatividadesespecíicas,comocopiar deitaparadiscoevice-versaouoperarasimpressoras.Paraexecutar estas atividades o operador precisava de uma série de programas, como, por exemplo, um programa para localizar um arquivo no computador. A maioria dos programas requeridos pelo operador era chamada de utilitários. Hoje em dia continua a existir um conjunto de programas, utilizados como interface entre o usuário e o hardware. O termo utilitário é, assim, uma referência a softwares relacionados com serviços do sistema operacional, como os compiladores, linkers, depuradores e outros. 2.2.2 - Software de apoio à programação • Tradutores, compiladores e montadores Com o surgimento das primeiras linguagens de montagem (Assembly) e as linguagens de alto nível, o programador passou a se preocupar menos com aspectos de hardware e a escrever em uma linguagem mais próxima da linguagem humana. Apesar das vantagens proporcionadas pelas linguagens de montagem e de alto nível, que propiciaram um aumento enorme na produtividade dos programadores, os programas não estão prontos para serem executados diretamente pela CPu. Eles deverão passar por uma etapa de conversão, quandoacodiicaçãodoprogramaétraduzidaparacódigodemáquina. É esta a função do tradutor. O tradutor gera um módulo objeto, que, apesar de estar em código de máquina, ainda não está preparado para ser executado (isto será conseguido pelo linker – ver adiante). O tradutor, pelo tipo de linguagem de programação utilizada, pode ser chamado de montador ou compilador: • A denominação montador ocorre quando é gerado o módulo objeto – a linguagem de máquina – a partir de uma linguagem de montagem (assembler). • Adenominaçãocompiladorédadaaoutilitárioresponsávelpor gerar, a partir de um programa escrito em linguagem de alto nível (Cobol, C, Delphi, etc.), um programa em linguagem de máquina (módulo objeto). Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 35 www.cliqueapostilas.com.br Curso Técnico em Informática figura 12: Representação das diferenças entre o tradutor, montador e compilador fonte: Machado e Maia, 2004. Adaptação • Interpretador Assim é chamado um tradutor que não gera o módulo objeto. A partir de um programa fonte, escrito em linguagem de alto nível, o interpretador, no momento da execução do programa, traduz cada instrução e a executa em seguida. Sua desvantagem é o tempo gasto na tradução das instruções de um programa toda vez que este for executado, já que não existe a geração de um código executável. Alguns exemplos de linguagens interpretadas são: Basic, dBase e APL e, modernamente, Java e PHP. • Linker O linker (ligador) é o utilitário responsável por gerar, a partir de um oumaismódulosobjeto,umúnicoprogramaexecutável(igura13). Sua função é resolver todas as referências simbólicas existentes entre os módulos objeto, reservar memória para a execução do programa e determinar uma região da memória onde o programa será carregado para sua execução. Página 36 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais figura 13: Representação do papel do linker fonte: Machado e Maia, 2004. Adaptação Emambientesmultiprogramáveisessetipodealocaçãoixafeitapelo linker é inviável porque neste caso a memória é compartilhada entre diversos programas: é pouco provável que no momento em que o sistema carrega um programa, sua área de memória que foi predeterminada esteja disponível. A solução para isso é permitir que um programa possa ser executado em qualquer região disponível da memória, durante a sua carga (código relocável). Esse tipo de relocação não é realizado pelo linker, e sim por outro utilitário, chamado loader, responsável por carregar os programas na memória. Você utiliza desde o primeiro módulo um ambiente de programação, o Dev C++, que executa estas funções (de compilador e linker e até a carga do executável) de uma vez, quando você aperta o f9. Você não percebe quando é executada cada uma delas, embora sejam distintas. Você só consegue ver, na pasta onde você está trabalhando, os programas fonte (com terminação .c ou .cpp) e o executável (terminação .exe); o módulo objeto intermediário (criado durante a compilação) você não vê mais. • Loader O loader(carregador)éoutilitárioresponsávelporcolocarisicamente na memória principal um programa para sua execução. Pode permitir que um programa seja carregado em regiões diferentes toda vez que for trazido para a memória. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 37 www.cliqueapostilas.com.br Curso Técnico em Informática Quando o loader carrega um programa para memória principal, ele aloca uma área de código, uma área de dados e uma área de pilha. A área de código armazena o programa executável, a área de dados armazena as variáveis e constantes utilizadas no programa e a área de pilha armazena os endereços de retorno das funções ou procedimentos chamados durante a execução do programa. O funcionamento do carregador depende do código gerado pelo linker e, de acordo com este,podeserclassiicadocomoabsolutoourelocável: • No loader absoluto: o loader só necessita conhecer o endereço de memória inicial e o tamanho do módulo para realizar o carregamento. Então, o loader transfere o programa da memória secundária para a memória principal e inicia sua execução. • No loader relocável: o programa pode ser carregado em qualquer posição de memória e o loader é responsável pela relocação no momento do carregamento. O processo completo de compilação, linkedição e carga de um programa émostradonaigura14. figura 14: As várias etapas do desenvolvimento e processamento de um programa. fonte: Silberschatz, Galvin e Gagne, 2000. Adaptação. Página 38 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais • Depurador O desenvolvimento de programas está sujeito a erros de lógica, independentemente da metodologia ou linguagem utilizadas pelo programador. O depurador é o utilitário que permite ao usuário acompanhar econtrolaraexecuçãodeumprogramaaimdedetectarerrosnasua estrutura. O depurador ajuda a detectar os erros, mas não os corrige. O depurador geralmente oferece ao usuário os seguintes recursos: • acompanharaexecuçãodeumprogramainstruçãoporinstrução; • possibilitar a alteração e a visualização do conteúdo de variáveis; • colocarpontosdeparadadentrodoprograma,deformaque,durante a execução, o programa pare nos pontos determinados; • especiicar em forma de envio de mensagem, toda vez que o conteúdodeumavariávelformodiicado. Estes recursos de depuração de programas também estão presentes no Dev C++, no menu Debug. Aproveite para pesquisar como você pode utilizar estes recursos, uma vez que os programas que você vem fazendo estão crescendo de tamanho e apresentando maior complexidade. 2.2.3 - Linguagem de controle Denominada, também, de linguagem de comando, é a forma mais direta de um usuário se comunicar com o sistema operacional. É oferecida por todos os SO para que, através de comandos simples, o usuário possateracessoarotinasespecíicasdosistema. Os comandos, quando digitados (ou executados) pelo usuário, são interpretados por um programa denominado interpretador de comandos ou shell. A linha de comando é reconhecida, o shellveriicasuasintaxe, envia mensagens de erro e faz chamadas de rotinas dos sistemas. O usuário dispõe assim, de uma interface interativa direta com o sistema operacional, para realizar tarefas básicas como acessar um arquivo em disco ou consultar um diretório. As linguagens de controle evoluíram no sentido de permitir uma interaçãomaisamigável,utilizandointerfacesgráicas,colocandoos programas em uso em janelas e utilizando ícones para comunicação com o usuário. Quando você cria uma pasta, renomeia ou apaga um arquivo, clica em cima de uma planilha ou texto para editá-los, você está interagindo com o shell e utilizando recursos desta linguagem de comando. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 39 www.cliqueapostilas.com.br Curso Técnico em Informática Embora todos ou quase todos os SO modernos usem uma interfacegráicaparainteragircomousuário,oprompt da linha de comandos também continua a existir em todos eles. Vamos estudar estes comandos no Linux nos próximos capítulos. O Windows utiliza um grupo de comandos cuja origem remonta ao DOS. Se você tem uma máquina com Windows procure ver onde está situado agora este recurso. 2.2.4 - Programas de sistema ou utilitários Os utilitários também são chamados comumente programas de sistema. Os SO mais modernos vêm aumentando a coleção destes tipos de programas. Você deve lembrar que há pouco tempo atrás você precisava de um programa especíico para gravar arquivos em CDs e DVDs e paraassistirumilme.HojeestasfunçõesestãoembutidasnoSO. Os programas de sistema fornecem um ambiente conveniente para a execução de uma série de tarefas de uso do computador ou de periféricos especíicos.Alguns deles são simplesmente interfaces de usuário às chamadas ao sistema; outros são consideravelmente mais complexos. Podem ser divididos em categorias tais como: Página 40 • Gerência de arquivos: Estes programas criam, excluem, copiam, renomeiam, imprimem, listam e geralmente manipulam arquivos e diretórios. Precisam trabalhar com diversos tipos de mídia: CD, DVD, HD, disquete, pendrive, etc. • Informações de status: Simplesmente pedem ao sistema informações relativas ao status da máquina ou de periféricos: data, hora, quantidade de memória ou espaço em disco disponível, número de usuários conectados, número de documentos aguardando impressão e outras informações semelhantes. • Modiicaçãodearquivo: Vários editores de texto podem estar disponíveis para criar e modiicar o conteúdo dos arquivos armazenadosemdisco,itaououtrotipodemídia. • Comunicações: Esses programas oferecem o mecanismo para criar conexões virtuais entre processos, usuários e diferentes sistemas de computação. Permitem aos usuários enviar mensagens às telas uns dos outros, navegar pelas páginas da web, efetuar logon remotamente ou transferir arquivos de uma máquina para outra. • Spooling:permitemmanipularailadeimpressãodedocumentos em uma ou mais impressoras ligadas ao sistema. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais À medida que novos periféricos se popularizam e novas funções são atribuídas ao computador esta lista de utilitários tende a crescer. Além disto, uma função antes exercida por um utilitário pode ser incorporada deinitivamente ao SO, como citamos o exemplo da leitura e gravação de CD e DVD. 2.2.5 - Linguagem de máquina todos os programas, para serem processados, precisam estar em linguagem de máquina. Esta é a linguagem que o processador realmente consegue entender. um programa em linguagem de máquina é totalmente codiicadoemformatobinário,oquetornapraticamenteimpossívelo entendimento pelo usuário. O programa em linguagem de máquina pode ser diretamente processado pela unidade central de processamento (CPu) não requerendo qualquer tipo de tradução ou relocação. um programa em linguagem de máquina não pode ser executado em outra máquina de modelo diferente, nem em outro SO. Cada processador possui um conjunto único de instruções de máquina previamente deinido pelo fabricante. Estas instruções especiicam detalhes como registradores, modos de endereçamento de memória, tipo de dados que caracterizam um processador e suas potencialidades. Porsuavez,cadaSOtemumgrupodeinstruçõesespecíico,chamada API – application program interface – que os compiladores usam para traduzir as instruções escritas na linguagem de alto nível para a linguagem entendida pelo linker. Isto faz com que um programa compilado em Linux não funcione com Windows; ou que um programa compilado em um PC não funcione em um Apple. uma tentativa de transformar os programas independentes do SO e do modelo do equipamento é a plataforma Java. Pesquise mais sobre isto. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 41 www.cliqueapostilas.com.br Curso Técnico em Informática ATIVIDADE 5 1. Diferencie Tradutor de Interpretador. 2. Quais as funções do linker? 3. Porque o uso do linker se tornou inviável em sistemas multiprogramáveis? E qual seria a solução adotada para o problema gerado? 4. Diferencie Compilador de Montador. 5. Qual é a função do depurador e cite três recursos que ele oferece ao usuário. 6. Por que a execução de programas interpretados é mais lenta que a de programas compilados? 7. Pesquise como funciona a técnica de pipelining e como ela melhora o desempenho dos sistemas computacionais. 8. Qual a principal função do loader? Diferencie linker de loader. 9. Qual a função da linguagem de controle? 10. Por que o código objeto gerado pelo tradutor ainda não pode ser executado? ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Página 42 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 43 www.cliqueapostilas.com.br Curso Técnico em Informática 2.3. COnCORRênCIA (IntERRuPçÃO E OPERAçõES DE E/S) Prezado Aluno, Vimos em sistemas multiprogramáveis que os recursos computacionais são compartilhados entre diversos usuários e aplicações. Nesta sessão você estudará como o sistema operacional gerencia este compartilhamento. Veremos o conceito de concorrência entre vários programas, o mecanismo de interrupção e as operações de entrada e saída. Dê bastante atenção ao mecanismo de interrupções, um dos principais responsáveis pela multiprogramação. Bons estudos! 2.3.1 - Introdução Os sistemas multiprogramáveis tornaram mais eiciente a utilização dos recursos computacionais, por permitirem a execução simultânea (concorrente) de vários programas, podendo ocorrer de, quando um programa estiver realizando uma operação de E/S, outros podem utilizar o processador. Essa possibilidade do processador executar instruções em paralelo com as operações de E/S permitiu que diversas tarefas fossem executadas ao mesmo tempo. Outro aspecto importante que devemos ressaltar é a melhor utilização da memória principal, que antes, em sistemas monotarefa, era subutilizada, agora pode conter vários programas residentes concorrendo pela utilização do processador. Os sistemas operacionais podem ser vistos como um conjunto de rotinas que executam concorrentemente de forma ordenada. A possibilidade de o processador executar instruções em paralelo com operações de E/S permite que diversas tarefas sejam executadas concorrentemente. 2.3.2 - Mecanismo de Interrupção Durante a execução de um programa, alguns eventos inesperados podem ocorrer,interrompendooseuluxonormaldeexecuçãoeocasionando um desvio forçado. Estes eventos são conhecidos por interrupção ou exceção e podem ser conseqüência da sinalização de algum dispositivo de hardware externo ao processador ou da execução de instruções do próprio programa. Página 44 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Sempre que ocorre uma interrupção, o sistema operacional é chamado para executar uma rotina de tratamento apropriada. Antes de realizar o desvio, o sistema operacional deve salvar o estado do processo interrompido, para que este possa continuar do ponto onde parou, quando voltar a ser executado. um exemplo de interrupção ocorre quando um dispositivo avisa ao processador que alguma operação de E/S já está completa. neste caso, o processador deve interromper o programa para tratar o término da operação. Quando ocorre a interrupção, o programa que está em execução é interrompido e o controle desviado para uma rotina responsável por tratar o evento ocorrido, denominada de rotina de tratamento de interrupção. Para que o programa interrompido possa voltar a ser executado posteriomente, se faz necessário que, no momento da interrupção, um conjunto de informações sobre sua execução seja preservado. Essas informações consistem no conteúdo dos registradores, que deverão ser restaurados para que seja dada continuidade à execução do programa conformeaigura15. figura 15: Mecanismo de interrupção. fonte: Machado e Maia, 2004. Adaptação. Para cada tipo de interrupção existe uma rotina de tratamento associada, para onde o luxo de execução deverá ser desviado.A identiicação do tipo de evento ocorrido é fundamental para determinar o endereço da rotina de tratamento. no momento da interrupção, o processador deverásaberparaqualrotinadetratamentodeveráencaminharoluxo em execução que foi interrompido. Os eventos que causam a interrupção podem ser classiicados como síncronos ou assíncronos.Umeventoclassiicadocomoassíncrono, é independente dos dados de entrada e das instruções do programa, ou seja, pode ocorrer em qualquer ponto do programa. Essas interrupções não Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 45 www.cliqueapostilas.com.br Curso Técnico em Informática estão relacionadas com a instrução do programa corrente, são eventos imprevisíveis, podem ocorrer múltiplas vezes (exemplo: interrupção gerada pelo mouse, teclado, periféricos, etc.). Isto possibilita a ocorrência de múltiplas interrupções simultâneas, o que não seria interessante para nosso programa em execução. uma maneira de evitar esta situação é a rotina de tratamento inibir as demais interrupções. neste caso, na ocorrência de outras interrupções durante a execução da rotina de tratamento, elas serão ignoradas, ou seja, não receberão tratamento. Em outras palavras, elas só serão tratadas quando a rotina de tratamento da interrupção atual terminar. Interrupções com a característica de poder ser desabilitada são chamadas de interrupçõesmascaráveis. As interrupções que não podem ser desabilitadas são chamadas nãomascaráveis. Alguns exemplos de eventos que geram interrupções nãomascaráveis são: pressionar o botão reset, falha no hardware, etc. Jáumeventoclassiicadocomosíncrono, é resultado direto da execução do programa corrente. tais eventos são previsíveis, e se um mesmo programa for executado várias vezes com a mesma entrada de dados, os eventos síncronos ocorrerão sempre nos mesmos pontos (instruções) do programa. 2.3.3 - Operações de entrada e saída (E/S) nos primeiros sistemas de computação, os periféricos eram controlados pelo processador por meio de instruções especiais, chamadas instruções de E/S. Essas instruções continham detalhes específicos de cada periférico. Devido a isso, esse modelo criava uma forte dependência entre o processador e os dispositivos de E/S. Paraevitaresseproblema,criou-seocontroladorouinterface(igura 16), que permitiu ao processador operar de maneira independente dos dispositivos de E/S. Com esse novo elemento, o processador não precisava mais se comunicar diretamente com os periféricos, nem conhecerdetalhesdeoperaçãoespecíicosdecadaperiférico.Comisso, forammuitosimpliicadasasinstruçõesdeE/Sdoprocessador. Página 46 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais figura 16: Controlador dos dispositivos de E/S. fonte: Machado e Maia, 2004. Adaptação. Por meio do controlador, o processador gerenciava as operações de E/S, sem se preocupar com os detalhes de implementação de cada dispositivo. Com esse novo elemento, o processador não mais se comunicava diretamente com os periféricos, mas sim, através do controlador. • E/S Programada Este foi um dos primeiros modelos de operação de E/S. Após o processadoriniciaratransferênciadedados,icavaconsultandooestado doperiféricosucessivamente,atéqueaoperaçãodeE/Schegasseaoim, mantendo o processador ocupado até o término da E/S (espera ocupada, do inglês busy wait). Como o processador executa uma instrução muito mais rapidamente que uma operação de E/S realizada pelo controlador, havia um enorme desperdício de tempo do processador. • E/S por Polling Em relação ao modelo anterior, a evolução ocorreu ao permitir que algumas instruções pudessem ser executadas entre sucessivas consultas sobre o estado de uma operação de E/S. Com isso introduziu-se certo grau de paralelismo. Isso porque permitiu que outros programas pudessem executar, enquanto uma operação de E/S era realizada, mas, em determinados intervalos de tempo o sistema operacional deveria interrompê-losparaveriicaroestadodaoperaçãodeE/S.Casohouvesse várias operações de E/S pendentes, o processamento seria interrompido diversasvezesparaaveriicaçãodoestadodasoperações. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 47 www.cliqueapostilas.com.br Curso Técnico em Informática • E/S Controlada por Interrupção Aoinvésdeosistemaicarperiodicamentetestandooestadodasoperações pendentes, o próprio controlador interrompe o processador para informar o término da operação. Cabe ao controlador a responsabilidade de controlar as operações de E/S. Quando essa operação termina, o controlador interrompe o processador para que este realize a transferência de dados para a memória principal. Após essa transferência, o processador está livre para executar outros programas. Apesar disso, se houver a transferência de um grande volume de dados, o processador será interrompido diversas vezes, reduzindo o seu desempenho. Para solucionar esse problema, foi implementada a técnica de transferência de dados chamada DMA (Direct Memory Access). • Acesso Direto à memória (DMA) A técnica DMA (Direct Memory Access) permite que o controlador de E/S transmita um bloco de dados entre os dispositivos de E/S e a memória principal. O controlador acessa a memória diretamente, sem a necessidadedaintervençãodoprocessador,excetonoinícioenoinal da transferência. O controlador realiza a operação de E/S, bem como a transferência de dados entre a memória e o dispositivo de E/S, e, somenteaoinal,interrompeoprocessadorparaavisarqueaoperação foi concluída. A área de memória utilizada pelo controlador na técnica de DMA é chamada buffer de entrada/saída. ATIVIDADE 6 1. Por que o mecanismo de interrupção é fundamental para a implementação da multiprogramação? 2. Explique o mecanismo de funcionamento das interrupções. 3. O que são eventos síncronos e assíncronos? Como esses eventos estão relacionados ao mecanismo de interrupção e exceção? 4. Dê exemplos de eventos associados ao mecanismo de exceção. 5. Qual a vantagem da E/S controlada por interrupção, comparada com a técnica de E/S por polling? 6. O que é DMA e qual a vantagem desta técnica? Página 48 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 49 www.cliqueapostilas.com.br Curso Técnico em Informática ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Página 50 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 3. ESTRuTuRA DO SISTEMA OPERACIONAL Caro Aluno, No capítulo anterior apresentamos os primeiros conceitos relativos ao SO. Este capítulo continua a aprofundar estes conceitos. Alguns parecem estar até repetidos, mas na realidade sempre são abordados sob um ou mais aspectos diferentes. Assim, leia atentamente e não deixe de entender as explicações apresentadas, pois os conceitos estão amarrados uns nos outros e a falta de um poderá prejudicar no entendimento futuro de outros. Bons estudos! um sistema operacional fornece o ambiente no qual os programas são executados. Esse ambiente é formado por um conjunto de rotinas que oferecem serviços aos usuários, às aplicações e ao próprio sistema. A esse conjunto de rotinas denominamos kernel.Aiguraabaixonos mostra em que nível se encontra o kernel em um sistema computacional. O Kernel é considerado o núcleo do sistema operacional. figura 17: Posicionamento do núcleo do sistema operacional em um sistema computacional. fonte: Machado e Maia, 2004. Internamente, os sistemas operacionais variam muito em sua constituição, sendo organizados em muitas linhas diferentes. Porém o kernel deverá exercer as seguintes funções listadas a seguir: • Tratamentodeinterrupçõeseexceções; • Criaçãoeeliminaçãodeprocessosethreads; Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 51 www.cliqueapostilas.com.br Curso Técnico em Informática • Sincronizaçãoecomunicaçãoentreprocessosethreads; • Gerênciadememória; • Gerênciadosistemadearquivos; • Gerênciadosdispositivosdeentradaesaída; • Suportearedeslocaisedistribuídas; • Contabilizaçãodousodosistema; • Auditoriaesegurançadosistema. Existem vários pontos de vista pelos quais poderíamos analisar um sistema operacional: • Examinandoosserviçosoferecidosaosusuários; • Analisandoainterfacedisponibilizadaaosusuárioseprogramadores; • Desmontandoosistemaemseuscomponentesmaisbásicos. Vamos examinar os sistemas operacionais sob estes três aspectos. no próximo tópico veremos como os sistemas evoluíram da monoprogramação para a multiprogramação. nos tópicos seguintes abordaremos outros conceitos importantes como as chamadas de sistema e os modos deacesso,quecompõemaestruturadeumSO.Porim,faremosuma breve introdução ao conceito de gerência de recursos. 3.1. SIStEMAS EM LOtE E MuLtIPROGRAMAçÃO Já vimos que o sistema operacional atua como gerente de recursos que são oferecidos pelo computador. Estes recursos podem ser tempo de CPu (processamento), espaço de memória, espaço de armazenamento de arquivos, recursos dos dispositivos de entrada/saída (E/S), entre outros. Podemos considerar o sistema operacional como um alocador de recursos. O desenvolvimento dos sistemas operacionais e a evolução da arquitetura doscomputadoresforammutuamenteinluenciados:parafacilitarouso do hardware, os pesquisadores desenvolveram sistemas operacionais; porsuavez,mudançasnoprojetodehardwareinluenciaramacriação e uso dos sistemas operacionais. 3.1.1 - Sistemas em lote (batch) Os primeiros computadores eram máquinas dependentes de um operador. Os dispositivos de entrada comuns eram leitorasdecartõeseunidadesdeitaeosdesaídaeram impressoras,unidadesdeitaeperfuradorasdecartões. Página 52 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais O usuário não interagia diretamente com o computador. Em vez disso, ele preparava uma tarefa (job), que consistia no programa, dados e algumas informações de controle sobre a natureza da tarefa (cartões de controle) e o entregava ao operador do computador. Algum tempo depois o resultado do programa podia ser obtido como umalistagem,umaita,novopacotedecartõesouuma listagem dos conteúdos dos registradores no caso de erro do programa. O sistema operacional nesses primeiros computadores era bem simples. Sua principal tarefa era transferir controle automaticamente de uma tarefa (job) para a próxima tarefa (próximo job). O sistema operacional estava sempre residente na memória e executava uma tarefa de cada vez. Para acelerar o processamento, os operadores reuniam as tarefas (jobs) em lotes com necessidades semelhantes e os executavam no computador como um grupo. Assim os programadores deixavam seus programas comooperador.Eooperadorclassiicavaosprogramasemlotescom requisitossemelhanteseàmedidaqueocomputadoricavadisponível, executava cada lote ou batch. A saída de cada tarefa (job) seria enviada de volta ao programador apropriado. Nesteambientedeexecução,aCPUicavamuitasvezesociosaporqueas velocidades dos dispositivos mecânicos de E/S (leitores de cartão) eram intrinsecamente menores do que as dos dispositivos eletrônicos (CPu). Com o tempo, é claro, melhorias na tecnologia e a introdução de discos resultaram em dispositivos de E/S mais rápidos. [fonte: Silberschatz, Galvin e Gagne, 2000. Adaptação. Capítulo 1 Página 5] não é muito comum vermos tarefas sendo executadas em batch. Entretanto, existem alguns procedimentos que guardam bastante semelhança: os processos de backup e recuperação de bancos de dados, bem como o processo de inicialização do Windows. Em ambos os casos uma série de tarefas são executadas de forma automática, em sequência e de forma mais ou menos independente da vontade do usuário. 3.1.2 - Escalonamento de tarefas e multiprogramação A introdução da tecnologia de disco permitiu que o sistema operacional mantivesse todas as tarefas (jobs) em um disco, em vez de em uma leitora de cartões serial. Surge então o conceito de escalonamento de tarefas e posteriormente de multiprogramação. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 53 www.cliqueapostilas.com.br Curso Técnico em Informática A multiprogramação aumenta a utilização da CPu, organizando as tarefas de forma que a CPu esteja sempre ocupada. Assim, o SO mantém várias tarefas na memória simultaneamente, todas competindo pelosrecursosdocomputador(verigura18). O sistema operacional escolhe e começa a executar a tarefa carregada na memória. Em alguns momentos a tarefa que está em execução deverá esperar a conclusão de alguma outra tarefa, como uma operação de E/S, que é muito mais lenta. Em um sistema operacional não-multiprogramado, a CPU icaria ociosa. Em um sistema de multiprogramação, o sistema operacional simplesmente passa para outra tarefa e a executa. Quando esta segunda tarefa precisar esperar, aCPUpassaráparaoutratarefaeassimpordiante.Porim,aprimeira tarefa terminará a sua operação de E/S e terá a CPu de volta. neste esquema,aCPUnuncaicaociosa. figura 18: Sistema multiprogramável ou multitarefa fonte: Machado e Maia, 2004. todos os jobs, ou tarefas, que entram no sistema são mantidos num pool de jobs (espécie de ila). Esse pool de jobs consiste em todos os processos residentes no disco aguardando alocação da memória principal (espaço na memória). O número de jobs que pode ser mantido simultaneamente na memória principal geralmente é muito menor do que o número de jobs que pode estar no pool de jobs. Se vários jobs estiverem prontos para serem carregados na memória e se não houver espaço suiciente para todos, o sistema operacional deverá fazer a escolha. Essa tomada de decisão é chamada de escalonamento de tarefas ou de jobs. Página 54 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Você deve estar acostumado a usar a multiprogramação ou multitarefa do computador: é muito comum abrir um programa de e-mail, teclar num programa de mensagens instantâneas como o MSn, abrir um editor de textos para copiar uma página da internet, abrir uma planilha decálculoparapegarumgráicoecolocardentrodo editor de textos, etc. Os professores costumam brincar dizendo que os jovens querem ser multitarefa demais. na realidade, como o computador, uma pessoa só consegue fazer uma coisa de cada vez, dedicando uma fração de tempo a cada uma. 3.1.3 - Sistemas de tempo compartilhado Os sistemas em batch multiprogramados forneciam um ambiente no qual os vários recursos do sistema como por exemplo a CPu, memória e dispositivos periféricos, eram utilizados de forma eicaz, mas não permitiam a interação do usuário com o sistema de computação. tempo compartilhado (time sharing) ou multitarefa é uma extensão da multiprogramação: a CPu executa vários jobs alternando entre eles (multiprogramação), mas as trocas ocorrem com tanta frequência que o usuário pode interagir com seu programa como se tivesse uma máquina exclusiva para ele. Assim se permite a comunicação direta entre o usuário e o sistema. Devido a esse tipo de interação, os sistemas de tempo compartilhado também icaram conhecidos como sistemas on-line ou de tempo real (real time). O usuário passa instruções ao sistema operacional ou a um programa diretamente, usando o teclado ou um mouse e espera por resultados imediatos. O tempo de resposta deve ser curto. um sistema operacional de tempo compartilhado permite que muitos usuários compartilhem o computador ao mesmo tempo. Como cada ação ou comando em um sistema de tempo compartilhado tende a ser curto, apenas um pequeno tempo de CPu é necessário para cada usuário. Como o sistema alterna rapidamente de um usuário para outro, cada usuário tem a impressão de que todo o sistema de computação está dedicado a ele, enquanto, na verdade, o computador está sendo compartilhado por muitos usuários. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 55 www.cliqueapostilas.com.br Curso Técnico em Informática ATIVIDADE 7 1. Explique o funcionamento do sistema com processamento em batch. 2. Como funciona a técnica de multiprogramação. 3. Como funciona o sistema de tempo compartilhado (time-sharing)? ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Página 56 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais As linguagens de programação modernas permitem criar programas bem grandes que, por sua vez, são divididos em tarefas. teoricamente, cada tarefa deveria ocupar o mesmo tempo de CPu. Entretanto, existem tarefas que dependem de uma outra anterior mais demorada e assim não podem ser executadas imediatamente. Você talvez já tenha trabalhado com um texto grande e com muitas iguras em um editor de texto. Quando você manda salvar o arquivo (e é bom fazer isto frequentemente), o programa dá uma pequena parada e você até perde o controle do mouse. O que ocorre é que a tarefa de gravação é demorada e, enquanto ela não termina, o programa não sabe se você vai escrever em uma área que já foi gravada ou não, o que o obrigaria a recomeçar a gravação; daí, ele pede para você esperar. 3.2. SERVIçOS DE SIStEMAS OPERACIOnAIS um outro enfoque que pode ser dado ao estudo dos sistemas operacionais é encarar o SO como um prestador de serviços: um sistema operacional fornece um ambiente para a execução de programas, ou seja: fornece certos serviços a programas e aos usuários destes programas. Este enfoque é interessante pois, frequentemente, você verá na literatura abordagens das funções ou estrutura do SO como “serviços”. Estes serviços podem serassimclassiicados: • Execução de programa: o sistema deve ser capaz de carregar um programa na memória e executar esse programa. também deve ser capaz de encerrar a sua execução, quer de forma normal ou anormal (indicando erro). • Operação de E/S: um programa em execução pode precisar de E/S. Essa operação de E/S pode envolver um arquivo ou dispositivo de E/S. Portanto, o sistema operacional deve fornecer os meios para realizar as operações de E/S. • Manipulação do sistema de arquivos: os programas precisam ler e gravar arquivos, criar e excluir arquivos por nome; essas atividades devem ser gerenciadas pelo sistema operacional. • Comunicação: existem muitas circunstâncias nas quais um processo precisa trocar informações com outro processo. Essa comunicação entre processos pode ocorrer com processos em um mesmo computador ou entre processos que estão executando em diferentes sistemas de computação ligados por uma rede. As comunicações podem ser implementadas via memória compartilhada ou pela técnica de troca de mensagens, na qual pacotes de informações são movidos entre processos pelo sistema operacional. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 57 www.cliqueapostilas.com.br Curso Técnico em Informática • Detecção de erros: O sistema operacional precisa estar constantemente ciente de possíveis erros. Os erros podem ocorrer no hardware da CPu e da memória, em dispositivos de E/S e no programa de usuário. Para cada tipo de erro o sistema operacional deve tomar a medida adequada para garantir o funcionamento correto e consistente (e não simplesmente travar). Outras funções dos sistemas operacionais servem não somente para ajudarousuário,masparagarantiraoperaçãoeicientedosistemaem si, tais como: • Alocação de recursos: recursos (memória e dispositivos de E/S) devem ser alocados para cada um dos processos que estão em execução simultânea. • Contabilização: é preciso manter um registro dos usuários que utilizam os recursos do computador, em que quantidade e quais recursos. Este registro pode ser usado para contabilização. Estas estatísticas de uso podem ser uma ferramenta valiosa para os pesquisadoresquedesejamreconigurarosistemaparamelhorar os serviços oferecidos. • Proteção: quando vários processos independentes forem executados ao mesmo tempo, um processo não poderá interferir na área de outro processo ou do próprio sistema operacional. A proteção visa garantir que todo acesso aos recursos do sistema seja controlado. Estende-se também à proteção dos dispositivos de E/S externos (modens, placa de rede, etc.) de tentativas de acesso inválidas e ao registro de todas as conexões para detecção de invasões. Você já deve ter percebido que abordar um sistema operacional subdividindo-os em funções ou serviços ou em partes de sua estrutura conduz aproximadamente ao estudo dos mesmos tópicos. 3.3. MODOS DE ACESSO E “SYSTEM CALLS” 3.3.1 - Modos de acesso Vimos que os programas de computador ou aplicações em geral, consistem de conjuntos de instruções a serem executadas pelo processador ou CPu. Existem certas instruções que não podem ser colocadas diretamente à disposição das aplicações, pois a sua utilização indevida ocasionaria sérios problemas à integridade do sistema. Estas Página 58 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais instruções, como operações de E/S, só podem ser executadas pelo sistema operacional, isso para impedir a ocorrência de problemas de segurança e mesmo a violação do próprio sistema. As instruções que têm o poder de comprometer o sistema são conhecidas como instruções privilegiadas, enquanto as instruções não-privilegiadas são as que não oferecem perigo ao sistema. Para que uma aplicação possa executar uma instrução privilegiada, o processador implementa o mecanismo de modos de acesso. Existem basicamente dois modos de acesso: modo usuário e modo kernel. Quando o processador trabalha no modo usuário, uma aplicação só pode executar instruções não-privilegiadas (instruções que não oferecem riscos), tendo acesso a um número reduzido de instruções; no modo kernel a aplicação pode ter acesso ao conjunto total de instruções do processador. Quando um programa que esteja no modo usuário tenta executar uma instrução privilegiada, é gerado um erro de proteção. O processador sinaliza este erro através de uma exceção, o sistema operacional será chamadoeoprogramaseráinalizado. Você deve estar se perguntando como ocorrem as transições entre os modos de acesso, ou seja, do modo usuário para o modo kernel e viceversa. no momento da carga do sistema (boot), o sistema operacional inicia em modo kernel. Após estar carregado em memória, o sistema operacional permite que os programas de usuários sejam carregados apenas em modo usuário. Se um programa estiver executando em modo usuário e ocorrer qualquer tipo de interrupção (interrupção de hardware, exceção ou interrupção de software), o modo de acesso é alterado para o modo kernel. Com isso, a rotina de tratamento é executada em modo kernel.Aoinalde toda rotina de tratamento, há uma instrução especíica que, antes de retornar para o programa do usuário, altera o modo de acesso para o modousuário.Verigura19. A melhor maneira de controlar o acesso às instruções privilegiadas é permitir que apenas o sistema operacional tenha acesso a elas. Sempre que uma aplicação necessita de um serviço que incorra em risco para o sistema, a solicitação é feita através de uma system call. A system call altera o modo de acesso do processador para um modo mais privilegiado (modo kernel). Ao término da rotina do sistema, o modo de acesso é retornado para o modo usuário. Caso um programa tente executar uma instrução privilegiada, sem o processador estar no modo kernel, uma exceção é gerada e o programa é encerrado. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 59 www.cliqueapostilas.com.br Curso Técnico em Informática figura 19: Mudança dos modos de acesso durante uma interrupção fonte: Machado e Maia, 2004. Adaptação. 3.3.2 - System calls (chamadas ao sistema) As chamadas ao sistema (system calls) fornecem a interface entre um processo e o sistema operacional. Essas chamadas estão disponíveis como instruções em linguagem assembly e, em geral, são listadas nos manuais usados por programadores em linguagem assembly(verigura20). figura 20: Chamada de sistema (system call) fonte: Machado e Maia, 2004. Adaptação. Certos sistemas permitem que as chamadas ao sistema sejam feitas diretamente de um programa de linguagem de nível mais alto e, nesse caso, as chamadas normalmente lembram chamadas de sub-rotinas ou de funções predeinidas. Várias linguagens – como C, C++ e Perl – foramdeinidasparasubstituiralinguagemassembly na programação de sistemas. Essas linguagens permitem que as chamadas ao sistema sejam feitas diretamente. Por exemplo, as chamadas ao sistema do unix podem ser feitas diretamente a partir de um programa em C ou em C++. A documentação dos SO costuma disponibilizar estas chamadas com uma série de funções cujo conjunto é chamado de API – application program interface. Página 60 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Esta sigla API pode ser usada também para designar de uma forma genérica como uma grande aplicação (como um gerenciador de banco de dados) aceita receber solicitações de outras aplicações. Como um exemplo da forma em que as chamadas de sistema são usadas, consideremos escrever um programa simples para ler dados de um arquivo e copiá-los para outro arquivo. Cada passo dado pelo programa praticamente efetua uma chamada ao sistema: • Aprimeiraentradaqueoprogramaprecisarásãoosnomesdos dois arquivos: de entrada e de saída. uma abordagem é fazer o programa pedir ao usuário os nomes dos dois arquivos. Em sistemas baseados em mouse e ícones, um menu de nomes de arquivos geralmente é exibido em uma janela (esta lista de diretórios e arquivos é fornecida por uma chamada ao SO); o usuário pode usar o mouse para selecionar o nome de origem. uma janela pode ser aberta para que o nome do arquivo de destino sejaespeciicado. • Depois que os dois nomes de arquivos tiverem sido obtidos, o programa deve abrir o arquivo de entrada e criar o arquivo de saída. Cada uma dessas operações requer uma chamada ao sistema. • Agoraqueosdoisarquivosestãoprontos,entramosemumlaço que lê dados do arquivo de entrada (uma chamada ao sistema) e os grava no arquivo de saída (outra chamada ao sistema). Lembramos que entre essas operações de leitura e escrita poderão ocorrer alguns erros que gerarão outras chamadas ao sistema. Por exemplo, a operação de escrita pode encontrar erros, dependendo dodispositivodesaída(faltadeespaçoemdisco,imfísicoda ita,etc.). • Finalmente, depois que o arquivo todo tiver sido copiado, o programa deverá fechar os dois arquivos (outra chamada ao sistema), gravar uma mensagem na console (mais uma chamada aosistema)einalmenteterminarnormalmente(achamadainal ao sistema). Como podemos observar, os programas fazem uso pesado do sistema operacional. Entretanto, a maioria dos usuários nunca chega a ver esse nível de detalhe. As chamadas de sistema ocorrem de diferentes maneiras, dependendo do SO e do computador que está sendo usado. Geralmente, mais informações sãonecessáriasalémdesimplesmenteidentiicarachamadaaosistema desejada; o tipo e a quantidade exata de informações variam de acordo com a chamada em questão (os parâmetros, que você já viu ao criar suas funções em programação). Por exemplo, para obter entrada é Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 61 www.cliqueapostilas.com.br Curso Técnico em Informática precisoespeciicaroarquivooudispositivoaserusadocomoorigem e o endereço e o tamanho do buffer (espaço) de memória no qual a entrada deve ser lida. As chamadas de sistema podem ser agrupadas basicamente em cinco categorias principais de acesso ou controle: • • • • • Controledeprocesso; Manipulaçãodearquivos; Manipulaçãodedispositivos; Manutençãodeinformações; Comunicações. um dos objetivos principais das system calls de E/S é simpliicar a interface entre as aplicações e os dispositivos. Com isso, elimina-se a necessidade de duplicação de rotinas idênticas nos diversos aplicativos, alémdeesconderdoprogramadorcaracterísticasespecíicasassociadas à programação de cada dispositivo. São as chamadas de sistema que irão intermediar a solicitação de uso de algum dispositivo feito pelas aplicações. O programador ao elaborar uma aplicação não precisa fazer nenhuma referência à coniguração do dispositivo a ser utilizado.A igura21ilustraacomunicaçãoentreaaplicaçãoeosdispositivosde E/Sdemaneirasimpliicada. figura 21: Operações de entrada/saída através das system calls. fonte: Machado e Maia, 2004. Adaptação. Página 62 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais ATIVIDADE 8 1. O que são interrupções e qual a sua principal função? 2. O que é uma chamada ao sistema e cite duas operações em que há a sua necessidade? 3. Diferencie modo usuário de modo kernel. 4. Cite três categorias de acesso ou de controle principais nos quais as chamadas de sistemas (system calls) encontram-se agrupadas. 5. Os serviços oferecidos pelos sistemas operacionais estão divididos em categorias de acordo com suas funções. Cite, caracterizando, três dessas categorias. ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 63 www.cliqueapostilas.com.br Curso Técnico em Informática ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ 3.4. ARQuItEtuRAS DOS SIStEMAS OPERACIOnAIS 3.4.1 - Sistemas monolíticos neste tipo de organização a forma mais comum de ser encontrada é aquela que estrutura o sistema como um conjunto de rotinas que podem interagir livremente umas com as outras. A estrutura monolítica pode ser comparada com uma aplicação formada por vários procedimentos que são compilados separadamente e depois linkados, formando um grande e único programa executável. Página 64 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais figura 22: Arquitetura monolítica fonte: Machado e Maia, 2004. Adaptação um sistema tão grande e complexo quanto um sistema operacional moderno deve ser cuidadosamente construído para que funcione bem e possaserfacilmentemodiicado.Umaabordagemcomumédividiratarefa em pequenos componentes em vez de ter um sistema monolítico. 3.4.2 - Sistemas em camadas um sistema em camadas divide o sistema operacional em camadas sobrepostas. Cada módulo oferece um conjunto de funções que podem ser utilizadas por outros módulos. Você viu chamarmos o computador de máquina de níveis no primeiro capítulo; por sua vez o próprio SO pode ser encarado desta forma. A principal vantagem da abordagem em camadas é a modularidade. As camadas são selecionadas de forma que cada uma utilize as funções (operações) e serviços apenas das camadas de nível mais baixo. Essa abordagemsimpliicaadepuraçãoeveriicaçãodosistema,alémdecriar uma hierarquia de níveis de modos de acesso, protegendo as camadas mais internas.Aigura23apresentaestaformaçãoemcamadasparaoDOS; entretanto, o nível de segurança é baixo, pois é permitida a comunicação com camadas mais baixas sem passar pelas intermediárias. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 65 www.cliqueapostilas.com.br Curso Técnico em Informática figura 23: Estrutura em camadas do MS-DOS. fonte: Silberschatz, Galvin e Gagne, 2000. Adaptação. A primeira camada pode ser depurada sem preocupação com o resto dosistema,porque,pordeinição,elasóutilizaohardwarebásico(que é considerado correto) para implementar suas funções. Depois que a primeira camada é depurada, pode-se presumir seu funcionamento correto enquanto a segunda camada é depurada e assim por diante. Se for encontrado um erro durante a depuração de determinada camada, o erro deve estar nessa camada, porque as camadas inferiores já foram depuradas. Assim, o projeto e a implementação do sistema são simpliicadosquandoosistemaédivididoemcamadas. A principal diiculdade da abordagem em camadas está na deinição adequada das várias camadas. Como uma camada só pode usar as camadas que estão em um nível inferior, é preciso haver um planejamento cuidadoso. um último problema com implementações em camadas é que elas tendem a ser menos eicientes. Por exemplo, quando um programa de usuário executa uma operação de E/S (entrada e saída), ele executa uma chamada de sistema (system call) que é desviada para a camada de E/S, que chama a camada de gerência de memória, que, por sua vez, chama a camada de escalonamento de CPu, que é então passada para o hardware. Em cadacamada,osparâmetrospodemsermodiicados,osdadosprecisam ser transferidos e assim por diante. Cada camada acrescenta novo custo àchamadaaosistema;oresultadoinaléumachamadaaosistemaque demora mais do que em um sistema sem camadas. As limitações da eiciência causaram reações contra a estrutura em camadas nos últimos anos. Menos camadas com mais funcionalidades estão sendo projetadas, fornecendo a maior parte das vantagens do código modularizado e evitando difíceis problemas da deinição e interação em camadas. Página 66 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 3.4.3 - Sistemas cliente-servidor (microkernels) À medida que o unix se expandiu, o kernel tornou-se grande e difícil de gerenciar. foi desenvolvido, então, um sistema operacional usando a abordagem de microkernels. O resultado é um kernel menor. uma tendência dos sistemas operacionais modernos é tornar o núcleo do sistema operacional menor e o mais simples possível. Em geral, os microkernels fornecem gerência mínima de memória e processos, além de um recurso de comunicação. A principal função do microkernel é fornecer um recurso de comunicação entre programa cliente e os vários serviços que também estão em execução no espaço de usuário. Para implementar esta ideia, o sistema é dividido em processos, sendo cada um responsável por oferecer um conjunto de serviços, como serviços de arquivo, serviços de criação de processos, serviços de memória, serviços de escalonamento, etc. Se o programa cliente desejar acessar um arquivo, ele deverá interagir com o servidor de arquivos. Mas o programa cliente e o serviço nunca vão interagir diretamente; em vez disso, eles se comunicam indiretamente trocando mensagens com o microkernel. Sempre que uma aplicação deseja algum serviço, ela solicita ao processo responsável. neste caso, a aplicação que solicita um serviço é chamada de cliente, enquanto o processo que responde à solicitação é chamado de servidor. um cliente, que pode ser uma aplicação de um usuário ou um outro componente do sistema operacional, solicita um serviço enviando uma mensagem. É função do núcleo do sistema realizar a comunicação, ou seja, a troca de mensagens entre o cliente e o servidor. Os benefícios da abordagem do microkernel incluem a facilidade de expandir o sistema operacional. todos os novos serviços são adicionados aoespaçodeusuárioe,consequentemente,nãoexigemmodiicaçãodo kernel. Quando o kernelprecisasermodiicado,asalteraçõestendema ser menores, porque o microkernel é um kernel menor. O microkernel também fornece mais segurança e coniabilidade, pois a maior parte dos serviços está sendo executada como processos de usuário, em vez de kernel. Se um serviço falhar, o resto do sistema operacional permanece inalterado. O kernel coordena a troca de mensagens entre as aplicações (clientes e servidoras). O Windows nt é projetado para executar várias aplicações, incluindo Win32 (aplicações nativas do Windows), OS/2 e POSIX. A estrutura cliente-servidor do Windows nt está representada naigura24. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 67 www.cliqueapostilas.com.br Curso Técnico em Informática figura 24: Estrutura do Windows NT 4.0 (núcleo e servidores de aplicações). fonte: Machado e Maia, 2004. Adaptação A utilização deste modelo permite que os servidores executem em modo usuário, ou seja, não tenham acesso direto a certos componentes do sistema. Apenas o núcleo do sistema, responsável pela comunicação entre clientes e servidores, executa no modo kernel. Como consequência, se um erro ocorrer em um servidor, este servidor pode parar, mas o sistemanãoicaráinteiramentecomprometido. Como os servidores se comunicam através de trocas de mensagens, não importa se os clientes e servidores estão sendo processados em um sistema com um único processador, com múltiplos processadores ou ainda em um ambiente de sistema distribuído. Apesar de todas as vantagens deste modelo, sua implementação na prática é muito difícil devido a certas funções dos sistemas operacionais exigirem acesso direto ao hardware, como operações de entrada e saída. na realidade, o que é implementado mais usualmente é uma combinação do modelo de camadas com o modelo cliente-servidor. ATIVIDADE 9 1. Compare as arquiteturas monolíticas e de camadas. Quais as vantagens e desvantagens de cada arquitetura? 2. Qual a função dos microkernels e seus benefícios? 3. Como funciona o modelo cliente-servidor na arquitetura microkernel? Quais as vantagens e desvantagens dessa arquitetura? Página 68 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 69 www.cliqueapostilas.com.br Curso Técnico em Informática 3.5. IntERPREtADOR DE COMAnDOS um dos utilitários mais importantes para um sistema operacional é o interpretador de comandos (ou shell), que é a interface entre o usuário e o sistema operacional. Alguns sistemas operacionais incluem o interpretador de comandos no kernel (núcleo do sistema operacional). Outros podem tratar o interpretador de comandos como um programa especialqueicaexecutandoquandoumjob é iniciado ou quando um usuário entra no sistema (em sistemas de tempo compartilhado). Muitos comandos do usuário são passados ao sistema operacional por instruções de controle digitadas em uma linha da tela. Esse programa é chamado de interpretador da linha de comandos. Sua função é simples: obter o comando seguinte e executá-lo. Antes das interfaces gráicas esta era a única forma de comunicação entre a pessoa do usuário e o SO. Os sistemas operacionais geralmente se diferenciam bastante na área do shell, com um interpretador de comandos amigável ao usuário tornando o sistema mais agradável a alguns e menos a outros. Estas diferençasseacentuaramcomasinterfacesgráicas. O interpretador de comandos (shell) pode ser utilizado na seguinte forma: • O mouse é movido para posicionar o ponteiro sobre imagens na tela, ou ícones, que representam programas, arquivos ou funções. • Dependendodalocalizaçãodoponteirodomouse,clicaremum botão do mouse pode chamar um programa, selecionar um arquivo ou diretório ou abrir um menu que contém comandos. • Oclicardomouseéa“chamada”aalgumprograma,arquivoou pasta e irá utilizar o interpretador da linha de comando (shell). O clique do mouse já é, portanto, um comando que deverá ser interpretado pelo shell. As instruções de comando lidam com a criação e gerência de processos, tratamento de E/S, gerência de armazenamento secundário, gerência de memória principal, acesso a sistema de arquivo e proteção e redes; enim,tudooqueapessoadousuárioprecisaparaoperarseusprogramas e atender suas necessidades. Página 70 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 4. INTRODuÇÃO À GERÊNCIA DE PROCESSOS, MEMÓRIA E ARQUIVOS 4.1. GERênCIA DE PROCESSOS um programa não faz nada a não ser que suas instruções sejam executadas por uma CPu. um processo pode ser considerado um programaemexecução,massuadeiniçãoseráampliadaàmedidaque explorarmos melhor o conceito. um programa de usuário executado em tempo compartilhado é um processo. um processador de texto executado por um usuário individual em um PC é um processo. uma tarefa de sistema, como enviar saída para uma impressora, também é um processo. Consideraremos que um processo é um job ou um programa de tempo compartilhado.um processo precisa de determinados recursos – tempo de CPu, memória, arquivos e dispositivos de E/S (entrada e saída) – para realizar sua tarefa. Estes recursos são dados ao processo quando ele é criado ou alocados a ele durante sua execução. Além dos vários recursos físicos e lógicos que um processo obtém quando é criado, vários dados de inicialização podem ser fornecidos. Enfatizamos que um programa por si só não é um processo; um programa é uma entidade passiva, como o conteúdo de um arquivo armazenado em disco, enquanto um processo é uma entidade ativa, com um contador do programaespeciicandoapróximainstruçãoaser executada. A execução de um processo deve ser sequencial. A CPu executa uma instrução do processo após a outra até o processo terminar. Além disso, a qualquer momento, no máximo uma instrução é executada em nome do processo. Assim, embora dois processos possam ser associados com o mesmo programa, eles são considerados duas sequências de execução separadas. É comum ter um programa que utilize muitos processos para sua execução. ATIVIDADE 10 Para ilustrar estes conceitos, se você tiver o Windows XP em sua máquina chame o gerenciador de tarefas (task manager): aperte as teclas Alt Ctrl e Del ao mesmo tempo. A janela que se abre tem, nas suas duas primeiras abas: os programas do usuário que estão rodando – aba Aplicativos – e outros programas ou processos – aba Processos. Você vê que o SO precisa manter vários outros Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 71 www.cliqueapostilas.com.br Curso Técnico em Informática processos rodando além dos programas que o usuário executa. Se você executar o Word, você verá que ele aparece na aba “Aplicativos” e na aba “Processos”. Esta janela que você abriu é, por sua vez, um processo; na aba Processos ela aparece com o nome taskmgr.exe. Ainda na aba Processos você pode ter uma idéia do tempo queaCPUicaociosa.Observealinha“Tempoocioso dosistema”;acolunaCPUindicaqueelaicaamaior parte do tempo parada. Se você estiver executando o Word, observe que cada vez que você clica no mouse na janela do Word, a linha do processo winword.exe, na coluna CPu, mostra que houve atividade. Você pode também usar a aba Aplicativos para matar um programa que tenha travado; basta clicar sobre ele para selecioná-lo e depois clicar no botão “finalizar tarefa”. ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ um processo é a unidade de trabalho em um sistema. Em um sistema teremos uma coleção de processos que são desde processos do próprio sistema operacional (aqueles que executam códigos do SO) até os processos de usuário (aqueles que executam código do usuário). todos esses processos podem executar concorrentemente, multiplexando a CPu entre eles. Página 72 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Multiplexação: é a divisão de algum serviço oferecido entre vários processos. Você verá este conceito usado também para um canal de comunicação. É uma extensão ou aplicação do conceito de time sharing que você viu anteriormente. O sistema operacional é responsável pelas seguintes atividades em relação à gerência de processos: • Criareexcluirprocessosdeusuárioedesistema, • Suspendereretomarprocessos, • Fornecermecanismosparaasincronizaçãodeprocessos, • Fornecermecanismosparaacomunicaçãodeprocessos,e • Fornecermecanismosparaotratamentodedeadlocks. Deadlock caracteriza uma situação em que ocorre um impasse,ondedoisoumaisprocessosicamimpedidos decontinuarsuasexecuções,ouseja,icambloqueados. um processo aguarda a liberação de um recurso que está sendo utilizado por um outro processo que, por sua vez, aguarda a liberação de outro recurso alocado ou dependente do primeiro processo. Você deve se lembrar de um cachorro correndo atrás do próprio rabo. É uma boa imagem para o deadlock. figura 25: Adaptação Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 73 www.cliqueapostilas.com.br Curso Técnico em Informática 4.2. GERênCIA DA MEMÓRIA PRInCIPAL A gerência do espaço da memória principal é uma das preocupações importantes dos sistemas de computação modernos. A memória principal é um repositório de dados rapidamente acessíveis compartilhados pela CPu e dispositivos de E/S (entrada e saída). O processador central lê as instruções da memória principal durante o ciclo de busca de instruções e lê e grava dados da memória principal durante o ciclo de busca de dados. As operações de E/S (entrada e saída) implementadas via DMA (ver conceito a seguir) também fazem a leitura e escrita de dados na memória principal. A memória principal geralmente é o único dispositivo de armazenamento que a CPu pode endereçar e acessar diretamente. Para que a CPu processe dados do disco, esses dados devem primeiro ser transferidos para a memória principal por chamadas de E/S geradas pela CPu. Do mesmo modo, as instruções dos programas devem estar na memória principal para que a CPu as execute. DMA: Direct Memory Access (acesso direto á memória): forma de controle de entradas e saídas sem a utilização constante do microprocessador, como se houvesse uma comunicação direta entre o dispositivo de E/S e a memória. Isto ocorre, por exemplo, com a placa de vídeo e o HD. Este conceito foi abordado na matéria de fundamentos de Hardware. Aproveite e dê uma repassada no assunto. Para melhorar a utilização da CPu e a velocidade da resposta do computador aos seus usuários, é preciso manter vários programas na memória principal. Existem muitos esquemas diferentes de gerência de memória. A seleção de um esquema de gerência de memória para um sistema especíico depende de muitos fatores, especialmente do projeto de hardware do sistema. O sistema operacional é responsável pelas seguintes atividades em relação à gerência de memória: • Manterregistrodaspartesdamemóriaqueestãosendousadas no momento e por qual processo; • Decidir quais processos deverão ser carregados na memória quando houver espaço disponível; e • Alocaredesalocarespaçonamemória,conformenecessário. Você lembra da matéria de programação que cada programa (e, portanto, cada processo) é formado basicamente por uma área de dados (as variáveis) e uma área de instruções. O problema é quando um programa Página 74 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais precisa expandir sua área de dados, por exemplo: quando você está editando um texto e resolve copiar parte de outro texto dentro deste ou quando pede para abrir e ler um novo arquivo. A função do SO é tentar garantir que cada processo (ou cada usuário) tenha a área de que necessita. Os sistemas operacionais de tempo compartilhado ou de tempo real são ainda mais complexos porque os usuários podem ir se conectando e solicitando a execução de programas até um momento em que pode não haver mais memória real disponível. É possível ainda manter um tempo de resposta razoável utilizando um recurso chamado memória virtual. Quando não há mais memória física disponível, algum processo ocioso naquele momento é passado rapidamente para um disco que agora irá servir como extensão da memória principal. Quando chegar a vez de este processo ser atendido, um outro (ou mais de um) processo ocioso é descarregado no disco, cedendo lugar para este voltar para a memória principal. Esta movimentação de ida e volta da memória para o disco échamadadepaginaçãoouswapeestáilustradonaigura26. figura 26: Troca de dois processos usando um disco como armazenamento auxiliar (secundário). fonte: Silberschatz, Galvin e Gagne, 2000. Adaptação. Este recurso é bastante interessante e aumenta a capacidade de atendimento aos usuários, pois o tempo de acesso a disco também é muito menor do que o “tempo de resposta” dos usuários. Além desta utilidade, este conceito de memória virtual facilita também a vida dos programadores que, basicamente, passam a não se preocupar com a quantidade de memória física disponível; isto passa a ser mais um problema do SO. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 75 www.cliqueapostilas.com.br Curso Técnico em Informática Se você tiver acesso aos arquivos de sistema do Windows XP, você poderá ver no diretório raiz do drive C um arquivochamadopageile.sys.Esteéoarquivoutilizado para a paginação. Qual o tamanho deste arquivo e qual o tamanho da memória real no seu computador? Voltando à atividade 8, você pode ver a aba “Desempenho” do gerenciador de tarefas, que mostra o uso da memória, da CPu e do arquivo de paginação. Mesmo que você não esteja fazendo nada, os números da memória e da CPu se movimentam, pois há pelo um processo rodando (o próprio gerenciador de tarefas). Além deste caso de uso de memória virtual citado (os sistemas de tempo real ou compartilhado), você poderia pensar em outro caso que poderia precisar de memória virtual?Ainaloseucomputadorpessoalatendeaum usuário de cada vez (por isto ele é pessoal) e tem o arquivopageile.sys... 4.3. GERênCIA DE ARQuIVOS A gerência de arquivos é um dos componentes mais visíveis de um sistema operacional. Os computadores podem armazenar informações em váriostiposdiferentesdemeiosfísicos:itamagnética,discomagnético e etc. Cada um desses meios possui suas próprias características e organização física. Cada meio é controlado por um dispositivo, como uma unidade de disco, que também tem suas características exclusivas. Essas propriedades incluem: velocidade de acesso, capacidade, taxa de transferência de dados e método de acesso (sequencial ou aleatório). O sistema operacional mapeia os arquivos nos meios físicos e acessa esses arquivos através dos dispositivos de armazenamento. Evidentemente, nem todos os arquivos dos discos e similares precisam estar mapeados na memória, apenas aqueles cujo acesso foi solicitado por algum processo. Você, na matéria de programação, aprenderá a abrir um arquivo: esta é a forma pela qual seu programa avisa ao SO que precisa daquele arquivo mapeado na memória. E, por isto, você deve fechar os arquivos quando não mais precisa deles: para economizar memória. Página 76 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais O conceito de arquivo é bastante geral. um arquivo é uma coleção deinformaçõesrelacionadasdeinidasporseucriador.Geralmenteos arquivos representam dados nos mais diversos formatos e, às vezes, programas (fonte e objeto). Os arquivos de dados podem ser numéricos oualfanuméricos,representandodadosescritosouiguras,músicase animações. Além disso, podem ter forma livre (por exemplo, arquivos de texto) ou podem ter uma formatação rígida (por exemplo, campos ixos como em planilhas ou bancos de dados). Um arquivo consiste emumasequênciadebits,bytes,linhasouregistroscujossigniicados sãodeinidosporseuscriadores. no Windows, os nomes de arquivos são formados por duas partes: nome.extensão escritos assim com um ponto no meio. Por exemplo: se você examinar a pasta onde você guardou os seus programas deverá encontrar estes dois tipos de arquivo: nome_do_programa.c ou nome_do_programa.cpp, e nome_do_programa.exe. O Windows controla o tipo de arquivo pela sua extensão; cada arquivo, de acordo com sua extensão, é aberto porumprogramaespecíico.Poristo,osarquivosdo Word têm extensão.doc; os do Excel têm extensão.xls; e assim por diante. A igura 27 mostra vários exemplos destes tipos de arquivo e suas extensões. uma consideração importante no projeto de um sistema de arquivos, e de todo o sistema operacional, é se o sistema deverá reconhecer e oferecer suporte a todos os tipos de arquivos. Quando um sistema operacional reconhece o tipo de arquivo, ele poderá operar com o arquivo de forma razoável. uma técnica comum para implementar os tipos de arquivo é incluir o tipo como parte do nome do arquivo. O nome é dividido em duas partes – um nome e uma extensão, geralmente separada por um caracter de ponto. Veja na igura 27, os tipos de arquivos mais comuns. Dessa forma, o usuário e o sistema operacional podem saber imediatamente a partir do nome qual é o tipo de arquivo em questão. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 77 www.cliqueapostilas.com.br Curso Técnico em Informática Tipo de Arquivo Extensão comum Função executável exe, com, bin, ou nada Programa de linguagem de máquina pronto para executar Objeto obj, o Linguagem de máquina, compilado, sem linkedição Código-fonte c, cc, pas, java, asm, a Código fonte em várias linguagens Batch bat, sh Comandos para o interpretador de comandos texto txt, doc Dados textuais, documentos processador de textos wpd, tex, doc, etc Vários formatos de etc. processador de textos biblioteca lib, a, DLL Bibliotecas de rotinas para programadores impressão ou visualização ps, dvi, gif Arquivo ASCII ou binário em um formato para impressão ou visualização Arquivo compactado arc, zip, tar Arquivos correlatos agrupados em um arquivo único, às vezes compactado,parainsde arquivamento ou armazenamento figura 27: Tipos de arquivos comuns. fonte: Silberschatz, Galvin e Gagne, 2000. Adaptação. O sistema operacional se encarrega de gerenciar as mídias de armazenamento em massa de arquivos, como discos, e os dispositivos que os controlam. Os arquivos são normalmente organizados em diretórios para facilitar seu uso. E quando vários usuários têm acesso aos arquivos, pode ser desejável controlar quem pode acessar os arquivos e de que forma pode fazê-lo. O sistema operacional é responsável pelas seguintes atividades em relação à gerência de arquivos: • Criareexcluirarquivos; • Criareexcluirdiretórios; • Fornecersuporteparamanipulararquivosediretórios; • Mapeararquivosnoarmazenamentosecundário;e • Proverferramentasdebackup. A maioria dos sistemas de computação usa discos (HD) como o principal meio de armazenamento para programas e dados. A maioria dos programas incluindo compiladores, montadores, rotinas de classiicação,editoreseformatadores,sãoarmazenadosemumdisco até serem carregados na memória e utilizam o disco como origem e destino de seu processamento. Página 78 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 4.4. GERênCIA DE DISPOSItIVOS (DE E/S Ou I/O) O sistema operacional deve tornar as operações de entrada e saída (E/S) o mais simples possível para o usuário e suas aplicações. Denominamos de rotinas de entrada e saída ao conjunto de rotinas que o sistema operacional possui para possibilitar a comunicação de qualquer dispositivo que possa ser conectado ao computador. Essas rotinas fazem parte de um subsistema de E/S que permitem ao usuário realizar as operações de E/S sem se preocupar com detalhes, informações a respeito do dispositivo que está acessando. Em gerência do sistema de E/S (entrada e saída) cabe ao sistema operacional ocultar dos usuários (programas e pessoas) as peculiaridades dos diferentes dispositivos de hardware. A gerência de dispositivos de entrada/saída é uma das principais e mais complexas funções de um sistema operacional. Sua implementação é estruturada por meio de camadas, em um modelo semelhante ao apresentado para o sistema operacional como um todo. As camadas de mais baixo nível escondem características dos dispositivos das camadas superiores, oferecendo umainterfacesimpleseconiávelparasuasaplicações. As operações de E/S devem ser realizadas através de chamadas ao sistema (system calls) que por sua vez chamam as rotinas de E/S do núcleo do sistema operacional. Deste modo é possível que manipulemos arquivos em dispositivos de E/S, sem ter que alterar o código para cada dispositivo. Por exemplo: leitura de um arquivo armazenado em pen drive; não precisamos alterar o código do dispositivo a cada leitura ou a cada tipo de pen drive ou a cada máquina que acessamos. Ascamadassãodivididasemdoisgrupos(verigura28):oprimeiro visualiza os diversos tipos de dispositivos do sistema de um modo único (a), ou seja, essas camadas trabalham de forma independente daconiguraçãododispositivo.Oferecemserviçosdegerenciamento controladopelosistemaoperacional;enquantoosegundoéespecíico para cada dispositivo, necessitando a instalação e coniguração do hardware,identiicandoecontrolandocadadispositivo(b).Observem que grande parte das camadas trabalham de forma independente do dispositivo físico instalado. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 79 www.cliqueapostilas.com.br Curso Técnico em Informática figura 28: Gerência de dispositivos fonte: Machado e Maia, 2004. Adaptação. ATIVIDADE 11 1. Vistos os conceitos acima você saberia diferenciar programa de um processo? Quais as diferenças? 2. Cite três responsabilidades do sistema operacional em relação à gerência de processos. 3. Cite três responsabilidades do sistema operacional em relação à gerência de arquivos. Página 80 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 4. Cite duas responsabilidades do sistema operacional em relação à gerência de memória. 5. O que é memória virtual? ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 81 www.cliqueapostilas.com.br Curso Técnico em Informática ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ 4.5. SIStEMA DE PROtEçÃO Se um sistema de computação tiver vários usuários e permitir a execução concorrente de múltiplos processos, esses processos deverão ser protegidos das atividades uns dos outros. Para que isso aconteça, existem mecanismos que garantem que os arquivos, segmentos de memória, CPu e outros recursos possam ser operados apenas pelos processos que obtiveram autorização adequada do sistema operacional. Página 82 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais três exemplos são importantes para ilustrar este sistema de proteção: • O SO tem que garantir que o hardware de endereçamento de memória só acesse memória para um processo dentro do espaço dedicado àquele processo. • OSOdeveavisaraotimerotempodestinadoacadaprocesso que tome conta da CPu e desta forma garantir que nenhum processodetenhaindeinidamenteocontroledaCPU. • OSOdevegarantirqueosregistradoresdecontroledosdispositivos não sejam acessíveis aos programas usuários, de modo que a integridade dos vários dispositivos periféricos seja protegida. um sistema de proteção é qualquer mecanismo para controlar o acesso de programas, processos ou usuários aos recursos deinidos por um sistema de computação. Este mecanismo deve fornecer meios para a especiicação dos controles a serem impostos e os meios para o seu cumprimento. Vejamos estes dois exemplos: • Quando um programa entra em loop infinito (o programa ica rodando, executando eternamente), se não houvesse um controle do tempo de ocupação da CPu pelos programas, o computador travaria irremediavelmente. • Imagine uma falha no controle da ila de uma impressora de rede, que recebe relatórios de diversos usuários. As listagens seriam inúteis, cada página contendo partes dos dados de cada usuário que gerou relatório. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 83 www.cliqueapostilas.com.br Curso Técnico em Informática 5. INTRODUÇÃO AO SISTEMA OPERACIONAL LINuX Caro Aluno, No capítulo anterior você conheceu a estrutura dos sistemas operacionais, identificou os módulos, ou partes, que integram um SO e a função de cada uma destas partes. Neste capítulo, vamos estudar um dos sistemas operacionais mais utilizados atualmente. Você poderá relacionar os conceitos vistos até aqui com as características deste SO. Assim, à medida que estas características forem apresentadas tente associá-las ao conteúdo do capítulo anterior. Isto, com certeza, o ajudará a consolidar seu aprendizado. Bom estudo! OsistemaoperacionalLinuxfoicriadopeloinlandêsLinusTorvalds, entre os anos de 1990 e 1991, a partir do projeto de um SO mais simples chamado Minix. Com o auxilio de vários desenvolvedores empenhados em dar continuidade ao “projeto Linux” baseado no Minix, ele cria o kernel do SO livre mais utilizado atualmente. O nome Linux originouse da contração de Linus e Minix. MINIX - no início da década de 90, o professor Andrew tanenbaum desenvolveu este sistema operacional para insacadêmicos,comoobjetivodemostraraseusalunos como realmente funcionava um sistema operacional. Assim, disponibilizou seu código em linguagem C e assembler em um dos livros de sua autoria, chamado Operating Systems. KERNEL – Como vimos, o Kernel é o núcleo do sistema operacional. É a parte que controla diretamente o hardware da máquina. Quando falamos de Linux, estamos nos referindo somente ao kernel do sistema. tudo que existe ao redor do kernel são aplicativos que compõemumadistribuiçãoespecíicadoLinux. Página 84 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 5.1. CARACtERÍStICAS DO LInuX A análise de um sistema operacional pode ser feita considerando diversas características,quepodemserclassiicadascomosegue: • Quantoàformacomoédistribuído; • Quantoaosserviçosqueeleoferece; • Quantoàsinterfacesqueeledisponibilizaparausuárioseprogramadores; • Quantoàmaneiracomqueeletrataosdispositivosecomponentes que gerencia. 5.1.1 - Distribuições do Linux Ao conjunto de aplicativos juntamente com o kernel Linux, dá-se o nome de distribuição Linux, ou simplesmente “distro”. Algumas distribuições Linux são maiores que outras, dependendo da quantidade de aplicativos e da finalidade a que se propõem. Existem desde distribuições que cabem num pequeno pendrive até distribuições que ocupam vários DVDs. Cadaumadelastemseupúblico-alvoeinalidadesespecíicascomoas minidistribuições, que têm como objetivo desde a recuperação de um sistemadaniicadoatéomonitoramentodeumarededecomputadores. Ainaloquediferenciaumadistribuiçãodeoutra? na verdade, é a forma como são organizados e pré-coniguradososaplicativosquecadaumacontém.Algumas distribuições incluem ferramentas de coniguração que facilitam a administração do sistema. Exemplos de distribuições: Debian, Kurumin, Slackware, Suse, Mandriva, ubuntu, RedHat e outras. figura 29 – distribuições Linux Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 85 www.cliqueapostilas.com.br Curso Técnico em Informática Independente do nome da distribuição, todas elas utilizam o mesmo Kernel, que é distribuído sistematicamente pela Internet. A versão do Kernel é identiicada por números como Kernel 2.4. Estes números signiicam: Número de Versão Maior e Número de Versão Menor. Quando o número Menor se modiica, indica que novas aplicações (funções) foram acrescentadas ao kernel. Quando este número for par, indica uma versão de produção testada pelos mantenedores e pronta para o mercado, quando for impar indica que é experimental, ou seja, ainda está na equipe de desenvolvedores. O número maior indica a versão base do kernel. no exemplo, Kernel 2.4,signiicaqueabasedokernelestánasuaversão2. 5.1.2 - Organização no Desenvolvimento do Linux usuários voluntários podem participar ativamente no desenvolvimento deste sistema operacional, relatando bugs (erros) ou propondo melhorias no Linux para a equipe de desenvolvedores de uma determinada distribuição. na equipe de desenvolvedores temos os mantenedores, cuja função é manter o sistema operacional funcionando, com aval dos seus criadores, como Linus torvalds. toda contribuição deve obedecer a uma licença especial chamada GPL criada a partir do Projeto Gnu. Projeto GNu - Projeto iniciado por Richard Stallman e diversos colaboradores que formaram a Free Software Foundation, uma entidade voltada para o desenvolvimento de software de qualidade, para uso livre e com código-fonte aberto (Open Source). GPL - é um tipo de licença responsável por dar créditos aos criadores e implementadores dos softwares livres e do projeto Gnu. todo o software criado sob GPL terá que ser livre, código-fonte aberto e de livre distribuição. Open Source-característicaqueidentiicaossoftwares de código-fonte aberto, ou seja, o código-fonte do sistema, programa ou aplicativo ica disponível para qualquer um que queira acessá-lo. 5.1.3 - Principais características do Kernel Linux O Linux é um SO que suporta multitarefa real, multiusuários e multiprocessamento, utiliza memória virtual, implementa bibliotecas dinâmicas e redes tCP/IP. Possui proteção entre processos (crash protection) e permite nomes de arquivos com até 255 caracteres, além de muitas outras funcionalidades que deixariam esta lista bastante extensa. Página 86 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Multitarefa – Sistema capaz de executar vários aplicativos (progamas) simultaneamente utilizando compartilhamento do tempo do processador. Multiusuário – Sistema capaz de permitir que os recursos de um computador sejam utilizados por vários usuários simultaneamente. Multiprocessamento – Sistema capaz de rodar em computadores com mais de um processador, distribuindo as tarefas de forma balanceada entre eles. um grande atrativo que o Linux oferece é o fato de poder trabalhar tanto como servidor de aplicações como estação de trabalho, sem que hajanecessidadedegrandesmodiicaçõesnoseusistema. 5.1.4 - Interfaces Disponíveis O Linux possui vários tipos de interfaces com o usuário. Cada distribuição pode disponibilizar mais de um tipo de Shell, desde diferentes consoles delinhadecomandoatéambientesgráicosbastantesoisticados. Os consoles de linha de comando são baseados somente em caracteres e os que mais se destacam são o Bourne Shell e o C-Shell, este último aceita comandos semelhantes aos comandos da linguagem de programação C. Shell – nome dado a qualquer interface que permita a interação entre o usuário e o núcleo do sistema operacional.Estasinterfacespodemsergráicasouapenas aceitar comandos digitados pelo usuário. OLinuxpossuiumpadrãoparaambientegráicochamadoXWindow System(SistemadeJanelasX).OXWindowSystemdeineumambiente gráico básico do tipo cliente-servidor, sem, no entanto, deinir um gerenciadordejanelasespecíico. Preste atenção para não confundir estes dois conceitos: o servidor de janelas possui recursos para implementar as aplicações em forma de janelas e formar um ambiente agradável para o usuário. O gerenciador de janelas fornece os métodos para que o usuário possa interagir com o sistema da forma mais amigável possível. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 87 www.cliqueapostilas.com.br Curso Técnico em Informática um gerenciador de janelas consiste em um software, rodando sobre o X Window System, que é responsável pelas funções de ajuste de tamanho de uma janela, minimizando, maximizando, etc. Existem vários gerenciadores de janelas para o Linux, tais como o KDE, GnOME, XfCE, Window Maker, Enlightenment, AfterStep, fvwn, fvwm95, entre outros. Autilizaçãodoambientegráicoaumentaaprodutividadedousuário, permitindo acesso e visualização de várias aplicações simultaneamente de uma forma amigável. O uso do mouse é indispensável em um ambiente como este. no Linux podemos escolher o gerenciador de janelas. no Windows, apesar de ser permitido ao usuário trocar o layout da tela, mudar a coniguraçãodasjanelaseetc,ogerenciadordejanelaséúnico.Hoje em dia é possível instalar o Linux e iniciar a interface gráica por padrão; caso seja iniciado em modo texto, basta digitar o comando startxqueserácarregadaainterfacegráicapadrão. 5.1.5 - O Linux e seus dispositivos O Linux encara todos os dispositivos como se fossem arquivos, de modo queexisteumaarquivoespecíicoassociadoacadaumdosdispositivos, seja ele um disco rígido, um terminal, impressoras, unidade de CD/ DVD e assim por diante. Os dispositivos podem transferir dados de duas maneiras diferentes, caracter a caracter ou em blocos de dados. Assim, existem dois tipos de arquivos associados a dispositivos, os arquivos do tipo caracter e os do tipo bloco. Para utilização de um dispositivo como discos rígidos, unidades de disquetes ou de CD/DVD, é preciso montar estes dispositivos. Esta montagem pode ser manual ou automática como nas versões mais atuais do Linux. Assim, existem comandos próprios para montagem e desmontagem dos dispositivos como mount e umount. 5.2. InStALAnDO O Gnu/LInuX Para se instalar um sistema Gnu/Linux em um disco rígido, é necessária apenasumapartiçãoLinux,ondeosistemaicaráresidente.Contudo,na maioria dos casos, é necessário que haja uma área para que o sistema utilize como memória virtual. Por isso, é comum, nas instalações domésticas do Gnu/Linux, haver, pelo menos, duas partições no disco rígido; uma Linux e outra Swap (memória virtual). Página 88 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Partição ou Particionamento de disco – deinido como o ato de se associar várias unidades lógicas a uma unidade física. É a ação de se dividir logicamente um dispositivo de armazenamento de dados (normalmente um disco rígido), de modo que possamos trabalhar com cada divisão (partição) como se esta fosse um disco rígido independente. O que é Swap? Linux é um sistema operacional com memória virtual paginada, isto quer dizer que podemos ter programas em execução cujo tamanho é maior que a memória física disponível para executá-los. O sistema operacional passa a ser responsável por manter na memória as partes dos programas efetivamente em uso, deixando o resto no disco rígido. A utilização da memória virtual torna o computador mais lento, embora faça com que ele aparente ter mais memória RAM do que realmente tem. 5.2.1 - Requisitos de Hardware para Instalação A instalação Linux, requer muito pouco do hardware, basta um microcomputador 386 (bastante obsoleto) ou superior, com memória de no mínimo 2Mb de RAM. Entretanto para que seja possível a utilizaçãodeumainterfacegráicasimples,érecomendávelpelomenos 8Mb de RAM. 5.2.2 - Particionando o disco rígido O uso mais comum do particionamento em discos rígidos é para a instalação de mais de um sistema operacional no computador. Desta forma,cadasistemaoperacionalicarestritoàsuapartiçãoenãoentraem conlitocomosdemais.Senãohouvesseorecursodeparticionamento, para cada sistema operacional que se desejasse utilizar no computador, seria necessário um disco rígido exclusivo para a sua instalação. Existem basicamente, três tipos de partições: Partições primárias - usadas para inicializar um sistema operacional. no esquema de particionamento de um disco deve haver, pelo menos, uma partição primária. Caso haja mais de uma primária, apenas uma delas pode estar ativa. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 89 www.cliqueapostilas.com.br Curso Técnico em Informática Partições estendidas – normalmente um disco permite apenas 4 partições, assim, se for necessário um número maior de partições é preciso que uma das 4 seja estendida, pois este tipo de partição permite sua subdivisão em unidades lógicas (partições lógicas). Entretanto, uma partição estendida não pode ser usada para inicializar um sistema operacional. Partições lógicas – também chamada unidade lógica, é o nome dado às subdivisões de uma unidade estendida. Apesar da utilização de somente duas partições ser uma prática bem comum em instalações domésticas do Gnu/Linux, este sistema pode serinstaladodeformacomquedeterminadosdiretóriosiquemcada um em sua partição, ou até mesmo em computadores diferentes. Diretórios - São arquivos que contêm os nomes de outros arquivos, indicando que estes arquivos estão armazenados ou organizados como um grupo. Desta forma, é possível organizar todos os arquivos do disco como se estivessem em pastas separadas. O agrupamento é arbitrário; podemos escolher a combinação desejada ou alterar o agrupamento a qualquer hora. 5.2.3 - Vantagens e Desvantagens dos esquemas de particionamento A utilização do Gnu/Linux sob várias partições possui vantagens e desvantagens que variam de acordo com a aplicação. Vantagens: • Segurança. Caso haja algum problema em alguma parte da hierarquia de diretórios, somente a partição que armazena aquela parte da hierarquia será afetada e o administrador não terá que recuperar todo o sistema. • Crescimentodescontroladodedados.Nocasodealguémoualgum programa começar a criar arquivos no sistema, com o intuito de encherodiscorígido,esteproblemaicarárestritoàpartiçãoquefoi alvo do ataque, evitando o comprometimento geral do sistema. Por exemplo: caso algum usuário começasse a receber muitas mensagens, como spams, somente esta partição seria afetada, garantindo-se assim a segurança dos dados armazenados no sistema e possibilitando ao administrador uma solução mais prática para o problema. Página 90 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais O problema de crescimento descontrolado de dados também pode ser solucionadoatravésdousodequotasdedisco,oquesigniicalimitar o uso do disco rígido para usuários e seus programas. Para melhorar a segurança para esse tipo de problema podemos combinar as quotas de disco com esquemas de particionamento. Desvantagens: • Diiculdadeempreveroespaçoaserutilizadoporcadapartição. Seoadministradoralocarpoucoespaçoparaumapartição,icará faltando futuramente e, caso ele aloque espaço em demasia, este será um espaço desperdiçado no disco. Esta desvantagem é bastante séria, tendo em vista a diiculdade do redimensionamento de uma partição e o perigo de perda de dados que esta operação apresenta. Por todos estes aspectos é que os tamanhos de cada partição devem serplanejadospreviamenteedeinidoscommuitocuidado,aimde evitar futuros imprevistos. É importante que você saiba que, para instalação do Linux, há diretórios que não podem estar em partições separadas mas necessitam estar na mesma partição do diretório raíz (/). São eles: /bin; /etc; /dev; /initrd; /lib e /sbin. Esta limitação existe, pois o conteúdo destes diretórios é necessário no momento de inicialização do sistema. Por outro lado, sugere-se que os diretórios /var e /tmp iquem em partições próprias para eles, pois seu conteúdo se altera constantemente e a não criação de partições separadas para eles traz o risco de um arquivo de log encher a partição do diretório raíz, por exemplo. 5.3. SIStEMA DE ARQuIVOS Osistemadearquivosqueumsistemaoperacionalutilizadeineaforma como os diretórios e arquivos são organizados em disco e os mecanismos que o SO utiliza para manipulação destes arquivos. nem sempre é possível armazenar arquivos contiguamente em um disco, muitas vezes os blocos de um arquivo (partes dos arquivos) icam espalhados pela superfície do disco. É preciso que haja maneiras do sistema operacional encontrar estesblocosdearquivos.Umsistemadearquivosdeineaformacomo o SO deve armazenar e recuperar os arquivos em um dispositivo. na verdade, no Linux, é possível utilizar, montar e desmontar vários tipos de sistemas de arquivos, até mesmo o sistema de arquivos utilizado pelo Windows. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 91 www.cliqueapostilas.com.br Curso Técnico em Informática mount – monta e exibe informações sobre sistemas de arquivos mount [opções] mount [opções] <dispositivo> <diretório> opções: -t tipo (especiicaotipodesistemadearquivo que será montado); -a(montatodosossistemasdearquivosespeciicados no arquivo fstab) umount – desmonta sistemas de arquivos umount [opções] umount [opções] <dispositivo> <diretório> opções: -a (desmonta todos os sistemas de arquivos especiicadosnoarquivomtab) Os <dispositivos> têm uma nomenclatura própria no Linux. Veja, por exemplo, as unidades de discos: Arquivo Dispositivo Descrição Correspondência Hda Primary Master Disco rígido primário C: Hdb Primary slave Caso de 2 discos na IDE primária D: Hdc Secundary master Caso de 1 disco na IDE secundária E: Hdd Secundary slave Caso de 2 discos na IDE secundária f: fd0 Disquete unidade de disco lexível A: Cdrom CD ou DVD unidade de CD ou DVD 5.3.1 Estrutura de diretórios A árvore de diretórios do Linux segue o filesystem Hierarchy System (fHS), que é um subpadrão do Linux Standart Base (LSB). Esta árvore édivididaemramiicaçõesmenoresdeformaapermitirautilizaçãode vários dispositivos físicos em cada ramo principal, ou mesmo, de tipos de dispositivos diferentes como CD-ROMs e redes. Partes comuns, por exemplo, podem ser compartilhadas via nfS (networking file System) entre várias máquinas, mantendo uma parte independente em cada máquina. Página 92 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Conhecendoosistemadearquivosesuaestruturadediretórios,ica mais fácil entender o sistema operacional Linux e a sua utilização. Diretório Descrição / Diretório raiz /bin Comandos essenciais do sistema. /sbin Comandos essenciais de administração do sistema. /boot Arquivos de boot (inicialização); kernel do sistema. /dev Arquivosdedispositivosdehardware(loppy,hardisk, cdrom, modem). /etc Arquivosdeconiguraçãodosistema /etc/X11 coniguraçãodoXWindowSystem. /etc/rc.d scripts de inicialização do sistema. /home Diretório local de usuários. /home/maria diretório do usuário Maria /lib Bibliotecas compartilhadas essenciais e módulos do kernel. /lib/modules módulos do kernel /mnt Diretório de montagem temporária de sistemas de arquivos /mnt/cdrom diretório de montagem do CD-ROM. /opt Pacotes de software opcionais /proc Sistema de arquivos virtuais de informações do kernel e processos. /root Diretório local do superusuário root. /sbin Arquivos de sistema essenciais (binários do superusuário). /tmp Arquivos temporários. /usr Arquivos de usuários nativos da distribuição (hierarquia secundária). /usr/bin comandos não essenciais do sistema. /usr/sbin comandos não essenciais de administração do sistema. /usr/lib bibliotecas compartilhadas /usr/src código-fonte(arquivos fontes necessários para compilar o kernel). /usr/local hierarquia local. /usr/local/bin comandos locais do sistema. /usr/local/sbin comandos locais de administração do sistema. /usr/share dados independentes da arquitetura /usr/share/doc documentação do sistema /var Arquivos (dados) variáveis. /var/cachê cache de dados das aplicações /var/log arquivos de log /var/tmp arquivos temporários. /var/spool dados de spool das aplicações Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 93 www.cliqueapostilas.com.br Curso Técnico em Informática 5.3.2 - Propriedades dos Arquivos Osarquivospossuemváriosatributosoupropriedadesquedeinemo seu tipo, quem pode acessá-los e de que forma podem ser manipulados. O controle de acesso a arquivos do Linux determina quais usuários ou grupos de usuários podem ler, escrever ou executar um arquivo (no caso de diretório, posicionar-se nele). Este controle é feito a partir dos atributos que cada arquivo possui. A partir do comando ls podemos exibir informações sobre os atributos dos arquivos. ls [opções] [caminho] opções: -l (exibe todas as informações referentes ao arquivo ou diretório); -a (exibe todos os arquivos e diretórios, inclusive os ocultos); -R (lista o conteúdo do diretório e dos seus respectivos subdiretórios); um arquivo pode ter os seguintes atributos: Tipo Descrição – Arquivo regular d Diretório c Arquivo de dispositivo orientado a caracteres b l Arquivo de dispositivo orientado a blocos Arquivo de link (semelhante aos atalhos do Windows) Permissões Descrição rwx——— O dono do arquivo pode ler, escrever e executar o arquivo —rwx— Os usuários do grupo do arquivo podem ler, escrever e executar o arquivo O dono pode ler, escrever e executar, o grupo pode ler e escrever e os demais usuários podem ler e executar o arquivo rwxrw-r-x note que, conforme as permissões que o arquivo recebe no momento de sua criação (conforme a máscara de criação - mask), ou após uma modiicaçãodestesatributosatravésdoscomandos:chown,chmod,é possível determinar quem tem direitos sobre ele. Página 94 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais umask – deineamáscaradecriaçãodosarquivos chown [opções][dono][grupo]–especiicaodonoe o grupo do arquivo chmod [opções] <arquivos ou diretórios> exemplo: chmod u+w nomearquivo (adiciona a permissão de escrita w para o dono do arquivo chamado nomearquivo); chmod o-x nomearquivo (retira a permissão de execução x para os usuários que não sejam o dono ou do grupo do arquivo chamado nomearquivo); 5.4. COMAnDOS DO LInuX ApesardeoLinuxdisponibilizardiversasinterfacesgráicas,facilitando a utilização do sistema pelo usuário, muitas das tarefas inerentes ao administrador do sistema devem ser feitas via comando. Assim, é preciso entender como o Shell interpreta o que é digitado na linha de comando (no prompt). Primeiramente, é preciso saber que o Linux faz distinção entre letras maiúsculas e minúsculas. tenha cuidado ao escrever um comando, opções ou nomes de arquivos e diretórios. Em todos os comandos vistos nesta sessão, tudo que, na sintaxe do comando, aparecer entre colchetes - [opções] – é opcional, isto é, o comando realizará uma ação mesmo que não seja indicada nenhuma opção. Quando aparecer entre os sinais de menor que < e maior que > o parâmetro é obrigatório. 5.4.1 - Iniciando e Encerrando o Sistema Os comandos a seguir são utilizados para permitir que o usuário abra uma sessão para utilizar os recursos do sistema, para obter informações de outros usuários e para encerrar uma sessão aberta. rlogin – inicia uma sessão de terminal remoto Sintaxe: rlogin [opções] [-l nomedousuário] <host> Opções: -x(ativaacriptograiadetodososdados que forem transmitidos na sessão) passwd – usado para alterar a senha do usuário. A opção [nomedousuário] somente poderá ser usada pelo root. Sintaxe: passwd [nomedousuário] Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 95 www.cliqueapostilas.com.br Curso Técnico em Informática root – Existe um usuário no Linux que tem permissão para realizar qualquer atividade, manipular qualquer arquivo ou diretório, executar qualquer tarefa administrativa e muito mais. Este usuário é o root, e, por possuir tantos poderes, é chamado de superusuário. Portanto, tenha muito cuidado quando estiver logado como root, pois o sistema estará sem proteção contra erros deste usuário. su – inicia um novo shell para o superusuário Sintaxe: su [opções] Opções: -c comando (apenas executa o comando comando como superusuário) inger – exibe informações sobre os usuários do sistema Sintaxe: inger [opções] [usuário@host] Opções: -l (exibe informações no formato de múltiplas linhas) shutdown – encerra o sistema de forma segura, permitindo que o computador seja desligado. Sintaxe: shutdown [opções] [mensagem] Opções: now (executa o comando imediatamente); -r (reinicia o sistema após o shutdown); -t segundos (especiica um tempo de espera em segundos até que seja realizado o shutdown). 5.4.2 - Manipulando diretórios e arquivos ls - Lista os arquivos de um diretório. Sintaxe: ls [opções] [caminho/arquivo] [caminho1/arquivo1]... Opções: -a, —all (Lista todos os arquivos (inclusive os ocultos) de um diretório); -A, —almost-all (Lista todos os arquivos (inclusive os ocultos) de um diretório, exceto o diretório atual e o de nível anterior); -d, —directory (Lista os nomes dos diretórios ao invés do conteúdo); -l (usa o formato longo para listagem de arquivos. Listaaspermissões,datademodiicação,donos,grupos,etc);-R (Lista diretórios e sub-diretórios recursivamente) Página 96 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais figura 30:- Exemplo: uso do comando ls. cd - entra em um diretório. Você precisa ter a permissão de execução para entrar no diretório. Sintaxe: cd [diretório] Exemplos: cd (sem parâmetros retornará ao seu diretório de usuário - diretório home); cd / (retornará ao diretório raiz); cd. (sobe um nível na hierarquia de diretórios) pwd - Mostra o nome e caminho do diretório atual. mkdir - Cria um diretório no sistema. Sintaxe: mkdir [opções] [caminho/diretório] [caminho1/diretório1] rmdir - Remove um diretório do sistema. O diretório a ser removido deve estar vazio e você deve ter permissão de gravação para removê-lo. Sintaxe: rmdir [caminho/diretório] [caminho1/diretório1] cat - Mostra o conteúdo de um arquivo binário ou texto. Sintaxe: cat [opções] [diretório/arquivo] [diretório1/arquivo1] Opções: -n, —number (mostra o número das linhas enquanto o conteúdo do arquivo é mostrado); ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 97 www.cliqueapostilas.com.br Curso Técnico em Informática ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Página 98 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 6. UTILIZAÇÃO DO LINUX Caro Aluno, No capítulo anterior fomos apresentados ao Linux, o SO escolhido para estudarmos na prática. Conhecemos sua história e seus conceitos básicos e vimos algumas de suas vantagens. Neste capítulo aprenderemos a utilizar este SO. Vamos dar maior ênfase à utilização da linha de comandos, visto que a interface gráica é bastante intuitiva e similar à do Windows. Este sistema vem sendo utilizado com certa frequencia como servidor de rede, principalmente para servidores Web. Assim, estes tópicos lhe darão uma base para o estudo destas matérias nos módulos a seguir, bem como lhe proporcionarão um diferencial na sua formação proissional. Bom estudo! Para execução das próximas atividades iremos utilizar como base o Linux distribuição ubuntu com o gerenciador de janelas GnOME. Pode ser que haja alguma diferença entre as distribuições: entre a que iremos trabalhar – ubuntu – e a instalada nas máquinas do seu polo – Linux educativo. Caso o seu sistema operacional não seja essa versão, você poderá instalá-la em um software de virtualização. O que é software de virtualização? É um software que permite a instalação e utilização de um SO dentro de outro. Com isto é possível instalar, no mesmo computador, um ou mais sistemas operacionais, criando computadores completos, porém virtuais, dentro de um computador físico. Este recurso é muito usado em centros de dados, pois permite criar redundância e segurança adicional sem recorrer a tantas máquinas físicas. não se deve notar a diferença entre a máquina real e a virtual. na atividade dessa semana, você deverá instalar o software de virtualização VirtualBox ou o VMware Server. Posteriormente deverá instalar o Linux ubuntu. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 99 www.cliqueapostilas.com.br Curso Técnico em Informática Você pode trabalhar como usuário comum ou administrador: • Quandoizerologincomousuáriocomum,oseudesktopterá os ícones e a barra de tarefas. não haverá restrição alguma para poder clicar com o botão direito do mouse. • Jáaofazerologincomosuperusuário(tambémchamadoroot ou administrador) não haverá nenhum ícone e o botão direito não irá funcionar, por motivo de segurança. 6.1. COMAnDOS BÁSICOS E DE MAnIPuLAçÃO DE ARQuIVOS 6.1.1 - Interface gráica O Linux, assim como qualquer sistema operacional moderno, é perfeitamente capaz de oferecer interação com o usuário através de interface gráica, sendo possível utilizar a maioria de seus recursos através do mouse. OambientegráicodoLinuxseassemelhaaodoWindows,compainel ou barra de tarefas, onde se pode acessar de forma rápida alguns programaseveriicarquaisdelesestãoemuso.Esteambientetambém usa o conceito de janelas, onde você encontra a barra de título e os botões minimizar, maximizar e fechar. O nautilus é o gerenciador de arquivos do GnOME. Através dele, podemos criar pastas, arquivos, formatar discos, copiar, mover e excluirarquivosoupastas.Suaaparência(verigura31)ésemelhante ao explorer do Windows; a criação e remoção de pastas também se processa de forma semelhante. figura 31: Tela de apresentação do navegador de arquivos do GNOME. Página 100 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais OsdemaisitensgráicosdoGNOMEtambémsãosemelhantesaosdo Windows.AconiguraçãodaaparênciadoGNOME,criaçãodeatalhos no desktop, visualização dos dispositivos carregados, criação de novos dispositivos,editoresdetexto,entreoutros,porseremgráicos,facilitam e tornam intuitiva sua utilização. 6.1.2 - Shell Porém,emdadomomentoomodográicopodenãoestardisponível e, além disso, determinadas tarefas só podem ser executadas por comandos digitados. Este é o ambiente tradicional do Linux, chamado CLI (Command Line Interface). Este modo é extremamente poderoso e rápido, porém implica que você memorize alguns comandos com seus diversos parâmetros. Quando o comando é inserido, cabe ao interpretador de comandos (também conhecido como shell) executá-lo. Shell é o nome genérico de uma classe de programas que funcionam como interpretador de comandos e linguagem de programação script (interpretada) no Linux, funcionando como interface entre usuário e o kernel(verigura32). Os shells mais populares são bash, csh, tcsh, ksh e zsh. O usuário pode escolher qual shell vai utilizar; o padrão é o bash (Bourne Again Shell), criado por S. R. Bourne. figura 32: Tela Shell: interface entre o usuário e o kernel. • Onde e como digitar os comandos Quando o computador que você acessa estiver com o modo texto ativado, é possível digitar comandos diretamente, bastando se logar. JáseoLinuxentranomodográicoaoserinicializado,énecessário abrirumterminal(tópicoaseguireigura6.3). Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 101 www.cliqueapostilas.com.br Curso Técnico em Informática Atenção: O Linux, como qualquer sistema operacional unix, diferencia letras maiúsculas de minúsculas; portanto, relatório, RELAtÓRIO e Relatório são arquivos diferentes. Os seguintes caracteres não podem ser utilizados em nomes de arquivos:! @ # $ % ^& * () { } [ ] ‘ “? |; < > ` + - = \ /.. Para abrir um terminal no Gnome vá ao menu Aplicações > Acessórios > terminal (ou pressione simultaneamente as teclas Alt+f2) e, na caixa detexto,digite“gnome-terminal”etecle“Enter”.Verigura33. figura 33: Tela de localização do terminal de comandos. Para abrir uma seção shell, tecle simultaneamente Crtl+Alt+f1; uma console modo texto será exibida solicitando um login; você deve entrar com seu “usuário e senha” para ter acesso ao prompt de comandos conformeaigura34. A primeira vez que você acessar o Linux, o acesso deverá ser feito como superusuário root. Esse é o nome da conta que tem acesso irrestrito a todos os recursos do Linux. normalmente a conta de superusuário é utilizada na execução de tarefas de administração do sistema, como criação de novas contas, desligar o sistema, etc. nos demais casos você deve logar como usuário comum. Isto porque o acesso ilimitado do superusuário root, quando mal utilizado, pode provocar grandes danos ao sistema; portanto, a conta do superusuário deve ser usada somente quando for realmente necessário. Página 102 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais figura 34: Tela do terminal de comandos. • Convenções: na sintaxe da digitação dos comandos são adotadas as seguintes convenções: • Quandoopromptqueprecederumcomandofor$,ocomando poderá ser executado por qualquer usuário. • Quandoopromptqueprecederumcomandofor#,ocomando poderá ser executado somente pelo superusuário root. • Quandoaparecer[texto]nasintaxedealgumcomando,otexto será opcional. • Quandoaparecer<texto>nasintaxedealgumcomando,otexto será obrigatório. • Quandoaparecerpressione<nome_tecla>,ateclamencionada deverá ser pressionada. • Quandoaparecerpressione<nome_tecla_1>+<nome_tecla_2>,as teclas mencionadas deverão ser pressionadas simultaneamente. ATIVIDADE 12 1. O que é virtualização? 2. Como diferenciar o usuário do Superuruário (root)? 3. O que é Shell? Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 103 www.cliqueapostilas.com.br Curso Técnico em Informática ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ 6.1.3 - Comandos de sessão e de terminal O Linux permite trabalhar com o conceito de “terminais múltiplos”, que consiste em permitir que vários usuários estejam “logados” no sistema ao mesmo tempo. Para mudar de terminal, pressione: <Alt> + <fn>, onde fn é uma tecla de função (f1 até f6). Os comandos a seguir são usados para limpar o conteúdo da tela do terminal, escrever mensagens e permitir conversa entre os usuários. Página 104 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais clear: limpa a tela do terminal virtual corrente. Exemplo: $ clear echo: envia uma mensagem para o terminal em uso. sintaxe: echo [opções] <mensagem> Opção Descrição -n não imprime mudança de linha após a mensagem -e habilita a interpretação de caracteres de escape na mensagem Exemplo: $ echo ‘alo pessoal’ write: enviaumamensagemaumusuárioeterminalespecíico. sintaxe: write <usuário> [tty] <texto> Opção Descrição usuário indica o login do usuário para quem desejamos enviar uma mensagem tty indica para qual terminal virtual do usuário a mensagem deve ser enviada. um usuário pode estar “logado” em mais de um terminal se ele estiver utilizando um ambiente de janelas, ou se estiver em uma máquina que permita vários terminais virtuais diretamente da console do computador. texto texto da mensagem. Exemplo: $ write Lucia vamos almoçar? Lucia é o nome do usuário. wall: sintaxe: envia uma mensagem a todos os usuários logados no sistema. wall <mensagem> Exemplo: $ wall ‘faltam 15 minutos para desligar o sistema’ Os comandos explanados a seguir permitem iniciar e terminar uma seção, ligar e desligar o computador. login: cancela a sessão atual e inicia uma nova sessão de usuário. Exemplo: $ login logout: termina a sessão do usuário. Exemplo: $ logout Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 105 www.cliqueapostilas.com.br Curso Técnico em Informática exit: encerra o Shell de comandos corrente. Exemplo: $ exit reboot: reinicializa o computador. Exemplo: $ reboot halt: desligar o computador. Exemplo: $ halt 6.1.4 - Comandos de ajuda frequentemente esquecemos a sintaxe correta dos comandos, principalmente a sua lista de parâmetros. felizmente não somos obrigados a decorar muita coisa, pois existe um help on line que nos permite chegar facilmente à sintaxe que queremos. man: sintaxe: Opção consulta os manuais on-line do sistema. man [opções] [seção] <comando> Descrição -a exibe todas as páginas do manual -h exibe uma mensagem de ajuda -w exibe a localização de páginas do manual a serem exibidas Exemplo: $ man ls exibe informações sobre o comando ls Para sair do man, pressione <Q> info: sintaxe: Opção exibe informações de um comando do sistema. info [opções] <comando> Descrição -d <nomedir> adiciona um diretório à lista de diretórios. -f<arqinfo> especiicaodiretórioaserutilizadopelocomandoinfo -h exibe uma mensagem de ajuda Exemplo: $ info ls exibe informações sobre o comando ls Para sair do info, pressione <Q> Página 106 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 6.1.5 - Comandos para diretórios Os comandos a seguir são utilizados pelo usuário para criar, remover, movimentar-se entre os diretórios e informar o seu conteúdo. na utilização destes comandos podem ser utilizados estes “atalhos” especiais: ~ representa o diretório padrão do usuário; / representa o diretório raiz; ../ sobe um diretório. mkdir: sintaxe: Opção -p cria um ou varios diretórios. mkdir [opções] <nome_diretório> Descrição cria os diretórios-pai se ainda não existirem. -m <modo> cria um diretório com o modo de acesso “modo”. Exemplos: $ mkdir dir1 dir2 dir3 - cria 3 diretórios no mesmo local $ mkdir /exercícios/temp1/temp2/temp3/documentos - cria só o diretório documentos no caminho indicado $ mkdir -p /exercícios/temp1/temp2/temp3/documentos - cria todos os subdiretórios desde o raiz A figura 35 mostra o uso do comando criando a pasta1 no diretório do usuário. toda vez que for usado / antes do nome do diretório a ser criado, ele será criado no diretório raiz. Exemplo: root] # mkdir /João - o diretório João está sendo criado no diretório raiz. root] # mkdir ~/João - o diretório João está sendo criado no diretório do usuário. figura 35: criando o diretório pasta1 no desktop. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 107 www.cliqueapostilas.com.br Curso Técnico em Informática ls ou dir: sintaxe: exibe o conteúdo dos diretórios (lista arquivos e diretórios). ls [opções] [diretório] dir [opções] [diretório] Exemplos: $ ls /usr/bin mostra o conteúdo do diretório /usr/bin $ ls -r /usr/bin $ ls -a /usr/bin $ ls -l /usr/bin $ ls -f /usr $ ls -f /usr/bin Ao mostrar o conteúdo do diretório (igura 36), o comando ls mostra umatabelacomváriascolunas.Osigniicadodealgumascolunassão: • Aprimeiracoluna:sequenciadeletrasquedeinemoesquemade permissões do arquivo (isto será mais detalhado no item 6.2); • A segunda coluna do comando ls pode ter dois signiicados. Se for um arquivo, este número indica quantos hard links existem apontados para ele; se for um diretório, indica quantos subdiretórios existem. • Asduascolunasseguintes,nocomandols,mostramo“nomedo usuário” e “nome do grupo” no qual o arquivo se encontra. • Enim,asúltimascolunasindicam:tamanhodoarquivo,dataehora emquefoipelaúltimavezmodiicadoeonomedoarquivo. figura 36: uso do comando ls no diretório /. Página 108 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais cd: muda o diretório de trabalho. sintaxe: cd [diretório] Exemplo: # mkdir /exercícios - cria o diretório /exercícios $ cd /exercícios muda para o diretório exercícios $ls lista o conteúdo do diretório /exercícios $ cd /usr/bin muda para o diretório /usr/bin $ ls lista o conteúdo do diretório /usr/bin $ cd.. sobe um nível na árvore de diretórios: /usr $ ls lista o conteúdo do diretório /usr $ cd / muda para o diretório raiz.Verigura6.7. $ ls lista o conteúdo do diretório raiz $ cd ou $ cd ~ retorna ao diretório do usuário figura 37: uso do comando cd (mudando para o diretório raiz). pwd: exibeodiretóriocorrente(igura6.8). Exemplo: $ cd /usr/bin $ pwd /usr/bin troca para o diretório /usr/bin pergunta qual o diretório atual figura 38: uso do comando pwd (mostra o diretório corrente). Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 109 www.cliqueapostilas.com.br Curso Técnico em Informática tree: sintaxe: exibe a árvore de diretórios. Por padrão, exibe arquivos e diretórios. Em muitas distribuições, o comando tree não é instalado por padrão. tree <diretório> Exemplo: $ tree /var/lib 6.1.6 - Comandos para manipular arquivos Os comandos a seguir são utilizados pelo usuário para criar, apagar, copiar e localizar arquivos. na utilização destes comandos podem ser utilizados os mesmos caracteres especiais ~ /../ apresentados no item 6.1.5. ind: procura arquivos dentro de discos e palavras dentro dos mesmos. sintaxe: ind[caminho][opções]<nome_arquivo> Exemplo: $ind/exercícios_namearquivo1.doc procura pelo arquivo arquivo1.doc dentro do diretório /exercícios_ name touch: sintaxe: Opção -c -m -a atualiza a última data de acesso ao arquivo. Caso o arquivo não exista, será criado vazio. touch [opções] <arquivo> Descrição não cria o arquivo caso ele não exista atualizasomenteahoradamodiicação atualiza somente a data de acesso Exemplo: $ cd /exercícios $ touch arquivo1.doc Aqui, se o arquivo1.doc não existir, será criado; se existir, terá suasdatasehoras(demodiicaçãoeacesso) alteradas. Aigura39mostraoutroexemplo:odiretórioscannerinicialmentetem a data e hora 16/07/2009 12h01m; o comando touch é aplicado sobre ele (no meio da tela); em seguida o comando ls mostra novamente o diretório scanner com a data e hora 04/08/2009 19h59m. Página 110 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais figura 39: uso do comando touch para atualizar data e hora do diretório scanner. rm: Sintaxe: Opção -f -i -r -v remove arquivos. rm [opções] <arquivos> Descrição nãoexibemensagensdeconirmaçãoparaeliminararquivos pedeconirmaçãoantesdeeliminar apaga recursivamente o conteúdo de um diretório e seus subdiretórios exibe o nome de cada arquivo antes de eliminá-lo Exemplos: $ rm arquivo1.doc apaga o arquivo1.doc no diretório corrente O exemplo da igura 40 apaga o arquivo script, e, se ele fosse um diretório, apagaria também todos seus subdiretórios. figura 40: uso do comando rmcomasopções–re-f. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 111 www.cliqueapostilas.com.br Curso Técnico em Informática rmdir: sintaxe: Opção -p remove diretórios vazios. rmdir [opções] <diretório> Descrição remove os diretórios intermediários se estes estiverem vazios Exemplos: $ rmdir dir1 dir2 remove os dois diretórios dir1 e dir2 caso estejam vazios $ rmdir –p temp1/temp2/temp3/documentos remove o diretório documentos e os demais temp3, temp2 e temp1 se estiverem vazios. Asigurasaseguirilustramocomandormdir.Naigura41primeiro vamos para o diretório /tmp com o comando cd /tmp e listamos o seu conteúdo com o comando ls -l; são mostrados sete diretórios. A seguir criamos o diretório CEADsistemas com o comando mkdir e de novo listamos o conteúdo do diretório /tmp com o comando ls -l. Aigura42mostrainicialmenteoconteúdododiretório/tmpcomo comando ls –l. Em seguida o diretório CEADsistemas é apagado com o comando rmdir. O comando ls –l a seguir mostra que o diretório CEADsistemas foi removido. figura 41: cria o diretório CEADsistemas dentro do diretório /tmp. Página 112 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais figura 42: removendo o diretório CEADsistemas criado. mv: sintaxe: Opção -b -f -i -v move um arquivo (ou diretório) de um diretório para outro. Caso o mv seja usado dentro do mesmo diretório, apenas troca o nome do arquivo. mv [opções] <fonte> <destino> Descrição faz backup de arquivos que estão sendo movidos ou renomeados removearquivosexistentes,semconirmação pede conirmação antes de mover um arquivo que irá sobrescrever outro. exibe o nome do arquivo antes de movê-lo Exemplos: $ mv /exercícios/origem/arquivo1.doc /exercícios/destino move o arquivo1.doc da pasta /exercícios/origem para a pasta /exercícios/destino $ mv arquivo1.doc arquivo2.doc troca o nome de arquivo1. doc para arquivo2.doc; escreve por cima de arquivo2. doc se este já existir $ mv -i arquivo1.doc arquivo2.doc troca o nome de arquivo1.doc para arquivo2.doc; se o arquivo2.doc já existir, pergunta se pode escrever por cima Você pode ver pelos exemplos acima, que em <fonte> e <destino> podemosespeciicarocaminho(oupath),queindicaemqualdiretório o arquivo fonte está e em qual diretório o arquivo destino estará. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 113 www.cliqueapostilas.com.br Curso Técnico em Informática Aigura43mostraocomandomvparamoverodiretóriopasta1para dentro do diretório /home/joao. O comando sudo antes do mv serve para que o usuário execute o comando como superusuário root. figura 43: uso do comando mv sendo utilizado com permissão de superusuário. cp: copia um ou mais arquivos. O comando cp é semelhante ao mv; o mv, após ser efetuado, apaga o arquivo de origem; o comando cp não o apaga. sintaxe: cp [opções] </caminho/arquivos_fonte> </caminho/ arquivos_destino> Opção -a -b -d -i -l -s -p -P -r ou –R -u Descrição preserva todos os atributos de arquivo faz backup antes de copiar copia um link, mas não o arquivo apontado por este pedeconirmaçãoantesdesobrescreverarquivos cria links diretos em vez de copiar arquivos cria links simbólicos em vez de copiar arquivos preserva propriedade, permissões e o time stamp do arquivo copia o arquivo criando os subdiretórios indicados copia recursivamente arquivos em todos os subdiretórios copia somente quando os arquivos_fonte são mais novos que os arquivos_destino (isto permite atualizar os backups em menor tempo) exibe o nome do arquivo antes de copiá-lo -v Exemplos: $ cp /exercícios/origem/arquivo1.doc /exercícios/destino copia o arquivo1.doc da pasta/exercícios/origem para a pasta /exercícios/destino $ cp arquivo1.doc arquivo2.doc copia o arquivo1.doc para arquivo2.doc; escreve por cima de arquivo2.doc se este já existir $ cp -i arquivo1.doc arquivo2.doc copia o arquivo1.doc para arquivo2.doc; se o arquivo2.doc já existir, pergunta se pode escrever por cima Página 114 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Você vê, pelos exemplos acima, que em <fonte> e <destino> também podemos,assimcomonocomandomv,especiicarocaminho(oupath), que indica em qual diretório o arquivo fonte está e em qual diretório o arquivo destino estará. A igura 44 mostra o comando cp efetuando uma cópia de todos os arquivos do diretório /boot para o diretório /home/rodrigo. O uso dos caracteres *.* indica: todos os nomes de arquivo com todas as extensões; isto equivale a dizer “todos os arquivos do diretório /boot”. figura 44: uso do comando cpsendo utilizado com permissão de superusuário (root) através do comando sudo. Copia todos os arquivos do boot para o diretório rodrigo. ln: sintaxe: Opção cria links para arquivos e/ou diretórios. Cria tanto links simbólicos (soft links) como diretos (hard links). Por padrão = links diretos. ln [opções] <caminho> <nome_link> Descrição -s cria link simbólico -d cria link direto para diretório. Só pode ser executado pelo superusuário root. -f força a criação do link -b faz backup de cada arquivo de destino existente -i pedeconirmaçãoantesderemoverarquivo Exemplos: $ ln –s /exercícios/temp link $ ln /exercícios/temp/arquivo1.doc link1.doc $ ln -s /exercícios/temp/arquivo1.doc link1.doc Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 115 www.cliqueapostilas.com.br Curso Técnico em Informática Aigura45mostraumexemplodeutilizaçãodocomandoln. figura 45: uso do comando ln sendo utilizado com permissão de superusuário (root) através do comando sudo. Criando link simbólico para o diretório rodrigo. ATIVIDADE 13 1. Quais os comandos para manipulação de arquivos e diretórios? E qual a função de cada comando? 2. Quais os comandos de navegação? Cite suas funções. 3. Crie a estrutura de diretórios turno/noite no /tmp. Escreva o comando utilizado. 4. Copie o arquivo fstab do diretório /etc para o diretório /tmp/turno/noite. Escreva o comando. 5. Mova o arquivo fstab do diretório /tmp/turno/noite para o diretório /turno. Escreva o comando utilizado. 6. Apague o subdiretório noite. Escreva o comando utilizado. 7. Mude o nome do arquivo fstab que está no diretório /tmp/turno, para montar. Qual o comando utilizado? 8. Apague o diretório /tmp/turno. Qual o comando utilizado? 9. Para que são utilizados os comandos de terminal? Página 116 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 117 www.cliqueapostilas.com.br Curso Técnico em Informática ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Página 118 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 6.2. GEREnCIAMEntO DE PERMISSõES Caro Aluno, No tópico anterior estudamos uma série de comandos para utilização do Linux. Vários destes se destinam ao gerenciamento e manipulação de arquivos. Entretanto, como o Linux foi concebido para utilização por diversos usuários num ambiente de multiprogramação e utilizando dispositivos de armazenamento comuns, existe uma preocupação maior em proteger os dados de cada usuário e de um grupo de usuários. A palavra “permissões” pode ser entendida neste contexto como direitos que um usuário ou seu grupo têm de acessar dispositivos e arquivos. Este controle é feito basicamente através de dois comandos – chmod e chown –, porém alguns conceitos terão de ser explanados antes, para o seu perfeito entendimento. Bom estudo! 6.2.1 - IntRODuçÃO Ao longo de nossa vida vamos criando vários arquivos: desde a primeira carta digitada, cada e-mail passado, cada planilha calculada, etc., todos são arquivos que precisamos guardar. Imagine a mesma situação para uma empresa que atende milhares de clientes – quantos pedidos, cartas, e-mails,notasiscaisefaturasouaindaumórgãodogovernoqueatende milhares de usuários dos serviços públicos ou de contribuintes. O número de documentos ou papéis a guardar, manusear e consultar pode assumir proporções imensas, na casa dos milhões e até bilhões. Você já deve ter mandado o seu programa fazer uma varredura completa em sua máquina. tente observar, na próxima vez, a quantidade de arquivos que o antivírus reporta que examinou. Mesmo que sua máquina não tenha muita coisa instalada, este número facilmente ultrapassa os 50.000. Imagine num ambiente com vários usuários e várias aplicações rodando concorrentemente. É necessário haver alguma organização no arquivamento destes documentos, caso contrário não há como localizar uma determinada informação no meio deste caos. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 119 www.cliqueapostilas.com.br Curso Técnico em Informática Já vimos que cada coisa que precisamos manter no computador é ou se transforma em um arquivo; que cada tipo de arquivo é manipulado por umprogramaespecíicoeque,geralmente,aextensãoouterminação do arquivo indica o seu tipo e qual programa o manipula. Os arquivos no Linux, assim como no Windows, estão localizados dentro de um drive; por sua vez cada drive está dividido em diretórios. um diretório é basicamente uma caixa que pode conter arquivos ou outros diretórios. Os diretórios estão localizados em uma rígida estrutura que costumamos chamar de “árvore” (ver o comando tree no item 6.1.5). O diretório de nível mais alto é chamado de “raiz” e é representado por uma / (barra inclinada à direita); no Windows, a barra é inclinada à esquerda. Dois arquivos, se estiverem no mesmo diretório, podem ter nomes iguais, desde que tenham extensões diferentes. Se estiverem em diretórios diferentes, os arquivos podem ter nomes e extensões iguais; com isto, você pode ter várias cópias do mesmo arquivo em vários lugares do mesmo computador. Dois diretórios também podem ter nomes iguais, desde que estejam contidos em diretórios-pai diferentes. Ou seja: dentro do mesmo diretório não se pode ter dois diretórios com o mesmo nome, nem arquivos com mesmo nome e extensão. Para permitir o gerenciamento desses diretórios e seus arquivos, o Linux fornece algumas facilidades de proteção, organizando um nível de privilégios ou permissões. O gerenciamento de privilégios permite aoadministradordosistemadeinirpolíticasparaacessodosusuáriose grupos aos arquivos, diretórios e programas executáveis do sistema. 6.2.2 - Permissões de arquivos O esquema de permissões de acesso do Linux protege os arquivos do acesso indevido de pessoas ou programas não autorizados. Impede, por exemplo, que um programa mal intencionado, por exemplo, apague um arquivo que não deve, envie arquivos para outra pessoa ou forneça acesso da rede para que outros usuários invadam o sistema. também pode impedir que usuários iniciantes (ou mal intencionados) instalem programas enviados por terceiros sem saber para que eles realmente servem e causem danos irreversíveis a seus arquivos, seu micro ou sua empresa. todo arquivo pertence somente a um dono e a um grupo. Estes dois parâmetros (dono do arquivo e grupo ao qual o arquivo pertence) determinam as permissões do arquivo: quem poderá acessá-lo e quais operações poderá fazer com o arquivo. Estas proteções são organizadas em três classes de privilégios: do dono, do grupo e dos outros. Cada classe pode ter três níveis básicos depermissões:paraleitura,paraescritaeparaexecução.Aigura46 mostra o esquema básico (os símbolos r w – serão explicados um pouco mais à frente. Página 120 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Dono Grupo do Dono Outros rw- r-- r-- figura 46: esquema básico de permissões. Quando um arquivo é criado, recebe certos valores de propriedade, como o uID do dono (normalmente o criador do arquivo), o GID do grupo (o grupo a que o dono pertence) e outros valores de permissão derivados da umask do dono. uID = número de identificação do usuário, user identiication. GID = número de identificação do grupo, group identiication. Os números de ID variam entre 0 e 65535 (intervalo padrão tanto no Linux quanto no Windows – 216). Quando igual a 0 o usuário possui todas as permissões (superusuário root); quanto maior o número, menor o nível de permissões. As permissões entre 0 e 100 são de usuários do sistema. umask ou user mask Quando o usuário cria um arquivo ou diretório, o sistema associa ao objeto criado um conjunto de permissões de acesso. Estas permissões indicam quem pode ler, alterar e/ou executar (acessar) o arquivo (diretório). Estesvaloresumasksãodeinidosgeralmentenoarquivo /etc/proilecomosseguintesvalores: • Paraosuperusuário:#umask022, • Paraosdemaisusuáriosdosistema:#umask002. Por padrão, as permissões iniciais são: • paraumarquivo:666(leituraegravaçãoparatodoequalquer usuário do sistema); • paraumdiretório:777(leitura,gravaçãoeacessoparatodoe qualquer usuário do sistema). Quando um usuário cria um arquivo ou diretório, o sistema associa a este arquivo ou diretório as permissões padrão menos o valor da umask.Paraveriicaraconiguraçãoatualdeumask,bastadigitarna linha de comando umask. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 121 www.cliqueapostilas.com.br Curso Técnico em Informática A umask funciona retirando permissões. Por exemplo, para o superusuário: a permissão padrão do sistema é 666; a umask padrão é022;assimapermissãoinalserá664(666–022=644).Nocaso dos usuários comuns do sistema, todo arquivo iniciará sua vida com permissão 664 (666 – 002 = 664). 6.2.3 - Listando o conjunto de permissões dos arquivos utilizando o comando ls com opção –la podemos ver o esquema de permissões dos arquivos daquele diretório. Por exemplo, utilizando “ls –la” no nosso diretório root, poderemos ter como resposta: Exemplo: $ ls - la drwxr-x--- 8 root root 1024 Aug 22 08:26 . drwxr-xr-x 18 root root 1024 Aug 22 09:33 .. drwx------ 1 -rwxr--r-- 1 root root 1156 Jun 30 18:12 sofice -rw------- 1 root root 3987 Aug 22 09:33 arq1.doc -rw-r--r-- 1 root root 24 Jul -rw-r--r-- 1 root root 238 Aug 23 10:42 arq3.doc -rw-r--r-- 1 root root 176 Aug 23 12:10 arq4.doc root root 115 Aug 22 07:45 tmp 13 11:31 arq2.doc As permissões são mostradas na primeira coluna como uma série de dezcaracteres(traçosouletras)comoseguintesigniicado: • oprimeirocaractereindicaotipodearquivo(verigura49), • osnovecaracteresseguintesrepresentamaschavesdepermissão. As três primeiras chaves aplicam-se ao proprietário do arquivo, as três seguintes aplicam-se ao grupo ao qual pertence o arquivo e as três últimas aos outros usuários. Cada grupo de três chaves contém uma chave de leitura – r, uma de escrita – w e uma de execução – x, nesta ordem. Quando aparece uma letra (r, w ou x) aquela permissão é concedida; quando aparece um traço –, a permissão é negada. Aindanocomandols,o.(ponto)queaparecenaúltimacolunasigniica o diretório atual; o.. (ponto ponto) indica o diretório pai do atual. Estes diretórios são mostrados nas duas primeiras linhas da saída deste comando. Página 122 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais na primeira linha do nosso exemplo temos (para o diretório atual): drwxr-x-- comoseguintesigniicado: • éumdiretório(caractered), • odonotemtodososdireitos(rwx:ler,gravareexecutar), • ogrupotemosdireitosr-x(somentelereexecutar), • osoutrosusuáriostemosdireitos--(nãopodemnada). na terceira linha do nosso exemplo temos (para o diretório tmp): drwx----- comoseguintesigniicado: • éumdiretório(caractered), • odonotemtodososdireitos(rwx:ler,gravareexecutar), • ogrupotemosdireitos--(nãopodenada), • osoutrosusuáriostemosdireitos--(nãopodemnada). na sexta linha do nosso exemplo temos (para o arquivo arq2.doc): -rw-r--r- comoseguintesigniicado: • éumarquivo(caractere-), • odonotemosdireitos(rw-:leregravar;nãopodeexecutar), • ogrupotemosdireitosr--(somenteler), • osoutrosusuáriostemosdireitosr--(somenteler). Aigura47mostraosigniicadodoscódigosrwxparaosarquivosea igura48mostraosigniicadodosmesmoscódigosparaosdiretórios. Observe que, embora sejam as mesmas letras, têm um signiicado diferente para os diretórios. Observe também que, para os arquivos a permissão x (executar) só tem sentido para arquivos que tenham instruções (programas e scripts). Permissão Descrição r Leitura (copiar, imprimir, visualizar). w Escrita(mover,apagar,modiicar). x Execução (programas e scripts). - Sem permissão. figura 47: signiicados dos códigos rwx para os arquivos. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 123 www.cliqueapostilas.com.br Curso Técnico em Informática Scripts: são arquivos que contêm uma série de comandos shell (destes que estamos estudando). Por exemplo, você poderia gravar o arquivo script1 com os seguintes comandos: cd /usr/curso rm trabalho1.doc mv trabalho2.doc trabalho1.doc ls –la Ao executar este arquivo na linha de comandos, todos estes comandos seriam executados de uma vez: você se deslocaria para o diretório /usr/curso, apagaria o arquivo trabalho1.doc, trocaria o nome de trabalho2.doc para trabalho1.doc e mostraria todo o conteúdo do diretório /usr/curso (para você conferir que existe um arquivo trabalho1.doc e que o trabalho2.doc foi eliminado). Permissão Descrição r Permite que você liste o conteúdo do diretório (aceita o comando ls). w Permite que você crie, altere, apague arquivos no diretório. x Permite que você efetue buscas no diretório; aceita o comando cd. - Sem permissão para o diretório. figura 48: signiicados dos códigos rwx para os arquivos. Como já dissemos, na saída do comando ls, o primeiro caractere da primeira colunaindicaotipodearquivomostradonaquelalinha.Aigura49mostra osigniicadodoscódigosquepodemaparecernestaposição. Tipo de arquivo Descrição - arquivos comuns (texto ou executáveis) d diretórios l links simbólicos c dispositivos de caractere (exemplo: impressoras) b dispositivos de bloco (exemplo: discos) s soquetes = pipes figura 49: signiicados dos códigos de tipo de arquivo (primeira posição). Página 124 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Aigura50mostraasaídadeumcomandols.Amaioriadaslinhasmostradas se refere a diretórios. temos, entretanto, dois links (letra l na primeira posição): para o dispositivo de cd e para um arquivo de imagem. figura 50: comando ls mostrando o esquema de permissões. 6.2.4 - Comandos de gerenciamento de permissões Os comandos chmod, chown, chgrp e umask permitem alterar o esquema de permissões para os arquivos e diretórios. chmod: sintaxe: altera permissões de acesso a arquivos e diretórios. chmod [opções]<modo_arquivo> <arquivo> Opções Descrição -c mostrainformaçõessobreosarquivosmodiicados -f não imprime mensagens de erro -R recursivo. Muda o modo de acesso de todos os arquivos esubdiretóriosabaixo doespeciicado -v descreve detalhadamente as alterações de atributos O <modo_arquivo>, abordado na sintaxe, pode ser simbólico ou absolutoetemoseguintesigniicado. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 125 www.cliqueapostilas.com.br Curso Técnico em Informática • Modo simbólico Éumalistadeexpressõesnaforma<identiicador><operando> <valor> separadas por vírgula. Identiicador: u usuário g grupo o outros a todos Operando: + adiciona permissão às permissões existentes - retira permissão das permissões existentes = assinala explicitamente uma permissão (anulando as outras) Valor: r permissão para leitura w permissão para escrita Página 126 x permissão para execução s bit setuid se atribuído a u (usuário), bit setgid se atribuído a g (grupo) t bit sticky • Modo absoluto Édeinidonaforma <atributo_especial><dono><grupo><outros> Identiicaçãodosatributosespeciais(oatributoespecialé opcional): 0 nenhum atributo especial ligado 1 bit sticky ligado 2 bit setgid ligado 3 bits sticky e setgid ligados 4 bit setuid ligado 5 bits sticky e setuid ligados 6 bits setuid e setgid ligados 7 bits setuid, setgid e sticky ligados Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Para o <dono>, <grupo> e <outros>, podem ser usados os seguintes códigos: 0 nenhuma permissão 1 permissão para execução 2 permissão para escrita 3 permissão para execução e escrita 4 permissãopara leitura 5 permissão para execução e leitura 6 permissão para leitura e escrita 7 permissão para leitura, escrita e execução Exemplos: $ chmod u+x script adiciona permissão de execução pelo dono ao arquivo script. $ chmod u+wx, g-w, o=r script adiciona permissão de execução e escrita para o dono, retira permissão de escrita para o grupo e, para os outros usuários, permite apenas leitura. $chmod 750 teste permite leitura, escrita e execução para o dono (7), leitura e execução para o grupo (5) e nenhuma permissão aos outros no arquivo teste (0). $chmod 1777 /home/samba/share liga o bit sticky do diretório e dá permissão para leitura, escrita e execução para todos os usuários. Aigura51executaocomandodoexemplo:chmod750testeemmodo absoluto, que permite leitura, escrita e execução para o dono, leitura e execução para o grupo e nenhuma permissão aos outros, no arquivo teste. Como não foi usada a opção –c, nada é mostrado como resultado do comando. figura 51: comando chmod alterando permissões em modo absoluto Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 127 www.cliqueapostilas.com.br Curso Técnico em Informática Aigura52executaocomando:chmodu+xscriptemmodorelativo, que adiciona permissão de escrita e execução ao dono; para o arquivo script. Como não foi usada a opção –c, nada é mostrado como resultado do comando. figura 52: comando chmod alterando permissões em modo relativo. muda o dono de um arquivo chown: sintaxe: Opção -c -f -R -v chown [opções]<novo_dono[.novo_grupo]><arquivo> Descrição exibeinformaçõessobreosarquivosmodiicados não imprime mensagens de erro recursivo. Muda o grupo de todos os arquivos e subdiretóriosabaixodoespeciicado descreve detalhadamente as alterações de atributos Exemplos:$chownmariamonograia.docsó muda o proprietário $chownmaria.tesesmonograia.docmuda o proprietário e o grupo Aigura53mostraamudançadodonoedogrupoparaoarquivoscript. figura 53: comando chown sendo utilizado com permissão de superusuário (root) através do comando sudo; novo dono é joao, o novo grupo é Informatica, para o arquivo script. Página 128 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais chgrp: sintaxe: Opção -c -f -R -v muda o grupo de um arquivo chgrp [opções]<novo_grupo><arquivo> Descrição exibeinformaçõessobreosarquivosmodiicados não imprime mensagens de erro recursivo. Muda o grupo de todos os arquivos e subdiretóriosabaixodoespeciicado descreve detalhadamente as alterações de atributos Exemplos: $ chgrp www index1.html Em nossos exemplos utilizamos os comandos chmod, chown e chgrp apenas para arquivos. Entretanto, é possível aplicá-los para diretórios. Além disto, as mudanças aplicadas em diretórios também podem ser aplicadas recursivamente, ou seja, podem alterar todos os arquivos e diretórios contidos no diretório e em seus subdiretórios. Para isto, basta usar os comandos com o parâmetro -R. Só quem pode mudar as permissões de um arquivo ou diretório é o seu dono ou o superusuário (root). ATIVIDADE 14 1. As permissões de arquivos são organizadas em três classes de privilégios, quais são essas classes? 2. Quais são os níveis de permissão que cada classe de privilégios possui? 3. Oquesigniicamosatributosl r w x r w - r - - de um arquivo chamado linux.txt? 4. Oquesigniicamosatributosdrwxr-x---para um arquivo? 5. Escreva o comando utilizado para mudar o dono e o grupo do arquivo linux.txt para: usuário linux e grupo linux? Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 129 www.cliqueapostilas.com.br Curso Técnico em Informática 6. Crie no /tmp um diretório de nome atalho. Qual o comando para criar um link simbólico do arquivo teste.txt com o nome atividades dentro do diretório que acabamos de criar? 7. Qual o comando usado para permitir a leitura do arquivo teste.txt por todos os usuários e de escrita para todo o grupo do dono do arquivo. 8. Escreva a linha de comando utilizada para mudar o dono do arquivo teste.txt para linux e o grupo para linux? 9. Quais são os comandos de gerenciamento de privilégios? Cite suas funções. 10. Oquesigniicamosatributosdrwxr-xr-x? 11. O que é a permissão padrão? ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Página 130 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 131 www.cliqueapostilas.com.br Curso Técnico em Informática 6.3. GEREnCIAMEntO DE uSuÁRIOS E GRuPOS Caro Aluno, Desde que fomos apresentados ao Linux vimos que ele se preocupa com o gerenciamento de vários usuários, pois foi para este ambiente que ele foi concebido. Também já falamos de grupos, pois é um conceito estreitamente ligado a usuários e permissões de arquivos. Neste tópico veremos quais os recursos que o Linux oferece para o gerenciamento de usuários e seus grupos, os mecanismos de controle do espaço em disco rígido que esses usuários podem ocupar. Bons estudos! 6.3.1 - Usuários e grupos no capítulo 5 vimos que um usuário é alguém que possui uma identificação única no sistema: nome e uID. Estas informações permitem ao Linux controlar o acesso ao sistema, garantindo a cada usuáriopermissõesdeacessoespecíicasaarquivos,diretórioseoutros recursos. Épossívelreunirusuárioscomalgumtipodeainidadeemgruposde usuários.Cadagrupotambémpossuiumaidentiicaçãoúnicanosistema: nome e GID. A existência destes grupos facilita aos administradores de sistema controlar o acesso aos recursos, pois as permissões podem ser dadas ao grupo, atendendo a todos os usuários que fazem parte daquele grupo. um usuário pode pertencer a mais de um grupo, compartilhando as permissões concedidas a todos os grupos nos quais está incluído. A maioria das distribuições Linux utiliza um sistema de grupo privado de usuários (uGP), tornando a administração muito mais simples. O sistema uGP não altera o padrão Linux, simplesmente oferece uma nova convenção no gerenciamento de grupos. toda vez que um usuário novo é criado, automaticamente é criado um novo grupo com o mesmo nome de usuário, do qual ele é o único membro. um usuário Linux possui as seguintes características: Login, Password, uID, GID, Comment, Home Directory Path e um Shell (ver tabela 6.1). um grupo Linux possui as seguintes características: name, Password, GID e a user List (ver tabela 6.2). Página 132 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais Item Login Password UID GID Comment Home Directory Path Shell Descrição nome do usuário, que deve ser único. Senha utilizada pelo usuário para obter acesso ao sistema. UserIdentiication–identiicaçãodousuário.Esse número é usado em conjunto com o nome do login para permitir o acesso do usuário ao sistema. GroupIdentiication–éonúmerodeidentiicação do grupo ao qual o usuário pertence. Descrição do usuário. Geralmente é o nome completo do usuário. Diretório default do usuário quando ele acessa o sistema. Aqui são guardados os seus arquivos de coniguraçãopessoal,bemcomoseusoutros arquivos pessoais. Geralmente é um Shell de comandos como o bash. Cada usuário pode ter um shell diferente. Tabela 1 – Dados que caracterizam um usuário Linux Item Descrição name nome do grupo, que deve ser único. Password um grupo pode ter uma senha para controlar o seu acesso. na maioria dos casos não é necessária, tendo em vista a existência da senha do usuário. GID GroupIdentiication–númerodeidentiicaçãodogrupo. user List É uma lista dos usuários que fazem parte do grupo. Tabela 2 – Dados que caracterizam um grupo Linux Para o gerenciamento de usuários e grupos o Linux utiliza uma série dearquivosdeconiguraçãolocalizadosnodiretório/etc: • Nos arquivos /etc/passwd e /etc/shadow encontramos as informações pertinentes aos usuários cadastrados nos sistema; • Noarquivo/etc/group estão guardadas as informações sobre os grupos existentes no sistema; • Osarquivos/etc/default/useradd e /etc/login.defs são utilizados pelo comando useradd na criação de usuários novos; • Odiretório/etc/skel contém os arquivos com o padrão utilizado na criação de um usuário. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 133 www.cliqueapostilas.com.br Curso Técnico em Informática 6.3.2 - Comandos de gerenciamento de usuários. nesta seção estão descritas a sintaxe e a função dos principais comandos utilizados no gerenciamento de usuários do sistema Linux. Existem comandos para criar, excluir e alterar (ou apenas mostrar) características dos usuários. useradd ou adduser: adiciona usuários ao sistema. sintaxe: useradd <usuário> [opções] adduser <usuário> [opções] Opção -d <dir_home> -c <cometário> -g <grupo> -G <grupos> -s <programa> Descrição diretório home do usuário que está sendo criado. comentário. grupo ao qual o usuário pertence. grupos extras dos quais o usuário será membro. programa que o usuário utilizará ao entrar no sistema (normalmente um Shell). -e<mm/dd/aa> especiicaadatanaqualacontaserádesabilitada. -f <numdias> indica quantos dias após a expiração da senha a conta será desabilitada. Exemplos: #adduser unix cria um novo usuário de nome unix. #useradd linux cria um novo usuário de nome linux. #adduser linus -d /home/linus -c “Linus torvalds” –g gnu -s /bin/bash cria um novo usuário de nome linus; deine o diretório default em /home/linus; cadastra o seu nome como comentário; deine o seu grupo –gnu; deine o seu shell de comandos. Aigura54mostraacriaçãodousuáriorodrigo por um outro usuário comum (por isto o comando useradd é utilizado com permissão de superusuário através do comando sudo). A opção –d ou -m cria o diretório do novo usuário /home/rodrigo. figura 54: criação do usuário rodrigo por outro usuário, deinindo seu diretório de trabalho. Página 134 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais chage: sintaxe: Opção -l muda informações de expiração de senha de um usuário. chage <usuário> [opções] Descrição exibe informações de expiração de senha de um usuário -M < numdias > número máximo de dias até que a senha expire -m < numdias > número mínimo de dias entre alterações de senha. O valor zero indica que o usuário pode alterar sua senha a qualquer momento. -d < mm/dd/aa > data da última alteração da senha -l < numdias > número de dias entre a expiração da senha e o bloqueio da conta do usuário. -E <mm/dd/aa> data de expiração da conta do usuário. -W <numdias> indica o número de dias anteriores à expiração dasenhaqueousuáriodevesernotiicado. Exemplo: # chage maria -l mostra quando expirará a senha do usuário maria. A igura 55 mostra o comando chage (utilizado com permissão de superusuário – sudo) exibindo informações de expiração de senha (opcao –l) do usuário rodrigo. figura 55: comando chage exibindo informações de expiração de senha do usuário rodrigo. passwd: sintaxe: deineumasenhaparaumusuário. passwd <usuário> Exemplo: #passwd linus deine linus como a senha para o usuário atual Aigura56mostraasenhadousuáriorodrigo sendo trocada por outro usuário com permissões de superusuário. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 135 www.cliqueapostilas.com.br Curso Técnico em Informática figura 56: comando passwd mudando a senha do usuário rodrigo. Como já dissemos, as informações dos usuários cadastrados icam no arquivo /etc/passwd. Há uma entrada para cada usuário com o seu login, uID, GID, o diretório home e o shell usado. Exemplo: joao:x:1001:1001:,,,:/home/joao:/bin/bash Inicialmente as senhas eram salvas no próprio arquivo / etc/passwd, o que permitia abertura para diversos tipos de ataque. A partir de 1996 todas as distribuições passaram a utilizar o shadow, encriptando as senhas em um arquivo separado, o /etc/shadow. Dentro deste arquivo você verá as entradas contendo a senha encriptada. Exemplo: joao:$1$LpQPRMC5$eHXLjiW7ks80LQcepW0Rz.: 13993:0:99999:7::: usermod:modiicacaracterísticasdeumusuário. sintaxe: usermod <opções> <usuário> Opção Descrição -c <comentário> novo comentário. -d <dir_home> novo diretório home do usuário que está sendo modiicado. -s <programa> novo programa que o usuário utilizará ao entrar no sistema (normalmente um Shell). -l <novo_login> novo login do usuário. -g <novo_grupo> novo grupo. -G <novos_grupos> grupos extras dos quais o usuário será membro. Página 136 -e<mm/dd/aa> especiicaadatanaqualacontaserádesabilitada. -f <numdias> indica quantos dias após a expiração da senha a conta será desabilitada. -u <novo_uID> novo uID. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais -L insere um caracter “l” na frente da senha criptografada, desabilitando a senha do usuário. remove o caracter “l” da senha criptografada, habilitando a senha do usuário. -u Exemplos: #usermod -l linust linus atribui ao atual usuário linus um novo login, linust. #usermod -c “criador do Linux” linus acrescenta um comentário ao usuário com login linus Observe que algumas opções são as mesmas utilizadas no comando useradd.A igura 57 mostra o usuário rodrigo sendo inserido no grupo alunos por um outro usuário com permissão de superusuário pelo comando sudo. figura 57: Comando usermod alterando o grupo do usuário rodrigo. userdel: sintaxe: Opção -r elimina um usuário do sistema. userdel <opção> <usuário> Descrição remove todos os arquivos do usuário, incluindo seu diretório home. Exemplo: #userdel -r linust elimina o usuário linust. inger: exibe informações sobre usuários locais ou remotos. sintaxe: inger[opções][usuário] Opção -l -s Descrição saída em formato detalhado saída em formato simples Exemplos: $ingerrootexibe informações sobre o usuário root [email protected] exibe informações sobre um usuário remoto Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 137 www.cliqueapostilas.com.br Curso Técnico em Informática id: sintaxe: Opção -u -g exibeidentiicadordousuário. id [opções] Descrição exibeapenasoidentiicadorefetivodousuário exibeapenasoidentiicadordegrupoefetivodousuário Exemplos: $ id $ id -u chfn: sintaxe: muda as informações de um usuário. chfn [opções] [usuário] Opção -f<nome> -r<sala> -w<telefone> -h<telefone> Descrição especiicaonomecompletodousuário especiicaalocalizaçãodousuário especiicaotelefonedetrabalhodousuário especiicaotelefonederesidênciadousuário Exemplo: # chfn -f “Linus torvalds” linus cadastra um nome para o usuário linus. 6.3.3 - Comandos de gerenciamento de grupos Como já dissemos, os grupos existem para facilitar ao administrador do sistema incluir e retirar direitos de um conjunto de usuários de uma vez; todos os usuários pertencentes a um grupo gozam das permissões concedidas a ele. também já vimos que, durante a criação de um usuário será criado um grupo com o mesmo nome do usuário. neste tópico vamos examinar os comandos que permitem o gerenciamento dos grupos. É preciso tomar cuidado com as permissões de acesso aos recursos do sistema dadas a grupos. Quando um grupo é criado, os usuários nele incluídos passam a ter os mesmos direitos de acesso atribuídos ao grupo. Você já viu, pelos exemplos do tópico 6.2 anterior, que é possível dar direitos ao grupo e negá-los a um usuário e vice-versa. Assim, ao conceder permissões para um grupo, observe se elas podem ser estendidas a todos os usuários que o compõem. Página 138 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais groupadd: adiciona grupos ao sistema. sintaxe: groupadd <grupo> [opções] Opção Descrição -g <GID> número do grupo -r adiciona uma “conta do sistema”, ou seja, uma conta especial do sistema Exemplos: # groupadd laboratorio cria um grupo de nome laboratorio # groupadd sistemas -g $10 cria um grupo de nome sistemas e lhe atribui o valor de GID $10 A igura 58 mostra a criação do grupo Informatica por um usuário com poderes de root. figura 58: comando groupadd, utilizado com permissão de superusuário, cria o grupo Informatica. gpasswd: sintaxe: Opção deine senha para um grupo e permite outras funções de administração de usuários e grupos. gpasswd [opções] [usuário] <grupo> Descrição -a adiciona usuário ao grupo. -d exclui usuário do grupo. -r remove senha do grupo. -A deineadministradordogrupo. -M deinemembrosdogrupo. -R desabilita o acesso ao grupo pelo comando newgrp (mostrado adiante). Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 139 www.cliqueapostilas.com.br Curso Técnico em Informática Exemplos: # useradd mariana cria um novo usuario mariana. # passwd mariana atribui uma senha (a ser digitada) ao usuário mariana. # gpasswd laboratorio deine senha do grupo laboratorio. # gpasswd -a mariana laboratorio adiciona o usuário mariana ao grupo laboratorio. # gpasswd –d mariana laboratorio exclui o usuário mariana do grupo laboratório. # gpasswd –r laboratorio remove senha do grupo laboratorio. A atribuição de senhas para grupos não funciona em algumas distribuições Linux. neste caso, o comando gpasswd é usado para incluir ou excluir usuários em um determinado grupo, através das opções –a e –d. groupmod: modiicaascaracterísticasdeumgrupo. sintaxe: groupmod <opções> <grupo> Opção Descrição -g <novo_GID> atribui novo GID -n <nome_grupo> altera o nome do grupo Exemplos: # groupmod -g 1000 sistemas atribui o GID 1000 ao grupo sistemas. # groupmod -n microondas laboratorio altera o nome do grupo de laboratório para microondas groupdel: remove um grupo do sistema. sintaxe: groupdel <grupo> Exemplo: Página 140 # groupdel sistemas elimina o grupo sistemas. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais groups: exibe os grupos de um usuário. Se nenhum usuário for especiicado,mostraráinformaçõessobreousuárioque executou o comando sintaxe: groups [usuário] Exemplo: $ groups exibe os grupos dos quais o usuário corrente participa. $ groups root exibe os grupos dos quais o usuário root participa. A igura 59 exibe os grupos a que o usuário rodrigo possui acesso: alunos e Informatica. figura 59: comando groups, utilizado com permissão de superusuário, exibe os grupos a que o usuário Rodrigo possui acesso: alunos e Informatica. newgrp: sintaxe: trocadegrupo.Seonovogruponãoforespeciicado, o novo grupo será o grupo de login do usuário. newgrp [novo_grupo] Exemplos: $ newgrp laboratorio o usuário atual muda para o grupo laboratório. $ exit o usuário atual retornará ao seu grupo de origem. 6.3.4 - Outros comandos relacionados a usuários e grupos users: exibe os usuários ativos do sistema. sintaxe: users Exemplo: $ users Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 141 www.cliqueapostilas.com.br Curso Técnico em Informática Aigura60mostraousodocomandousers:estãologadososusuários aluno e rodrigo. figura 60: uso do comando users. w: exibe os usuários conectados ao sistema e o que estão fazendo. sintaxe: w [opções] Opção Descrição -h não mostra o cabeçalho na saída. -l saída formato detalhado. -s saída formato simples. Exemplo: who: sintaxe: Opção -m -q $w exibe quem está utilizando os terminais who [opções] Descrição o mesmo que whoami (mostrado adiante). mostra todos os usuários e o número (quantidade) de usuários logados. Exemplos: $ who mostra todos os usuários logados. $ who -q mostra todos os usuários logados e a sua quantidade total whoami: Página 142 mostra o uID do usuário. sintaxe: whoami Exemplo: $ whoami mostra o id efetivo do usuário. Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais O comando sudo a seguir permite a um usuário comum executar comandos privativos do administrador do sistema, como já utilizamos em vários exemplos deste capítulo. Entretanto, o usuário comum só pode executar os comandos que lhe foram permitidos através do arquivo deconiguraçãodosudo, que é o /etc/sudoers. Este arquivo é editado pelo comando visudo.. sudo: executa comandos como superusuário. sintaxe: sudo [opções] [comando] Opção Descrição -l lista os comandos permitidos e proibidos para o usuário. -h exibe mensagem de ajuda. Exemplos: $ sudo –l – lista os comandos permitidos e proibidos para o usuário. $ sudo -h – lista a ajuda do comando 6.3.5 - Exemplos • Criando um usuário com o poder do root • Crieousuário: # useradd alexandre – cria o usuário alexandre # passwd alexandre – atribui uma senha a ser digitada a alexandre • Editeoarquivo/etc/passwdcomumeditordetextoemodiique o uID e o GID do usuário alexandre para 0. Com esta alteração, o usuário alexandre terá as permissões do root: o uID 0 é do usuário root e o GID 0 é do grupo root. alexandre: x: 501: 501::/home/alexandre:/bin/bash – linha atual do arquivo alexandre: x: 0:0::/home/alexandre:/bin/bash – linha nova do arquivo • Congelando (suspendendo) um usuário • Editeoarquivo/etc/passwd com um editor de texto e comente a linha referente ao usuário a ser congelado. Ao inserir o caracter Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 143 www.cliqueapostilas.com.br Curso Técnico em Informática # antes da linha correspondente ao usuário, este não poderá se logar até que o caracter seja removido. alexandre: x: 501: 501::/home/alexandre:/bin/bash – linha atual do arquivo # alexandre: x: 501: 501::/home/alexandre:/bin/bash – linha nova do arquivo • Removendo um usuário manualmente • Editeoarquivo/etc/passwd com um editor de texto comum e apague a linha referente ao usuário a ser removido. • Editeoetc/group com um editor de texto comum e apague as linhas referentes ao usuário a ser removido. • Editeoetc/shadow com um editor de texto comum e apague as linhas referentes ao usuário a ser removido. • Removaodiretóriohomedousuário(seexistir). Para concluir o aprendizado, abra uma sessão do Linux no seu computador e caso ela seja iniciada na interface gráica, abra um terminal e exercite os comandos que você estudou neste capítulo. Na atividade a seguir, além de questões teóricas, você também encontrará um roteiro para exercitar os comandos. Bom estudo! ATIVIDADE 15 1. Relacione as colunas: A - login ( ) usuários que fazem parte do grupo. B - password ( ) local onde o usuário será posicionado ao entrar no Linux. C - user list ( ) nome associado ao usuário dentro do sistema. D - home directory ( ) senha de acesso ao Linux. Página 144 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais 2. Observe os dados listados nas tabelas 1 e 2 e descreva a diferença existente entre o que representa o GID na informação de um usuário e o GID na informação de um grupo. ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ 3. faça uma lista dos comandos vistos neste capítulo descrevendoainalidadedecadaumdeles. ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 145 www.cliqueapostilas.com.br Curso Técnico em Informática 4. Abra uma sessão de terminal do Linux e complete o roteiro que segue: (para poder realizar esta sequência é preciso que você faça parte do grupo root ou adm – é preciso ter privilégios de administrador) A – Crie um novo usuário com o nome alunoxx (o xx deverá ser igual aos dois últimos caracteres do seu login), informando um uID, um diretório de trabalho e um shell. B – Adicione este usuário ao grupo user. C – Crie um grupo com o nome grupoxx (onde o xx deve ser o mesmo atribuído ao alunoxx). D – Adicione o usuário alunoxx ao grupo grupoxx. E– Modiiqueadatadeexpiraçãodasenhadoalunoxx para o próximo sábado. f – Modifique o comentário correspondente as informações do usuário alunoxx. G– Modiiqueologindealunoxxparaaxxluno. H – Liste o conteúdo do arquivo /etc/passwd e identiiquealinhacorrespondenteaousuáriocriado. I – utilize um editor de textos para editar o arquivo / etc/passwd e bloqueie o usuário criado. J – Execute o comando para exibir na tela do terminal as informações sobre o usuário criado. K – Exclua o usuário criado. L– Deinaumasenhaparaogrupogrupoxx. M – Exclua o grupo grupoxx. ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Página 146 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES www.cliqueapostilas.com.br Sistemas Operacionais ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES Página 147 www.cliqueapostilas.com.br Curso Técnico em Informática ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Referências DEItEL, H.M. Sistemas Operacionais, 3a edição. Editora Pearson Prentice Hall. São Paulo. 2005. GuiaOicialdoUbuntu.Disponívelemhttps://help.ubuntu.com MACHADO, francis Berenger. Arquitetura de Sistemas Operacionais. Editora LtC. Rio de Janeiro. 2007. SILBERSCHAtZ, A. & GAGnE, G. & GALVIn, P. B. fundamentos de Sistemas Operacionais. Editora LtC. Rio de Janeiro. 2004. tAnEnBAuM, A.S. Sistemas Operacionais Modernos. 2a edição. Editora Pearson Prentice Hall. São Paulo. 2009. Página 148 Ifes - Instituto Federal de Educação, Ciência e Tecnologia do ES