Вы находитесь на странице: 1из 148

RIKA LOPES VILELA

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.

Conceitos importantes. Fique atento!

Atividades que devem ser elaboradas por voc, aps a leitura dos textos.

Indicao de leituras complementares, referentes ao contedo estudado.

Destaque de algo importante, referente ao contedo apresentado. Ateno!

Reflexo/questionamento sobre algo importante, referente ao contedo apresentado.

Espao reservado para as anotaes que voc julgar necessrias.

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

1. VISO GERAL DE SISTEMAS OPERACIONAIS


Caro Aluno, Voc j viu no semestre anterior ou em outras matrias que o computador s trabalha executando programas e que exatamente para isto que ele serve. Neste captulo, vamos comear o estudo do principal programa executado pelos computadores, o Sistema Operacional. Vamos iniciar conceituando os sistemas operacionais e mostrando as diversas camadas que os compem. Um pouco de sua histria tambm ajudar a fixar estes conceitos. Assim, leia atentamente e no deixe de entender as explicaes apresentadas; a compreenso dos conceitos estudados em um captulo a base para o entendimento dos captulos posteriores. Bons estudos!

1.1. CONCEITOS BSICOS


Diferentemente do que muitas pessoas imaginam, o computador no faz nada sozinho. Ele apenas processa uma srie de informaes inseridas pelo usurio para ento fornecer os resultados. As informaes inseridas e os resultados que recebemos precisam estar num formato que ns humanos conseguimos entender. Para facilitar essa comunicao entre homem e computador, foram criados os softwares ou programas de computador. Na realidade, tudo que fazemos com um computador atravs da execuo destes programas. Segundo o Aurlio (verbete sistema), sistema operacional um conjunto integrado de programas bsicos, projetado para supervisionar e controlar a execuo de programas de aplicao em um computador. J para Silberschatz, um sistema operacional um programa que atua como intermedirio entre o usurio e o hardware de um computador. O propsito de um sistema operacional propiciar um ambiente no qual o usurio possa executar outros programas de forma conveniente, por esconder detalhes internos de funcionamento e eficiente, por procurar gerenciar de forma justa os recursos do sistema. [Fonte: Silberschatz, Galvin e Gagne, 2000. Adaptao. Captulo 1 Pgina 3]

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 9

Curso Tcnico em Informtica

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.

Figura 1: Viso do Sistema Operacional Fonte: Machado e Maia, 2004. Adaptao

1.2. funes Principais


Na figura 1 foi destacado o controle do hardware. Esta uma das funes bsicas do SO e pode ser desmembrada em:

Pgina 10

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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

Curso Tcnico em Informtica

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.

Figura 2: O SO a interface entre o hardware e os programas executados pelo usurio

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

1.3. MQUINA DE NVEIS


A linguagem entendida pelo computador uma linguagem binria de difcil entendimento pelos seres humanos, sendo chamada de linguagem de baixo nvel ou de mquina. As linguagens mais prximas aos seres humanos so classificadas como linguagens de alto nvel. Os computadores entendem apenas programas feitos em sua linguagem binria. Os seres humanos, no entanto, elaboram programas em linguagens de alto nvel. Um computador visto somente como um gabinete composto de circuitos eletrnicos, cabos e fontes de alimentao (hardware) no tem nenhuma utilidade. atravs de programas (software) que o computador consegue armazenar dados em discos, imprimir relatrios, gerar grficos, realizar clculos, entre outras funes. O hardware o responsvel pela execuo das instrues de um programa, com a finalidade de se realizar alguma tarefa.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 13

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

Alto Nvel

Baixo Nvel

Figura 4: O computador como mquina de nveis

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

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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

Curso Tcnico em Informtica

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

Curso Tcnico em Informtica

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 ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________ ________________________________________________

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 21

Curso Tcnico em Informtica

1.5. Tipos de SISTEMAS OPERACIONAIS


Os tipos de sistemas operacionais e sua evoluo esto relacionados diretamente com a evoluo do hardware e das aplicaes por ele suportadas e podem ser classificados da seguinte forma:

Figura 6: Tipos de sistemas operacionais Fonte: Machado e Maia, 2004. Adaptao.

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

Figura 7: Sistema monoprogramvel ou monotarefa. Fonte: Machado e Maia, 2004. Adaptao.

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!

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 23

Curso Tcnico em Informtica

Figura 8: Sistema multiprogramvel ou multitarefa. Fonte: Machado e Maia, 2004. Adaptao.

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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? ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 25

Curso Tcnico em Informtica

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Pgina 26

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

2. CONCEITOS DE HARDWARE E SOFTWARE


Caro Aluno, Voc viu no captulo anterior as principais funes dos SOs. Neste captulo vamos revisar uma srie de conceitos de hardware e software; esses conceitos devero ser relembrados, pois so base para o entendimento do funcionamento e das diversas partes que compem os SOs. Mais uma vez, parte destas explicaes foi dada na matria de Fundamentos de Hardware. Aproveite para fazer uma releitura com outros olhos. Bons estudos!

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.

2.1.1 - Unidade Central de Processamento (CPU)


A CPU tem como funo principal unificar todo o sistema, controlando as funes realizadas em cada unidade funcional. responsvel pela execuo de todos os programas, que obrigatoriamente devero estar armazenados na memria principal. A unidade central de processamento dividida em dois componentes bsicos: Unidade de controle e Unidade lgica e aritmtica.

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

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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

Curso Tcnico em Informtica

(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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

2.1.3 - Dispositivos de entrada e sada


Permitem a comunicao entre o computador e o mundo externo. Alguns dispositivos servem para a comunicao homem-mquina, como teclados, monitores de vdeo, impressoras, plotters, entre outros. A implementao de interfaces mais amigveis permite cada vez mais que pessoas sem conhecimento especfico sobre informtica possam utilizar o computador. Scanner, caneta tica, mouse, dispositivos sensveis voz humana e etc. so alguns exemplos desses tipos de dispositivos. Voc talvez j tenha visto citar unidades de CD, DVD e etc. como unidades de entrada e sada. E isto est correto, pois realmente estas unidades permitem entrada e sada de dados do computador. Por outro lado, a bolacha do CD ou DVD uma memria externa, pois nela ficam permanentemente gravados os dados.

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.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 31

Curso Tcnico em Informtica

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Pgina 32

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

2.1.4 - Outros componentes e conceitos


Barramento A CPU, a memria principal e os dispositivos de E/S so interligados atravs de linhas de comunicao denominadas barramentos, barras ou vias. Um barramento um conjunto de fios paralelos (linhas de comunicao), onde trafegam informaes, como dados, endereos ou sinais de controle. Um esquema grfico de um barramento mostrado na figura 11. O barramento pode ser classificado como unidirecional (transmisso em um s sentido) ou bidirecional (transmisso em ambos os sentidos). Existem trs tipos de barramentos, que se diferenciam uns dos outros de acordo com o que transportam: Barramento de dados: transmite informaes entre a memria principal e a unidade central de processamento; Barramento de endereos: utilizado pela unidade central de processamento para especificar o endereo da clula de memria que ser acessada; Barramento de controle: por onde a unidade central de processamento envia os pulsos de controle relativos s operaes de leitura e gravao.

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

Curso Tcnico em Informtica

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

2.2.1 - Conceito de software utilitrio


Antigamente havia uma distino mais ntida entre os aplicativos e os utilitrios, pois havia um personagem a mais no cenrio: o operador do computador. Este executava algumas atividades especficas, como copiar de fita para disco e vice-versa ou operar as impressoras. Para executar estas atividades o operador precisava de uma srie de programas, como, por exemplo, um programa para localizar um arquivo no computador. A maioria dos programas requeridos pelo operador era chamada de utilitrios. Hoje em dia continua a existir um conjunto de programas, utilizados como interface entre o usurio e o hardware. O termo utilitrio , assim, uma referncia a softwares relacionados com servios do sistema operacional, como os compiladores, linkers, depuradores e outros.

2.2.2 - Software de apoio programao


Tradutores, compiladores e montadores Com o surgimento das primeiras linguagens de montagem (Assembly) e as linguagens de alto nvel, o programador passou a se preocupar menos com aspectos de hardware e a escrever em uma linguagem mais prxima da linguagem humana. Apesar das vantagens proporcionadas pelas linguagens de montagem e de alto nvel, que propiciaram um aumento enorme na produtividade dos programadores, os programas no esto prontos para serem executados diretamente pela CPU. Eles devero passar por uma etapa de converso, quando a codificao do programa traduzida para cdigo de mquina. esta a funo do tradutor. O tradutor gera um mdulo objeto, que, apesar de estar em cdigo de mquina, ainda no est preparado para ser executado (isto ser conseguido pelo linker ver adiante). O tradutor, pelo tipo de linguagem de programao utilizada, pode ser chamado de montador ou compilador: A denominao montador ocorre quando gerado o mdulo objeto a linguagem de mquina a partir de uma linguagem de montagem (assembler). A denominao compilador dada ao utilitrio responsvel por gerar, a partir de um programa escrito em linguagem de alto nvel (Cobol, C, Delphi, etc.), um programa em linguagem de mquina (mdulo objeto).

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 35

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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

Curso Tcnico em Informtica

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.

O processo completo de compilao, linkedio e carga de um programa mostrado na figura 14.

Figura 14: As vrias etapas do desenvolvimento e processamento de um programa. Fonte: Silberschatz, Galvin e Gagne, 2000. Adaptao.

Pgina 38

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

2.2.3 - Linguagem de controle


Denominada, tambm, de linguagem de comando, a forma mais direta de um usurio se comunicar com o sistema operacional. oferecida por todos os SO para que, atravs de comandos simples, o usurio possa ter acesso a rotinas especficas do sistema. Os comandos, quando digitados (ou executados) pelo usurio, so interpretados por um programa denominado interpretador de comandos ou shell. A linha de comando reconhecida, o shell verifica sua sintaxe, envia mensagens de erro e faz chamadas de rotinas dos sistemas. O usurio dispe assim, de uma interface interativa direta com o sistema operacional, para realizar tarefas bsicas como acessar um arquivo em disco ou consultar um diretrio. As linguagens de controle evoluram no sentido de permitir uma interao mais amigvel, utilizando interfaces grficas, colocando os programas em uso em janelas e utilizando cones para comunicao com o usurio. Quando voc cria uma pasta, renomeia ou apaga um arquivo, clica em cima de uma planilha ou texto para edit-los, voc est interagindo com o shell e utilizando recursos desta linguagem de comando.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 39

Curso Tcnico em Informtica

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.

2.2.4 - Programas de sistema ou Utilitrios


Os utilitrios tambm so chamados comumente programas de sistema. Os SO mais modernos vm aumentando a coleo destes tipos de programas. Voc deve lembrar que h pouco tempo atrs voc precisava de um programa especfico para gravar arquivos em CDs e DVDs e para assistir um filme. Hoje estas funes esto embutidas no SO. Os programas de sistema fornecem um ambiente conveniente para a execuo de uma srie de tarefas de uso do computador ou de perifricos especficos. Alguns deles so simplesmente interfaces de usurio s chamadas ao sistema; outros so consideravelmente mais complexos. Podem ser divididos em categorias tais como: Gerncia de arquivos: Estes programas criam, excluem, copiam, renomeiam, imprimem, listam e geralmente manipulam arquivos e diretrios. Precisam trabalhar com diversos tipos de mdia: CD, DVD, HD, disquete, pendrive, etc. Informaes de status: Simplesmente pedem ao sistema informaes relativas ao status da mquina ou de perifricos: data, hora, quantidade de memria ou espao em disco disponvel, nmero de usurios conectados, nmero de documentos aguardando impresso e outras informaes semelhantes. Modificao de arquivo: Vrios editores de texto podem estar disponveis para criar e modificar o contedo dos arquivos armazenados em disco, fita ou outro tipo de mdia. Comunicaes: Esses programas oferecem o mecanismo para criar conexes virtuais entre processos, usurios e diferentes sistemas de computao. Permitem aos usurios enviar mensagens s telas uns dos outros, navegar pelas pginas da web, efetuar logon remotamente ou transferir arquivos de uma mquina para outra. Spooling: permitem manipular a fila de impresso de documentos em uma ou mais impressoras ligadas ao sistema.

Pgina 40

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

2.2.5 - Linguagem de mquina


Todos os programas, para serem processados, precisam estar em linguagem de mquina. Esta a linguagem que o processador realmente consegue entender. Um programa em linguagem de mquina totalmente codificado em formato binrio, o que torna praticamente impossvel o entendimento pelo usurio. O programa em linguagem de mquina pode ser diretamente processado pela unidade central de processamento (CPU) no requerendo qualquer tipo de traduo ou relocao. Um programa em linguagem de mquina no pode ser executado em outra mquina de modelo diferente, nem em outro SO. Cada processador possui um conjunto nico de instrues de mquina previamente definido pelo fabricante. Estas instrues especificam detalhes como registradores, modos de endereamento de memria, tipo de dados que caracterizam um processador e suas potencialidades. Por sua vez, cada SO tem um grupo de instrues especfico, chamada API application program interface que os compiladores usam para traduzir as instrues escritas na linguagem de alto nvel para a linguagem entendida pelo linker. Isto faz com que um programa compilado em Linux no funcione com Windows; ou que um programa compilado em um PC no funcione em um Apple. Uma tentativa de transformar os programas independentes do SO e do modelo do equipamento a plataforma Java. Pesquise mais sobre isto.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 41

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 43

Curso Tcnico em Informtica

2.3. Concorrncia (interrupo e operaes de E/S)


Prezado Aluno, Vimos em sistemas multiprogramveis que os recursos computacionais so compartilhados entre diversos usurios e aplicaes. Nesta sesso voc estudar como o sistema operacional gerencia este compartilhamento. Veremos o conceito de concorrncia entre vrios programas, o mecanismo de interrupo e as operaes de entrada e sada. D bastante ateno ao mecanismo de interrupes, um dos principais responsveis pela multiprogramao. Bons estudos!

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.

2.3.2 - Mecanismo de Interrupo


Durante a execuo de um programa, alguns eventos inesperados podem ocorrer, interrompendo o seu fluxo normal de execuo e ocasionando um desvio forado. Estes eventos so conhecidos por interrupo ou exceo e podem ser conseqncia da sinalizao de algum dispositivo de hardware externo ao processador ou da execuo de instrues do prprio programa. Pgina 44
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

Figura 15: Mecanismo de interrupo. Fonte: Machado e Maia, 2004. Adaptao.

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

Curso Tcnico em Informtica

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.

2.3.3 - Operaes de entrada e sada (E/S)


Nos primeiros sistemas de computao, os perifricos eram controlados pelo processador por meio de instrues especiais, chamadas instrues de E/S. Essas instrues continham detalhes especficos de cada perifrico. Devido a isso, esse modelo criava uma forte dependncia entre o processador e os dispositivos de E/S. Para evitar esse problema, criou-se o controlador ou interface (figura 16), que permitiu ao processador operar de maneira independente dos dispositivos de E/S. Com esse novo elemento, o processador no precisava mais se comunicar diretamente com os perifricos, nem conhecer detalhes de operao especficos de cada perifrico. Com isso, foram muito simplificadas as instrues de E/S do processador.

Pgina 46

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 47

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 49

Curso Tcnico em Informtica

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Pgina 50

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

3. ESTRUTURA DO SISTEMA OPERACIONAL


Caro Aluno, No captulo anterior apresentamos os primeiros conceitos relativos ao SO. Este captulo continua a aprofundar estes conceitos. Alguns parecem estar at repetidos, mas na realidade sempre so abordados sob um ou mais aspectos diferentes. Assim, leia atentamente e no deixe de entender as explicaes apresentadas, pois os conceitos esto amarrados uns nos outros e a falta de um poder prejudicar no entendimento futuro de outros. Bons estudos!

Um sistema operacional fornece o ambiente no qual os programas 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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Curso Tcnico em Informtica

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.

3.1. SISTEMAS EM LOTE E MULTIPROGRAMAO


J vimos que o sistema operacional atua como gerente de recursos que so oferecidos pelo computador. Estes recursos podem ser tempo de CPU (processamento), espao de memria, espao de armazenamento de arquivos, recursos dos dispositivos de entrada/sada (E/S), entre outros. Podemos considerar o sistema operacional como um alocador de recursos. O desenvolvimento dos sistemas operacionais e a evoluo da arquitetura dos computadores foram mutuamente influenciados: para facilitar o uso do hardware, os pesquisadores desenvolveram sistemas operacionais; por sua vez, mudanas no projeto de hardware influenciaram a criao e uso dos sistemas operacionais.

3.1.1 - Sistemas em lote (batch)


Os primeiros computadores eram mquinas dependentes de um operador. Os dispositivos de entrada comuns eram leitoras de cartes e unidades de fita e os de sada eram impressoras, unidades de fita e perfuradoras de cartes.

Pgina 52

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

3.1.2 - Escalonamento de tarefas e multiprogramao


A introduo da tecnologia de disco permitiu que o sistema operacional mantivesse todas as tarefas (jobs) em um disco, em vez de em uma leitora de cartes serial. Surge ento o conceito de escalonamento de tarefas e posteriormente de multiprogramao.
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 53

Curso Tcnico em Informtica

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.

Figura 18: Sistema multiprogramvel ou multitarefa Fonte: Machado e Maia, 2004.

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

3.1.3 - Sistemas de tempo compartilhado


Os sistemas em batch multiprogramados forneciam um ambiente no qual os vrios recursos do sistema como por exemplo a CPU, memria e dispositivos perifricos, eram utilizados de forma eficaz, mas no permitiam a interao do usurio com o sistema de computao. Tempo compartilhado (time sharing) ou multitarefa uma extenso da multiprogramao: a CPU executa vrios jobs alternando entre eles (multiprogramao), mas as trocas ocorrem com tanta frequncia que o usurio pode interagir com seu programa como se tivesse uma mquina exclusiva para ele. Assim se permite a comunicao direta entre o usurio e o sistema. Devido a esse tipo de interao, os sistemas de tempo compartilhado tambm ficaram conhecidos como sistemas on-line ou de tempo real (real time). O usurio passa instrues ao sistema operacional ou a um programa diretamente, usando o teclado ou um mouse e espera por resultados imediatos. O tempo de resposta deve ser curto. Um sistema operacional de tempo compartilhado permite que muitos usurios compartilhem o computador ao mesmo tempo. Como cada ao ou comando em um sistema de tempo compartilhado tende a ser curto, apenas um pequeno tempo de CPU necessrio para cada usurio. Como o sistema alterna rapidamente de um usurio para outro, cada usurio tem a impresso de que todo o sistema de computao est dedicado a ele, enquanto, na verdade, o computador est sendo compartilhado por muitos usurios.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 55

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

3.2. Servios de Sistemas Operacionais


Um outro enfoque que pode ser dado ao estudo dos sistemas operacionais encarar o SO como um prestador de servios: um sistema operacional fornece um ambiente para a execuo de programas, ou seja: fornece certos servios a programas e aos usurios destes programas. Este enfoque interessante pois, frequentemente, voc ver na literatura abordagens das funes ou estrutura do SO como servios. Estes servios podem ser assim classificados: Execuo de programa: o sistema deve ser capaz de carregar um programa na memria e executar esse programa. Tambm deve ser capaz de encerrar a sua execuo, quer de forma normal ou anormal (indicando erro). Operao de E/S: um programa em execuo pode precisar de E/S. Essa operao de E/S pode envolver um arquivo ou dispositivo de E/S. Portanto, o sistema operacional deve fornecer os meios para realizar as operaes de E/S. Manipulao do sistema de arquivos: os programas precisam ler e gravar arquivos, criar e excluir arquivos por nome; essas atividades devem ser gerenciadas pelo sistema operacional. Comunicao: existem muitas circunstncias nas quais um processo precisa trocar informaes com outro processo. Essa comunicao entre processos pode ocorrer com processos em um mesmo computador ou entre processos que esto executando em diferentes sistemas de computao ligados por uma rede. As comunicaes podem ser implementadas via memria compartilhada ou pela tcnica de troca de mensagens, na qual pacotes de informaes so movidos entre processos pelo sistema operacional. Pgina 57

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Curso Tcnico em Informtica

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.

3.3. MODOS DE ACESSO E SYSTEM CALLS


3.3.1 - Modos de acesso
Vimos que os programas de computador ou aplicaes em geral, consistem de conjuntos de instrues a serem executadas pelo processador ou CPU. Existem certas instrues que no podem ser colocadas diretamente disposio das aplicaes, pois a sua utilizao indevida ocasionaria srios problemas integridade do sistema. Estas Pgina 58
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 59

Curso Tcnico em Informtica

Figura 19: Mudana dos modos de acesso durante uma interrupo Fonte: Machado e Maia, 2004. Adaptao.

3.3.2 - System calls (chamadas ao sistema)


As chamadas ao sistema (system calls) fornecem a interface entre um processo e o sistema operacional. Essas chamadas esto disponveis como instrues em linguagem assembly e, em geral, so listadas nos manuais usados por programadores em linguagem assembly (ver figura 20).

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 63

Curso Tcnico em Informtica

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

3.4. ARQUITETURAS DOS SISTEMAS OPERACIONAIS


3.4.1 - Sistemas monolticos
Neste tipo de organizao a forma mais comum de ser encontrada aquela que estrutura o sistema como um conjunto de rotinas que podem interagir livremente umas com as outras. A estrutura monoltica pode ser comparada com uma aplicao formada por vrios procedimentos que so compilados separadamente e depois linkados, formando um grande e nico programa executvel. Pgina 64
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

Figura 22: Arquitetura monoltica Fonte: Machado e Maia, 2004. Adaptao

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.

3.4.2 - Sistemas em camadas


Um sistema em camadas divide o sistema operacional em camadas sobrepostas. Cada mdulo oferece um conjunto de funes que podem ser utilizadas por outros mdulos. Voc viu chamarmos o computador de mquina de nveis no primeiro captulo; por sua vez o prprio SO pode ser encarado desta forma. A principal vantagem da abordagem em camadas a modularidade. As camadas so selecionadas de forma que cada uma utilize as funes (operaes) e servios apenas das camadas de nvel mais baixo. Essa abordagem simplifica a depurao e verificao do sistema, alm de criar uma hierarquia de nveis de modos de acesso, protegendo as camadas mais internas. A figura 23 apresenta esta formao em camadas para o DOS; entretanto, o nvel de segurana baixo, pois permitida a comunicao com camadas mais baixas sem passar pelas intermedirias.
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 65

Curso Tcnico em Informtica

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

3.4.3 - Sistemas cliente-servidor (microkernels)


medida que o Unix se expandiu, o kernel tornou-se grande e difcil de gerenciar. Foi desenvolvido, ento, um sistema operacional usando a abordagem de microkernels. O resultado um kernel menor. Uma tendncia dos sistemas operacionais modernos tornar o ncleo do sistema operacional menor e o mais simples possvel. Em geral, os microkernels fornecem gerncia mnima de memria e processos, alm de um recurso de comunicao. A principal funo do microkernel fornecer um recurso de comunicao entre programa cliente e os vrios servios que tambm esto em execuo no espao de usurio. Para implementar esta ideia, o sistema dividido em processos, sendo cada um responsvel por oferecer um conjunto de servios, como servios de arquivo, servios de criao de processos, servios de memria, servios de escalonamento, etc. Se o programa cliente desejar acessar um arquivo, ele dever interagir com o servidor de arquivos. Mas o programa cliente e o servio nunca vo interagir diretamente; em vez disso, eles se comunicam indiretamente trocando mensagens com o microkernel. Sempre que uma aplicao deseja algum servio, ela solicita ao processo responsvel. Neste caso, a aplicao que solicita um servio chamada de cliente, enquanto o processo que responde solicitao chamado de servidor. Um cliente, que pode ser uma aplicao de um usurio ou um outro componente do sistema operacional, solicita um servio enviando uma mensagem. funo do ncleo do sistema realizar a comunicao, ou seja, a troca de mensagens entre o cliente e o servidor. Os benefcios da abordagem do microkernel incluem a facilidade de expandir o sistema operacional. Todos os novos servios so adicionados ao espao de usurio e, consequentemente, no exigem modificao do kernel. Quando o kernel precisa ser modificado, as alteraes tendem a ser menores, porque o microkernel um kernel menor. O microkernel tambm fornece mais segurana e confiabilidade, pois a maior parte dos servios est sendo executada como processos de usurio, em vez de kernel. Se um servio falhar, o resto do sistema operacional permanece inalterado. O kernel coordena a troca de mensagens entre as aplicaes (clientes e servidoras). O Windows NT projetado para executar vrias aplicaes, incluindo Win32 (aplicaes nativas do Windows), OS/2 e POSIX. A estrutura cliente-servidor do Windows NT est representada na figura 24.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 67

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 69

Curso Tcnico em Informtica

3.5. interpretador de comandos


Um dos utilitrios mais importantes para um sistema operacional o interpretador de comandos (ou shell), que a interface entre o usurio e o sistema operacional. Alguns sistemas operacionais incluem o interpretador de comandos no kernel (ncleo do sistema operacional). Outros podem tratar o interpretador de comandos como um programa especial que fica executando quando um job iniciado ou quando um usurio entra no sistema (em sistemas de tempo compartilhado). Muitos comandos do usurio so passados ao sistema operacional por instrues de controle digitadas em uma linha da tela. Esse programa chamado de interpretador da linha de comandos. Sua funo simples: obter o comando seguinte e execut-lo. Antes das interfaces grficas esta era a nica forma de comunicao entre a pessoa do usurio e o SO. Os sistemas operacionais geralmente se diferenciam bastante na rea do shell, com um interpretador de comandos amigvel ao usurio tornando o sistema mais agradvel a alguns e menos a outros. Estas diferenas se acentuaram com as interfaces grficas. O interpretador de comandos (shell) pode ser utilizado na seguinte forma: O mouse movido para posicionar o ponteiro sobre imagens na tela, ou cones, que representam programas, arquivos ou funes. Dependendo da localizao do ponteiro do mouse, clicar em um boto do mouse pode chamar um programa, selecionar um arquivo ou diretrio ou abrir um menu que contm comandos. O clicar do mouse a chamada a algum programa, arquivo ou pasta e ir utilizar o interpretador da linha de comando (shell). O clique do mouse j , portanto, um comando que dever ser interpretado pelo shell.

As 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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

4. INTRODUO GERNCIA DE PROCESSOS, MEMRIA E ARQUIVOS 4.1. Gerncia de processos


Um programa no faz nada a no ser que suas instrues sejam executadas por uma CPU. Um processo pode ser considerado um programa em execuo, mas sua definio ser ampliada medida que explorarmos melhor o conceito. Um programa de usurio executado em tempo compartilhado um processo. Um processador de texto executado por um usurio individual em um PC um processo. Uma tarefa de sistema, como enviar sada para uma impressora, tambm um processo. Consideraremos que um processo um job ou um programa de tempo compartilhado.Um processo precisa de determinados recursos tempo de CPU, memria, arquivos e dispositivos de E/S (entrada e sada) para realizar sua tarefa. Estes recursos so dados ao processo quando ele criado ou alocados a ele durante sua execuo. Alm dos vrios recursos fsicos e lgicos que um processo obtm quando criado, vrios dados de inicializao podem ser fornecidos. Enfatizamos que um programa por si s no um processo; um programa uma entidade passiva, como o contedo de um arquivo armazenado em disco, enquanto um processo uma entidade ativa, com um contador do programa especificando a prxima instruo a ser executada. A execuo de um processo deve ser sequencial. A CPU executa uma instruo do processo aps a outra at o processo terminar. Alm disso, a qualquer momento, no mximo uma instruo executada em nome do processo. Assim, embora dois processos possam ser associados com o mesmo programa, eles so considerados duas sequncias de execuo separadas. comum ter um programa que utilize muitos processos para sua execuo. ATIVIDADE 10 Para ilustrar estes conceitos, se voc tiver o Windows XP em sua mquina chame o gerenciador de tarefas (task manager): aperte as teclas Alt Ctrl e Del ao mesmo tempo. A janela que se abre tem, nas suas duas primeiras abas: os programas do usurio que esto rodando aba Aplicativos e outros programas ou processos aba Processos. Voc v que o SO precisa manter vrios outros
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 71

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

Figura 25: Adaptao

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 73

Curso Tcnico em Informtica

4.2. Gerncia da memria principal


A gerncia do espao da memria principal uma das preocupaes importantes dos sistemas de computao modernos. A memria principal um repositrio de dados rapidamente acessveis compartilhados pela CPU e dispositivos de E/S (entrada e sada). O processador central l as instrues da memria principal durante o ciclo de busca de instrues e l e grava dados da memria principal durante o ciclo de busca de dados. As operaes de E/S (entrada e sada) implementadas via DMA (ver conceito a seguir) tambm fazem a leitura e escrita de dados na memria principal. A memria principal geralmente o nico dispositivo de armazenamento que a CPU pode enderear e acessar diretamente. Para que a CPU processe dados do disco, esses dados devem primeiro ser transferidos para a memria principal por chamadas de E/S geradas pela CPU. Do mesmo modo, as instrues dos programas devem estar na memria principal para que a CPU as execute. DMA: Direct Memory Access (acesso direto memria): forma de controle de entradas e sadas sem a utilizao constante do microprocessador, como se houvesse uma comunicao direta entre o dispositivo de E/S e a memria. Isto ocorre, por exemplo, com a placa de vdeo e o HD. Este conceito foi abordado na matria de Fundamentos de Hardware. Aproveite e d uma repassada no assunto. Para melhorar a utilizao da CPU e a velocidade da resposta do computador aos seus usurios, preciso manter vrios programas na memria principal. Existem muitos esquemas diferentes de gerncia de memria. A seleo de um esquema de gerncia de memria para um sistema especfico depende de muitos fatores, especialmente do projeto de hardware do sistema. O sistema operacional responsvel pelas seguintes atividades em relao gerncia de memria: Manter registro das partes da memria que esto sendo usadas no momento e por qual processo; Decidir quais processos devero ser carregados na memria quando houver espao disponvel; e Alocar e desalocar espao na memria, conforme necessrio. Voc lembra da matria de programao que cada programa (e, portanto, cada processo) formado basicamente por uma rea de dados (as variveis) e uma rea de instrues. O problema quando um programa

Pgina 74

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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

Curso Tcnico em Informtica

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...

4.3. Gerncia de arquivos


A gerncia de arquivos um dos componentes mais visveis de um sistema operacional. Os computadores podem armazenar informaes em vrios tipos diferentes de meios fsicos: fita magntica, disco magntico e etc. Cada um desses meios possui suas prprias caractersticas e organizao fsica. Cada meio controlado por um dispositivo, como uma unidade de disco, que tambm tem suas caractersticas exclusivas. Essas propriedades incluem: velocidade de acesso, capacidade, taxa de transferncia de dados e mtodo de acesso (sequencial ou aleatrio). O sistema operacional mapeia os arquivos nos meios fsicos e acessa esses arquivos atravs dos dispositivos de armazenamento. Evidentemente, nem todos os arquivos dos discos e similares precisam estar mapeados na memria, apenas aqueles cujo acesso foi solicitado por algum processo. Voc, na matria de programao, aprender a abrir um arquivo: esta a forma pela qual seu programa avisa ao SO que precisa daquele arquivo mapeado na memria. E, por isto, voc deve fechar os arquivos quando no mais precisa deles: para economizar memria.

Pgina 76

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 77

Curso Tcnico em Informtica

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

Objeto obj, o Cdigo-fonte c, cc, pas, java, asm, a

Batch bat, sh Texto processador de textos txt, doc

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

4.4. Gerncia de dispositivos (de E/S ou I/O)


O sistema operacional deve tornar as operaes de entrada e sada (E/S) o mais simples possvel para o usurio e suas aplicaes. Denominamos de rotinas de entrada e sada ao conjunto de rotinas que o sistema operacional possui para possibilitar a comunicao de qualquer dispositivo que possa ser conectado ao computador. Essas rotinas fazem parte de um subsistema de E/S que permitem ao usurio realizar as operaes de E/S sem se preocupar com detalhes, informaes a respeito do dispositivo que est acessando. Em gerncia do sistema de E/S (entrada e sada) cabe ao sistema operacional ocultar dos usurios (programas e pessoas) as peculiaridades dos diferentes dispositivos de hardware. A gerncia de dispositivos de entrada/sada uma das principais e mais complexas funes de um sistema operacional. Sua implementao estruturada por meio de camadas, em um modelo semelhante ao apresentado para o sistema operacional como um todo. As camadas de mais baixo nvel escondem caractersticas dos dispositivos das camadas superiores, oferecendo uma interface simples e confivel para suas aplicaes. As operaes de E/S devem ser realizadas atravs de chamadas ao sistema (system calls) que por sua vez chamam as rotinas de E/S do ncleo do sistema operacional. Deste modo possvel que manipulemos arquivos em dispositivos de E/S, sem ter que alterar o cdigo para cada dispositivo. Por exemplo: leitura de um arquivo armazenado em pen drive; no precisamos alterar o cdigo do dispositivo a cada leitura ou a cada tipo de pen drive ou a cada mquina que acessamos. As camadas so divididas em dois grupos (ver figura 28): o primeiro visualiza os diversos tipos de dispositivos do sistema de um modo nico (a), ou seja, essas camadas trabalham de forma independente da configurao do dispositivo. Oferecem servios de gerenciamento controlado pelo sistema operacional; enquanto o segundo especfico para cada dispositivo, necessitando a instalao e configurao do hardware, identificando e controlando cada dispositivo (b). Observem que grande parte das camadas trabalham de forma independente do dispositivo fsico instalado.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 79

Curso Tcnico em Informtica

Figura 28: Gerncia de dispositivos Fonte: Machado e Maia, 2004. Adaptao.

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

4. Cite duas responsabilidades do sistema operacional em relao gerncia de memria. 5. O que memria virtual?

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 81

Curso Tcnico em Informtica

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

4.5. SISTEMA DE PROTEO


Se um sistema de computao tiver vrios usurios e permitir a execuo concorrente de mltiplos processos, esses processos devero ser protegidos das atividades uns dos outros. Para que isso acontea, existem mecanismos que garantem que os arquivos, segmentos de memria, CPU e outros recursos possam ser operados apenas pelos processos que obtiveram autorizao adequada do sistema operacional. Pgina 82
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 83

Curso Tcnico em Informtica

5. INTRODUO AO SISTEMA OPERACIONAL LINUX


Caro Aluno, No captulo anterior voc conheceu a estrutura dos sistemas operacionais, identificou os mdulos, ou partes, que integram um SO e a funo de cada uma destas partes. Neste captulo, vamos estudar um dos sistemas operacionais mais utilizados atualmente. Voc poder relacionar os conceitos vistos at aqui com as caractersticas deste SO. Assim, medida que estas caractersticas forem apresentadas tente associ-las ao contedo do captulo anterior. Isto, com certeza, o ajudar a consolidar seu aprendizado. Bom estudo! O sistema operacional Linux foi criado pelo finlands Linus Torvalds, entre os anos de 1990 e 1991, a partir do projeto de um SO mais simples chamado Minix. Com o auxilio de vrios desenvolvedores empenhados em dar continuidade ao projeto Linux baseado no Minix, ele cria o kernel do SO livre mais utilizado atualmente. O nome Linux originouse da contrao de Linus e Minix.

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

5.1. Caractersticas do LINUx


A anlise de um sistema operacional pode ser feita considerando diversas caractersticas, que podem ser classificadas como segue: Quanto forma como distribudo; Quanto aos servios que ele oferece; Quanto s interfaces que ele disponibiliza para usurios e programadores; Quanto maneira com que ele trata os dispositivos e componentes que gerencia.

5.1.1 - Distribuies do Linux


Ao conjunto de aplicativos juntamente com o kernel Linux, d-se o nome de distribuio Linux, ou simplesmente distro. Algumas distribuies Linux so maiores que outras, dependendo da quantidade de aplicativos e da finalidade a que se propem. Existem desde distribuies que cabem num pequeno pendrive at distribuies que ocupam vrios DVDs. Cada uma delas tem seu pblico-alvo e finalidades especficas como as minidistribuies, que tm como objetivo desde a recuperao de um sistema danificado at o monitoramento de uma rede de computadores. Afinal o que diferencia uma distribuio de outra? Na verdade, a forma como so organizados e pr-configurados os aplicativos que cada uma contm. Algumas distribuies incluem ferramentas de configurao que facilitam a administrao do sistema. Exemplos de distribuies: Debian, Kurumin, Slackware, Suse, Mandriva, Ubuntu, RedHat e outras.

Figura 29 distribuies Linux

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 85

Curso Tcnico em Informtica

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.

5.1.2 - Organizao no Desenvolvimento do Linux


Usurios voluntrios podem participar ativamente no desenvolvimento deste sistema operacional, relatando bugs (erros) ou propondo melhorias no Linux para a equipe de desenvolvedores de uma determinada distribuio. Na equipe de desenvolvedores temos os mantenedores, cuja funo manter o sistema operacional funcionando, com aval dos seus criadores, como Linus Torvalds. Toda contribuio deve obedecer a uma licena especial chamada GPL criada a partir do Projeto GNU. Projeto GNU - Projeto iniciado por Richard Stallman e diversos colaboradores que formaram a Free Software Foundation, uma entidade voltada para o desenvolvimento de software de qualidade, para uso livre e com cdigo-fonte aberto (Open Source). GPL - um tipo de licena responsvel por dar crditos aos criadores e implementadores dos softwares livres e do projeto GNU. Todo o software criado sob GPL ter que ser livre, cdigo-fonte aberto e de livre distribuio. Open Source - caracterstica que identifica os softwares de cdigo-fonte aberto, ou seja, o cdigo-fonte do sistema, programa ou aplicativo fica disponvel para qualquer um que queira acess-lo.

5.1.3 - Principais caractersticas do Kernel Linux


O Linux um SO que suporta multitarefa real, multiusurios e multiprocessamento, utiliza memria virtual, implementa bibliotecas dinmicas e redes TCP/IP. Possui proteo entre processos (crash protection) e permite nomes de arquivos com at 255 caracteres, alm de muitas outras funcionalidades que deixariam esta lista bastante extensa.

Pgina 86

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

5.1.4 - Interfaces Disponveis


O Linux possui vrios tipos de interfaces com o usurio. Cada distribuio pode disponibilizar mais de um tipo de Shell, desde diferentes consoles de linha de comando at ambientes grficos bastante sofisticados. Os consoles de linha de comando so baseados somente em caracteres e os que mais se destacam so o Bourne Shell e o C-Shell, este ltimo aceita comandos semelhantes aos comandos da linguagem de programao C. Shell Nome dado a qualquer interface que permita a interao entre o usurio e o ncleo do sistema operacional. Estas interfaces podem ser grficas ou apenas aceitar comandos digitados pelo usurio. O Linux possui um padro para ambiente grfico chamado X Window System (Sistema de Janelas X). O X Window System define um ambiente grfico bsico do tipo cliente-servidor, sem, no entanto, definir um gerenciador de janelas especfico. Preste ateno para no confundir estes dois conceitos: o servidor de janelas possui recursos para implementar as aplicaes em forma de janelas e formar um ambiente agradvel para o usurio. O gerenciador de janelas fornece os mtodos para que o usurio possa interagir com o sistema da forma mais amigvel possvel.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 87

Curso Tcnico em Informtica

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.

5.1.5 - O Linux e seus dispositivos


O Linux encara todos os dispositivos como se fossem arquivos, de modo que existe uma arquivo especfico associado a cada um dos dispositivos, seja ele um disco rgido, um terminal, impressoras, unidade de CD/ DVD e assim por diante. Os dispositivos podem transferir dados de duas maneiras diferentes, caracter a caracter ou em blocos de dados. Assim, existem dois tipos de arquivos associados a dispositivos, os arquivos do tipo caracter e os do tipo bloco. Para utilizao de um dispositivo como discos rgidos, unidades de disquetes ou de CD/DVD, preciso montar estes dispositivos. Esta montagem pode ser manual ou automtica como nas verses mais atuais do Linux. Assim, existem comandos prprios para montagem e desmontagem dos dispositivos como mount e umount.

5.2. Instalando o GNU/Linux


Para se instalar um sistema GNU/Linux em um disco rgido, necessria apenas uma partio Linux, onde o sistema ficar residente. Contudo, na maioria dos casos, necessrio que haja uma rea para que o sistema utilize como memria virtual. Por isso, comum, nas instalaes domsticas do GNU/Linux, haver, pelo menos, duas parties no disco rgido; uma Linux e outra Swap (memria virtual).

Pgina 88

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

5.2.1 - Requisitos de Hardware para Instalao


A instalao Linux, requer muito pouco do hardware, basta um microcomputador 386 (bastante obsoleto) ou superior, com memria de no mnimo 2Mb de RAM. Entretanto para que seja possvel a utilizao de uma interface grfica simples, recomendvel pelo menos 8Mb de RAM.

5.2.2 - Particionando o disco rgido


O uso mais comum do particionamento em discos rgidos para a instalao de mais de um sistema operacional no computador. Desta forma, cada sistema operacional fica restrito sua partio e no entra em conflito com os demais. Se no houvesse o recurso de particionamento, para cada sistema operacional que se desejasse utilizar no computador, seria necessrio um disco rgido exclusivo para a sua instalao. Existem basicamente, trs tipos de parties: Parties primrias - usadas para inicializar um sistema operacional. No esquema de particionamento de um disco deve haver, pelo menos, uma partio primria. Caso haja mais de uma primria, apenas uma delas pode estar ativa.
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 89

Curso Tcnico em Informtica

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.

5.2.3 - Vantagens e Desvantagens dos esquemas de particionamento


A utilizao do GNU/Linux sob vrias parties possui vantagens e desvantagens que variam de acordo com a aplicao. Vantagens: Segurana. Caso haja algum problema em alguma parte da hierarquia de diretrios, somente a partio que armazena aquela parte da hierarquia ser afetada e o administrador no ter que recuperar todo o sistema. Crescimento descontrolado de dados. No caso de algum ou algum programa comear a criar arquivos no sistema, com o intuito de encher o disco rgido, este problema ficar restrito partio que foi alvo do ataque, evitando o comprometimento geral do sistema. Por exemplo: caso algum usurio comeasse a receber muitas mensagens, como spams, somente esta partio seria afetada, garantindo-se assim a segurana dos dados armazenados no sistema e possibilitando ao administrador uma soluo mais prtica para o problema. Pgina 90
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

5.3. Sistema de arquivos


O sistema de arquivos que um sistema operacional utiliza define a forma como os diretrios e arquivos so organizados em disco e os mecanismos que o SO utiliza para manipulao destes arquivos. Nem sempre possvel armazenar arquivos contiguamente em um disco, muitas vezes os blocos de um arquivo (partes dos arquivos) ficam espalhados pela superfcie do disco. preciso que haja maneiras do sistema operacional encontrar estes blocos de arquivos. Um sistema de arquivos define a forma como o SO deve armazenar e recuperar os arquivos em um dispositivo. Na verdade, no Linux, possvel utilizar, montar e desmontar vrios tipos de sistemas de arquivos, at mesmo o sistema de arquivos utilizado pelo Windows.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 91

Curso Tcnico em Informtica

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:

Caso de 2 discos F: na IDE secundria A:

Disquete Unidade de disco flexvel

Cdrom CD ou DVD Unidade de CD ou DVD

5.3.1 Estrutura de diretrios


A rvore de diretrios do Linux segue o Filesystem Hierarchy System (FHS), que um subpadro do Linux Standart Base (LSB). Esta rvore dividida em ramificaes menores de forma a permitir a utilizao de vrios dispositivos fsicos em cada ramo principal, ou mesmo, de tipos de dispositivos diferentes como CD-ROMs e redes. Partes comuns, por exemplo, podem ser compartilhadas via NFS (Networking File System) entre vrias mquinas, mantendo uma parte independente em cada mquina. Pgina 92
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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

/usr/local/sbin comandos locais de administrao do sistema. /usr/share/doc documentao do sistema

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 93

Curso Tcnico em Informtica

5.3.2 - Propriedades dos Arquivos


Os arquivos possuem vrios atributos ou propriedades que definem o seu tipo, quem pode acess-los e de que forma podem ser manipulados. O controle de acesso a arquivos do Linux determina quais usurios ou grupos de usurios podem ler, escrever ou executar um arquivo (no caso de diretrio, posicionar-se nele). Este controle feito a partir dos atributos que cada arquivo possui. A partir do comando ls podemos exibir informaes sobre os atributos dos arquivos. ls [opes] [caminho] opes: -l (exibe todas as informaes referentes ao arquivo ou diretrio); -a (exibe todos os arquivos e diretrios, inclusive os ocultos); -R (lista o contedo do diretrio e dos seus respectivos subdiretrios); Um arquivo pode ter os seguintes atributos: Tipo d c b l Descrio Arquivo regular Diretrio Arquivo de dispositivo orientado a caracteres Arquivo de dispositivo orientado a blocos Arquivo de link (semelhante aos atalhos do Windows) Descrio O dono do arquivo pode ler, escrever e executar o arquivo Os usurios do grupo do arquivo podem ler, escrever e executar o arquivo O dono pode ler, escrever e executar, o grupo pode ler e escrever e os demais usurios podem ler e executar o arquivo

Permisses rwx rwx rwxrw-r-x

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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);

5.4. Comandos do Linux


Apesar de o Linux disponibilizar diversas interfaces grficas, facilitando a utilizao do sistema pelo usurio, muitas das tarefas inerentes ao administrador do sistema devem ser feitas via comando. Assim, preciso entender como o Shell interpreta o que digitado na linha de comando (no prompt). Primeiramente, preciso saber que o Linux faz distino entre letras maisculas e minsculas. Tenha cuidado ao escrever um comando, opes ou nomes de arquivos e diretrios. Em todos os comandos vistos nesta sesso, tudo que, na sintaxe do comando, aparecer entre colchetes - [opes] opcional, isto , o comando realizar uma ao mesmo que no seja indicada nenhuma opo. Quando aparecer entre os sinais de menor que < e maior que > o parmetro obrigatrio.

5.4.1 - Iniciando e Encerrando o Sistema


Os comandos a seguir so utilizados para permitir que o usurio abra uma sesso para utilizar os recursos do sistema, para obter informaes de outros usurios e para encerrar uma sesso aberta. rlogin inicia uma sesso de terminal remoto Sintaxe: rlogin [opes] [-l nomedousurio] <host> Opes: -x (ativa a criptografia de todos os dados que forem transmitidos na sesso)

passwd usado para alterar a senha do usurio. A opo [nomedousurio] somente poder ser usada pelo root. Sintaxe: passwd [nomedousurio] Pgina 95

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Curso Tcnico em Informtica

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)

finger exibe informaes sobre os usurios do sistema

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).

5.4.2 - Manipulando diretrios e arquivos


ls - Lista os arquivos de um diretrio. Sintaxe: ls [opes] [caminho/arquivo] [caminho1/arquivo1]... Opes: -a, all (Lista todos os arquivos (inclusive os ocultos) de um diretrio); -A, almost-all (Lista todos os arquivos (inclusive os ocultos) de um diretrio, exceto o diretrio atual e o de nvel anterior); -d, directory (Lista os nomes dos diretrios ao invs do contedo); -l (Usa o formato longo para listagem de arquivos. Lista as permisses, data de modificao, donos, grupos, etc); -R (Lista diretrios e sub-diretrios recursivamente)

Pgina 96

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

Figura 30:- Exemplo: Uso do comando ls.

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.

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 97

Curso Tcnico em Informtica

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Pgina 98

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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

Curso Tcnico em Informtica

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.

6.1. COMANDOS BSICOS E DE MANIPULAO DE ARQUIVOS


6.1.1 - Interface grfica
O Linux, assim como qualquer sistema operacional moderno, perfeitamente capaz de oferecer interao com o usurio atravs de interface grfica, sendo possvel utilizar a maioria de seus recursos atravs do mouse. O ambiente grfico do Linux se assemelha ao do Windows, com painel ou barra de tarefas, onde se pode acessar de forma rpida alguns programas e verificar quais deles esto em uso. Este ambiente tambm usa o conceito de janelas, onde voc encontra a barra de ttulo e os botes minimizar, maximizar e fechar. O Nautilus o gerenciador de arquivos do GNOME. Atravs dele, podemos criar pastas, arquivos, formatar discos, copiar, mover e excluir arquivos ou pastas. Sua aparncia (ver figura 31) semelhante ao explorer do Windows; a criao e remoo de pastas tambm se processa de forma semelhante.

Figura 31: Tela de apresentao do navegador de arquivos do GNOME.

Pgina 100

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

Figura 32: Tela Shell: interface entre o usurio e o kernel.

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).

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 101

Curso Tcnico em Informtica

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.

Figura 33: Tela de localizao do terminal de comandos.

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

Figura 34: Tela do terminal de comandos.

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?

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 103

Curso Tcnico em Informtica

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

6.1.3 - Comandos de sesso e de terminal


O Linux permite trabalhar com o conceito de terminais mltiplos, que consiste em permitir que vrios usurios estejam logados no sistema ao mesmo tempo. Para mudar de terminal, pressione: <Alt> + <Fn>, onde Fn uma tecla de funo (F1 at F6). Os comandos a seguir so usados para limpar o contedo da tela do terminal, escrever mensagens e permitir conversa entre os usurios.

Pgina 104

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

clear:

limpa a tela do terminal virtual corrente.

Exemplo: $ clear echo: envia uma mensagem para o terminal em uso.

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.

sintaxe: write <usurio> [tty] <texto> Opo Descrio

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.

Exemplo: $ login logout: termina a sesso do usurio. Exemplo: $ logout


Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 105

Curso Tcnico em Informtica

exit:

encerra o Shell de comandos corrente.

Exemplo: $ exit reboot: reinicializa o computador.

Exemplo: $ reboot halt: desligar o computador.

Exemplo: $ halt

6.1.4 - Comandos de ajuda


Frequentemente esquecemos a sintaxe correta dos comandos, principalmente a sua lista de parmetros. Felizmente no somos obrigados a decorar muita coisa, pois existe um help on line que nos permite chegar facilmente sintaxe que queremos. man: sintaxe: Opo -a -h -w consulta os manuais on-line do sistema. man [opes] [seo] <comando> Descrio exibe todas as pginas do manual exibe uma mensagem de ajuda exibe a localizao de pginas do manual a serem exibidas

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

6.1.5 - Comandos para diretrios


Os comandos a seguir so utilizados pelo usurio para criar, remover, movimentar-se entre os diretrios e informar o seu contedo. Na utilizao destes comandos podem ser utilizados estes atalhos especiais: ~ representa o diretrio padro do usurio; / representa o diretrio raiz; ../ sobe um diretrio. mkdir: sintaxe: Opo -p cria um ou varios diretrios. mkdir [opes] <nome_diretrio> Descrio cria os diretrios-pai se ainda no existirem. cria um diretrio com o modo de acesso modo.

-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.

Figura 35: criando o diretrio pasta1 no desktop.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 107

Curso Tcnico em Informtica

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

$ ls -r /usr/bin $ ls -a /usr/bin $ ls -l /usr/bin $ ls -F /usr $ ls -F /usr/bin

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.

Figura 36: uso do comando ls no diretrio /.

Pgina 108

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

cd:

muda o diretrio de trabalho.

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

Figura 37: uso do comando cd (mudando para o diretrio raiz).

pwd:

exibe o diretrio corrente (figura 6.8). troca para o diretrio /usr/bin pergunta qual o diretrio atual

Exemplo: $ cd /usr/bin $ pwd /usr/bin

Figura 38: uso do comando pwd (mostra o diretrio corrente).

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 109

Curso Tcnico em Informtica

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: $ tree /var/lib

6.1.6 - Comandos para manipular arquivos


Os comandos a seguir so utilizados pelo usurio para criar, apagar, copiar e localizar arquivos. Na utilizao destes comandos podem ser utilizados os mesmos caracteres especiais ~ /../ apresentados no item 6.1.5. find: sintaxe: procura arquivos dentro de discos e palavras dentro dos mesmos. find [caminho] [opes] <nome_arquivo>

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

Figura 39: uso do comando touch para atualizar data e hora do diretrio scanner.

rm: Sintaxe: Opo -f -i -r

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.

Figura 40: uso do comando rm com as opes r e -f.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 111

Curso Tcnico em Informtica

rmdir: sintaxe: Opo -p

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.

Figura 41: cria o diretrio CEADsistemas dentro do diretrio /tmp.

Pgina 112

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

Figura 42: removendo o diretrio CEADsistemas criado.

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

Curso Tcnico em Informtica

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.

Figura 43: Uso do comando mv sendo utilizado com permisso de superusurio.

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

Exemplos: $ ln s /exerccios/temp link $ ln /exerccios/temp/arquivo1.doc link1.doc $ ln -s /exerccios/temp/arquivo1.doc link1.doc

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 115

Curso Tcnico em Informtica

A figura 45 mostra um exemplo de utilizao do comando ln.

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 117

Curso Tcnico em Informtica

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Pgina 118

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

6.2. GERENCIAMENTO DE PERMISSES


Caro Aluno, No tpico anterior estudamos uma srie de comandos para utilizao do Linux. Vrios destes se destinam ao gerenciamento e manipulao de arquivos. Entretanto, como o Linux foi concebido para utilizao por diversos usurios num ambiente de multiprogramao e utilizando dispositivos de armazenamento comuns, existe uma preocupao maior em proteger os dados de cada usurio e de um grupo de usurios. A palavra permisses pode ser entendida neste contexto como direitos que um usurio ou seu grupo tm de acessar dispositivos e arquivos. Este controle feito basicamente atravs de dois comandos chmod e chown , porm alguns conceitos tero de ser explanados antes, para o seu perfeito entendimento. Bom estudo!

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.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 119

Curso Tcnico em Informtica

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.

6.2.2 - Permisses de arquivos


O esquema de permisses de acesso do Linux protege os arquivos do acesso indevido de pessoas ou programas no autorizados. Impede, por exemplo, que um programa mal intencionado, por exemplo, apague um arquivo que no deve, envie arquivos para outra pessoa ou fornea acesso da rede para que outros usurios invadam o sistema. Tambm pode impedir que usurios iniciantes (ou mal intencionados) instalem programas enviados por terceiros sem saber para que eles realmente servem e causem danos irreversveis a seus arquivos, seu micro ou sua empresa. Todo arquivo pertence somente a um dono e a um grupo. Estes dois parmetros (dono do arquivo e grupo ao qual o arquivo pertence) determinam as permisses do arquivo: quem poder acess-lo e quais operaes poder fazer com o arquivo. Estas protees so organizadas em trs classes de privilgios: do dono, do grupo e dos outros. Cada classe pode ter trs nveis bsicos de permisses: para leitura, para escrita e para execuo. A figura 46 mostra o esquema bsico (os smbolos r w sero explicados um pouco mais frente. Pgina 120
Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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

Curso Tcnico em Informtica

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).

6.2.3 - Listando o conjunto de permisses dos arquivos


Utilizando o comando ls com opo la podemos ver o esquema de permisses dos arquivos daquele diretrio. Por exemplo, utilizando ls la no nosso diretrio root, poderemos ter como resposta: Exemplo: $ ls - la drwxr-x--- drwxr-xr-x drwx------ -rwxr--r-- -rw------- -rw-r--r-- -rw-r--r-- -rw-r--r-- 8 root root 1024 Aug 22 08:26 . 18 root root 1024 Aug 22 09:33 .. 1 root root 115 Aug 22 07:45 tmp 1 root root 1156 Jun 30 18:12 soffice 1 root root 3987 Aug 22 09:33 arq1.doc 1 root root 24 Jul 13 11:31 arq2.doc 1 root root 238 Aug 23 10:42 arq3.doc 1 root root 176 Aug 23 12:10 arq4.doc

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 123

Curso Tcnico em Informtica

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.

Figura 48: significados dos cdigos rwx para os arquivos.

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

Figura 49: significados dos cdigos de tipo de arquivo (primeira posio).

Pgina 124

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

Figura 50: comando ls mostrando o esquema de permisses.

6.2.4 - Comandos de gerenciamento de permisses


Os comandos chmod, chown, chgrp e umask permitem alterar o esquema de permisses para os arquivos e diretrios. chmod: sintaxe: Opes -c -f -R -v altera permisses de acesso a arquivos e diretrios. chmod [opes]<modo_arquivo> <arquivo> Descrio mostra informaes sobre os arquivos modificados no imprime mensagens de erro recursivo. Muda o modo de acesso de todos os arquivos e subdiretrios abaixo do especificado descreve detalhadamente as alteraes de atributos

O <modo_arquivo>, abordado na sintaxe, pode ser simblico ou absoluto e tem o seguinte significado.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 125

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

Figura 51: comando chmod alterando permisses em modo absoluto

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 127

Curso Tcnico em Informtica

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.

Figura 52: comando chmod alterando permisses em modo relativo.

chown: sintaxe: Opo -c -f -R

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

chgrp: sintaxe: Opo -c -f -R

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

Exemplos: $ chgrp www index1.html

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?

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 129

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 131

Curso Tcnico em Informtica

6.3. Gerenciamento de usurios e grupos


Caro Aluno, Desde que fomos apresentados ao Linux vimos que ele se preocupa com o gerenciamento de vrios usurios, pois foi para este ambiente que ele foi concebido. Tambm j falamos de grupos, pois um conceito estreitamente ligado a usurios e permisses de arquivos. Neste tpico veremos quais os recursos que o Linux oferece para o gerenciamento de usurios e seus grupos, os mecanismos de controle do espao em disco rgido que esses usurios podem ocupar. Bons estudos!

6.3.1 - Usurios e grupos


No captulo 5 vimos que um usurio algum que possui uma identificao nica no sistema: nome e UID. Estas informaes permitem ao Linux controlar o acesso ao sistema, garantindo a cada usurio permisses de acesso especficas a arquivos, diretrios e outros recursos. possvel reunir usurios com algum tipo de afinidade em grupos de usurios. Cada grupo tambm possui uma identificao nica no sistema: nome e GID. A existncia destes grupos facilita aos administradores de sistema controlar o acesso aos recursos, pois as permisses podem ser dadas ao grupo, atendendo a todos os usurios que fazem parte daquele grupo. Um usurio pode pertencer a mais de um grupo, compartilhando as permisses concedidas a todos os grupos nos quais est includo. A maioria das distribuies Linux utiliza um sistema de grupo privado de usurios (UGP), tornando a administrao muito mais simples. O sistema UGP no altera o padro Linux, simplesmente oferece uma nova conveno no gerenciamento de grupos. Toda vez que um usurio novo criado, automaticamente criado um novo grupo com o mesmo nome de usurio, do qual ele o nico membro. Um usurio Linux possui as seguintes caractersticas: Login, Password, UID, GID, Comment, Home Directory Path e um Shell (ver tabela 6.1). Um grupo Linux possui as seguintes caractersticas: Name, Password, GID e a User List (ver tabela 6.2).

Pgina 132

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 133

Curso Tcnico em Informtica

6.3.2 - Comandos de gerenciamento de usurios.


Nesta seo esto descritas a sintaxe e a funo dos principais comandos utilizados no gerenciamento de usurios do sistema Linux. Existem comandos para criar, excluir e alterar (ou apenas mostrar) caractersticas dos usurios. useradd ou adduser: adiciona usurios ao sistema. sintaxe: Opo -d <dir_home> -c <cometrio> -g <grupo> -G <grupos> -s <programa> useradd <usurio> [opes] adduser <usurio> [opes]

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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:

define uma senha para um usurio. passwd <usurio>

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

Curso Tcnico em Informtica

Figura 56: comando passwd mudando a senha do usurio rodrigo.

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.

-c <comentrio> -d <dir_home> -s <programa> -l <novo_login> -g <novo_grupo> -e <mm/dd/aa> -f <numdias> -u <novo_UID>

-G <novos_grupos> grupos extras dos quais o usurio ser membro.

Pgina 136

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

Figura 57: Comando usermod alterando o grupo do usurio rodrigo.

userdel: sintaxe: Opo -r

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

Curso Tcnico em Informtica

id: sintaxe: Opo -u -g

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

Opo -f <nome> -r <sala> -w <telefone> -h <telefone>

Exemplo: # chfn -f Linus Torvalds linus cadastra um nome para o usurio linus.

6.3.3 - Comandos de gerenciamento de grupos


Como j dissemos, os grupos existem para facilitar ao administrador do sistema incluir e retirar direitos de um conjunto de usurios de uma vez; todos os usurios pertencentes a um grupo gozam das permisses concedidas a ele. Tambm j vimos que, durante a criao de um usurio ser criado um grupo com o mesmo nome do usurio. Neste tpico vamos examinar os comandos que permitem o gerenciamento dos grupos. preciso tomar cuidado com as permisses de acesso aos recursos do sistema dadas a grupos. Quando um grupo criado, os usurios nele includos passam a ter os mesmos direitos de acesso atribudos ao grupo. Voc j viu, pelos exemplos do tpico 6.2 anterior, que possvel dar direitos ao grupo e neg-los a um usurio e vice-versa. Assim, ao conceder permisses para um grupo, observe se elas podem ser estendidas a todos os usurios que o compem.

Pgina 138

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Sistemas Operacionais

groupadd: adiciona grupos ao sistema. sintaxe: groupadd <grupo> [opes]

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.

-R desabilita o acesso ao grupo pelo comando newgrp (mostrado adiante).


Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 139

Curso Tcnico em Informtica

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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.

newgrp: sintaxe: Exemplos:

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.

6.3.4 - Outros comandos relacionados a usurios e grupos


users: sintaxe: exibe os usurios ativos do sistema. users

Exemplo: $ users

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 141

Curso Tcnico em Informtica

A figura 60 mostra o uso do comando users : esto logados os usurios aluno e rodrigo.

Figura 60: Uso do comando users.

w: sintaxe: Opo

exibe os usurios conectados ao sistema e o que esto fazendo. w [opes] Descrio

-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:

Exemplo: $ whoami mostra o id efetivo do usurio.

Pgina 142

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Curso Tcnico em Informtica

# 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

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

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. ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 145

Curso Tcnico em Informtica

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

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

Ifes - Instituto Federal de Educao, Cincia e Tecnologia do ES

Pgina 147

Curso Tcnico em Informtica

___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________ ___________________________________________

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

Вам также может понравиться