SISTEMAS OPERACIONAIS

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