Você está na página 1de 11

Estrutura do UNIX ESTRUTURA DO UNIX ARQUITETURA DO SISTEMA OPERACIONAL UNIX A figura 2.1 apresenta o S.O.

UNIX em uma viso de alto nvel. O Hardware a parte central do diagrama, e prove os recursos e servios bsicos, para as camadas superiores. Podemos verificar que o Kernel tambm chamado de sistema Kernel, isola os programas, que esto nas camadas mais externas em relao a ele prprio do hardware. Isso permite que se alcance um alto ndice de portabilidade em S.O. UNIX.

ls

wc grep date who a.o ut sh

pwd cpp
Hardware

com p as ld

Kernel

Figura 2.1

2003 Audemir Loris

UNIX / LINUX um curso bsico

Estrutura do UNIX O KERNEL DO SISTEMA Dois conceitos centrais esto presentes na arquitetura do S.O. UNIX, so eles: Arquivos Todo e qualquer dispositivo enderevel (do ponto de vista do usurio) no UNIX, recebe um tratamento de arquivo, ou seja, recebe um identificador (uma espcie de ponteiro) que permite que operaes de Entradas e Sadas sejam direcionadas para os mesmos obedecendo-se os parmetros de escrita ou leitura de cada dispositivo. Tais devices esto disponveis no diretrio /dev. Sobre o sistema de arquivos falaremos posteriormente. Processos Todo e qualquer programa ou aplicativo, quando executado torna-se um processo em execuo (ver figura 2.2.1), recebendo um identificador, chamado PID. O Kernel mantm dados relativos aos processos em execuo. processos. Voltaremos no final deste capitulo a detalhar o conceito de

Figura 2.1.1
2 UNIX / LINUX um curso bsico
2003 Audemir Loris

Estrutura do UNIX O diagrama apresentado na figura 2.1.2 ilustra em forma de blocos a estrutura do Kernel.
Programas de usurios trap
Nvel: Usurio Nvel: Kernel

Bibliotecas

system call interface (SCI)

File subsystem
Process

Inter-process communication

scheduler

Buffer cache characte block r cache Device driver

Control Subsystem

Memory management

Hardware control devices drivers


Nvel: Kernel Nvel: Hardware

Hardware

Figura 2.1.2 Como podemos verificar o Kernel prove uma interface chamada Call System (SCI), cujo objetivo de disponibilizar atravs de acessos padronizados a utilizao de todos os recursos disponveis. Tal interface obedece ao padro POSIX, e permite que os programas de usurios possam ser implementados de forma independente do Hardware e do tipo de Kernel, garantindo no s independncia como maior portabilidade.
2003 Audemir Loris

UNIX / LINUX um curso bsico

Estrutura do UNIX OPERAES DE E/S (I/O) As duas principais tarefas de um computador so operaes de I/O e processamento. Em muitos casos a tarefa de I/O preponderante, sendo o processamento incidental. O papel S.O. em relao s atividades de I/O gerenciar e controlar as operaes de I/O e os dispositivos envolvidos. J os aplicativos que essencialmente so softwares de I/O, devem obedecer aos protocolos e convenes adotados para poderem melhor utilizar os recursos disponveis. Devem aderir as regulamentaes estabelecidas para elaborao dos mesmos, algumas estipuladas pelos protocolos apresentados abaixo: SVID System V(5) Interface Document, POSIX Portable Operation System Interface. Uma das regras estabelecidas pelo padro POSIX jamais um arquivo de entrada pode ser aberto como um arquivo de sada no mesmo processo. Existem diversas outras regras ou recomendaes estabelecidas por estes padres. Outros objetivos so fundamentais para o sucesso dos softwares de I/O, so eles: o Independncia de Hardware, o Independncia de tipo de Kernel, o Portabilidade, etc. TRATADORES DE INTERRUPES Sempre que um aplicativo necessita escrever ou ler um dispositivo (device) de I/O, ele deve solicitar atravs de uma chamada feita por intermdio da interface call system ao Kernel, que interrompera as operaes em momento oportuno, acessando os dispositivos, aps o sucesso na operao passado para o aplicativo os resultados ou controle. Tal procedimento isola no s o controle dos
4 UNIX / LINUX um curso bsico
2003 Audemir Loris

Estrutura do UNIX diapositivos do aplicativo em questo, mas permite tambm o uso compartilhado por outros processos dos mesmos dispositivos. A tabela 2.1.3 apresenta os vetores de interrupo do processador Pentium da Intel.

interrup o 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19-31 32-255

descrio Erro de diviso Exceo de depurao Interrupo nula Ponto de parada (breakpoint) Transbordo (overflow) detectado Exceo de limite de faixa Cdigo de operao invalida Dispositivo no pronto (ou disponvel) Falha dupla Segmento do coprocessador excedido Segmento do estado de tarefa invalido Segmento ausente Falha de pilha Proteo geral Falta de pgina (reservado no usar) Erro de ponto flutuante Verificao de alinhamento Verificao de mquina (reservado no usar) Interrupes mascarveis Tabela 2.1.3

2003 Audemir Loris

UNIX / LINUX um curso bsico

Estrutura do UNIX DISPOSITIVOS DE CONTROLE Os dispositivos ou mdulos de controle, conhecidos como device drivers, so programas / rotinas escritas especialmente para atender o controle dos recursos de hardware disponveis, eles abstraem do kernel a tarefa de controlar forma de acesso, sincronizao, mtodos de transferncia, e demais caractersticas do hardware. Estes mdulos so incorporados ao hardware como mdulos ligados ou so compilados junto do kernel, as duas possibilidades apresentam respostas diferentes quanto performance. Normalmente recompilamos o Kernel com os mdulos, quando queremos uma melhor performance do S.O. em termos de tempos, ou quando os mdulos jamais sero desligados. Todo e qualquer programa de usurio que desejar utilizar um recurso presente no sistema, se utilizar s chamadas da SCI, que solicitar ao Kernel o recurso, este por sua vez criar uma interrupo, e desviar o controle do recurso para o mdulo (device) especifico, que uma vez concludo com sucesso, voltar em ordem inversa o controle at o programa solicitante. Um dos objetivos dos devices drivers o de isolar o Kernel da dependncia do Hardware, de forma que novos drivers ou mesmos melhorias para alguns existentes possam ser incorporadas ser ter que mexer no Kernel. Os drivers que so ligados ao Kernel devem toda vez que o sistema for inicializados serem chamados (manualmente ou no), existem alguns programas disponveis no UNIX, para tal: insmod instala modulo carregavl no Kernel rmmod desinstala modulo carregavl do Kernel lsmod lista mdulos carregveis presentes Kernel
6 UNIX / LINUX um curso bsico
2003 Audemir Loris

Estrutura do UNIX 2.1. O SISTEMA DE ARQUIVOS

O sistema de arquivos do UNIX pode ser visto como uma arvore invertida, no topo esta o diretrio root (raiz) e abaixo dele os sub-diretorios so apresentados. A viso que temos hierrquica e lgica, isto quer dizer que os discos ou dispositivos que armazenam fisicamente os dados (arquivos) no necessitam ser ser do mesmo tipo (formatao e mdia) ou estarem presentes na mesma mquina. A figura 2.2.1 apresenta um representao parcial de um sistema de arquivos, note que o diretrio root e representado por uma barra invertida ( / ).

/ bin sh date csh passwd etc lib libc.so. group local man bin bin man src
Figura 2.2.1 Cada node (n) representa um arquivo ou diretrio (ou ainda um dispositivo), no caso dos diretrios este conter por sua vez novos nodes. Como pode ser observado na figura 2.2.1 existe uma relao de parentesco (hierrquica) entre os diretrios e arquivos a comear pelo diretrio root ( / ) para acessar um determinado diretrio ou arquivo devemos especificar o caminho para encontra-lo, ou seja, para especificar o diretrio null deveramos indica-lo da seguinte forma: /dev/null,
2003 Audemir Loris

usr

dev ttya

tmp null

home

aluno1 ... aluno2

mail bin src

UNIX / LINUX um curso bsico

Estrutura do UNIX veja que partimos do diretrio / passamos pelo diretrio dev at chegarmos ao (device) null. O comando que nos permitem navegar na arvore de diretrios o cd, um acrnimo de Change Diretorie, ser visto em detalhes no capitulo que trata dos comandos no UNIX. O Unix organiza as informaes relativas ao sistema de arquivos em uma estrutura semelhante apresentada na figura 2.2.2.

rea de boot

superbloco

Lista de indices INODES (64 Bytes) 1 indice arquivo 1

L UID GID C M A size Diretrio Comum Especial At 16 Gbytes

Usurio rwx Tipo d, -, c, p, l Grupo rwx

Outros rwx

Datas Criao Modificao Acesso

Figura 2.2.2

Podemos ver as informaes relativas a cada inode, detalhadas na parte inferior da figura 2.2.2. Como o S.O.

UNIX / LINUX um curso bsico

2003 Audemir Loris

Estrutura do UNIX UNIX trata praticamente quase tudo com uma entrada na lista de inodes, devemos diferenciar entre o que um arquivo regular, o que um fluxo de bytes, ou porta serial ou impressora, ou unidade de fita e assim por diante, para tal o primeiro grupo de informaes (Tipo) define os tipos de inodes, so eles: letra d c b p l Tipo Diretrio Dispositivo orientado a caracter Dispositivo orientado a bloco Pipe Link Arquivo comum Tabela 2.2.1

Os trs campos sub-sequentes, Usurio, Grupo e Outros, so utilizados para controle de acesso ao arquivo ou dispositivo. Cada um desses campos pode assumir um valor binrio que dado pela combinao dos bits, conforme mostrado na tabela abaixo: Valor binario 001 010 100 Valor decimal Significado 1 Execuo habilitada 2 Escrita habilitada 4 Leitura habilitada Tabela 2.2.2 Smbolo x w r

Desta forma se desejamos tornar um arquivo ou dispositivo habilitado para leitura e escrita simultaneamente devemos ajustar a permisso para 110 em binrio, o que no muito prtico, na verdade podemos usar alguns comandos apropriados que fazem isto. O principal chmod , que altera o modo das permisses. Basta ento ajustar a permisso no campo apropriado para o valor decimal que representas os bits mostrados na tabela 2.2.2, ou seja no caso da permisso 110 bastaria definir a permisso para 6 em decimal, veja os exemplos que seguem: Desejamos que o arquivo xfiles tenha a seguinte configurao o dono ou usurio pode ler, escrever e rodar o arquivo, j o grupo pode apenas ler e executar o mesmo, outros usurios que no pertenam ao grupo ( no seja o dono) s
2003 Audemir Loris

UNIX / LINUX um curso bsico

Estrutura do UNIX podem executar o programa. Veja no esquema apresentado a seguir como fica o ajuste das permisses para este arquivo: usurio w x 1 1 7 grupo w x 0 1 5 outros w x 0 1 1

permisso binrio decimal

r 1

r 1

r 0

Desta forma basta ajustar a permisso do arquivo pra 751 atraves do comando chmod assim: chmod 751 xfile Como vimos possvel definir o nvel de permisso para usurio, grupo de usurios e todos os outros que no pertencem aos dois primeiros. Veremos em detalhes como ajustar as permisses no prximo capitulo. O campo L indica quantos links apontam para este arquivo ou dispositivo. J o campo UID indica quem o usurio dono do arquivo, assim como o GID indica a qual grupo o arquivo esta designado. Por usurio entende-se uma conta vlida no sistema UNIX designada para uma pessoa ou recurso do prprio sistema. Grupo indica um conjunto de usurios (vlidos) que so vinculados a especificao do grupo, no captulo apropriado veremos como administrar usurios e grupos em um sistema UNIX.

10

UNIX / LINUX um curso bsico

2003 Audemir Loris

Estrutura do UNIX 2.2. ALEM DO KERNEL

Como vimos o S.O. tem como cerne o chamado kernel, ele que prove todo relacionamento possvel entre os programas e o hardware. Mas uma distribuio do S.O. no prove apenas o kernel, ela inclui diversos programas e aplicativos que no podem ser confundidos com o S.O., tais como programas de bancos de dados como o BIND, MySql, servidores de pginas WEB como o APACHE, etc. Existe uma grande confuso quando se fala que o LINUX tudo isso (kernel e programas diversos), temos que tomar algum cuidado pois a maioria desses programas acessrios so criados e administrados por terceiros tais como Free Software Fundation, que disponibiliza sobre licenas especificas conhecidas como GPL programas que so esta fundao confiados. comum no Brasil a confuso que software livre grtis, pode at ser (geralmente ) porem o conceito de livre muito maior, esta focado na liberdade de usar como melhor lhe aprouver, de alterar e at redistribuir desde que obedecidas as regras estipuladas pela licena GPL.

2003 Audemir Loris

UNIX / LINUX um curso bsico

11

Você também pode gostar