Arquitectura De Um Linux

Post on 02-Nov-2014

2.447 views 0 download

Tags:

description

Linux inside-out. Filosofia UNIX, conceitos principais e arquitectura.

Transcript of Arquitectura De Um Linux

  

Arquitectura de um LinuxArquitectura de um Linux

1 de Abril de 2009, Sapo Sessions1 de Abril de 2009, Sapo Sessions

Filosofia, Conceitos e ArquitecturaFilosofia, Conceitos e Arquitectura

Miguel Mascarenhas FilipeMiguel Mascarenhas Filipe

  

SumárioSumário

O que é o LinuxO que é o Linux

Filosofia UNIXFilosofia UNIX

Conceitos baseConceitos base

ArquitecturaArquitectura

  

O que é um Linux ?O que é um Linux ?

Linux é um Sistema Operativo UNIXLinux é um Sistema Operativo UNIX

É software Open SourceÉ software Open Source

Linux é Linux é apenasapenas o núcleo ( o núcleo (kernelkernel))

  

O que é um SO UNIX?O que é um SO UNIX?

Criado em 1969 por Ken ThomsonCriado em 1969 por Ken Thomson(e outros da Bell Labs)(e outros da Bell Labs)

Multi TarefaMulti Tarefa

Multi UtilizadorMulti Utilizador

  

UNIX é ...UNIX é ...

… … SimplesSimples

O nome parodiava o O nome parodiava o MulticsMultics,,SO altamente sofisticado e complexo,SO altamente sofisticado e complexo,

desenhado por comité, que foi um fracasso. desenhado por comité, que foi um fracasso. (No qual Thompson também esteve envolvido)(No qual Thompson também esteve envolvido)

  

Filosofia UNIXFilosofia UNIX

É um conjunto de normas culturais e abordagens É um conjunto de normas culturais e abordagens filosóficas para o desenvolvimento de software...filosóficas para o desenvolvimento de software...

  

REGRA #1REGRA #1

Escreve programas que façam apenas Escreve programas que façam apenas uma coisauma coisa

mas que a façam bem feito.mas que a façam bem feito.

  

REGRA #2REGRA #2

Escreve programas que trabalhem Escreve programas que trabalhem bem juntos.bem juntos.

  

REGRA #3REGRA #3

Escreve programas que manipulemEscreve programas que manipulemstreamsstreams de texto, de texto,

pois esta é uma interface universal.pois esta é uma interface universal.

  

Há três conceitos importantes...Há três conceitos importantes...

  

UtilizadoresUtilizadores

  

ProcessosProcessosFicheirosFicheiros

ee

  

UtilizadoresUtilizadores

rootrootum utilizador para cada serviçoum utilizador para cada serviço

e... e... os humanosos humanos

  

FicheirosFicheiros

●Organizados numa única àrvore hierarquica.Organizados numa única àrvore hierarquica.●Existem vários tipos de ficheiros:Existem vários tipos de ficheiros:

● De dadosDe dados● Block devicesBlock devices● Character devicesCharacter devices● VirtuaisVirtuais

  

  

  

Controlo de AcessoControlo de Acesso

Aceder a → ficheirosAceder a → ficheirosQuem → processosQuem → processos

Em nome de → utilizadoresEm nome de → utilizadores

  

Permissões de FicheirosPermissões de Ficheiros

Cada ficheiro pertence a:Cada ficheiro pertence a:● Um utilizador,Um utilizador,● Um grupo.Um grupo.

Define permissões para:Define permissões para:● Leitura,Leitura,● Escrita,Escrita,● ExecuçãoExecução

  

ProcessoProcesso● Entidade de execução no SOEntidade de execução no SO

● Corre em nome de um utilizadorCorre em nome de um utilizador

(e portanto, com os previlégios desse utilizador).(e portanto, com os previlégios desse utilizador).

● Para comunicar com o exterior utiliza Para comunicar com o exterior utiliza

file descriptorsfile descriptors

● Existe uma relação de Pai-Filho entre processos.Existe uma relação de Pai-Filho entre processos.

● Os processos Os processos herdamherdam propriedades do seu pai propriedades do seu pai

  

pipe(); fork(); exec();pipe(); fork(); exec();

pipe() → canal de comunicação bidireccionalpipe() → canal de comunicação bidireccional

fork() → criação de processo filhofork() → criação de processo filho

(igualzinho ao pai)(igualzinho ao pai)

exec() → executar um programaexec() → executar um programa

  

ArquitecturaArquitectura

KERNELKERNELLIBCLIBC

APLICAÇÕESAPLICAÇÕES

  

  

GNU LIBCGNU LIBC

Interface com as Interface com as System CallsSystem Calls do Linux do LinuxImplementa Implementa interfacesinterfaces normalizadas: normalizadas:●POSIXPOSIX●C99C99●SysV UNIXSysV UNIX●BSDBSD

  

APLICAÇÕESAPLICAÇÕES

  

  

  

Layout de Linux na ConsolaLayout de Linux na Consola

KernelKernelmount da raiz: /mount da raiz: /InitInit

ShellShellSistema de arranque:Sistema de arranque:

Lançamento de daemons (uids)Lançamento de daemons (uids)Login managerLogin manager

User login → shell (uid)User login → shell (uid)

  

  

  

Layout de Linux Layout de Linux GráficoGráfico

Linux de ConsolaLinux de Consola

XserverXserver (programa servidor gráfico) (programa servidor gráfico)

Login managerLogin manager

Gestor de Janelas (Gestor de Janelas (Window ManagerWindow Manager))

Ambiente DesktopAmbiente Desktop