nosso relacionamento com computadores é baseado em símbolos

116
Nosso relacionamento com computadores é baseado em símbolos.

Upload: internet

Post on 17-Apr-2015

104 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Nosso relacionamento com computadores é baseado em símbolos

Nosso relacionamento com computadores ébaseado em símbolos.

Page 2: Nosso relacionamento com computadores é baseado em símbolos

XVICPF

2+3

190

242-4242

Page 3: Nosso relacionamento com computadores é baseado em símbolos

A representação da informação dentro de um computador digital é feita na forma de números.

Page 4: Nosso relacionamento com computadores é baseado em símbolos

65 66 67 10 49 50 51 10 68 69 10 97 98 10

Representação interna do conteúdo de um arquivo

Page 5: Nosso relacionamento com computadores é baseado em símbolos

No LINUX ou no Windows,arquivos são concebidos e tratados

como STREAMS (minhocas) de BYTES.

Page 6: Nosso relacionamento com computadores é baseado em símbolos

O que é um BYTE?

Um BYTE é um número entre 0 e 255 (*).

(*) NOTA: Um BYTE é um conjunto de 8 bits (dígitos binários)

Page 7: Nosso relacionamento com computadores é baseado em símbolos

A : 65B : 66...Z : 90

a : 97b : 98...z : 122

0 : 481 : 49...9 : 57

Caracteres especiais:

0 : NULO8 : BACKSPACE9 : TAB10 : mudança de linha12 : mudança de página

Page 8: Nosso relacionamento com computadores é baseado em símbolos

65 66 67 10 49 50 51 10 68 69 10 97 98 10

Page 9: Nosso relacionamento com computadores é baseado em símbolos

A B C 10 1 2 3 10 D E 10 a b 10

Convertendo a representação interna de um arquivo que eu considero como um arquivo texto:

mudançade linha

mudançade linha

mudançade linha

mudançade linha

Page 10: Nosso relacionamento com computadores é baseado em símbolos

Visualizando o arquivo no meu Terminal de Vídeo:

$ cat arquivoABC123DEab$

A B C 10 1 2 3 10 D E 10 a b 10

Page 11: Nosso relacionamento com computadores é baseado em símbolos

É claro que você já ouviu falarque os comandos no LINUX tem o seguinte formato:

$ comando opções argumentos ...

PAUSA

Page 12: Nosso relacionamento com computadores é baseado em símbolos

entrada

saída

erro (saída de erro)

opções argumentos

retorno

comando

Page 13: Nosso relacionamento com computadores é baseado em símbolos

Comandos no LINUX são aplicações (pequenos programas).

OS

LM

dispositivos

aplicação

Page 14: Nosso relacionamento com computadores é baseado em símbolos

entrada

saída

erro (saída de erro)

retorno

opções argumentos

comando

KERNEL (OS)

Page 15: Nosso relacionamento com computadores é baseado em símbolos

saída

retorno

“arquivo”

cat

KERNEL

opções

entrada

erro (saída de erro)

Page 16: Nosso relacionamento com computadores é baseado em símbolos

saída

retorno

“arquivo”

KERNEL

opções

entrada

erro (saída de erro)cat

Page 17: Nosso relacionamento com computadores é baseado em símbolos

retorno

“arquivo”

KERNEL

opções

entrada

erro (saída de erro)

65 66 67 10 49 50 51 10 68 69 10 97 98 10

cat

Page 18: Nosso relacionamento com computadores é baseado em símbolos

retorno

“arquivo”

KERNEL

opções

entrada

erro (saída de erro)

65 66 67 10 49 50 51 10 68 69 10 97 98 10

cat

Page 19: Nosso relacionamento com computadores é baseado em símbolos

saída

0 (ZERO quer dizer OK)

“arquivo”

KERNEL

opções

entrada

erro (saída de erro)cat

Page 20: Nosso relacionamento com computadores é baseado em símbolos

- Pô mas o cat não serve para euver o conteúdo de um arquivo?

Tudo o que o cat cuspiu foram ostais numerinhos ...

65 66 67 10 49 50 51 10 68 69 10 97 98 10

- Tá certo isso ?

Page 21: Nosso relacionamento com computadores é baseado em símbolos

Por default, a saída padrão de um comando no SHELL é o terminal.

O cat não sabe para onde vai a sua saída,ele simplesmente manda a minhoca

para a saída que ele conhece.

E a gente já viu o que o device driver do terminalfaz com a minhoca de BYTES ...

Page 22: Nosso relacionamento com computadores é baseado em símbolos

devicedriver(terminal)

$ cat arquivoABC123DEab$

65 66 67 10 49 50 51 10 68 69 10 97 98 10

Page 23: Nosso relacionamento com computadores é baseado em símbolos

devicedriver

(printer)

ABC123DEab

$ cat arquivo > /dev/lp$

Impressora

Personal TABAJet

65 66 67 10 49 50 51 10 68 69 10 97 98 10

Page 24: Nosso relacionamento com computadores é baseado em símbolos

FileSystem

(disco)

$ cat arquivo > arquivo2$ (conteúdo de arquivo2)

65 66 67 10 49 50 51 10 68 69 10 97 98 10

65 66 67 10 49 50 51 10 68 69 10 97 98 10

Page 25: Nosso relacionamento com computadores é baseado em símbolos

O UNIX introduzo conceito de que

tanto arquivos quanto dispositivosmanipulam STREAMS de BYTES.

Page 26: Nosso relacionamento com computadores é baseado em símbolos

O UNIX revolucionou ao proporque as interfaces com os dispositivos físicosaparentassem ser arquivos no File System.

exemplos: /dev/mouse, /dev/modem, /dev/lp

Page 27: Nosso relacionamento com computadores é baseado em símbolos

Modelo geral de um device driver no UNIX:

controle

entrada saídadevicedriver

Page 28: Nosso relacionamento com computadores é baseado em símbolos

saída

retorno

“pau”

cat

KERNEL

opções

entrada

erro (saída de erro)

Page 29: Nosso relacionamento com computadores é baseado em símbolos

saída

retorno

“pau”

KERNEL

opções

entrada

erro (saída de erro)cat

Page 30: Nosso relacionamento com computadores é baseado em símbolos

retorno

“pau”

KERNEL

opções

entrada

erro (saída de erro)cat

saída

não existe!

Page 31: Nosso relacionamento com computadores é baseado em símbolos

retorno

“pau”

KERNEL

opções

entradacat

saída

erro (saída de erro)

Page 32: Nosso relacionamento com computadores é baseado em símbolos

retorno

“pau”

KERNEL

opções

entrada

cat: pau not foundcat

saída

Page 33: Nosso relacionamento com computadores é baseado em símbolos

saída

1 (UM quer dizer ERRO)

“arquivo”

KERNEL

opções

entrada

erro (saída de erro)cat

Page 34: Nosso relacionamento com computadores é baseado em símbolos

A saída padrão e a saída de erro padrão no UNIX

são dois “canais de minhocas” independentes.

Tudo o que vale para asaída padrão vale

para a saída de erro padrão.

Page 35: Nosso relacionamento com computadores é baseado em símbolos

Já que entradas e saídas paraarquivos e dispositivos são

STREAMS de BYTES,é possível ligar

a saída de um comandona entrada de outro comando.

Comandos, em princípio,não quebram esse padrão.

Page 36: Nosso relacionamento com computadores é baseado em símbolos

(out = in)

retorno

“arquivo”

cat

KERNEL

opções

errowc

-l argumentos

retorno

erro

465 66 67 10 49 50 51 10 68 69 10 97 98 10

Page 37: Nosso relacionamento com computadores é baseado em símbolos

PIPES são estruturas de processamentoem que

a saída padrão de um comandoé conectada

à entrada padrão do comando seguinte.

Page 38: Nosso relacionamento com computadores é baseado em símbolos

Um DIRETÓRIO é um conjunto de informaçõessobre arquivos e/ou outros diretórios.

Page 39: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$dir1

Page 40: Nosso relacionamento com computadores é baseado em símbolos

Todo o processo no UNIX tem um diretório corrente (pwd).

Nosso exercício começa, quando de alguma forma, apósum cd fizemos do diretório dir1 o nosso diretório corrente.

Nesse exercício, ele será o diretório corrente o tempo todo.

Não revisaremos o comando cd.

Page 41: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ pwd/qualquer coisa.../dir1

dir1

Page 42: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ pwd/qualquer coisa.../dir1$

dir1

Page 43: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ pwd/qualquer coisa.../dir1$ clear

dir1

Page 44: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$dir1

Page 45: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$

dir1

Page 46: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco

dir1

Page 47: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco

dir1

caco

Page 48: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco

dir1

caco

Page 49: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco

dir1

caco

Page 50: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$

dir1

caco

Page 51: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco

dir1

caco

Page 52: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco

dir1

caco

Page 53: Nosso relacionamento com computadores é baseado em símbolos

O SHELL entende o comando

$ cat caco oto > caco

como

$ cat caco oto > caco

Ele primeiro reseta o arquivo caco e depois concatenaas minhocas de caco e oto. Resultado: ele apaga o conteúdo do arquivo caco e depois usa ...

Page 54: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco

dir1

caco

Page 55: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$

dir1

caco

Page 56: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$

dir1

caco

Page 57: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco

dir1

caco

Page 58: Nosso relacionamento com computadores é baseado em símbolos

O SHELL entende o comando

$ cat oto >> caco

como

$ cat oto >> caco

Ele primeiro posiciona o arquivo caco no final destee depois concatena a minhoca de oto.

Page 59: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco

dir1

caco

Page 60: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco$

dir1

caco

Page 61: Nosso relacionamento com computadores é baseado em símbolos

Chega de cat por hoje ...

Page 62: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco$ rm caco

dir1

caco

Page 63: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco$ rm caco

dir1

caco

Page 64: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco$ rm caco$

dir1

Page 65: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco$ rm caco$ mkdir dir12

dir1

Page 66: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco$ rm caco$ mkdir dir12

dir1

dir12

Page 67: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco$ rm caco$ mkdir dir12$

dir1

dir12

Page 68: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco$ rm caco$ mkdir dir12$ ls dir12$

dir1

dir12

Page 69: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco$ rm caco$ mkdir dir12$ ls dir12$ cp oto dir12

dir1

dir12

Page 70: Nosso relacionamento com computadores é baseado em símbolos

O comando cp descobre que dir12 é um diretório:

$ cp oto dir12

e então copia o arquivo oto nesse diretório.

Repare que se dir12 não existisse o comando cpobviamente criaria um arquivo chamado dir12.

Page 71: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco$ rm caco$ mkdir dir12$ ls dir12$ cp oto dir12$

dir1

dir12

oto

Page 72: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ lsbabaoto$ cp baba caco$ cat caco oto > caco$ cp baba caco$ cat oto >> caco$ rm caco$ mkdir dir12$ ls dir12$ cp oto dir12$ clear

dir1

dir12

oto

Page 73: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$dir1

dir12

oto

Page 74: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ ls dir12oto$

dir1

dir12

oto

Page 75: Nosso relacionamento com computadores é baseado em símbolos

baba oto

$ ls dir12oto$ mv oto ito

dir1

dir12

oto

Page 76: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$ ls dir12oto$ mv oto ito

dir1

dir12

oto

Page 77: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$ ls dir12oto$ mv oto ito$

dir1

dir12

oto

Page 78: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$ ls dir12oto$ mv oto ito$ rm dir12/oto

dir1

dir12

oto

Page 79: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$ ls dir12oto$ mv oto ito$ rm dir12/oto

dir1

dir12

oto

Page 80: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$ ls dir12oto$ mv oto ito$ rm dir12/oto$

dir1

dir12

Page 81: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$ ls dir12oto$ mv oto ito$ rm dir12/oto$ mv baba ito dir12

dir1

dir12

Page 82: Nosso relacionamento com computadores é baseado em símbolos

O comando mv descobre que baba e ito são arquivose que dir12 é um diretório:

$ mv baba ito dir12

assim, ele move os dois arquivos para esse diretório.

Repare que se dir12 não existisse o comando mvresultaria em erro, pois ele não pode renomear doisarquivos para um terceiro.

Page 83: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$ ls dir12oto$ mv oto ito$ rm dir12/oto$ mv baba ito dir12

dir1

dir12

Page 84: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$ ls dir12oto$ mv oto ito$ rm dir12/oto$ mv baba ito dir12$

dir1

dir12

Page 85: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$ ls dir12oto$ mv oto ito$ rm dir12/oto$ mv baba ito dir12$ ls dir12$

dir1

dir12

Page 86: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$ ls dir12oto$ mv oto ito$ rm dir12/oto$ mv baba ito dir12$ ls dir12$ ls dir12babaito$

dir1

dir12

Page 87: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$ ls dir12oto$ mv oto ito$ rm dir12/oto$ mv baba ito dir12$ ls dir12$ ls dir12babaito$ clear

dir1

dir12

Page 88: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$dir1

dir12

Page 89: Nosso relacionamento com computadores é baseado em símbolos

baba ito

$ mv dir12/baba .dir1

dir12

Page 90: Nosso relacionamento com computadores é baseado em símbolos

baba

ito

$ mv dir12/baba .dir1

dir12

Page 91: Nosso relacionamento com computadores é baseado em símbolos

baba

ito

$ mv dir12/baba .$

dir1

dir12

Page 92: Nosso relacionamento com computadores é baseado em símbolos

baba

ito

$ mv dir12/baba .$ rm -r dir12

dir1

dir12

Page 93: Nosso relacionamento com computadores é baseado em símbolos

baba

ito

$ mv dir12/baba .$ rm -r dir12

dir1

dir12

Page 94: Nosso relacionamento com computadores é baseado em símbolos

baba

$ mv dir12/baba .$ rm -r dir12$

dir1

Page 95: Nosso relacionamento com computadores é baseado em símbolos

baba

$ mv dir12/baba .$ rm -r dir12$ ln baba oto

dir1

Page 96: Nosso relacionamento com computadores é baseado em símbolos

baba

$ mv dir12/baba .$ rm -r dir12$ ln baba oto

dir1

oto

Page 97: Nosso relacionamento com computadores é baseado em símbolos

baba

$ mv dir12/baba .$ rm -r dir12$ ln baba oto

dir1

oto

Page 98: Nosso relacionamento com computadores é baseado em símbolos

baba

$ mv dir12/baba .$ rm -r dir12$ ln baba oto$

dir1

oto

Page 99: Nosso relacionamento com computadores é baseado em símbolos

baba

$ mv dir12/baba .$ rm -r dir12$ ln baba oto$ ln oto caco

dir1

oto

Page 100: Nosso relacionamento com computadores é baseado em símbolos

baba

$ mv dir12/baba .$ rm -r dir12$ ln baba oto$ ln oto caco

dir1

oto caco

Page 101: Nosso relacionamento com computadores é baseado em símbolos

baba

$ mv dir12/baba .$ rm -r dir12$ ln baba oto$ ln oto caco$

dir1

oto caco

Page 102: Nosso relacionamento com computadores é baseado em símbolos

baba

$ mv dir12/baba .$ rm -r dir12$ ln baba oto$ ln oto caco$ rm oto

dir1

oto caco

Page 103: Nosso relacionamento com computadores é baseado em símbolos

baba

$ mv dir12/baba .$ rm -r dir12$ ln baba oto$ ln oto caco$ rm oto

dir1

caco

Page 104: Nosso relacionamento com computadores é baseado em símbolos

$ mv dir12/baba .$ rm -r dir12$ ln baba oto$ ln oto caco$

dir1

oto caco

NOTA: Se eu tivesse feito:

$ rm baba

O resultado seria o indicado.

Page 105: Nosso relacionamento com computadores é baseado em símbolos

Vimos os comandos:

cp COPYmv MOVEln LINKrm REMOVE

IMPORTANTE: Todos eles tem em comum o fato de alterarem as informações dos arquivos nos diretórios em que esses arquivos se localizam.

Page 106: Nosso relacionamento com computadores é baseado em símbolos

No LINUX ou no Windows,arquivos são concebidos e tratados

como STREAMS (minhocas) de BYTES.

65 66 67 10 49 50 51 10 68 69 10 97 98 10

exemplo: representação interna do conteúdo de um arquivo

Page 107: Nosso relacionamento com computadores é baseado em símbolos

Comandos no UNIX são aplicações.

OS

LM

dispositivos

aplicação

entrada saída

Page 108: Nosso relacionamento com computadores é baseado em símbolos

entrada

saída

erro (saída de erro)

retorno

opções argumentos

comando

KERNEL

Page 109: Nosso relacionamento com computadores é baseado em símbolos

A saída padrão e a saída de erro padrão no UNIX

são dois “canais de minhocas” independentes.

Page 110: Nosso relacionamento com computadores é baseado em símbolos

PIPES são estruturas de processamentoem que

a saída padrão de um comandoé conectada

à entrada padrão do comando seguinte.

Page 111: Nosso relacionamento com computadores é baseado em símbolos

O UNIX introduzo conceito de que

tanto arquivos quanto dispositivosmanipulam STREAMS de BYTES.

Page 112: Nosso relacionamento com computadores é baseado em símbolos

Para o UNIX,as interfaces com os dispositivos físicosaparentam ser arquivos no File System.

exemplos: /dev/mouse, /dev/modem, /dev/lp

Page 113: Nosso relacionamento com computadores é baseado em símbolos

Modelo geral de um device driver no UNIX:

controle

entrada saídadevicedriver

Page 114: Nosso relacionamento com computadores é baseado em símbolos

CPU Process Management

RAM Memory Management

disco File Systems

dispositivos Device Drivers

XNOTA: Isto aqui é como um campeonato:

Todo mundo joga contra todo mundo ...

Page 115: Nosso relacionamento com computadores é baseado em símbolos

PAPAI NOEL não existe.

Page 116: Nosso relacionamento com computadores é baseado em símbolos

O cat não sabe para onde vai a sua saída,ele simplesmente manda a minhoca

para a saída que ele conhece.

E a gente já viu o que o device driver do terminalfaz com a minhoca de BYTES ...