You are on page 1of 22

UNIX

Introduo
sistema operacional multitarefa e
multiusurio
inicialmente desenvolvido pela Bell
Laboratories, por Ken Thompson, e foi escrito
em linguagem assembler especfica para
computadores PDP-7 da DEC
Por volta de 1980 o sistema UNIX foi reescrito
em linguagem C, por Dennis Ritchie e Ken
Thompson.

Introduo
Hoje em dia, no existe um sistema
operacional UNIX padro. Ele foi explorado
por diversas empresas e existem vrias
implementaes e verses, mas que de uma
forma geral, seguem um entre dois estilos:
O sistema UNIX BSD, desenvolvido pela
universidade de Berkeley.
O sistema UNIX system V, desenvolvido pela AT&T.

Estrutura
o kernel (ncleo), o shell (interface) e as
ferramentas e aplicativos.

Shell
O shell um programa (como qualquer
aplicao) de interface entre o usurio e as
funes do sistema. Ele interpreta comandos
digitados pelo usurio e os transforma em
chamadas ao kernel (system calls). Os
diferentes tipos de UNIX suportam diferentes
tipos de shell.
Os mais populares so: o Bourne Shell (sh), o
Berkeley Shell (csh), o Korn Shell (ksh) e o
Bourne Again Shell (bash)

Kernel

O kernel a parte central do sistema UNIX.


Fornece servios para os programas da aplicao.
O kernel fornece gerenciamento de processos,
gerenciamento de memria, gerenciamento de
I/O etc...
As funes do kernel so ativadas atravs de
chamadas ao sistema (system call).
O UNIX gerencia muitos processos
concorrentemente, onde cada processo possui
seu prprio espao de endereamento, por
questes de proteo, ou seja, nenhum processo
deve atuar sobre uma rea de memria de outro
processo;

Kernel
Todos os usurios entram no sistema
digitando seu login_name e seu password
Cada usurio possui uma rea de trabalho no
sistema de arquivos. O superusurio possui
acesso ao root, ou seja, a qualquer rea do
sistema de arquivos.

Kernel
O sistema UNIX cria e destri processos
freqentemente. Para cada comando digitado
pelo usurio, criado um processo que
executa o arquivo executvel do comando em
questo.
O sistema UNIX permite reentrncia, ou seja,
permite que o usurio crie vrios processos a
partir do mesmo arquivo executvel.

Kernel
Cada processo possui uma regio de cdigo, uma
regio de dados, uma regio de pilha e vrias
estruturas de dados que constituem o ambiente do
processo a razo disso para impedir que um processo
possa alterar seu prprio cdigo.
Diferentemente do DOS, onde o usurio pode tanto
acessar rotinas do DOS quanto rotinas do BIOS, o
sistema operacional UNIX bastante protegido e no
permite que o usurio faa acesso diretamente com o
hardware em linguagem de baixo nvel. Toda a
interao do usurio com o hardware deve ser feita
atravs de system call, o que permite ao UNIX controlar
as operaes do usurio.

Diagrama de Blocos do Unix BSD

Sistema de Arquivos
O sistema UNIX usa um sistema de arquivos
hierrquico estruturado em rvore, onde o n
original o root (raiz)

Sistema de Arquivos
A system call privilegiada mount serve para
ligar um sistema de arquivo ao diretrio de
um outro sistema de arquivo;
A system call unmount separa novamente os
sistemas de arquivos.

Sistema de Arquivos

O sistema de arquivos UNIX uma estrutura de


dados residente sobre o disco. Ele contm um
super bloco que define o sistema de arquivos, um
vetor de i-nodes que define os arquivos no
sistema de arquivos, os blocos de dados dos
arquivos e um conjunto de blocos livres.

Sistema de Arquivos
Um mesmo arquivo pode aparecer em muitos
diretrios diferentes com nomes diferentes isto
chamado linking. As entradas no diretrio para
os arquivos so chamadas link. Os arquivos
existem independentemente das entradas no
diretrio; os links nos diretrios apontam para os
inodes que, por sua vez, apontam para os
arquivos fsicos. O arquivo desaparece quando o
ltimo link para ele removido.

i-node
i-node: Um i-node contm a identificao do
usurio proprietrio e a identificao do grupo
proprietrio, bits de proteo, locador de blocos
(contm endereos fsicos do disco para os
contedos do arquivo), o tamanho do arquivo,
tempo de criao, tempo da ltima modificao,
o nmero de links do arquivo e um indicador que
diz se o arquivo um arquivo comum, diretrio,
arquivo de dispositivo ou pipe.
O i-node contm as informaes necessrias
para localizar todos os blocos fsicos do arquivo.

O locador
de blocos
do i-node
consiste de
13 campos:

i-node

i-node
Os campos de 0 a 9 contm endereos diretos
para os blocos de dados de um arquivo; eles
apontam sucessivamente para os 10 primeiros
blocos do arquivo.
Visto que a maioria dos arquivos UNIX so
pequenos, estes campos so suficientes para
armazenar todos os endereos dos blocos de
um arquivo.

i-node
O campo 10 um endereo de um bloco indireto
ou bloco de ndices. Este bloco contm os
endereos do prximo grupo de blocos do
arquivo.
O campo 11 contm o endereo de um bloco
duplamente indireto, que contm os endereos
do prximo grupo de blocos indiretos do arquivo.
O campo 12 contm o endereo de um bloco
triplamente indireto, que contm os endereos
do prximo grupo de blocos duplamente
indiretos.

i-node
Um diretrio tambm armazenado como um
arquivo. Cada entrada em um diretrio contm
o nome de um arquivo e o nmero do seu inode.
As entradas no diretrio para os arquivos so
chamadas link. Os arquivos existem
independentementes das entradas no diretrio;
os links nos diretrios apontam para os i-nodes
que, por sua vez, apontam para os arquivos
fsicos

Links

i-node
Um arquivo diretrio ocupa quase sempre um
nico bloco do disco ( 512k).
O diretrio root encontrado atravs do
primeiro i-node da lista de i-nodes. A partir
deste diretrio qualquer outro arquivo pode ser
encontrado.
A localizao de um arquivo, dado o seu
pathname, feito percorrendo todos os i-nodes
at o fim da lista encadeada.

i-node

Todo o caminho percorrido para se encontrar o


arquivo usr/ronaldo/carta.doc.