Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Linux e desenvolvimento operacional, Resumos de Competências em Linux

Linux e desenvolvimento operacional

Tipologia: Resumos

2021

Compartilhado em 06/10/2021

usuário desconhecido
usuário desconhecido 🇧🇷

2 documentos

1 / 55

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
logo
Introdu¸ao
Divis˜ao do kernel Linux
QEMU
Arquitetura do Kernel Linux
Alan Godoy S. Mello
Instituto de Computa¸ao
7 de maio de 2009
Alan Godoy S. Mello Arquitetura do Kernel Linux
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37

Pré-visualização parcial do texto

Baixe Linux e desenvolvimento operacional e outras Resumos em PDF para Competências em Linux, somente na Docsity!

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

Arquitetura do Kernel Linux

Alan Godoy S. Mello

Instituto de Computa¸c˜ao

7 de maio de 2009

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

O que ´e um kernel? Fun¸c˜oes do kernel Arquiteturas de kernel

(^1) Introdu¸c˜ao

O que ´e um kernel?

Fun¸c˜oes do kernel

Arquiteturas de kernel

(^2) Divis˜ao do kernel Linux

Sistema de arquivos

Gerenciamento de processos

Gerenciamento de mem´oria

Rede

Drivers de dispositivos

(^3) QEMU

Virtualiza¸c˜ao

QEMU

Usando o QEMU

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

O que ´e um kernel? Fun¸c˜oes do kernel Arquiteturas de kernel

Figura: Vis˜ao em camadas de uma arquitetura de computador.

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

O que ´e um kernel? Fun¸c˜oes do kernel Arquiteturas de kernel

Fun¸c˜oes do kernel

Abstrair o funcionamento do hardware, fornecendo um meio

de desenvolver aplica¸c˜oes que funcionem em diversas

configura¸c˜oes de m´aquinas e melhorando a eficiˆencia de

algumas atividades junto ao hardware.

Garantir a seguran¸ca da m´aquina e dos processos em

execu¸c˜ao, ao controlar quem e como os recursos do sistema

podem ser acessados.

Realizar uma divis˜ao adequada dos recursos entre os

processos, garantindo o isolamento de cada processo.

Prover ao usu´ario oacesso aos servi¸cos disponibilizados,

atrav´es de chamadas de sistema.

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

O que ´e um kernel? Fun¸c˜oes do kernel Arquiteturas de kernel

Figura: Intera¸c˜ao em um kernel monol´ıtico.

Monol´ıtico: todas as atividades b´asicas s˜ao executadas em

modo kernel, sendo que novas funcionalidades s˜ao providas

como m´odulos de kernel, ao inv´es de servidores em espa¸co de

usu´ario; busca maior eficiˆencia ao evitar trocas de contexto.

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

O que ´e um kernel? Fun¸c˜oes do kernel Arquiteturas de kernel

Figura: Intera¸c˜ao em um kernel h´ıbrido.

H´ıbrido: segue uma abordagem pr´oxima ao micro-kernel,

por´em os servidores podem executar c´odigo em modo kernel,

reduzindo os custos devido a trocas de contexto.

Ainda h´a outras como nanokernel ou exokernel.

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

Sistema de arquivos Gerenciamento de processos Gerenciamento de mem´oria Rede Drivers de dispositivos

Divis˜ao do kernel Linux

E poss´ıvel pensar um SO como composto de dois n´ıveis, como

na imagem abaixo.

Figura: Arquitetura b´asica do sistema operacional GNU/Linux.

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

Sistema de arquivos Gerenciamento de processos Gerenciamento de mem´oria Rede Drivers de dispositivos

A glibc permite a transi¸c˜ao entre o modo de usu´ario e o

modo kernel; ao realizar uma chamada de sistema, um

processo de usu´ario torna-se um processo do kernel.

O kernel Linux, em si, n˜ao ´e um processo, mas um gerenciador

de processos, executado nas seguintes situa¸c˜oes: em resposta

a uma chamada de sistema, exce¸c˜ao ou interrup¸c˜ao ou, mais

raramente, em alguma thread do kernel, que seja respons´avel

por executar algumas fun¸c˜oes periodicamente.

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

Sistema de arquivos Gerenciamento de processos Gerenciamento de mem´oria Rede Drivers de dispositivos

Figura: Mapa detalhado do kernel Linux.

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

Sistema de arquivos Gerenciamento de processos Gerenciamento de mem´oria Rede Drivers de dispositivos

Sistema de arquivos

O Linux fornece algumas camadas de abstra¸c˜ao para a

gerˆencia de arquivos. Essas camadas de abstra¸c˜ao permitem

que sejam utilizados m´ultiplos sistemas de arquivos em

m´ultiplos dispositivos de armazenamento.

Figura: Arquitetura do componente de sistemas de arquivos.

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

Sistema de arquivos Gerenciamento de processos Gerenciamento de mem´oria Rede Drivers de dispositivos

Cada sistema de arquivos deve lidar com algumas estruturas

b´asicas: o superblock, o inode e o dentry.

superblock: respons´avel por armazenar informa¸c˜oes como o

tipo do sistema de arquivos, tamanho, dispositivo, lista de

inodes e suas opera¸c˜oes b´asicas, como cria¸c˜ao e remo¸c˜ao de

inodes.

inode: representa um objeto do sistema de arquivos (um

arquivo ou um diret´orio), contendo informa¸c˜oes como dono,

grupo, permiss˜oes, blocos e opera¸c˜oes (como leitura e escrita

no arquivo).

dentry: respons´avel por estabelecer a rela¸c˜ao entre nomes de

arquivos e inodes.

Ao separar os arquivos de seus nomes, ´e poss´ıvel atribuir

v´arios nomes a um mesmo arquivo (hard link).

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

Sistema de arquivos Gerenciamento de processos Gerenciamento de mem´oria Rede Drivers de dispositivos

Figura: A estrutura do inode e suas opera¸c˜oes.

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

Sistema de arquivos Gerenciamento de processos Gerenciamento de mem´oria Rede Drivers de dispositivos

Inicialmente o kernel Linux n˜ao oferecia suporte a aplica¸c˜oes

com m´ultiplas threads, sendo que elas deveriam ser

implementadas em modo usu´ario; isso causava problemas pois

quaisquer chamadas que levassem ao bloqueio de uma das

threads do processo em n´ıvel de kernel fazia com que todas as

outras threads daquele processo acabassem bloqueadas.

Atualmente o Linux oferece esse suporte no kernel, sendo que

tanto processos como threads s˜ao implementados utilizando a

id´eia de processos leves (lightweight process).

Dois processos leves podem compartilhar alguns recursos,

como espa¸co de endere¸camento e arquivos abertos, de tal

forma que sempre que um dos processos modifica um dos

recursos, o outro pode imediatamente perceber a altera¸c˜ao.

logo

Introdu¸c˜ao Divis˜ao do kernel Linux QEMU

Sistema de arquivos Gerenciamento de processos Gerenciamento de mem´oria Rede Drivers de dispositivos

Figura: A representa¸c˜ao de um processo no kernel.