SISTEMAS OPERACIONAIS
Colatina - ES 2009
Governo Federal Ministrio da Educao Secretaria de Educao a Distncia Professora - Autora rika Lopes Vilela Equipe Tcnica Danielli Veiga Carneiro Reviso Antonio Jonas Pinotti Joo Henrique Caminhas Ferreira Projeto Grfico Equipe CEAD Diagramao Edson Maltez Heringer Juliana Cristina da Silva Crdito 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. Informtica. 3. Ensino distncia. 4. Ensino tcnico. I. Ttulo. CDD - 005.43
Caros alunos,
Bem-vindos ao Curso Tcnico de Informtica que o Instituto Federal de Educao, Cincia e Tecnologia do Esprito Santo (Ifes) lhes oferece, contando com a parceria das Prefeituras e do Governo Federal. Vocs esto de parabns por optarem pelo ensino a distncia, modalidade que est, a passos rpidos, incorporando-se nossa cultura. O avano acelerado das tecnologias de informao e de comunicao tem colocado as possibilidades de acesso ao conhecimento disposio de um contingente cada vez maior de pessoas interessadas em ampliar seu campo educacional. A velocidade com que os equipamentos na rea da informtica tm evoludo e o aprimoramento das conexes com a web tornaram o ensino a distncia uma proposta eficiente de se ensinar e de se aprender. Muitos de vocs j navegam pela rede, utilizando-se de e-mails, chats, blogs, pesquisa on-line e cursos dados por videoconferncia, tornando o ambiente virtual to familiar quanto era a sala de aula para os mais velhos. Este curso oferecer a vocs, alunos, material impresso e virtual de aprendizagem. Em ambos haver teoria e variadas atividades para fixao do conhecimento. Sucesso a todos!
Iconografia
Veja, abaixo, alguns smbolos utilizados neste material para gui-lo em seus estudos.
Fala do professor.
Atividades que devem ser elaboradas por voc, aps a leitura dos textos.
Sumrio
1.
VISO GERAL DE SISTEMAS OPERACIONAIS.............................................9 1.1. CONCEITOS BSICOS. ................................................................................9 1.2. funes Principais..............................................................................10 1.3. MQUINA DE NVEIS...............................................................................13 1.4. HISTRICO..................................................................................................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 - Memrias..........................................................................................28 2.1.3 - Dispositivos de entrada e sada.......................................................31 2.1.4 - Outros componentes e conceitos.....................................................33 2.2. SOFTWARE..................................................................................................34 2.2.1 - Conceito de software utilitrio........................................................35 2.2.2 - Software de apoio programao...................................................35 2.2.3 - Linguagem de controle....................................................................39 2.2.4 - Programas de sistema ou Utilitrios................................................40 2.2.5 - Linguagem de mquina. ...................................................................41 2.3. Concorrncia (interrupo e operaes de E/S).............44 2.3.1 - Introduo. ........................................................................................44 2.3.2 - Mecanismo de Interrupo..............................................................44 2.3.3 - Operaes de entrada e sada (E/S).................................................46 3. ESTRUTURA DO SISTEMA OPERACIONAL. .................................................51 3.1. SISTEMAS EM LOTE E MULTIPROGRAMAO................................52 3.1.1 - Sistemas em lote (batch)..................................................................52 3.1.2 - Escalonamento de tarefas e multiprogramao...............................53 3.1.3 - Sistemas de tempo compartilhado...................................................55 3.2. Servios 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 monolticos. .......................................................................64 3.4.2 - Sistemas em camadas. ......................................................................65 3.4.3 - Sistemas cliente-servidor (microkernels)........................................67 3.5. interpretador de comandos.......................................................70 4. INTRODUO GERNCIA DE PROCESSOS, MEMRIA E ARQUIVOS...................................................................................71 4.1. Gerncia de processos. ....................................................................71 4.2. Gerncia da memria principal..................................................74 4.3. Gerncia de arquivos.......................................................................76 4.4. Gerncia de dispositivos (de E/S ou I/O)..................................79 4.5. SISTEMA DE PROTEO.........................................................................82
5. INTRODUO AO SISTEMA OPERACIONAL LINUX.................................84 5.1. Caractersticas do LINUx..............................................................85 5.1.1 - Distribuies do Linux. ....................................................................85 5.1.2 - Organizao no Desenvolvimento do Linux...................................86 5.1.3 - Principais caractersticas do Kernel Linux......................................86 5.1.4 - Interfaces Disponveis......................................................................87 5.1.5 - O Linux e seus dispositivos.............................................................88 5.2. Instalando o GNU/Linux..................................................................88 5.2.1 - Requisitos de Hardware para Instalao.........................................89 5.2.2 - Particionando o disco rgido............................................................89 5.2.3 - Vantagens e Desvantagens dos esquemas de particionamento..........................................................90 5.3. Sistema de arquivos..........................................................................91 5.3.1 - Estrutura de diretrios......................................................................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 diretrios e arquivos..................................................96 6. UTILIZAO DO LINUX...................................................................................99 6.1. COMANDOS BSICOS E DE MANIPULAO DE ARQUIVOS......100 6.1.1 - Interface grfica. ............................................................................100 6.1.2 - Shell................................................................................................101 6.1.3 - Comandos de sesso e de terminal. ...............................................104 6.1.4 - Comandos de ajuda........................................................................106 6.1.5 - Comandos para diretrios..............................................................107 6.1.6 - Comandos para manipular arquivos..............................................110 6.2. GERENCIAMENTO DE PERMISSES..................................................119 6.2.1 - Introduo. ......................................................................................119 6.2.2 - Permisses de arquivos..................................................................120 6.2.3 - Listando o conjunto de permisses dos arquivos.........................122 6.2.4 - Comandos de gerenciamento de permisses.................................125 6.3. Gerenciamento de usurios e grupos..................................132 6.3.1 - Usurios e grupos. ..........................................................................132 6.3.2 - Comandos de gerenciamento de usurios.....................................134 6.3.3 - Comandos de gerenciamento de grupos. .......................................138 6.3.4 - Outros comandos relacionados a usurios e grupos.....................141 6.3.5 - Exemplos........................................................................................143 Referncias . .....................................................................................................148
Caro Aluno,
Meu nome rika Lopes Vilela, responsvel pela disciplina Sistemas Operacionais. Atuo como professora do Ifes, campus Colatina, desde 2001. Ministro aulas para o curso tcnico em informtica e tecnlogo em redes. Atualmente sou responsvel pelas disciplinas introduo 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 no funciona sem a presena do maestro. Ele d a harmonia ao conjunto. E a beleza da sinfonia vem dessa comunicao entre maestro e msicos. Nesta disciplina voc conhecer as responsabilidades do sistema operacional e ver que est intimamente ligado ao Hardware. importante que voc faa uma breve reviso dos conceitos abordados na disciplina Fundamentos de hardware, para melhor aproveitamento de nossa disciplina. A primeira parte do nosso contedo terica, j em um segundo momento iremos apresentar alguns exemplos prticos, como a instalao de um sistema GNU/Linux e o uso de comandos bsicos para a sua utilizao. Para ser bem sucedido neste curso, importante fazer os exerccios e estudar regularmente, evitando, dessa forma, o acmulo de tarefas. Fique atento aos prazos de sedimentao dos contedos e resoluo das atividades avaliativas, para que voc no se sobrecarregue nem perca o ritmo de estudo. Esperamos que voc aproveite o curso para enriquecer seus conhecimentos, seus horizontes e sua viso de Sistemas Operacionais! Bons estudos e sucesso em sua caminhada! Professora rika Lopes Vilela
Sistemas Operacionais
Pgina 9
Vamos estender este conceito ao longo do curso, mas simplificando, um sistema operacional um conjunto de rotinas executado pelo processador. Sua principal funo controlar o funcionamento do computador, gerenciando os diversos recursos disponveis no sistema. Na figura 1 vemos a posio que um Sistema Operacional ou simplesmente SO ocupa dentre os vrios elementos que compem um sistema de computao. Voc deve observar que a palavra Usurios est sendo usada com dois sentidos diferentes: para as pessoas que utilizam o computador e para os programas e utilitrios instalados no computador.
Pgina 10
Sistemas Operacionais
Facilidade de acesso aos recursos do sistema Um sistema de computao possui, normalmente, diversos componentes, como monitores, impressoras e discos rgidos. Quando utilizamos um desses dispositivos, no nos preocupamos com a maneira como realizada esta comunicao e os inmeros detalhes envolvidos. Uma operao frequente como, por exemplo, a leitura de um arquivo em um CD ou disco pode parecer simples. Na realidade, existe um conjunto de rotinas especficas, controladas pelo sistema operacional, responsveis por acionar a cabea de leitura e gravao da unidade de disco, posicionar na trilha e setor onde esto os dados, transferir os dados do disco para a memria e, finalmente, informar ao programa a chegada dos dados. Estes conceitos setor e trilha no sero aqui abordados. Voc poder pesquisar na apostila da disciplina Fundamentos de Hardware ou em outros livros. O sistema operacional, ento serve de interface entre o usurio e os recursos de hardware, tornando esta comunicao transparente (ou imperceptvel) e permitindo ao usurio um trabalho mais eficiente e com menores chances de erros. Este conceito de ambiente simulado, criado pelo sistema operacional, denominado mquina virtual (virtual machine) e est presente, de alguma forma, na maioria dos sistemas atuais. [Fonte: Machado e Maia, 2004. Adaptao. Captulo 1 Pginas 1 a 3] Compartilhamento de recursos de forma organizada e protegida Se imaginarmos, por exemplo, que uma impressora pode ser utilizada por vrios usurios do sistema, dever existir algum controle para impedir que a impresso de um usurio interrompa a impresso de outro. O sistema operacional o responsvel por permitir o acesso organizado a este e a outros recursos. O compartilhamento de recursos permite a diminuio de custos, na medida em que mais de um usurio pode utilizar as mesmas facilidades concorrentemente, tais como discos, impressoras, linhas de comunicao, etc. Com isto, uma mesma impressora (ou linha de comunicao ou outro recurso) pode atender a vrios usurios. No s no controle do acesso a hardware compartilhado que o sistema operacional atua, mas o computador nos permite executar vrias 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 execuo concorrente de todas essas tarefas. Ainda podemos dizer que, embora alguns programas sejam escritos baseados nas instrues de um determinado processador, ser responIfes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 11
sabilidade do sistema operacional executar tarefas bsicas do micro, ou seja, ensinar ao processador como desenhar uma janela ou imprimir um documento. De um modo geral, os programas que os usurios executam no so escritos para um processador, mas sim para um SO. Isto facilita a comunicao do programa com o hardware do computador. As tarefas so executadas pelo SO, tornando os programas menores e mais fceis de serem programados. [Fonte: Machado e Maia, 2004. Adaptao. Captulo 1 Pginas 1 a 3] Conforme mostra a figura 2, o SO o intermedirio entre hardware e programas utilizados pelos usurios.
Em uma situao ideal, somente o sistema operacional deve ter acesso ao hardware do computador. Um programa que desejasse, por exemplo, fazer um desenho no vdeo, 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 vlido, o executaria. Caso um determinado programa resolvesse fazer um pedido estranho, (por exemplo, apagar todos os dados do disco rgido), o SO simplesmente poderia ignorar tal pedido, terminar a execuo do programa e informar a ocorrncia ao usurio. Esta a condio ideal de um sistema operacional ESTVEL e SEGURO. Esta condio acontece, sobretudo, em sistemas operacionais para gerenciamento de rede local (Windows Server e o Unix e suas verses, como o Linux) e entre os sistemas operacionais para PCs que no foram desenvolvidos para serem servidores de rede como o MacOS e Windows nas suas verses XP e Vista. O antigo DOS no trabalhava nessas condies. Na poca em que foi criado, o PC tinha pouqussima memria RAM (1 MB) e o sistema operacional, como ficava residente em memria, tinha de ser o menor possvel. Uma soluo para diminuir o tamanho do SO foi permitir
Pgina 12
Sistemas Operacionais
aos programas que acessassem diretamente o hardware do micro para tarefas especiais, como desenhar grficos ou enviar dados impressora. A figura 3 ilustra isto.
Figura 3: O DOS permitia acesso direto ao hardware aos programas dos usurios
No entanto, isto acabava gerando um problema maior: se um programa fizesse um acesso indevido diretamente ao hardware do computador ou se o programa no estivesse bem escrito, isto inevitavelmente era refletido no hardware, fazendo com que o programa parasse por travamento. Este problema continuou em verses do Windows 3.x, 95, 98 e ME, por utilizarem o mesmo ncleo do DOS, permitindo acessos direto ao hardware. Nas conversas sobre informtica, frequentemente algum usa a expresso meu computador travou. Isto caracteriza uma situao que o SO no conseguiu resolver. Um caso tpico destes travamentos causado pela permisso de acesso direto ao hardware.
Pgina 13
Nos primeiros computadores, a programao era realizada em painis, atravs de fios, exigindo um grande conhecimento do hardware e de linguagem de mquina. Isso trazia uma grande dificuldade para os programadores da poca, que normalmente eram os prprios engenheiros projetistas e construtores destes computadores. A soluo para esse problema foi o surgimento do Sistema Operacional, que tornou a interao entre usurio e computador mais simples, confivel e eficiente. A partir desse acontecimento, no existia mais a necessidade de o programador se envolver com a complexidade do hardware para poder trabalhar; ou seja, a parte fsica do computador tornou-se transparente para o usurio. Podemos considerar o computador como uma mquina de nveis ou camadas, onde inicialmente existem dois nveis: o nvel 0 (hardware) e o nvel 1 (sistema operacional). Desta forma, o usurio pode enxergar a mquina como sendo apenas o sistema operacional, ou seja, como se o hardware no existisse. Esta viso modular e abstrata chamada mquina virtual. Para o sistema operacional, o programador e os programas tambm so usurios, pois usam recursos disponibilizados pelo SO. Em vrios pontos deste texto, voc poder ver que a palavra usurio se aplica a programador ou a programa. Na realidade, um computador no possui apenas dois nveis, e sim tantos nveis quantos forem necessrios para adequar o usurio s suas diversas aplicaes. Quando o usurio est trabalhando em um desses nveis, no necessita saber da existncia das outras camadas, acima ou abaixo de sua mquina virtual. Atualmente, a maioria dos computadores possui a estrutura mostrada na figura 4, podendo conter mais ou menos camadas. A linguagem utilizada em cada um desses nveis diferente, variando da mais elementar (baixo nvel) mais sofisticada (alto nvel). Os aplicativos so programas executados pelo usurio. Os utilitrios so programas de uso genrico e frequente, geralmente fornecidos junto com o SO. Cada um destes tpicos ser abordado mais detalhadamente nos prximos captulos.
Pgina 14
Sistemas Operacionais
Alto Nvel
Baixo Nvel
Um sistema operacional pode ento ser definido sob dois aspectos: como uma mquina estendida ou mquina virtual e como um gerenciador de recursos. O sistema operacional, como uma mquina virtual, esconde do programador detalhes do hardware, apresentando uma viso simples deste hardware, mais conveniente e mais fcil de utilizar. O sistema operacional, como um gerenciador de recursos, fornece uma alocao controlada e ordenada dos recursos do computador entre os vrios programas que competem por esses recursos. Os recursos incluem processadores, memrias, dispositivos de E/S (unidades de disco, impressoras, mouse, etc.), interfaces de rede, dentre outros. Quando um computador tem vrios usurios, existe a necessidade de se proteger a memria, os dispositivos de E/S e os outros recursos. O sistema operacional ento mantm informao sobre quem est usando qual recurso (para garantir os recursos a quem precisa deles), contabilizar o uso (para evitar que um usurio use por um perodo injustamente longo) e mediar quando h pedidos conflitantes sobre um mesmo recurso. Compare esta nova definio dada para SO como mquina de nveis com as principais funes abordadas no item 1.2. Voc acha que houve a incluso de novas funes para o SO ou apenas as mesmas funes foram explicadas de forma diferente?
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 15
ATIVIDADE 1 1. Diferencie software aplicativo de software utilitrio e cite dois exemplos de cada. 2. De acordo com os nossos estudos, cite as funes do Sistema Operacional. 3. O que voc entende por linguagem de mquina? 4. Explique o conceito Mquina de Nveis. 5. Diferencie linguagem de alto nvel de linguagem de baixo nvel. 6. O que mquina virtual? E quais as vantagens do modelo de mquina virtual? ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 16
Sistemas Operacionais
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
1.4. HISTRICO
Vimos que o sistema operacional interage diretamente com o hardware e, com isso, influenciado diretamente pela evoluo do mesmo. Portanto, a evoluo 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 histrico dos sistemas operacionais, estaremos recordando um pouco a evoluo do hardware. Devemos lembrar que as datas das fases da evoluo so 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 utilizao mais amigvel, precisa, rpida e eficaz. 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 usurio passou a interagir com pequenos desenhos ou smbolos de objetos comuns ao seu trabalho. Pensou-se em representar, por exemplo, a tarefa de impresso de documentos pelo desenho de uma pequena impressora e a eliminao de um documento por uma pequena lixeira. Surgiram os cones. O histrico da evoluo foi dividido em fases, cada uma marcada pela evoluo significativa do hardware, do software, da interao com o sistema ou por aspectos de conectividade.
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 17
Primeira Fase (1945-1955) Vlvulas e Painis de Programao No incio da Segunda Guerra Mundial, surgiram os primeiros computadores digitais, formados por milhares de vlvulas, que ocupavam reas enormes, sendo de funcionamento lento e duvidoso. Na matria Fundamentos de Hardware voc foi apresentado ao ENIAC (Electronic Numerical Integrator and Computer) o primeiro computador digital de propsito geral. Criado para a realizao de clculos balsticos, sua estrutura possua 17.468 vlvulas, 10 mil capacitores, 70 mil resistores e pesava 32 toneladas. Quando em operao era capaz de realizar 5 mil adies por segundo. A programao era feita em painis, atravs de fios, utilizando linguagem de mquina. No existia o conceito de sistema operacional. Outros computadores foram construdos nessa poca, mas eram utilizados apenas em universidades e rgos militares. Muitas empresas foram fundadas ou investiram no setor, como, por exemplo, a IBM, o que levou criao dos primeiros computadores para aplicaes comerciais. Aproveite: releia e compare o histrico da evoluo dos computadores que voc estudou na matria Fundamentos de Hardware. Lembre-se que o nosso conhecimento cumulativo e, quanto mais relacionamento voc fizer com outras matrias, mais fcil ser guardar este conhecimento. Segunda Fase (1956-1965) Transistores e Sistemas em Lote (batch) A criao do transistor e das memrias magnticas contribuiu para o enorme avano dos computadores da poca. O transistor permitiu o aumento da velocidade e da confiabilidade do processamento; as memrias magnticas permitiram o acesso mais rpido aos dados, maior capacidade de armazenamento e computadores menores. Surgiram os primeiros sistemas operacionais, para tentar automatizar as tarefas manuais at ento realizadas e as primeiras linguagens de programao, 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 cartes que, submetidos a uma leitora, eram processados e gravados em uma fita de entrada (acompanhe na figura 5). A fita de entrada, ento, era lida pelo computador, que executava um programa de cada vez, processando e gravando o resultado em uma fita de sada. Ao trmino de todos os Pgina 18
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Sistemas Operacionais
programas, as fitas de sada eram lidas e processadas novamente para serem impressas, gerando assim os relatrios.
Figura 5: Ciclos de processamento na segunda fase Fonte: Machado e Maia, 2004. Adaptao
Com o processamento em batch, um grupo de programas era submetido de uma s vez, o que diminua o tempo existente entre a execuo dos programas, permitindo, assim, melhor uso do computador. Os sistemas operacionais passaram a ter seu prprio conjunto de rotinas para operaes de entrada/sada, o que veio facilitar bastante o processo de programao. Essa facilidade de comunicao com os perifricos de entrada/sada criou um conceito de independncia de dispositivos. Terceira Fase (1966-1980) Circuitos Integrados e Multiprogramao Atravs dos circuitos integrados e, posteriormente, dos microprocessadores, foi possvel viabilizar e difundir o uso de sistemas computacionais por empresas, devido diminuio de seus custos de aquisio. Houve um aumento no poder de processamento e diminuio no tamanho dos equipamentos. A evoluo dos processadores de entrada/sada permitiu que, enquanto um programa esperasse por uma operao de leitura/gravao, o processador executasse um outro programa. Para tal, a memria foi
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 19
dividida em parties, onde cada programa esperava sua vez para ser processado. A essa tcnica de compartilhamento da memria principal e processador deu-se o nome de multiprogramao. Com a substituio das fitas por discos no processo de submisso dos programas, o processamento batch tornou-se mais eficiente, pois permitia a alterao na ordem de execuo das tarefas, at ento somente sequencial. A essa tcnica de submisso de programas chamou-se spooling, que, mais tarde, tambm viria a ser utilizada no processo de impresso. Os sistemas operacionais, mesmo com a evoluo do processamento batch e a multiprogramao, ainda estavam limitados a processamentos que no exigiam comunicao com o usurio. Para permitir a interao rpida entre o usurio e o computador, foram adicionados terminais de vdeo e teclado (interao on-line). A multiprogramao evoluiu, preocupada em oferecer aos usurios tempos de resposta razoveis e uma interface cada vez mais amigvel. Para tal, cada programa na memria utilizaria o processador em pequenos intervalos de tempo. A esse sistema de diviso de tempo do processador chamou-se time-sharing (tempo compartilhado). Outro fato importante nessa fase foi o surgimento do sistema operacional UNIX. Ao final desta fase, com a evoluo dos microprocessadores, surgiram os primeiros microcomputadores, muito mais baratos que qualquer um dos computadores at ento comercializados. Quarta Fase (1981-1990) Computadores Pessoais Os mini e superminicomputadores se firmaram no mercado e os microcomputadores ganharam um grande impulso. Surgem as estaes de trabalho (workstations) que, apesar de monousurias, permitem que se executem diversas tarefas concorrentemente, criando o conceito de multitarefa. No final dos anos 80 os computadores tiveram um grande avano, decorrente de aplicaes que exigiam um enorme volume de clculos. Para acelerar o processamento, foram adicionados outros processadores, exigindo dos sistemas operacionais novos mecanismos de controle e sincronismo. Com o multiprocessamento, foi possvel a execuo de mais de um programa simultaneamente, ou at de um mesmo programa por mais de um processador. Foram introduzidos processadores vetoriais e tcnicas de paralelismo de processamento, fazendo com que os computadores se tornassem ainda mais poderosos. O uso das redes distribudas se difundiu por todo o mundo, permitindo o acesso a outros sistemas de computao, independentemente de cidade, pas e, at mesmo, fabricante. Os softwares de rede passaram a estar intimamente relacionados com o sistema operacional de cada mquina e surgem os sistemas operacionais de rede. Pgina 20
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Sistemas Operacionais
Quinta Fase (1991-2000) Houve grandes avanos em termos de hardware , software e telecomunicaes como consequncia da evoluo das aplicaes, que necessitavam cada vez mais de capacidade de processamento e armazenamento de dados. Sistemas especialistas, sistemas multimdia, bancos de dados distribudos, inteligncia artificial e redes neurais so apenas alguns exemplos da necessidade cada vez maior de informao e de capacidade de processamento. O conceito de processamento distribudo explorado nos sistemas operacionais, de forma que suas funes estejam espalhadas por vrios processadores atravs de redes de computadores. A arquitetura cliente-servidor passa a ser oferecida em redes distribudas, permitindo que qualquer pessoa tenha acesso a todo tipo de informao, independentemente de onde esteja armazenada. A dcada de 90 foi definitiva para a consolidao dos sistemas operacionais baseados em interfaces grficas. [Fonte: Tanenbaum, Andrews S., 2000. Sistemas Operacionais Modernos. Adaptao. Captulo 1 - Pginas 4 a 12] ATIVIDADE 2 1. Agora vamos destacar os principais tpicos da evoluo dos sistemas operacionais de acordo com as fases. No quadro abaixo, cite duas caractersticas importantes da evoluo de hardware e software. Primeira Segunda Terceira Quarta Quinta Fase Fase Fase Fase Fase ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________
Pgina 21
Considerando o processamento, podemos classificar os sistemas operacionais de acordo com a quantidade de tarefas que podem ser executadas simultaneamente. Monoprogramveis ou Monotarefa: podem executar apenas um programa por vez. Para que um usurio possa executar outro programa, dever aguardar a finalizao do programa corrente. Esta era uma caracterstica dos primeiros sistemas operacionais que estavam relacionados ao surgimento dos primeiros computadores na dcada de 60. Sistemas monoprogramveis ou monotarefa so 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 conseqncia, sua principal desvantagem residia no fato de que enquanto um programa aguardava por um evento externo, como a digitao de um caracter do teclado, o processador permanecia ocioso. Alm disso, tanto a memria principal quanto os recursos de E/S como impressoras e discos eram subutilizados, uma vez que todos estariam dedicados a um nico programa como mostra a figura 7.
Pgina 22
Sistemas Operacionais
Multiprogramveis ou Multitarefa: os recursos computacionais so compartilhados entre os diversos usurios e suas aplicaes. Podemos observar o compartilhamento de memria e do processador. Nesse caso, o compartilhamento de tempo no processador distribudo. Assim, o usurio tem a impresso que vrios processos esto sendo executados simultaneamente. Um dos processos ocupa o processador enquanto os outros ficam enfileirados, aguardando a sua vez de entrar em execuo. Cabe ao Sistema Operacional o papel de gerenciar de forma ordenada e protegida o acesso concorrente aos recursos disponveis. Sistemas multiprogramveis ou multitarefa permitem o compartilhamento dos recursos computacionais entre diversos usurios e aplicaes, permitindo sua execuo concorrente. A vantagem desse tipo de sistema uma melhor utilizao dos recursos disponveis, o que resulta em menor tempo de resposta das aplicaes. Alm de um custo reduzido, uma vez que haver o compartilhamento dos recursos entre as diferentes aplicaes e aumento da produo do usurio. Graas aos sistemas multiprogramveis possvel editar um documento no word, navegar na internet, ouvir msica, utilizar os mensageiros instantneos (MSN), tudo ao mesmo tempo!
Pgina 23
Sistemas com Mltiplos 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 vrias partes e executado simultaneamente nos vrios processadores, aumentando o desempenho. Sistemas com mltiplos processadores caracterizam-se por possuir duas ou mais CPUs interligadas e trabalhando de forma conjunta na soluo de um problema. Esse tipo de sistema surgiu da necessidade de aplicaes que requeriam um grande poder computacional, como sistemas de previso do tempo, modelagens, simulaes, desenvolvimento aeroespacial, entre outros. Com mltiplos processadores, possvel reduzir drasticamente o tempo de processamento destas aplicaes. Inicialmente, as configuraes limitavam-se a poucos processadores, mas, atualmente existem sistemas com milhares de processadores.
Pgina 24
Sistemas Operacionais
Os sistemas com mltiplos processadores podem ser classificados em fortemente acoplados e fracamente acoplados, em funo da comunicao entre CPUs e o grau de compartilhamento da memria. Em sistemas fortemente acoplados, h uma nica memria principal compartilhada por todos os processadores, enquanto em sistemas fracamente acoplados cada sistema tem sua prpria memria. Com isso, a taxa de transferncia entre processadores em sistemas fortemente acoplados bem maior que em sistemas fracamente acoplados.
ATIVIDADE 3 1. Qual a grande diferena entre sistemas monoprogramveis e sistemas multiprogramveis? 2. Quais as vantagens dos sistemas multiprogramveis? ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 25
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 26
Sistemas Operacionais
2.1. HARDWARE
O hardware do computador constitudo por um conjunto de componentes interligados: processadores, memria principal, registradores, terminais, impressoras e discos magnticos, alm de outros dispositivos fsicos. Os componentes fsicos do computador so agrupados em trs subsistemas bsicos: Unidade Central de Processamento (CPU); Memria; Dispositivos de Entrada e Sada.
A Unidade de controle responsvel por controlar as atividades de todos os componentes do computador, mediante a emisso de pulsos eltricos (sinais de controle) gerados por um dispositivo chamado clock. Este controle pode ser exercido, por exemplo, sobre a gravao de um dado no disco ou a busca de uma instruo na memria.
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 27
A Unidade lgica e aritmtica responsvel pela realizao de operaes lgicas (testes e comparaes) e aritmticas (somas e subtraes). A velocidade de processamento de uma unidade central de processamento determinada pelo nmero de instrues que o processador executa por unidade de tempo, normalmente em segundos. A unidade de medida MIPS (milhes de instrues por segundo). Clock A transmisso 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 execuo das instrues. O clock um dispositivo localizado na unidade central de processamento, que gera pulsos eltricos sncronos em um determinado intervalo de tempo (sinal de clock). A quantidade de vezes que este pulso se repete em um segundo define a frequncia do clock. Toda transmisso paralela utiliza um sistema de clock. Esses sistemas de clock, entretanto, so independentes, isto , o sistema de clock usado na transmisso de dados entre o processador e a memria RAM no o mesmo usado na transmisso de dados entre o disco rgido e a placa-me, por exemplo.
2.1.2 - Memrias
A memria tem por funo armazenar internamente toda informao que manipulada pelo computador: os programas e os dados. A memria pode ser classificada quanto sua velocidade (ou tempo) de acesso, capacidade de armazenamento, custo e volatilidade. Em funo destas caractersticas, pode-se estabelecer uma hierarquia de tipos de memrias (figura 9): registradores; memria cache; memria principal; memria secundria.
Figura 9: Comparativo dos diversos tipos de memria Fonte: Machado e Maia, 2004.
Pgina 28
Sistemas Operacionais
Registradores So dispositivos de alta velocidade, localizados fisicamente na unidade central de processamento, para armazenamento temporrio de dados. O nmero de registradores varia em funo da arquitetura de cada processador. Existem registradores de uso especfico (com propsitos especiais) e de uso geral. Os registradores de uso especfico so: Contador de instrues: Responsvel por armazenar o endereo da prxima instruo que a unidade central de processamento dever executar. Toda vez que uma instruo j est sendo processada o endereo da prxima instruo a ser processada armazenado no contador de instrues. Apontador de pilha: Responsvel por armazenar o endereo de memria do topo da pilha. Pilha uma estrutura de dados onde o sistema mantm informaes sobre tarefas que estavam sendo processadas, mas que por algum motivo tiveram que ser interrompidas. Registrador de estado: responsvel por armazenar informaes sobre a execuo do programa (status do programa). A cada instruo executada, o registrador de estado alterado conforme o resultado gerado pela instruo.
Memria Cache uma memria voltil de alta velocidade. Quando o processador faz referncia a um dado armazenado na memria principal, verifica antes se este dado no est armazenado na memria cache. Ao encontrar o dado armazenado na memria cache, o processador no acessa a memria principal, diminuindo o tempo de processamento. Memria Principal a memria responsvel pelo armazenamento dos programas que esto sendo executados pela CPU em um certo instante, bem como dos dados utilizados pelos programas em execuo. Para que um programa possa ser executado pela CPU necessrio que ele seja previamente armazenado na memria principal. Existem ainda dois tipos de memria: ROM (read only memory) e RAM (random access memory). Quando usamos o termo memria para um computador, normalmente estamos nos referindo sua memria RAM. Se um programa que o usurio pretenda executar no estiver na memria RAM, ento ele deve ser transferido de um sistema de memria secundrio (como discos rgidos, unidades de CD-ROM e etc.) para a memria RAM. A RAM um tipo de circuito eletrnico de memria que permite a leitura e a escrita de dados em seu interior. S que ela uma memria voltil
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 29
(como os registradores e a cache), isto , cortando-se sua alimentao eltrica, apagamos os dados que estavam nela armazenados. J a caracterstica principal da ROM que o seu contedo no perdido quando cortamos a sua fonte de alimentao e por isso utilizada para manter os programas iniciais do computador. Quando ligamos o micro, o processador no sabe o que fazer; ele precisa executar um programa; este programa necessrio para dar o boot gravado em uma memria ROM localizada na placa-me do computador. Um programa armazenado em ROM recebe o nome de firmware. Na memria ROM do micro h basicamente trs programas (firmware) principais: BIOS (Basic Input/Output System, Sistema bsico de Entrada/ Sada); POST (Power On Self Test, Autoteste ao Ligar); Setup (programa que permite alterar vrios itens da configurao do computador).
A memria principal composta por unidades de acesso chamadas clulas, cada uma capaz de armazenar um determinado nmero de bits. Cada clula tem um endereo, ver figura 10, que uma referncia posio da clula dentro da memria, como o endereo de uma casa. Quando um programa deseja ler ou escrever um dado em uma clula, deve primeiro especificar qual o endereo de memria desejado. O endereo da clula a ser acessada fica armazenado em um registrador denominado registrador de endereo de memria.
Figura 10: Clulas de memria e seus endereos Fonte: Machado e Maia, 2004. Adaptao
Memria Secundria Memria secundria um termo genrico para designar diversos componentes que permitem gravar e ler dados permanentes. O seu acesso lento, se comparada com as memrias cache ou principal, porm relati-
Pgina 30
Sistemas Operacionais
vamente apresentam custo mais baixo e capacidade de armazenamento superior. Exemplos de memria secundria so as fitas magnticas, discos rgidos (HDs), CDs, DVDs, etc.
ATIVIDADE 4 1. Quais os componentes de um processador e quais so suas funes? 2. Como a memria principal de um computador organizada? 3. Diferencie memrias volteis das memrias novolteis. 4. Existem trs tipos de barramentos, que se diferenciam uns dos outros de acordo com o que transportado. Cite as classificaes e suas caractersticas. 5. Os registradores podem ser classificados quanto ao seu uso. Cite as classificaes e suas caractersticas.
Pgina 31
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 32
Sistemas Operacionais
Figura 11: Esquema grfico dos barramentos Fonte: Machado e Maia, 2004. Adaptao
Pipelining O conceito de processamento pipeline a diviso de uma tarefa em uma sequncia de subtarefas. O processador, atravs de suas vrias unidades funcionais pipeline, funciona de forma a permitir que, enquanto uma instruo se encontra na fase de execuo, uma outra instruo possa estar na fase de busca. A tcnica de pipelining pode ser empregada em sistemas com um ou mais processadores, em diversos nveis, e tem sido a tcnica de paralelismo mais utilizada para maior desempenho dos sistemas de computadores.
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 33
Pipelining: Voc pode fazer a semelhana com um motor de carro de quatro tempos e vrios cilindros. Enquanto um cilindro est na fase de alimentao, outro est na fase de compresso, outro na de exploso e assim por diante. Isto aumenta bastante a eficincia do motor. Ativao do Sistema Toda vez que um computador ligado, necessrio que o sistema operacional seja carregado da memria secundria para a memria principal. Este processo, denominado ativao do sistema (boot), realizado por um programa localizado em uma posio especfica do disco (boot block ou setor de boot). A matria Fundamentos de Hardware abordou este assunto, mostrando o passo a passo da realizao do boot. No deixe de rel-la. Alm de carregar o sistema operacional, a ativao do sistema tambm consiste na execuo de arquivos de inicializao. Nestes arquivos so especificados procedimentos de inicializao e configurao de hardware e software especficos para cada ambiente. Nas verses mais antigas do Windows havia uma srie de arquivos, com terminao .ini, que cumpriam esta tarefa. Nas verses mais recentes estes arquivos ainda existem, mas estes procedimentos de configurao vm sendo cada vez mais centralizados em um grande arquivo denominado Registro.
2.2. SOFTWARE
Na figura 4 vimos trs camadas (ou nveis de software): aplicativos, utilitrios e sistema operacional. Os software ou programas executados pelos usurios so atualmente chamados aplicativos. Antigamente se chamavam simplesmente programas. Quase tudo que o usurio 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 tpico vamos abordar especialmente os utilitrios, pois o SO propriamente dito, desmembrado em cada uma das suas funes ou servios, ser tratado em detalhes em cada uma das prximas sesses. Pgina 34
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Sistemas Operacionais
Pgina 35
Figura 12: Representao das diferenas entre o tradutor, montador e compilador Fonte: Machado e Maia, 2004. Adaptao
Interpretador Assim chamado um tradutor que no gera o mdulo objeto. A partir de um programa fonte, escrito em linguagem de alto nvel, o interpretador, no momento da execuo do programa, traduz cada instruo e a executa em seguida. Sua desvantagem o tempo gasto na traduo das instrues de um programa toda vez que este for executado, j que no existe a gerao de um cdigo executvel. Alguns exemplos de linguagens interpretadas so: Basic, dBase e APL e, modernamente, Java e PHP. Linker O linker (ligador) o utilitrio responsvel por gerar, a partir de um ou mais mdulos objeto, um nico programa executvel (figura 13). Sua funo resolver todas as referncias simblicas existentes entre os mdulos objeto, reservar memria para a execuo do programa e determinar uma regio da memria onde o programa ser carregado para sua execuo.
Pgina 36
Sistemas Operacionais
Figura 13: Representao do papel do linker Fonte: Machado e Maia, 2004. Adaptao
Em ambientes multiprogramveis esse tipo de alocao fixa feita pelo linker invivel porque neste caso a memria compartilhada entre diversos programas: pouco provvel que no momento em que o sistema carrega um programa, sua rea de memria que foi predeterminada esteja disponvel. A soluo para isso permitir que um programa possa ser executado em qualquer regio disponvel da memria, durante a sua carga (cdigo relocvel). Esse tipo de relocao no realizado pelo linker, e sim por outro utilitrio, chamado loader, responsvel por carregar os programas na memria. Voc utiliza desde o primeiro mdulo um ambiente de programao, o Dev C++, que executa estas funes (de compilador e linker e at a carga do executvel) de uma vez, quando voc aperta o F9. Voc no percebe quando executada cada uma delas, embora sejam distintas. Voc s consegue ver, na pasta onde voc est trabalhando, os programas fonte (com terminao .c ou .cpp) e o executvel (terminao .exe); o mdulo objeto intermedirio (criado durante a compilao) voc no v mais.
Loader O loader (carregador) o utilitrio responsvel por colocar fisicamente na memria principal um programa para sua execuo. Pode permitir que um programa seja carregado em regies diferentes toda vez que for trazido para a memria.
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 37
Quando o loader carrega um programa para memria principal, ele aloca uma rea de cdigo, uma rea de dados e uma rea de pilha. A rea de cdigo armazena o programa executvel, a rea de dados armazena as variveis e constantes utilizadas no programa e a rea de pilha armazena os endereos de retorno das funes ou procedimentos chamados durante a execuo do programa. O funcionamento do carregador depende do cdigo gerado pelo linker e, de acordo com este, pode ser classificado como absoluto ou relocvel: No loader absoluto: o loader s necessita conhecer o endereo de memria inicial e o tamanho do mdulo para realizar o carregamento. Ento, o loader transfere o programa da memria secundria para a memria principal e inicia sua execuo. No loader relocvel: o programa pode ser carregado em qualquer posio de memria e o loader responsvel pela relocao no momento do carregamento.
Figura 14: As vrias etapas do desenvolvimento e processamento de um programa. Fonte: Silberschatz, Galvin e Gagne, 2000. Adaptao.
Pgina 38
Sistemas Operacionais
Depurador O desenvolvimento de programas est sujeito a erros de lgica, independentemente da metodologia ou linguagem utilizadas pelo programador. O depurador o utilitrio que permite ao usurio acompanhar e controlar a execuo de um programa a fim de detectar erros na sua estrutura. O depurador ajuda a detectar os erros, mas no os corrige. O depurador geralmente oferece ao usurio os seguintes recursos: acompanhar a execuo de um programa instruo por instruo; possibilitar a alterao e a visualizao do contedo de variveis; colocar pontos de parada dentro do programa, de forma que, durante a execuo, o programa pare nos pontos determinados; especificar em forma de envio de mensagem, toda vez que o contedo de uma varivel for modificado. Estes recursos de depurao de programas tambm esto 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 esto crescendo de tamanho e apresentando maior complexidade.
Pgina 39
Embora todos ou quase todos os SO modernos usem uma interface grfica para interagir com o usurio, o prompt da linha de comandos tambm continua a existir em todos eles. Vamos estudar estes comandos no Linux nos prximos captulos. O Windows utiliza um grupo de comandos cuja origem remonta ao DOS. Se voc tem uma mquina com Windows procure ver onde est situado agora este recurso.
Pgina 40
Sistemas Operacionais
medida que novos perifricos se popularizam e novas funes so atribudas ao computador esta lista de utilitrios tende a crescer. Alm disto, uma funo antes exercida por um utilitrio pode ser incorporada definitivamente ao SO, como citamos o exemplo da leitura e gravao de CD e DVD.
Pgina 41
ATIVIDADE 5 1. Diferencie Tradutor de Interpretador. 2. Quais as funes do linker? 3. Porque o uso do linker se tornou invivel em sistemas multiprogramveis? E qual seria a soluo adotada para o problema gerado? 4. Diferencie Compilador de Montador. 5. Qual a funo do depurador e cite trs recursos que ele oferece ao usurio. 6. Por que a execuo de programas interpretados mais lenta que a de programas compilados? 7. Pesquise como funciona a tcnica de pipelining e como ela melhora o desempenho dos sistemas computacionais. 8. Qual a principal funo do loader? Diferencie linker de loader. 9. Qual a funo da linguagem de controle? 10. Por que o cdigo objeto gerado pelo tradutor ainda no pode ser executado?
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 42
Sistemas Operacionais
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 43
2.3.1 - Introduo
Os sistemas multiprogramveis tornaram mais eficiente a utilizao dos recursos computacionais, por permitirem a execuo simultnea (concorrente) de vrios programas, podendo ocorrer de, quando um programa estiver realizando uma operao de E/S, outros podem utilizar o processador. Essa possibilidade do processador executar instrues em paralelo com as operaes de E/S permitiu que diversas tarefas fossem executadas ao mesmo tempo. Outro aspecto importante que devemos ressaltar a melhor utilizao da memria principal, que antes, em sistemas monotarefa, era subutilizada, agora pode conter vrios programas residentes concorrendo pela utilizao 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 instrues em paralelo com operaes de E/S permite que diversas tarefas sejam executadas concorrentemente.
Sistemas Operacionais
Sempre que ocorre uma interrupo, 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 interrupo ocorre quando um dispositivo avisa ao processador que alguma operao de E/S j est completa. Neste caso, o processador deve interromper o programa para tratar o trmino da operao. Quando ocorre a interrupo, o programa que est em execuo interrompido e o controle desviado para uma rotina responsvel por tratar o evento ocorrido, denominada de rotina de tratamento de interrupo. Para que o programa interrompido possa voltar a ser executado posteriomente, se faz necessrio que, no momento da interrupo, um conjunto de informaes sobre sua execuo seja preservado. Essas informaes consistem no contedo dos registradores, que devero ser restaurados para que seja dada continuidade execuo do programa conforme a figura 15.
Para cada tipo de interrupo existe uma rotina de tratamento associada, para onde o fluxo de execuo dever ser desviado. A identificao do tipo de evento ocorrido fundamental para determinar o endereo da rotina de tratamento. No momento da interrupo, o processador dever saber para qual rotina de tratamento dever encaminhar o fluxo em execuo que foi interrompido. Os eventos que causam a interrupo podem ser classificados como sncronos ou assncronos. Um evento classificado como assncrono, independente dos dados de entrada e das instrues do programa, ou seja, pode ocorrer em qualquer ponto do programa. Essas interrupes no
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 45
esto relacionadas com a instruo do programa corrente, so eventos imprevisveis, podem ocorrer mltiplas vezes (exemplo: interrupo gerada pelo mouse, teclado, perifricos, etc.). Isto possibilita a ocorrncia de mltiplas interrupes simultneas, o que no seria interessante para nosso programa em execuo. Uma maneira de evitar esta situao a rotina de tratamento inibir as demais interrupes. Neste caso, na ocorrncia de outras interrupes durante a execuo da rotina de tratamento, elas sero ignoradas, ou seja, no recebero tratamento. Em outras palavras, elas s sero tratadas quando a rotina de tratamento da interrupo atual terminar. Interrupes com a caracterstica de poder ser desabilitada so chamadas de interrupes mascarveis. As interrupes que no podem ser desabilitadas so chamadas nomascarveis. Alguns exemplos de eventos que geram interrupes nomascarveis so: pressionar o boto reset, falha no hardware, etc. J um evento classificado como sncrono, resultado direto da execuo do programa corrente. Tais eventos so previsveis, e se um mesmo programa for executado vrias vezes com a mesma entrada de dados, os eventos sncronos ocorrero sempre nos mesmos pontos (instrues) do programa.
Pgina 46
Sistemas Operacionais
Figura 16: Controlador dos dispositivos de E/S. Fonte: Machado e Maia, 2004. Adaptao.
Por meio do controlador, o processador gerenciava as operaes de E/S, sem se preocupar com os detalhes de implementao de cada dispositivo. Com esse novo elemento, o processador no mais se comunicava diretamente com os perifricos, mas sim, atravs do controlador. E/S Programada Este foi um dos primeiros modelos de operao de E/S. Aps o processador iniciar a transferncia de dados, ficava consultando o estado do perifrico sucessivamente, at que a operao de E/S chegasse ao fim, mantendo o processador ocupado at o trmino da E/S (espera ocupada, do ingls busy wait). Como o processador executa uma instruo muito mais rapidamente que uma operao de E/S realizada pelo controlador, havia um enorme desperdcio de tempo do processador. E/S por Polling Em relao ao modelo anterior, a evoluo ocorreu ao permitir que algumas instrues pudessem ser executadas entre sucessivas consultas sobre o estado de uma operao de E/S. Com isso introduziu-se certo grau de paralelismo. Isso porque permitiu que outros programas pudessem executar, enquanto uma operao de E/S era realizada, mas, em determinados intervalos de tempo o sistema operacional deveria interromp-los para verificar o estado da operao de E/S. Caso houvesse vrias operaes de E/S pendentes, o processamento seria interrompido diversas vezes para a verificao do estado das operaes.
Pgina 47
E/S Controlada por Interrupo Ao invs de o sistema ficar periodicamente testando o estado das operaes pendentes, o prprio controlador interrompe o processador para informar o trmino da operao. Cabe ao controlador a responsabilidade de controlar as operaes de E/S. Quando essa operao termina, o controlador interrompe o processador para que este realize a transferncia de dados para a memria principal. Aps essa transferncia, o processador est livre para executar outros programas. Apesar disso, se houver a transferncia de um grande volume de dados, o processador ser interrompido diversas vezes, reduzindo o seu desempenho. Para solucionar esse problema, foi implementada a tcnica de transferncia de dados chamada DMA (Direct Memory Access). Acesso Direto memria (DMA) A tcnica DMA (Direct Memory Access) permite que o controlador de E/S transmita um bloco de dados entre os dispositivos de E/S e a memria principal. O controlador acessa a memria diretamente, sem a necessidade da interveno do processador, exceto no incio e no final da transferncia. O controlador realiza a operao de E/S, bem como a transferncia de dados entre a memria e o dispositivo de E/S, e, somente ao final, interrompe o processador para avisar que a operao foi concluda. A rea de memria utilizada pelo controlador na tcnica de DMA chamada buffer de entrada/sada.
ATIVIDADE 6 1. Por que o mecanismo de interrupo fundamental para a implementao da multiprogramao? 2. Explique o mecanismo de funcionamento das interrupes. 3. O que so eventos sncronos e assncronos? Como esses eventos esto relacionados ao mecanismo de interrupo e exceo? 4. D exemplos de eventos associados ao mecanismo de exceo. 5. Qual a vantagem da E/S controlada por interrupo, comparada com a tcnica de E/S por polling? 6. O que DMA e qual a vantagem desta tcnica?
Pgina 48
Sistemas Operacionais
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 49
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 50
Sistemas Operacionais
Um sistema operacional fornece o ambiente no qual os programas so executados. Esse ambiente formado por um conjunto de rotinas que oferecem servios aos usurios, s aplicaes e ao prprio sistema. A esse conjunto de rotinas denominamos kernel. A figura abaixo nos mostra em que nvel se encontra o kernel em um sistema computacional. O Kernel considerado o ncleo do sistema operacional.
Figura 17: Posicionamento do ncleo do sistema operacional em um sistema computacional. Fonte: Machado e Maia, 2004.
Internamente, os sistemas operacionais variam muito em sua constituio, sendo organizados em muitas linhas diferentes. Porm o kernel dever exercer as seguintes funes listadas a seguir: Tratamento de interrupes e excees; Criao e eliminao de processos e threads; Pgina 51
Sincronizao e comunicao entre processos e threads; Gerncia de memria; Gerncia do sistema de arquivos; Gerncia dos dispositivos de entrada e sada; Suporte a redes locais e distribudas; Contabilizao do uso do sistema; Auditoria e segurana do sistema.
Existem vrios pontos de vista pelos quais poderamos analisar um sistema operacional: Examinando os servios oferecidos aos usurios; Analisando a interface disponibilizada aos usurios e programadores; Desmontando o sistema em seus componentes mais bsicos.
Vamos examinar os sistemas operacionais sob estes trs aspectos. No prximo tpico veremos como os sistemas evoluram da monoprogramao para a multiprogramao. Nos tpicos seguintes abordaremos outros conceitos importantes como as chamadas de sistema e os modos de acesso, que compem a estrutura de um SO. Por fim, faremos uma breve introduo ao conceito de gerncia de recursos.
Pgina 52
Sistemas Operacionais
O usurio no interagia diretamente com o computador. Em vez disso, ele preparava uma tarefa (job), que consistia no programa, dados e algumas informaes de controle sobre a natureza da tarefa (cartes de controle) e o entregava ao operador do computador. Algum tempo depois o resultado do programa podia ser obtido como uma listagem, uma fita, novo pacote de cartes ou uma listagem dos contedos 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 prxima tarefa (prximo job). O sistema operacional estava sempre residente na memria 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 com o operador. E o operador classificava os programas em lotes com requisitos semelhantes e medida que o computador ficava disponvel, executava cada lote ou batch. A sada de cada tarefa (job) seria enviada de volta ao programador apropriado. Neste ambiente de execuo, a CPU ficava muitas vezes ociosa porque as velocidades dos dispositivos mecnicos de E/S (leitores de carto) eram intrinsecamente menores do que as dos dispositivos eletrnicos (CPU). Com o tempo, claro, melhorias na tecnologia e a introduo de discos resultaram em dispositivos de E/S mais rpidos. [Fonte: Silberschatz, Galvin e Gagne, 2000. Adaptao. Captulo 1 Pgina 5] No muito comum vermos tarefas sendo executadas em batch. Entretanto, existem alguns procedimentos que guardam bastante semelhana: os processos de backup e recuperao de bancos de dados, bem como o processo de inicializao do Windows. Em ambos os casos uma srie de tarefas so executadas de forma automtica, em sequncia e de forma mais ou menos independente da vontade do usurio.
Pgina 53
A multiprogramao aumenta a utilizao da CPU, organizando as tarefas de forma que a CPU esteja sempre ocupada. Assim, o SO mantm vrias tarefas na memria simultaneamente, todas competindo pelos recursos do computador (ver figura 18). O sistema operacional escolhe e comea a executar a tarefa carregada na memria. Em alguns momentos a tarefa que est em execuo dever esperar a concluso de alguma outra tarefa, como uma operao de E/S, que muito mais lenta. Em um sistema operacional no-multiprogramado, a CPU ficaria ociosa. Em um sistema de multiprogramao, o sistema operacional simplesmente passa para outra tarefa e a executa. Quando esta segunda tarefa precisar esperar, a CPU passar para outra tarefa e assim por diante. Por fim, a primeira tarefa terminar a sua operao de E/S e ter a CPU de volta. Neste esquema, a CPU nunca fica ociosa.
Todos os jobs, ou tarefas, que entram no sistema so mantidos num pool de jobs (espcie de fila). Esse pool de jobs consiste em todos os processos residentes no disco aguardando alocao da memria principal (espao na memria). O nmero de jobs que pode ser mantido simultaneamente na memria principal geralmente muito menor do que o nmero de jobs que pode estar no pool de jobs. Se vrios jobs estiverem prontos para serem carregados na memria e se no houver espao suficiente para todos, o sistema operacional dever fazer a escolha. Essa tomada de deciso chamada de escalonamento de tarefas ou de jobs.
Pgina 54
Sistemas Operacionais
Voc deve estar acostumado a usar a multiprogramao ou multitarefa do computador: muito comum abrir um programa de e-mail, teclar num programa de mensagens instantneas como o MSN, abrir um editor de textos para copiar uma pgina da internet, abrir uma planilha de clculo para pegar um grfico e colocar dentro do 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 frao de tempo a cada uma.
Pgina 55
ATIVIDADE 7 1. Explique o funcionamento do sistema com processamento em batch. 2. Como funciona a tcnica de multiprogramao. 3. Como funciona o sistema de tempo compartilhado (time-sharing)?
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 56
Sistemas Operacionais
As linguagens de programao modernas permitem criar programas bem grandes que, por sua vez, so 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 no podem ser executadas imediatamente. Voc talvez j tenha trabalhado com um texto grande e com muitas figuras 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 gravao demorada e, enquanto ela no termina, o programa no sabe se voc vai escrever em uma rea que j foi gravada ou no, o que o obrigaria a recomear a gravao; da, ele pede para voc esperar.
Deteco de erros : O sistema operacional precisa estar constantemente ciente de possveis erros. Os erros podem ocorrer no hardware da CPU e da memria, em dispositivos de E/S e no programa de usurio. Para cada tipo de erro o sistema operacional deve tomar a medida adequada para garantir o funcionamento correto e consistente (e no simplesmente travar).
Outras funes dos sistemas operacionais servem no somente para ajudar o usurio, mas para garantir a operao eficiente do sistema em si, tais como: Alocao de recursos: recursos (memria e dispositivos de E/S) devem ser alocados para cada um dos processos que esto em execuo simultnea. Contabilizao: preciso manter um registro dos usurios que utilizam os recursos do computador, em que quantidade e quais recursos. Este registro pode ser usado para contabilizao. Estas estatsticas de uso podem ser uma ferramenta valiosa para os pesquisadores que desejam reconfigurar o sistema para melhorar os servios oferecidos. Proteo: quando vrios processos independentes forem executados ao mesmo tempo, um processo no poder interferir na rea de outro processo ou do prprio sistema operacional. A proteo visa garantir que todo acesso aos recursos do sistema seja controlado. Estende-se tambm proteo dos dispositivos de E/S externos (modens, placa de rede, etc.) de tentativas de acesso invlidas e ao registro de todas as conexes para deteco de invases. Voc j deve ter percebido que abordar um sistema operacional subdividindo-os em funes ou servios ou em partes de sua estrutura conduz aproximadamente ao estudo dos mesmos tpicos.
Sistemas Operacionais
instrues, como operaes de E/S, s podem ser executadas pelo sistema operacional, isso para impedir a ocorrncia de problemas de segurana e mesmo a violao do prprio sistema. As instrues que tm o poder de comprometer o sistema so conhecidas como instrues privilegiadas, enquanto as instrues no-privilegiadas so as que no oferecem perigo ao sistema. Para que uma aplicao possa executar uma instruo privilegiada, o processador implementa o mecanismo de modos de acesso. Existem basicamente dois modos de acesso: modo usurio e modo kernel. Quando o processador trabalha no modo usurio, uma aplicao s pode executar instrues no-privilegiadas (instrues que no oferecem riscos), tendo acesso a um nmero reduzido de instrues; no modo kernel a aplicao pode ter acesso ao conjunto total de instrues do processador. Quando um programa que esteja no modo usurio tenta executar uma instruo privilegiada, gerado um erro de proteo. O processador sinaliza este erro atravs de uma exceo, o sistema operacional ser chamado e o programa ser finalizado. Voc deve estar se perguntando como ocorrem as transies entre os modos de acesso, ou seja, do modo usurio para o modo kernel e viceversa. No momento da carga do sistema (boot), o sistema operacional inicia em modo kernel. Aps estar carregado em memria, o sistema operacional permite que os programas de usurios sejam carregados apenas em modo usurio. Se um programa estiver executando em modo usurio e ocorrer qualquer tipo de interrupo (interrupo de hardware, exceo ou interrupo de software), o modo de acesso alterado para o modo kernel. Com isso, a rotina de tratamento executada em modo kernel. Ao final de toda rotina de tratamento, h uma instruo especfica que, antes de retornar para o programa do usurio, altera o modo de acesso para o modo usurio. Ver figura 19. A melhor maneira de controlar o acesso s instrues privilegiadas permitir que apenas o sistema operacional tenha acesso a elas. Sempre que uma aplicao necessita de um servio que incorra em risco para o sistema, a solicitao feita atravs de uma system call. A system call altera o modo de acesso do processador para um modo mais privilegiado (modo kernel). Ao trmino da rotina do sistema, o modo de acesso retornado para o modo usurio. Caso um programa tente executar uma instruo privilegiada, sem o processador estar no modo kernel, uma exceo gerada e o programa encerrado.
Pgina 59
Figura 19: Mudana dos modos de acesso durante uma interrupo Fonte: Machado e Maia, 2004. Adaptao.
Figura 20: Chamada de sistema (system call) Fonte: Machado e Maia, 2004. Adaptao.
Certos sistemas permitem que as chamadas ao sistema sejam feitas diretamente de um programa de linguagem de nvel mais alto e, nesse caso, as chamadas normalmente lembram chamadas de sub-rotinas ou de funes predefinidas. Vrias linguagens como C, C++ e Perl foram definidas para substituir a linguagem assembly na programao 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 documentao dos SO costuma disponibilizar estas chamadas com uma srie de funes cujo conjunto chamado de API application program interface.
Pgina 60
Sistemas Operacionais
Esta sigla API pode ser usada tambm para designar de uma forma genrica como uma grande aplicao (como um gerenciador de banco de dados) aceita receber solicitaes de outras aplicaes. Como um exemplo da forma em que as chamadas de sistema so 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: A primeira entrada que o programa precisar so os nomes dos dois arquivos: de entrada e de sada. Uma abordagem fazer o programa pedir ao usurio 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 diretrios e arquivos fornecida por uma chamada ao SO); o usurio pode usar o mouse para selecionar o nome de origem. Uma janela pode ser aberta para que o nome do arquivo de destino seja especificado. Depois que os dois nomes de arquivos tiverem sido obtidos, o programa deve abrir o arquivo de entrada e criar o arquivo de sada. Cada uma dessas operaes requer uma chamada ao sistema. Agora que os dois arquivos esto prontos, entramos em um lao que l dados do arquivo de entrada (uma chamada ao sistema) e os grava no arquivo de sada (outra chamada ao sistema). Lembramos que entre essas operaes de leitura e escrita podero ocorrer alguns erros que geraro outras chamadas ao sistema. Por exemplo, a operao de escrita pode encontrar erros, dependendo do dispositivo de sada (falta de espao em disco, fim fsico da fita, 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 ao sistema) e finalmente terminar normalmente (a chamada final ao sistema).
Como podemos observar, os programas fazem uso pesado do sistema operacional. Entretanto, a maioria dos usurios nunca chega a ver esse nvel de detalhe. As chamadas de sistema ocorrem de diferentes maneiras, dependendo do SO e do computador que est sendo usado. Geralmente, mais informaes so necessrias alm de simplesmente identificar a chamada ao sistema desejada; o tipo e a quantidade exata de informaes variam de acordo com a chamada em questo (os parmetros, que voc j viu ao criar suas funes em programao). Por exemplo, para obter entrada
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 61
preciso especificar o arquivo ou dispositivo a ser usado como origem e o endereo e o tamanho do buffer (espao) de memria no qual a entrada deve ser lida. As chamadas de sistema podem ser agrupadas basicamente em cinco categorias principais de acesso ou controle: Controle de processo; Manipulao de arquivos; Manipulao de dispositivos; Manuteno de informaes; Comunicaes.
Um dos objetivos principais das system calls de E/S simplificar a interface entre as aplicaes e os dispositivos. Com isso, elimina-se a necessidade de duplicao de rotinas idnticas nos diversos aplicativos, alm de esconder do programador caractersticas especficas associadas programao de cada dispositivo. So as chamadas de sistema que iro intermediar a solicitao de uso de algum dispositivo feito pelas aplicaes. O programador ao elaborar uma aplicao no precisa fazer nenhuma referncia configurao do dispositivo a ser utilizado. A figura 21 ilustra a comunicao entre a aplicao e os dispositivos de E/S de maneira simplificada.
Figura 21: Operaes de entrada/sada atravs das system calls. Fonte: Machado e Maia, 2004. Adaptao.
Pgina 62
Sistemas Operacionais
ATIVIDADE 8 1. O que so interrupes e qual a sua principal funo? 2. O que uma chamada ao sistema e cite duas operaes em que h a sua necessidade? 3. Diferencie modo usurio de modo kernel. 4. Cite trs categorias de acesso ou de controle principais nos quais as chamadas de sistemas (system calls) encontram-se agrupadas. 5. Os servios oferecidos pelos sistemas operacionais esto divididos em categorias de acordo com suas funes. Cite, caracterizando, trs dessas categorias.
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 63
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Sistemas Operacionais
Um sistema to grande e complexo quanto um sistema operacional moderno deve ser cuidadosamente construdo para que funcione bem e possa ser facilmente modificado. Uma abordagem comum dividir a tarefa em pequenos componentes em vez de ter um sistema monoltico.
Pgina 65
Figura 23: Estrutura em camadas do MS-DOS. Fonte: Silberschatz, Galvin e Gagne, 2000. Adaptao.
A primeira camada pode ser depurada sem preocupao com o resto do sistema, porque, por definio, ela s utiliza o hardware bsico (que considerado correto) para implementar suas funes. 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 depurao de determinada camada, o erro deve estar nessa camada, porque as camadas inferiores j foram depuradas. Assim, o projeto e a implementao do sistema so simplificados quando o sistema dividido em camadas. A principal dificuldade da abordagem em camadas est na definio adequada das vrias camadas. Como uma camada s pode usar as camadas que esto em um nvel inferior, preciso haver um planejamento cuidadoso. Um ltimo problema com implementaes em camadas que elas tendem a ser menos eficientes. Por exemplo, quando um programa de usurio executa uma operao de E/S (entrada e sada), ele executa uma chamada de sistema (system call) que desviada para a camada de E/S, que chama a camada de gerncia de memria, que, por sua vez, chama a camada de escalonamento de CPU, que ento passada para o hardware. Em cada camada, os parmetros podem ser modificados, os dados precisam ser transferidos e assim por diante. Cada camada acrescenta novo custo chamada ao sistema; o resultado final uma chamada ao sistema que demora mais do que em um sistema sem camadas. As limitaes da eficincia causaram reaes contra a estrutura em camadas nos ltimos anos. Menos camadas com mais funcionalidades esto sendo projetadas, fornecendo a maior parte das vantagens do cdigo modularizado e evitando difceis problemas da definio e interao em camadas. Pgina 66
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Sistemas Operacionais
Pgina 67
Figura 24: Estrutura do Windows NT 4.0 (ncleo e servidores de aplicaes). Fonte: Machado e Maia, 2004. Adaptao
A utilizao deste modelo permite que os servidores executem em modo usurio, ou seja, no tenham acesso direto a certos componentes do sistema. Apenas o ncleo do sistema, responsvel pela comunicao entre clientes e servidores, executa no modo kernel. Como consequncia, se um erro ocorrer em um servidor, este servidor pode parar, mas o sistema no ficar inteiramente comprometido. Como os servidores se comunicam atravs de trocas de mensagens, no importa se os clientes e servidores esto sendo processados em um sistema com um nico processador, com mltiplos processadores ou ainda em um ambiente de sistema distribudo. Apesar de todas as vantagens deste modelo, sua implementao na prtica muito difcil devido a certas funes dos sistemas operacionais exigirem acesso direto ao hardware, como operaes de entrada e sada. Na realidade, o que implementado mais usualmente uma combinao do modelo de camadas com o modelo cliente-servidor.
ATIVIDADE 9 1. Compare as arquiteturas monolticas e de camadas. Quais as vantagens e desvantagens de cada arquitetura? 2. Qual a funo dos microkernels e seus benefcios? 3. Como funciona o modelo cliente-servidor na arquitetura microkernel? Quais as vantagens e desvantagens dessa arquitetura?
Pgina 68
Sistemas Operacionais
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 69
As instrues de comando lidam com a criao e gerncia de processos, tratamento de E/S, gerncia de armazenamento secundrio, gerncia de memria principal, acesso a sistema de arquivo e proteo e redes; enfim, tudo o que a pessoa do usurio precisa para operar seus programas e atender suas necessidades.
Pgina 70
Sistemas Operacionais
Pgina 71
processos rodando alm dos programas que o usurio 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 idia do tempo que a CPU fica ociosa. Observe a linha Tempo ocioso do sistema; a coluna CPU indica que ela fica a maior 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 tambm usar a aba Aplicativos para matar um programa que tenha travado; basta clicar sobre ele para selecion-lo e depois clicar no boto Finalizar tarefa. ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Um processo a unidade de trabalho em um sistema. Em um sistema teremos uma coleo de processos que so desde processos do prprio sistema operacional (aqueles que executam cdigos do SO) at os processos de usurio (aqueles que executam cdigo do usurio). Todos esses processos podem executar concorrentemente, multiplexando a CPU entre eles. Pgina 72
Sistemas Operacionais
Multiplexao: a diviso de algum servio oferecido entre vrios processos. Voc ver este conceito usado tambm para um canal de comunicao. uma extenso ou aplicao do conceito de time sharing que voc viu anteriormente. O sistema operacional responsvel pelas seguintes atividades em relao gerncia de processos: Criar e excluir processos de usurio e de sistema, Suspender e retomar processos, Fornecer mecanismos para a sincronizao de processos, Fornecer mecanismos para a comunicao de processos, e Fornecer mecanismos para o tratamento de deadlocks. Deadlock caracteriza uma situao em que ocorre um impasse, onde dois ou mais processos ficam impedidos de continuar suas execues, ou seja, ficam bloqueados. Um processo aguarda a liberao de um recurso que est sendo utilizado por um outro processo que, por sua vez, aguarda a liberao de outro recurso alocado ou dependente do primeiro processo. Voc deve se lembrar de um cachorro correndo atrs do prprio rabo. uma boa imagem para o deadlock.
Pgina 73
Pgina 74
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 funo do SO tentar garantir que cada processo (ou cada usurio) tenha a rea de que necessita. Os sistemas operacionais de tempo compartilhado ou de tempo real so ainda mais complexos porque os usurios podem ir se conectando e solicitando a execuo de programas at um momento em que pode no haver mais memria real disponvel. possvel ainda manter um tempo de resposta razovel utilizando um recurso chamado memria virtual. Quando no h mais memria fsica disponvel, algum processo ocioso naquele momento passado rapidamente para um disco que agora ir servir como extenso da memria 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 memria principal. Esta movimentao de ida e volta da memria para o disco chamada de paginao ou swap e est ilustrado na figura 26.
Figura 26: Troca de dois processos usando um disco como armazenamento auxiliar (secundrio). Fonte: Silberschatz, Galvin e Gagne, 2000. Adaptao.
Este recurso bastante interessante e aumenta a capacidade de atendimento aos usurios, pois o tempo de acesso a disco tambm muito menor do que o tempo de resposta dos usurios. Alm desta utilidade, este conceito de memria virtual facilita tambm a vida dos programadores que, basicamente, passam a no se preocupar com a quantidade de memria fsica disponvel; isto passa a ser mais um problema do SO.
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 75
Se voc tiver acesso aos arquivos de sistema do Windows XP, voc poder ver no diretrio raiz do drive C um arquivo chamado pagefile.sys. Este o arquivo utilizado para a paginao. Qual o tamanho deste arquivo e qual o tamanho da memria real no seu computador? Voltando atividade 8, voc pode ver a aba Desempenho do gerenciador de tarefas, que mostra o uso da memria, da CPU e do arquivo de paginao. Mesmo que voc no esteja fazendo nada, os nmeros da memria e da CPU se movimentam, pois h pelo um processo rodando (o prprio gerenciador de tarefas).
Alm deste caso de uso de memria virtual citado (os sistemas de tempo real ou compartilhado), voc poderia pensar em outro caso que poderia precisar de memria virtual? Afinal o seu computador pessoal atende a um usurio de cada vez (por isto ele pessoal) e tem o arquivo pagefile.sys...
Pgina 76
Sistemas Operacionais
O conceito de arquivo bastante geral. Um arquivo uma coleo de informaes relacionadas definidas por seu criador. Geralmente os arquivos representam dados nos mais diversos formatos e, s vezes, programas (fonte e objeto). Os arquivos de dados podem ser numricos ou alfanumricos, representando dados escritos ou figuras, msicas e animaes. Alm disso, podem ter forma livre (por exemplo, arquivos de texto) ou podem ter uma formatao rgida (por exemplo, campos fixos como em planilhas ou bancos de dados). Um arquivo consiste em uma sequncia de bits, bytes, linhas ou registros cujos significados so definidos por seus criadores.
No Windows, os nomes de arquivos so formados por duas partes: nome.extenso 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 extenso; cada arquivo, de acordo com sua extenso, aberto por um programa especfico. Por isto, os arquivos do Word tm extenso.doc; os do Excel tm extenso.xls; e assim por diante. A figura 27 mostra vrios exemplos destes tipos de arquivo e suas extenses.
Uma considerao 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 razovel. Uma tcnica 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 extenso, geralmente separada por um caracter de ponto. Veja na figura 27, os tipos de arquivos mais comuns. Dessa forma, o usurio e o sistema operacional podem saber imediatamente a partir do nome qual o tipo de arquivo em questo.
Pgina 77
Tipo de Arquivo Extenso comum Funo executvel exe, com, bin, ou nada Programa de linguagem de mquina pronto para executar Linguagem de mquina, compilado, sem linkedio Cdigo fonte em vrias linguagens Comandos para o interpretador de comandos Dados textuais, documentos
wpd, tex, doc, etc Vrios formatos de etc. processador de textos Bibliotecas de rotinas para programadores Arquivo ASCII ou binrio em um formato para impresso ou visualizao Arquivos correlatos agrupados em um arquivo nico, s vezes compactado, para fins de arquivamento ou armazenamento
biblioteca lib, a, DLL impresso ou ps, dvi, gif visualizao Arquivo arc, zip, tar compactado
Figura 27: Tipos de arquivos comuns. Fonte: Silberschatz, Galvin e Gagne, 2000. Adaptao.
O sistema operacional se encarrega de gerenciar as mdias de armazenamento em massa de arquivos, como discos, e os dispositivos que os controlam. Os arquivos so normalmente organizados em diretrios para facilitar seu uso. E quando vrios usurios tm acesso aos arquivos, pode ser desejvel controlar quem pode acessar os arquivos e de que forma pode faz-lo. O sistema operacional responsvel pelas seguintes atividades em relao gerncia de arquivos: Criar e excluir arquivos; Criar e excluir diretrios; Fornecer suporte para manipular arquivos e diretrios; Mapear arquivos no armazenamento secundrio; e Prover ferramentas de backup.
A maioria dos sistemas de computao usa discos (HD) como o principal meio de armazenamento para programas e dados. A maioria dos programas incluindo compiladores, montadores, rotinas de classificao, editores e formatadores, so armazenados em um disco at serem carregados na memria e utilizam o disco como origem e destino de seu processamento. Pgina 78
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Sistemas Operacionais
Pgina 79
ATIVIDADE 11 1. Vistos os conceitos acima voc saberia diferenciar programa de um processo? Quais as diferenas? 2. Cite trs responsabilidades do sistema operacional em relao gerncia de processos. 3. Cite trs responsabilidades do sistema operacional em relao gerncia de arquivos.
Pgina 80
Sistemas Operacionais
4. Cite duas responsabilidades do sistema operacional em relao gerncia de memria. 5. O que memria virtual?
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 81
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Sistemas Operacionais
Trs exemplos so importantes para ilustrar este sistema de proteo: O SO tem que garantir que o hardware de endereamento de memria s acesse memria para um processo dentro do espao dedicado quele processo. O SO deve avisar ao timer o tempo destinado a cada processo que tome conta da CPU e desta forma garantir que nenhum processo detenha indefinidamente o controle da CPU. O SO deve garantir que os registradores de controle dos dispositivos no sejam acessveis aos programas usurios, de modo que a integridade dos vrios dispositivos perifricos seja protegida.
Um sistema de proteo qualquer mecanismo para controlar o acesso de programas, processos ou usurios aos recursos definidos por um sistema de computao. Este mecanismo deve fornecer meios para a especificao 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 fica rodando, executando eternamente), se no houvesse um controle do tempo de ocupao da CPU pelos programas, o computador travaria irremediavelmente. Imagine uma falha no controle da fila de uma impressora de rede, que recebe relatrios de diversos usurios. As listagens seriam inteis, cada pgina contendo partes dos dados de cada usurio que gerou relatrio.
Pgina 83
MINIX - No incio da dcada de 90, o professor Andrew Tanenbaum desenvolveu este sistema operacional para fins acadmicos, com o objetivo de mostrar a seus alunos como realmente funcionava um sistema operacional. Assim, disponibilizou seu cdigo em linguagem C e assembler em um dos livros de sua autoria, chamado Operating Systems.
KERNEL Como vimos, o Kernel o ncleo do sistema operacional. a parte que controla diretamente o hardware da mquina. Quando falamos de Linux, estamos nos referindo somente ao kernel do sistema. Tudo que existe ao redor do kernel so aplicativos que compem uma distribuio especfica do Linux.
Pgina 84
Sistemas Operacionais
Pgina 85
Independente do nome da distribuio, todas elas utilizam o mesmo Kernel, que distribudo sistematicamente pela Internet. A verso do Kernel identificada por nmeros como Kernel 2.4. Estes nmeros significam: Nmero de Verso Maior e Nmero de Verso Menor. Quando o nmero Menor se modifica, indica que novas aplicaes (funes) foram acrescentadas ao kernel. Quando este nmero for par, indica uma verso de produo testada pelos mantenedores e pronta para o mercado, quando for impar indica que experimental, ou seja, ainda est na equipe de desenvolvedores. O nmero maior indica a verso base do kernel. No exemplo, Kernel 2.4, significa que a base do kernel est na sua verso 2.
Pgina 86
Sistemas Operacionais
Multitarefa Sistema capaz de executar vrios aplicativos (progamas) simultaneamente utilizando compartilhamento do tempo do processador. Multiusurio Sistema capaz de permitir que os recursos de um computador sejam utilizados por vrios usurios 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 aplicaes como estao de trabalho, sem que haja necessidade de grandes modificaes no seu sistema.
Pgina 87
Um gerenciador de janelas consiste em um software, rodando sobre o X Window System, que responsvel pelas funes de ajuste de tamanho de uma janela, minimizando, maximizando, etc. Existem vrios gerenciadores de janelas para o Linux, tais como o KDE, GNOME, XFCE, Window Maker, Enlightenment, AfterStep, Fvwn, Fvwm95, entre outros. A utilizao do ambiente grfico aumenta a produtividade do usurio, permitindo acesso e visualizao de vrias aplicaes simultaneamente de uma forma amigvel. O uso do mouse indispensvel em um ambiente como este. No Linux podemos escolher o gerenciador de janelas. No Windows, apesar de ser permitido ao usurio trocar o layout da tela, mudar a configurao das janelas e etc, o gerenciador de janelas nico. Hoje em dia possvel instalar o Linux e iniciar a interface grfica por padro; caso seja iniciado em modo texto, basta digitar o comando startx que ser carregada a interface grfica padro.
Pgina 88
Sistemas Operacionais
Partio ou Particionamento de disco definido como o ato de se associar vrias unidades lgicas a uma unidade fsica. a ao de se dividir logicamente um dispositivo de armazenamento de dados (normalmente um disco rgido), de modo que possamos trabalhar com cada diviso (partio) como se esta fosse um disco rgido independente.
O que Swap? Linux um sistema operacional com memria virtual paginada, isto quer dizer que podemos ter programas em execuo cujo tamanho maior que a memria fsica disponvel para execut-los. O sistema operacional passa a ser responsvel por manter na memria as partes dos programas efetivamente em uso, deixando o resto no disco rgido. A utilizao da memria virtual torna o computador mais lento, embora faa com que ele aparente ter mais memria RAM do que realmente tem.
Pgina 89
Parties estendidas Normalmente um disco permite apenas 4 parties, assim, se for necessrio um nmero maior de parties preciso que uma das 4 seja estendida, pois este tipo de partio permite sua subdiviso em unidades lgicas (parties lgicas). Entretanto, uma partio estendida no pode ser usada para inicializar um sistema operacional. Parties lgicas Tambm chamada unidade lgica, o nome dado s subdivises de uma unidade estendida. Apesar da utilizao de somente duas parties ser uma prtica bem comum em instalaes domsticas do GNU/Linux, este sistema pode ser instalado de forma com que determinados diretrios fiquem cada um em sua partio, ou at mesmo em computadores diferentes. Diretrios - So arquivos que contm os nomes de outros arquivos, indicando que estes arquivos esto armazenados ou organizados como um grupo. Desta forma, possvel organizar todos os arquivos do disco como se estivessem em pastas separadas. O agrupamento arbitrrio; podemos escolher a combinao desejada ou alterar o agrupamento a qualquer hora.
Sistemas Operacionais
O problema de crescimento descontrolado de dados tambm pode ser solucionado atravs do uso de quotas de disco, o que significa limitar o uso do disco rgido para usurios e seus programas. Para melhorar a segurana para esse tipo de problema podemos combinar as quotas de disco com esquemas de particionamento. Desvantagens: Dificuldade em prever o espao a ser utilizado por cada partio. Se o administrador alocar pouco espao para uma partio, ficar faltando futuramente e, caso ele aloque espao em demasia, este ser um espao desperdiado no disco. Esta desvantagem bastante sria, tendo em vista a dificuldade do redimensionamento de uma partio e o perigo de perda de dados que esta operao apresenta.
Por todos estes aspectos que os tamanhos de cada partio devem ser planejados previamente e definidos com muito cuidado, a fim de evitar futuros imprevistos. importante que voc saiba que, para instalao do Linux, h diretrios que no podem estar em parties separadas mas necessitam estar na mesma partio do diretrio raz (/). So eles: /bin; /etc; /dev; /initrd; /lib e /sbin. Esta limitao existe, pois o contedo destes diretrios necessrio no momento de inicializao do sistema. Por outro lado, sugere-se que os diretrios /var e /tmp fiquem em parties prprias para eles, pois seu contedo se altera constantemente e a no criao de parties separadas para eles traz o risco de um arquivo de log encher a partio do diretrio raz, por exemplo.
Pgina 91
mount monta e exibe informaes sobre sistemas de arquivos mount [opes] mount [opes] <dispositivo> <diretrio> opes: -t tipo (especifica o tipo de sistema de arquivo que ser montado); -a (monta todos os sistemas de arquivos especificados no arquivo fstab) umount desmonta sistemas de arquivos umount [opes] umount [opes] <dispositivo> <diretrio> opes: -a (desmonta todos os sistemas de arquivos especificados no arquivo mtab)
Os <dispositivos> tm uma nomenclatura prpria no Linux. Veja, por exemplo, as unidades de discos:
Arquivo Dispositivo Hda Hdb Hdc Hdd Fd0 Primary Master Primary slave Secundary master Secundary slave Descrio Disco rgido primrio Caso de 2 discos na IDE primria Caso de 1 disco na IDE secundria Correspondncia C: D: E:
Sistemas Operacionais
Conhecendo o sistema de arquivos e sua estrutura de diretrios, fica mais fcil entender o sistema operacional Linux e a sua utilizao.
Diretrio / /bin /sbin /boot /dev /etc /etc/X11 /etc/rc.d /home /home/maria /lib /lib/modules /mnt /mnt/cdrom /opt /proc /root /sbin /tmp /usr /usr/bin /usr/sbin /usr/lib /usr/src /usr/local /usr/local/bin /usr/share /var /var/cach /var/log /var/tmp /var/spool Diretrio raiz Comandos essenciais do sistema. Comandos essenciais de administrao do sistema. Arquivos de boot (inicializao); kernel do sistema. Arquivos de dispositivos de hardware (floppy, hardisk, cdrom, modem). Arquivos de configurao do sistema configurao do X Window System. scripts de inicializao do sistema. Diretrio local de usurios. diretrio do usurio Maria Bibliotecas compartilhadas essenciais e mdulos do kernel. mdulos do kernel Diretrio de montagem temporria de sistemas de arquivos diretrio de montagem do CD-ROM. Pacotes de software opcionais Sistema de arquivos virtuais de informaes do kernel e processos. Diretrio local do superusurio root. Arquivos de sistema essenciais (binrios do superusurio). Arquivos temporrios. Arquivos de usurios nativos da distribuio (hierarquia secundria). comandos no essenciais do sistema. comandos no essenciais de administrao do sistema. bibliotecas compartilhadas cdigo-fonte(arquivos fontes necessrios para compilar o kernel). hierarquia local. comandos locais do sistema. dados independentes da arquitetura Arquivos (dados) variveis. cache de dados das aplicaes arquivos de log arquivos temporrios. dados de spool das aplicaes Descrio
Pgina 93
Note que, conforme as permisses que o arquivo recebe no momento de sua criao (conforme a mscara de criao - mask), ou aps uma modificao destes atributos atravs dos comandos: chown, chmod, possvel determinar quem tem direitos sobre ele.
Pgina 94
Sistemas Operacionais
umask define a mscara de criao dos arquivos chown [opes] [dono] [grupo] especifica o dono e o grupo do arquivo chmod [opes] <arquivos ou diretrios> exemplo: chmod u+w nomearquivo (adiciona a permisso de escrita w para o dono do arquivo chamado nomearquivo); chmod o-x nomearquivo (retira a permisso de execuo x para os usurios que no sejam o dono ou do grupo do arquivo chamado nomearquivo);
passwd usado para alterar a senha do usurio. A opo [nomedousurio] somente poder ser usada pelo root. Sintaxe: passwd [nomedousurio] Pgina 95
root Existe um usurio no Linux que tem permisso para realizar qualquer atividade, manipular qualquer arquivo ou diretrio, executar qualquer tarefa administrativa e muito mais. Este usurio o root, e, por possuir tantos poderes, chamado de superusurio. Portanto, tenha muito cuidado quando estiver logado como root, pois o sistema estar sem proteo contra erros deste usurio. su inicia um novo shell para o superusurio Sintaxe: su [opes] Opes: -c comando (apenas executa o comando comando como superusurio) Sintaxe: finger [opes] [usurio@host] Opes: -l (exibe informaes no formato de mltiplas linhas)
shutdown encerra o sistema de forma segura, permitindo que o computador seja desligado. Sintaxe: shutdown [opes] [mensagem] Opes: now (executa o comando imediatamente); -r (reinicia o sistema aps o shutdown); -t segundos (especifica um tempo de espera em segundos at que seja realizado o shutdown).
Pgina 96
Sistemas Operacionais
cd - entra em um diretrio. Voc precisa ter a permisso de execuo para entrar no diretrio. Sintaxe: cd [diretrio] Exemplos: cd (sem parmetros retornar ao seu diretrio de usurio - diretrio home); cd / (retornar ao diretrio raiz); cd. (sobe um nvel na hierarquia de diretrios)
pwd - Mostra o nome e caminho do diretrio atual. mkdir - Cria um diretrio no sistema. Sintaxe: mkdir [opes] [caminho/diretrio] [caminho1/diretrio1] rmdir - Remove um diretrio do sistema. O diretrio a ser removido deve estar vazio e voc deve ter permisso de gravao para remov-lo. Sintaxe: rmdir [caminho/diretrio] [caminho1/diretrio1] Sintaxe: cat [opes] [diretrio/arquivo] [diretrio1/arquivo1] Opes: -n, number (mostra o nmero das linhas enquanto o contedo do arquivo mostrado); cat - Mostra o contedo de um arquivo binrio ou texto.
Pgina 97
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 98
Sistemas Operacionais
6. UTILIZAO DO LINUX
Caro Aluno, No captulo anterior fomos apresentados ao Linux, o SO escolhido para estudarmos na prtica. Conhecemos sua histria e seus conceitos bsicos e vimos algumas de suas vantagens. Neste captulo aprenderemos a utilizar este SO. Vamos dar maior nfase utilizao da linha de comandos, visto que a interface grfica bastante intuitiva e similar do Windows. Este sistema vem sendo utilizado com certa frequencia como servidor de rede, principalmente para servidores Web. Assim, estes tpicos lhe daro uma base para o estudo destas matrias nos mdulos a seguir, bem como lhe proporcionaro um diferencial na sua formao profissional. Bom estudo!
Para execuo das prximas atividades iremos utilizar como base o Linux distribuio Ubuntu com o gerenciador de janelas GNOME. Pode ser que haja alguma diferena entre as distribuies: entre a que iremos trabalhar Ubuntu e a instalada nas mquinas do seu polo Linux educativo. Caso o seu sistema operacional no seja essa verso, voc poder instal-la em um software de virtualizao. O que software de virtualizao? um software que permite a instalao e utilizao de um SO dentro de outro. Com isto possvel instalar, no mesmo computador, um ou mais sistemas operacionais, criando computadores completos, porm virtuais, dentro de um computador fsico. Este recurso muito usado em centros de dados, pois permite criar redundncia e segurana adicional sem recorrer a tantas mquinas fsicas. No se deve notar a diferena entre a mquina real e a virtual.
Na atividade dessa semana, voc dever instalar o software de virtualizao VirtualBox ou o VMware Server. Posteriormente dever instalar o Linux Ubuntu.
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 99
Voc pode trabalhar como usurio comum ou administrador: Quando fizer o login como usurio comum, o seu desktop ter os cones e a barra de tarefas. No haver restrio alguma para poder clicar com o boto direito do mouse. J ao fazer o login como super usurio (tambm chamado root ou administrador) no haver nenhum cone e o boto direito no ir funcionar, por motivo de segurana.
Pgina 100
Sistemas Operacionais
Os demais itens grficos do GNOME tambm so semelhantes aos do Windows. A configurao da aparncia do GNOME, criao de atalhos no desktop, visualizao dos dispositivos carregados, criao de novos dispositivos, editores de texto, entre outros, por serem grficos, facilitam e tornam intuitiva sua utilizao.
6.1.2 - Shell
Porm, em dado momento o modo grfico pode no estar disponvel e, alm 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 rpido, porm implica que voc memorize alguns comandos com seus diversos parmetros. Quando o comando inserido, cabe ao interpretador de comandos (tambm conhecido como shell) execut-lo. Shell o nome genrico de uma classe de programas que funcionam como interpretador de comandos e linguagem de programao script (interpretada) no Linux, funcionando como interface entre usurio e o kernel (ver figura 32). Os shells mais populares so bash, csh, tcsh, ksh e zsh. O usurio pode escolher qual shell vai utilizar; o padro o bash (Bourne Again Shell), criado por S. R. Bourne.
Onde e como digitar os comandos Quando o computador que voc acessa estiver com o modo texto ativado, possvel digitar comandos diretamente, bastando se logar. J se o Linux entra no modo grfico ao ser inicializado, necessrio abrir um terminal (tpico a seguir e figura 6.3).
Pgina 101
Ateno: O Linux, como qualquer sistema operacional Unix, diferencia letras maisculas de minsculas; portanto, relatrio, RELATRIO e Relatrio so arquivos diferentes. Os seguintes caracteres no podem ser utilizados em nomes de arquivos:! @ # $ % ^& * () { } [ ] ? |; < > ` + - = \ /.. Para abrir um terminal no Gnome v ao menu Aplicaes > Acessrios > Terminal (ou pressione simultaneamente as teclas Alt+F2) e, na caixa de texto, digite gnome-terminal e tecle Enter. Ver figura 33.
Para abrir uma seo shell, tecle simultaneamente Crtl+Alt+F1; uma console modo texto ser exibida solicitando um login; voc deve entrar com seu usurio e senha para ter acesso ao prompt de comandos conforme a figura 34. A primeira vez que voc acessar o Linux, o acesso dever ser feito como superusurio root. Esse o nome da conta que tem acesso irrestrito a todos os recursos do Linux. Normalmente a conta de superusurio utilizada na execuo de tarefas de administrao do sistema, como criao de novas contas, desligar o sistema, etc. Nos demais casos voc deve logar como usurio comum. Isto porque o acesso ilimitado do superusurio root, quando mal utilizado, pode provocar grandes danos ao sistema; portanto, a conta do superusurio deve ser usada somente quando for realmente necessrio.
Pgina 102
Sistemas Operacionais
Convenes: na sintaxe da digitao dos comandos so adotadas as seguintes convenes: Quando o prompt que preceder um comando for $, o comando poder ser executado por qualquer usurio. Quando o prompt que preceder um comando for #, o comando poder ser executado somente pelo superusurio root. Quando aparecer [texto] na sintaxe de algum comando, o texto ser opcional. Quando aparecer <texto> na sintaxe de algum comando, o texto ser obrigatrio. Quando aparecer pressione <nome_tecla>, a tecla mencionada dever ser pressionada. Quando aparecer pressione <nome_tecla_1> + < nome_tecla_2>, as teclas mencionadas devero ser pressionadas simultaneamente.
ATIVIDADE 12 1. O que virtualizao? 2. Como diferenciar o Usurio do Superururio (root)? 3. O que Shell?
Pgina 103
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 104
Sistemas Operacionais
clear:
sintaxe: echo [opes] <mensagem> Opo -n -e Descrio no imprime mudana de linha aps a mensagem habilita a interpretao de caracteres de escape na mensagem
Exemplo: $ echo alo pessoal write: envia uma mensagem a um usurio e terminal especfico.
Usurio indica o login do usurio para quem desejamos enviar uma mensagem tty indica para qual terminal virtual do usurio a mensagem deve ser enviada. Um usurio pode estar logado em mais de um terminal se ele estiver utilizando um ambiente de janelas, ou se estiver em uma mquina que permita vrios terminais virtuais diretamente da console do computador. texto da mensagem.
texto
Exemplo: $ write Lucia vamos almoar? Lucia o nome do usurio. wall: sintaxe: envia uma mensagem a todos os usurios logados no sistema. wall <mensagem>
Exemplo: $ wall faltam 15 minutos para desligar o sistema Os comandos explanados a seguir permitem iniciar e terminar uma seo, ligar e desligar o computador. login: cancela a sesso atual e inicia uma nova sesso de usurio.
Pgina 105
exit:
Exemplo: $ halt
Exemplo: $ man ls exibe informaes sobre o comando ls Para sair do man, pressione <Q> info: sintaxe: Opo exibe informaes de um comando do sistema. info [opes] <comando> Descrio
-d <nomedir> adiciona um diretrio lista de diretrios. -f <arqinfo> especifica o diretrio a ser utilizado pelo comando info -h exibe uma mensagem de ajuda
Exemplo: $ info ls exibe informaes sobre o comando ls Para sair do info, pressione <Q>
Pgina 106
Sistemas Operacionais
-m <modo>
Exemplos: $ mkdir dir1 dir2 dir3 - cria 3 diretrios no mesmo local $ mkdir /exerccios/temp1/temp2/temp3/documentos - cria s o diretrio documentos no caminho indicado $ mkdir -p /exerccios/temp1/temp2/temp3/documentos - cria todos os subdiretrios desde o raiz A Figura 35 mostra o uso do comando criando a pasta1 no diretrio do usurio. Toda vez que for usado / antes do nome do diretrio a ser criado, ele ser criado no diretrio raiz. Exemplo: root] # mkdir /Joo - o diretrio Joo est sendo criado no diretrio raiz. root] # mkdir ~/Joo - o diretrio Joo est sendo criado no diretrio do usurio.
Pgina 107
ls ou dir: sintaxe:
exibe o contedo dos diretrios (lista arquivos e diretrios). ls [opes] [diretrio] dir [opes] [diretrio] /usr/bin mostra o contedo do diretrio /usr/bin
Exemplos: $ ls
Ao mostrar o contedo do diretrio (figura 36), o comando ls mostra uma tabela com vrias colunas. O significado de algumas colunas so: A primeira coluna: sequencia de letras que definem o esquema de permisses do arquivo (isto ser mais detalhado no item 6.2); A segunda coluna do comando ls pode ter dois significados. Se for um arquivo, este nmero indica quantos hard links existem apontados para ele; se for um diretrio, indica quantos subdiretrios existem. As duas colunas seguintes, no comando ls, mostram o nome do usurio e nome do grupo no qual o arquivo se encontra. Enfim, as ltimas colunas indicam: tamanho do arquivo, data e hora em que foi pela ltima vez modificado e o nome do arquivo.
Pgina 108
Sistemas Operacionais
cd:
sintaxe: cd [diretrio] Exemplo: # mkdir /exerccios - cria o diretrio /exerccios $ cd /exerccios $ls $ cd /usr/bin $ ls $ cd.. $ ls $ cd / $ ls $ cd ou $ cd ~ muda para o diretrio exerccios lista o contedo do diretrio /exerccios muda para o diretrio /usr/bin lista o contedo do diretrio /usr/bin sobe um nvel na rvore de diretrios: /usr lista o contedo do diretrio /usr muda para o diretrio raiz. Ver figura 6.7. lista o contedo do diretrio raiz retorna ao diretrio do usurio
pwd:
exibe o diretrio corrente (figura 6.8). troca para o diretrio /usr/bin pergunta qual o diretrio atual
Pgina 109
tree:
exibe a rvore de diretrios. Por padro, exibe arquivos e diretrios. Em muitas distribuies, o comando tree no instalado por padro. tree <diretrio>
sintaxe:
Exemplo: $ find /exerccios_ name arquivo1.doc procura pelo arquivo arquivo1.doc dentro do diretrio /exerccios_ name touch: sintaxe: Opo -c -m -a atualiza a ltima data de acesso ao arquivo. Caso o arquivo no exista, ser criado vazio. touch [opes] <arquivo> Descrio no cria o arquivo caso ele no exista atualiza somente a hora da modificao atualiza somente a data de acesso $ touch arquivo1.doc Aqui, se o arquivo1.doc no existir, ser criado; se existir, ter suas datas e horas (de modificao e acesso) alteradas.
Exemplo: $ cd /exerccios
A figura 39 mostra outro exemplo: o diretrio scanner inicialmente tem 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 diretrio scanner com a data e hora 04/08/2009 19h59m.
Pgina 110
Sistemas Operacionais
Figura 39: uso do comando touch para atualizar data e hora do diretrio scanner.
remove arquivos. rm [opes] <arquivos> Descrio no exibe mensagens de confirmao para eliminar arquivos pede confirmao antes de eliminar apaga recursivamente o contedo de um diretrio e seus subdiretrios exibe o nome de cada arquivo antes de elimin-lo
-v
Exemplos: $ rm arquivo1.doc apaga o arquivo1.doc no diretrio corrente O exemplo da figura 40 apaga o arquivo script, e, se ele fosse um diretrio, apagaria tambm todos seus subdiretrios.
Pgina 111
remove diretrios vazios. rmdir [opes] <diretrio> Descrio remove os diretrios intermedirios se estes estiverem vazios
Exemplos: $ rmdir dir1 dir2 remove os dois diretrios dir1 e dir2 caso estejam vazios $ rmdir p temp1/temp2/temp3/documentos remove o diretrio documentos e os demais temp3, temp2 e temp1 se estiverem vazios. As figuras a seguir ilustram o comando rmdir. Na figura 41 primeiro vamos para o diretrio /tmp com o comando cd /tmp e listamos o seu contedo com o comando ls -l; so mostrados sete diretrios. A seguir criamos o diretrio CEADsistemas com o comando mkdir e de novo listamos o contedo do diretrio /tmp com o comando ls -l. A figura 42 mostra inicialmente o contedo do diretrio /tmp com o comando ls l. Em seguida o diretrio CEADsistemas apagado com o comando rmdir. O comando ls l a seguir mostra que o diretrio CEADsistemas foi removido.
Pgina 112
Sistemas Operacionais
mv:
move um arquivo (ou diretrio) de um diretrio para outro. Caso o mv seja usado dentro do mesmo diretrio, apenas troca o nome do arquivo. mv [opes] <fonte> <destino> Descrio faz backup de arquivos que esto sendo movidos ou renomeados remove arquivos existentes, sem confirmao pede confirmao antes de mover um arquivo que ir sobrescrever outro. exibe o nome do arquivo antes de mov-lo
sintaxe: Opo -b -f -i -v
Exemplos: $ mv /exerccios/origem/arquivo1.doc /exerccios/destino move o arquivo1.doc da pasta /exerccios/origem para a pasta /exerccios/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> podemos especificar o caminho (ou path), que indica em qual diretrio o arquivo fonte est e em qual diretrio o arquivo destino estar.
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 113
A figura 43 mostra o comando mv para mover o diretrio pasta1 para dentro do diretrio /home/joao. O comando sudo antes do mv serve para que o usurio execute o comando como superusurio root.
cp:
copia um ou mais arquivos. O comando cp semelhante ao mv; o mv, aps ser efetuado, apaga o arquivo de origem; o comando cp no o apaga. cp [opes] </caminho/arquivos_fonte> </caminho/ arquivos_destino> Descrio preserva todos os atributos de arquivo faz backup antes de copiar copia um link, mas no o arquivo apontado por este pede confirmao antes de sobrescrever arquivos cria links diretos em vez de copiar arquivos cria links simblicos em vez de copiar arquivos preserva propriedade, permisses e o time stamp do arquivo copia o arquivo criando os subdiretrios indicados copia recursivamente arquivos em todos os subdiretrios copia somente quando os arquivos_fonte so mais novos que os arquivos_destino (isto permite atualizar os backups em menor tempo) exibe o nome do arquivo antes de copi-lo
sintaxe: Opo -a -b -d -i -l -s -p -P -r ou R -u
-v
Exemplos: $ cp /exerccios/origem/arquivo1.doc /exerccios/destino copia o arquivo1.doc da pasta/exerccios/origem para a pasta /exerccios/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 Pgina 114
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Sistemas Operacionais
Voc v, pelos exemplos acima, que em <fonte> e <destino> tambm podemos, assim como no comando mv, especificar o caminho (ou path), que indica em qual diretrio o arquivo fonte est e em qual diretrio o arquivo destino estar. A figura 44 mostra o comando cp efetuando uma cpia de todos os arquivos do diretrio /boot para o diretrio /home/rodrigo. O uso dos caracteres *.* indica: todos os nomes de arquivo com todas as extenses; isto equivale a dizer todos os arquivos do diretrio /boot.
Figura 44: Uso do comando cp sendo utilizado com permisso de superusurio (root) atravs do comando sudo. Copia todos os arquivos do boot para o diretrio rodrigo.
ln:
cria links para arquivos e/ou diretrios. Cria tanto links simblicos (soft links) como diretos (hard links). Por padro = links diretos. ln [opes] <caminho> <nome_link> Descrio cria link simblico cria link direto para diretrio. S pode ser executado pelo superusurio root. fora a criao do link faz backup de cada arquivo de destino existente pede confirmao antes de remover arquivo
sintaxe: Opo -s -d -f -b -i
Pgina 115
Figura 45: Uso do comando ln sendo utilizado com permisso de superusurio (root) atravs do comando sudo. Criando link simblico para o diretrio rodrigo.
ATIVIDADE 13 1. Quais os comandos para manipulao de arquivos e diretrios? E qual a funo de cada comando? 2. Quais os comandos de navegao? Cite suas funes. 3. Crie a estrutura de diretrios turno/noite no /tmp. Escreva o comando utilizado. 4. Copie o arquivo fstab do diretrio /etc para o diretrio /tmp/turno/noite. Escreva o comando. 5. Mova o arquivo fstab do diretrio /tmp/turno/noite para o diretrio /turno. Escreva o comando utilizado. 6. Apague o subdiretrio noite. Escreva o comando utilizado. 7. Mude o nome do arquivo fstab que est no diretrio /tmp/turno, para montar. Qual o comando utilizado? 8. Apague o diretrio /tmp/turno. Qual o comando utilizado? 9. Para que so utilizados os comandos de terminal?
Pgina 116
Sistemas Operacionais
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 117
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 118
Sistemas Operacionais
6.2.1 - Introduo
Ao longo de nossa vida vamos criando vrios arquivos: desde a primeira carta digitada, cada e-mail passado, cada planilha calculada, etc., todos so arquivos que precisamos guardar. Imagine a mesma situao para uma empresa que atende milhares de clientes quantos pedidos, cartas, e-mails, notas fiscais e faturas ou ainda um rgo do governo que atende milhares de usurios dos servios pblicos ou de contribuintes. O nmero de documentos ou papis a guardar, manusear e consultar pode assumir propores imensas, na casa dos milhes e at bilhes. Voc j deve ter mandado o seu programa fazer uma varredura completa em sua mquina. Tente observar, na prxima vez, a quantidade de arquivos que o antivrus reporta que examinou. Mesmo que sua mquina no tenha muita coisa instalada, este nmero facilmente ultrapassa os 50.000. Imagine num ambiente com vrios usurios e vrias aplicaes rodando concorrentemente. necessrio haver alguma organizao no arquivamento destes documentos, caso contrrio no h como localizar uma determinada informao no meio deste caos.
Pgina 119
J vimos que cada coisa que precisamos manter no computador ou se transforma em um arquivo; que cada tipo de arquivo manipulado por um programa especfico e que, geralmente, a extenso ou terminao do arquivo indica o seu tipo e qual programa o manipula. Os arquivos no Linux, assim como no Windows, esto localizados dentro de um drive; por sua vez cada drive est dividido em diretrios. Um diretrio basicamente uma caixa que pode conter arquivos ou outros diretrios. Os diretrios esto localizados em uma rgida estrutura que costumamos chamar de rvore (ver o comando tree no item 6.1.5). O diretrio de nvel mais alto chamado de raiz e representado por uma / (barra inclinada direita); no Windows, a barra inclinada esquerda. Dois arquivos, se estiverem no mesmo diretrio, podem ter nomes iguais, desde que tenham extenses diferentes. Se estiverem em diretrios diferentes, os arquivos podem ter nomes e extenses iguais; com isto, voc pode ter vrias cpias do mesmo arquivo em vrios lugares do mesmo computador. Dois diretrios tambm podem ter nomes iguais, desde que estejam contidos em diretrios-pai diferentes. Ou seja: dentro do mesmo diretrio no se pode ter dois diretrios com o mesmo nome, nem arquivos com mesmo nome e extenso. Para permitir o gerenciamento desses diretrios e seus arquivos, o Linux fornece algumas facilidades de proteo, organizando um nvel de privilgios ou permisses. O gerenciamento de privilgios permite ao administrador do sistema definir polticas para acesso dos usurios e grupos aos arquivos, diretrios e programas executveis do sistema.
Sistemas Operacionais
Dono r w -
Grupo do Dono r - -
Figura 46: esquema bsico de permisses.
Outros r--
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 permisso derivados da umask do dono. UID = nmero de identificao do usurio, user identification. GID = nmero de identificao do grupo, group identification. Os nmeros de ID variam entre 0 e 65535 (intervalo padro tanto no Linux quanto no Windows 216). Quando igual a 0 o usurio possui todas as permisses (superusurio root); quanto maior o nmero, menor o nvel de permisses. As permisses entre 0 e 100 so de usurios do sistema. umask ou user mask Quando o usurio cria um arquivo ou diretrio, o sistema associa ao objeto criado um conjunto de permisses de acesso. Estas permisses indicam quem pode ler, alterar e/ou executar (acessar) o arquivo (diretrio). Estes valores umask so definidos geralmente no arquivo /etc/profile com os seguintes valores: Para o superusurio: # umask 022, Para os demais usurios do sistema: # umask 002.
Por padro, as permisses iniciais so: para um arquivo: 666 (leitura e gravao para todo e qualquer usurio do sistema); para um diretrio: 777 (leitura, gravao e acesso para todo e qualquer usurio do sistema).
Quando um usurio cria um arquivo ou diretrio, o sistema associa a este arquivo ou diretrio as permisses padro menos o valor da umask. Para verificar a configurao atual de umask, basta digitar na linha de comando umask.
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 121
A umask funciona retirando permisses. Por exemplo, para o superusurio: a permisso padro do sistema 666; a umask padro 022; assim a permisso final ser 664 (666 022 = 644). No caso dos usurios comuns do sistema, todo arquivo iniciar sua vida com permisso 664 (666 002 = 664).
As permisses so mostradas na primeira coluna como uma srie de dez caracteres (traos ou letras) com o seguinte significado: o primeiro caractere indica o tipo de arquivo (ver figura 49), os nove caracteres seguintes representam as chaves de permisso. As trs primeiras chaves aplicam-se ao proprietrio do arquivo, as trs seguintes aplicam-se ao grupo ao qual pertence o arquivo e as trs ltimas aos outros usurios.
Cada grupo de trs chaves contm uma chave de leitura r, uma de escrita w e uma de execuo x, nesta ordem. Quando aparece uma letra (r, w ou x) aquela permisso concedida; quando aparece um trao , a permisso negada. Ainda no comando ls, o. (ponto) que aparece na ltima coluna significa o diretrio atual; o.. (ponto ponto) indica o diretrio pai do atual. Estes diretrios so mostrados nas duas primeiras linhas da sada deste comando.
Pgina 122
Sistemas Operacionais
Na primeira linha do nosso exemplo temos (para o diretrio atual): drwxr-x--com o seguinte significado: um diretrio (caractere d), o dono tem todos os direitos (rwx: ler, gravar e executar), o grupo tem os direitos r-x (somente ler e executar), os outros usurios tem os direitos -- (no podem nada).
Na terceira linha do nosso exemplo temos (para o diretrio tmp): drwx-----com o seguinte significado: um diretrio (caractere d), o dono tem todos os direitos (rwx: ler, gravar e executar), o grupo tem os direitos -- (no pode nada), os outros usurios tem os direitos -- (no podem nada).
Na sexta linha do nosso exemplo temos (para o arquivo arq2.doc): -rw-r--r-com o seguinte significado: um arquivo (caractere -), o dono tem os direitos (rw-: ler e gravar; no pode executar), o grupo tem os direitos r-- (somente ler), os outros usurios tem os direitos r-- (somente ler).
A figura 47 mostra o significado dos cdigos rwx para os arquivos e a figura 48 mostra o significado dos mesmos cdigos para os diretrios. Observe que, embora sejam as mesmas letras, tm um significado diferente para os diretrios. Observe tambm que, para os arquivos a permisso x (executar) s tem sentido para arquivos que tenham instrues (programas e scripts). Permisso r w x - Descrio Leitura (copiar, imprimir, visualizar). Escrita (mover, apagar, modificar). Execuo (programas e scripts). Sem permisso.
Figura 47: significados dos cdigos rwx para os arquivos.
Pgina 123
Scripts: so arquivos que contm uma srie 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 diretrio /usr/curso, apagaria o arquivo trabalho1.doc, trocaria o nome de trabalho2.doc para trabalho1.doc e mostraria todo o contedo do diretrio /usr/curso (para voc conferir que existe um arquivo trabalho1.doc e que o trabalho2.doc foi eliminado).
Permisso r w x -
Descrio Permite que voc liste o contedo do diretrio (aceita o comando ls). Permite que voc crie, altere, apague arquivos no diretrio. Permite que voc efetue buscas no diretrio; aceita o comando cd. Sem permisso para o diretrio.
Como j dissemos, na sada do comando ls, o primeiro caractere da primeira coluna indica o tipo de arquivo mostrado naquela linha. A figura 49 mostra o significado dos cdigos que podem aparecer nesta posio. Tipo de arquivo Descrio - d l c b s = arquivos comuns (texto ou executveis) diretrios links simblicos dispositivos de caractere (exemplo: impressoras) dispositivos de bloco (exemplo: discos) soquetes pipes
Pgina 124
Sistemas Operacionais
A figura 50 mostra a sada de um comando ls. A maioria das linhas mostradas se refere a diretrios. Temos, entretanto, dois links (letra l na primeira posio): para o dispositivo de cd e para um arquivo de imagem.
O <modo_arquivo>, abordado na sintaxe, pode ser simblico ou absoluto e tem o seguinte significado.
Pgina 125
Modo simblico uma lista de expresses na forma <identificador><operando> <valor> separadas por vrgula. Identificador: u usurio g grupo o outros a todos Operando: + adiciona permisso s permisses existentes - retira permisso das permisses existentes = assinala explicitamente uma permisso (anulando as outras) Valor: r permisso para leitura w permisso para escrita x permisso para execuo s t bit setuid se atribudo a u (usurio), bit setgid se atribudo a g (grupo) bit sticky
Modo absoluto definido na forma <atributo_especial><dono><grupo><outros> Identificao dos atributos especiais (o atributo especial 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
Pgina 126
Sistemas Operacionais
Para o <dono>, <grupo> e <outros>, podem ser usados os seguintes cdigos: 0 nenhuma permisso 1 permisso para execuo 2 permisso para escrita 3 permisso para execuo e escrita 4 permissopara leitura 5 permisso para execuo e leitura 6 permisso para leitura e escrita 7 permisso para leitura, escrita e execuo
Exemplos: $ chmod u+x script adiciona permisso de execuo pelo dono ao arquivo script. $ chmod u+wx, g-w, o=r script adiciona permisso de execuo e escrita para o dono, retira permisso de escrita para o grupo e, para os outros usurios, permite apenas leitura. $chmod 750 teste permite leitura, escrita e execuo para o dono (7), leitura e execuo para o grupo (5) e nenhuma permisso aos outros no arquivo teste (0). $chmod 1777 /home/samba/share liga o bit sticky do diretrio e d permisso para leitura, escrita e execuo para todos os usurios.
A figura 51 executa o comando do exemplo: chmod 750 teste em modo absoluto, que permite leitura, escrita e execuo para o dono, leitura e execuo para o grupo e nenhuma permisso aos outros, no arquivo teste. Como no foi usada a opo c, nada mostrado como resultado do comando.
Pgina 127
A figura 52 executa o comando: chmod u+x script em modo relativo, que adiciona permisso de escrita e execuo ao dono; para o arquivo script. Como no foi usada a opo c, nada mostrado como resultado do comando.
muda o dono de um arquivo chown [opes]<novo_dono[.novo_grupo]><arquivo> Descrio exibe informaes sobre os arquivos modificados no imprime mensagens de erro recursivo. Muda o grupo de todos os arquivos e subdiretrios abaixo do especificado descreve detalhadamente as alteraes de atributos
-v
Exemplos: $ chown maria monografia.doc s muda o proprietrio $ chown maria.teses monografia.doc muda o proprietrio e o grupo A figura 53 mostra a mudana do dono e do grupo para o arquivo script.
Figura 53: comando chown sendo utilizado com permisso de superusurio (root) atravs do comando sudo; novo dono joao, o novo grupo Informatica, para o arquivo script.
Pgina 128
Sistemas Operacionais
muda o grupo de um arquivo chgrp [opes]<novo_grupo><arquivo> Descrio exibe informaes sobre os arquivos modificados no imprime mensagens de erro recursivo. Muda o grupo de todos os arquivos e subdiretrios abaixo do especificado descreve detalhadamente as alteraes de atributos
-v
Em nossos exemplos utilizamos os comandos chmod, chown e chgrp apenas para arquivos. Entretanto, possvel aplic-los para diretrios. Alm disto, as mudanas aplicadas em diretrios tambm podem ser aplicadas recursivamente, ou seja, podem alterar todos os arquivos e diretrios contidos no diretrio e em seus subdiretrios. Para isto, basta usar os comandos com o parmetro -R. S quem pode mudar as permisses de um arquivo ou diretrio o seu dono ou o superusurio (root).
ATIVIDADE 14 1. As permisses de arquivos so organizadas em trs classes de privilgios, quais so essas classes? 2. Quais so os nveis de permisso que cada classe de privilgios possui? 3. O que significam os atributos l r w x r w - r - - de um arquivo chamado linux.txt? 4. O que significam os atributos d r w x r - x - - - para um arquivo? 5. Escreva o comando utilizado para mudar o dono e o grupo do arquivo linux.txt para: usurio linux e grupo linux?
Pgina 129
6. Crie no /tmp um diretrio de nome atalho. Qual o comando para criar um link simblico do arquivo teste.txt com o nome atividades dentro do diretrio que acabamos de criar? 7. Qual o comando usado para permitir a leitura do arquivo teste.txt por todos os usurios 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 so os comandos de gerenciamento de privilgios? Cite suas funes. 10. O que significam os atributos d r w x r - x r - x? 11. O que a permisso padro?
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 130
Sistemas Operacionais
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 131
Pgina 132
Sistemas Operacionais
Item Descrio Login Nome do usurio, que deve ser nico. Password Senha utilizada pelo usurio para obter acesso ao sistema. UID User Identification identificao do usurio. Esse nmero usado em conjunto com o nome do login para permitir o acesso do usurio ao sistema. GID Group Identification o nmero de identificao do grupo ao qual o usurio pertence. Comment Descrio do usurio. Geralmente o nome completo do usurio. Home Diretrio default do usurio quando ele acessa o Directory sistema. Aqui so guardados os seus arquivos de Path configurao pessoal, bem como seus outros arquivos pessoais. Shell Geralmente um Shell de comandos como o bash. Cada usurio pode ter um shell diferente.
Tabela 1 Dados que caracterizam um usurio Linux
Item
Descrio
Name Nome do grupo, que deve ser nico. Password Um grupo pode ter uma senha para controlar o seu acesso. Na maioria dos casos no necessria, tendo em vista a existncia da senha do usurio. GID User List Group Identification nmero de identificao do grupo. uma lista dos usurios que fazem parte do grupo.
Tabela 2 Dados que caracterizam um grupo Linux
Para o gerenciamento de usurios e grupos o Linux utiliza uma srie de arquivos de configurao localizados no diretrio /etc: Nos arquivos /etc/passwd e /etc/shadow encontramos as informaes pertinentes aos usurios cadastrados nos sistema; No arquivo /etc/group esto guardadas as informaes sobre os grupos existentes no sistema; Os arquivos /etc/default/useradd e /etc/login.defs so utilizados pelo comando useradd na criao de usurios novos; O diretrio /etc/skel contm os arquivos com o padro utilizado na criao de um usurio.
Pgina 133
Descrio diretrio home do usurio que est sendo criado. comentrio. grupo ao qual o usurio pertence. grupos extras dos quais o usurio ser membro. programa que o usurio utilizar ao entrar no sistema (normalmente um Shell). -e <mm/dd/aa> especifica a data na qual a conta ser desabilitada. -f <numdias> indica quantos dias aps a expirao da senha a conta ser desabilitada. Exemplos: #adduser unix cria um novo usurio de nome unix. #useradd linux cria um novo usurio de nome linux. #adduser linus -d /home/linus -c Linus Torvalds g gnu -s /bin/bash cria um novo usurio de nome linus; define o diretrio default em /home/linus; cadastra o seu nome como comentrio; define o seu grupo gnu; define o seu shell de comandos. A figura 54 mostra a criao do usurio rodrigo por um outro usurio comum (por isto o comando useradd utilizado com permisso de superusurio atravs do comando sudo). A opo d ou -m cria o diretrio do novo usurio /home/rodrigo.
Figura 54: criao do usurio rodrigo por outro usurio, definindo seu diretrio de trabalho.
Pgina 134
Sistemas Operacionais
chage: sintaxe:
muda informaes de expirao de senha de um usurio. chage <usurio> [opes] Descrio exibe informaes de expirao de senha de um usurio nmero mximo de dias at que a senha expire nmero mnimo de dias entre alteraes de senha. O valor zero indica que o usurio pode alterar sua senha a qualquer momento. data da ltima alterao da senha nmero de dias entre a expirao da senha e o bloqueio da conta do usurio. data de expirao da conta do usurio. indica o nmero de dias anteriores expirao da senha que o usurio deve ser notificado.
Opo -l -M < numdias > -m < numdias > -d < mm/dd/aa > -l < numdias > -E <mm/dd/aa> -W <numdias>
Exemplo: # chage maria -l mostra quando expirar a senha do usurio maria. A figura 55 mostra o comando chage (utilizado com permisso de superusurio sudo) exibindo informaes de expirao de senha (opcao l) do usurio rodrigo.
Figura 55: comando chage exibindo informaes de expirao de senha do usurio rodrigo.
passwd: sintaxe:
Exemplo: #passwd linus define linus como a senha para o usurio atual A figura 56 mostra a senha do usurio rodrigo sendo trocada por outro usurio com permisses de superusurio.
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 135
Como j dissemos, as informaes dos usurios cadastrados ficam no arquivo /etc/passwd. H uma entrada para cada usurio com o seu login, UID, GID, o diretrio home e o shell usado. Exemplo: joao:x:1001:1001:,,,:/home/joao:/bin/bash Inicialmente as senhas eram salvas no prprio arquivo / etc/passwd, o que permitia abertura para diversos tipos de ataque. A partir de 1996 todas as distribuies 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: modifica caractersticas de um usurio. sintaxe: usermod <opes> <usurio> Opo Descrio novo comentrio. novo diretrio home do usurio que est sendo modificado. novo programa que o usurio utilizar ao entrar no sistema (normalmente um Shell). novo login do usurio. novo grupo. especifica a data na qual a conta ser desabilitada. indica quantos dias aps a expirao da senha a conta ser desabilitada. novo UID.
Pgina 136
Sistemas Operacionais
-L -U
insere um caracter l na frente da senha criptografada, desabilitando a senha do usurio. remove o caracter l da senha criptografada, habilitando a senha do usurio.
Exemplos: #usermod -l linust linus atribui ao atual usurio linus um novo login, linust. #usermod -c criador do Linux linus acrescenta um comentrio ao usurio com login linus Observe que algumas opes so as mesmas utilizadas no comando useradd. A figura 57 mostra o usurio rodrigo sendo inserido no grupo alunos por um outro usurio com permisso de superusurio pelo comando sudo.
elimina um usurio do sistema. userdel <opo> <usurio> Descrio remove todos os arquivos do usurio, incluindo seu diretrio home.
Exemplo: #userdel -r linust elimina o usurio linust. finger: sintaxe: Opo -l -s exibe informaes sobre usurios locais ou remotos. finger [opes] [usurio] Descrio sada em formato detalhado sada em formato simples
Exemplos: $ finger root exibe informaes sobre o usurio root $ finger pinguin@linux.org.br exibe informaes sobre um usurio remoto
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Pgina 137
exibe identificador do usurio. id [opes] Descrio exibe apenas o identificador efetivo do usurio exibe apenas o identificador de grupo efetivo do usurio
Exemplos: $ id $ id -u chfn: sintaxe: muda as informaes de um usurio. chfn [opes] [usurio] Descrio especifica o nome completo do usurio especifica a localizao do usurio especifica o telefone de trabalho do usurio especifica o telefone de residncia do usurio
Exemplo: # chfn -f Linus Torvalds linus cadastra um nome para o usurio linus.
Pgina 138
Sistemas Operacionais
Opo Descrio -g <GID> nmero 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 figura 58 mostra a criao do grupo Informatica por um usurio com poderes de root.
Figura 58: comando groupadd, utilizado com permisso de superusurio, cria o grupo Informatica.
gpasswd: sintaxe:
define senha para um grupo e permite outras funes de administrao de usurios e grupos. gpasswd [opes] [usurio] <grupo>
Opo Descrio -a adiciona usurio ao grupo. -d exclui usurio do grupo. -r remove senha do grupo. -A -M define administrador do grupo. define membros do grupo.
Pgina 139
Exemplos: # useradd mariana cria um novo usuario mariana. # passwd mariana atribui uma senha (a ser digitada) ao usurio mariana. # gpasswd laboratorio define senha do grupo laboratorio. # gpasswd -a mariana laboratorio adiciona o usurio mariana ao grupo laboratorio. # gpasswd d mariana laboratorio exclui o usurio mariana do grupo laboratrio. # gpasswd r laboratorio remove senha do grupo laboratorio.
A atribuio de senhas para grupos no funciona em algumas distribuies Linux. Neste caso, o comando gpasswd usado para incluir ou excluir usurios em um determinado grupo, atravs das opes a e d. groupmod: modifica as caractersticas de um grupo. sintaxe: groupmod <opes> <grupo> Opo Descrio -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 laboratrio para microondas
groupdel: remove um grupo do sistema. sintaxe: groupdel <grupo> Exemplo: # groupdel sistemas elimina o grupo sistemas.
Pgina 140
Sistemas Operacionais
groups:
exibe os grupos de um usurio. Se nenhum usurio for especificado, mostrar informaes sobre o usurio que executou o comando groups [usurio]
sintaxe:
Exemplo: $ groups exibe os grupos dos quais o usurio corrente participa. $ groups root exibe os grupos dos quais o usurio root participa. A figura 59 exibe os grupos a que o usurio rodrigo possui acesso: alunos e Informatica.
Figura 59: comando groups, utilizado com permisso de superusurio, exibe os grupos a que o usurio Rodrigo possui acesso: alunos e Informatica.
troca de grupo. Se o novo grupo no for especificado, o novo grupo ser o grupo de login do usurio. newgrp [novo_grupo]
$ newgrp laboratorio o usurio atual muda para o grupo laboratrio. $ exit o usurio atual retornar ao seu grupo de origem.
Exemplo: $ users
Pgina 141
A figura 60 mostra o uso do comando users : esto logados os usurios aluno e rodrigo.
w: sintaxe: Opo
-h no mostra o cabealho na sada. -l sada formato detalhado. -s sada formato simples. Exemplo: $ w who: sintaxe: exibe quem est utilizando os terminais who [opes]
Opo Descrio -m o mesmo que whoami (mostrado adiante). -q mostra todos os usurios e o nmero (quantidade) de usurios logados. Exemplos: $ who mostra todos os usurios logados. $ who -q mostra todos os usurios logados e a sua quantidade total mostra o UID do usurio. whoami
whoami: sintaxe:
Pgina 142
Sistemas Operacionais
O comando sudo a seguir permite a um usurio comum executar comandos privativos do administrador do sistema, como j utilizamos em vrios exemplos deste captulo. Entretanto, o usurio comum s pode executar os comandos que lhe foram permitidos atravs do arquivo de configurao do sudo, que o /etc/sudoers. Este arquivo editado pelo comando visudo.. sudo: executa comandos como superusurio. sintaxe: sudo [opes] [comando] Opo Descrio -l lista os comandos permitidos e proibidos para o usurio. -h exibe mensagem de ajuda. Exemplos: $ sudo l lista os comandos permitidos e proibidos para o usurio. $ sudo -h lista a ajuda do comando
6.3.5 - Exemplos
Criando um usurio com o poder do root Crie o usurio: # useradd alexandre cria o usurio alexandre # passwd alexandre atribui uma senha a ser digitada a alexandre
Edite o arquivo /etc/passwd com um editor de texto e modifique o UID e o GID do usurio alexandre para 0. Com esta alterao, o usurio alexandre ter as permisses do root: o UID 0 do usurio 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 usurio Edite o arquivo /etc/passwd com um editor de texto e comente a linha referente ao usurio a ser congelado. Ao inserir o caracter Pgina 143
# antes da linha correspondente ao usurio, este no 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 usurio manualmente Edite o arquivo /etc/passwd com um editor de texto comum e apague a linha referente ao usurio a ser removido. Edite o etc/group com um editor de texto comum e apague as linhas referentes ao usurio a ser removido. Edite o etc/shadow com um editor de texto comum e apague as linhas referentes ao usurio a ser removido. Remova o diretrio home do usurio (se existir).
Para concluir o aprendizado, abra uma sesso do Linux no seu computador e caso ela seja iniciada na interface grfica, abra um terminal e exercite os comandos que voc estudou neste captulo. Na atividade a seguir, alm de questes tericas, voc tambm encontrar um roteiro para exercitar os comandos. Bom estudo!
ATIVIDADE 15 1. Relacione as colunas: A - login ( ) usurios que fazem parte do grupo. B - password ( ) local onde o usurio ser posicionado ao entrar no Linux. C - user list ( ) nome associado ao usurio dentro do sistema. D - home directory ( ) senha de acesso ao Linux.
Pgina 144
Sistemas Operacionais
2. Observe os dados listados nas tabelas 1 e 2 e descreva a diferena existente entre o que representa o GID na informao de um usurio e o GID na informao de um grupo. ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
3. Faa uma lista dos comandos vistos neste captulo descrevendo a finalidade de cada um deles. ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 145
4. Abra uma sesso de terminal do Linux e complete o roteiro que segue: (para poder realizar esta sequncia preciso que voc faa parte do grupo root ou adm preciso ter privilgios de administrador) A Crie um novo usurio com o nome alunoxx (o xx dever ser igual aos dois ltimos caracteres do seu login), informando um UID, um diretrio de trabalho e um shell. B Adicione este usurio ao grupo user. C Crie um grupo com o nome grupoxx (onde o xx deve ser o mesmo atribudo ao alunoxx). D Adicione o usurio alunoxx ao grupo grupoxx. E Modifique a data de expirao da senha do alunoxx para o prximo sbado. F Modifique o comentrio correspondente as informaes do usurio alunoxx. G Modifique o login de alunoxx para axxluno. H Liste o contedo do arquivo /etc/passwd e identifique a linha correspondente ao usurio criado. I Utilize um editor de textos para editar o arquivo / etc/passwd e bloqueie o usurio criado. J Execute o comando para exibir na tela do terminal as informaes sobre o usurio criado. K Exclua o usurio criado. L Defina uma senha para o grupo grupoxx. M Exclua o grupo grupoxx. ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ Pgina 146
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES
Sistemas Operacionais
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Pgina 147
___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________
Referncias
DEITEL, H.M. Sistemas Operacionais, 3a edio. Editora Pearson Prentice Hall. So Paulo. 2005. Guia Oficial do Ubuntu. Disponvel em https://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 edio. Editora Pearson Prentice Hall. So Paulo. 2009. Pgina 148
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES