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
Top Related