Você está na página 1de 65

Sistemas Operativos

Capítulo 2

Patrício Domingues
ESTG/IPLeiria
2024
O papel de um SO
✓Um computador é um conjunto de recursos
orientadas para o movimento, armazenamento e
processamento de dados
– O SO é responsável pela gestão desses recursos

(c) Patricio Domingues


2
O sistema operativo
Sistema operativo é...
✓Software que controla a execução das
aplicações
– Na realidade trata-se de um conjunto (vasto) de programas
▪ Kernel do Linux 5.x (2022): 25 milhões de linhas...(slide seguinte)
✓ Interface entre aplicações e o hardware
– Exemplo
▪ Uma aplicação não manipula diretamente um ficheiro
▪ A aplicação recorre a serviços do sistema operativo (através das
funções “open”, “close”, “write”, “read”...)
– Chamadas ao sistema operativo

3
Kernel do Linux
✓Linhas de código do kernel do Linux
– 2022: 27.8 milhões de linhas de código
– Quanto mais linhas de código, mais bugs…
– Fonte:

(c) Patricio Domingues


4
Bugs no Linux?
✓New Old Bugs in the Linux Kernel (2021)
– «We found three bugs in a forgotten corner of the
mainline Linux kernel that turned out to be about 15
years old.»
– «One turned out to be useable as a Local Privilege
Escalation (LPE) in multiple Linux environments.»
– Códigos CVE: CVE-2021-27363, CVE-2021-27364, CVE-2021-
27365

https://blog.grimm-co.com/2021/03/new-old-bugs-in-linux-kernel.html 5
Principais objetivos de um SO
✓ Conveniência
– Facilitar a vida ao utilizador/programador

✓ Eficiência
– Uso eficiente dos recursos do sistemas
▪ Maximizar o aproveitamento dos recursos (CPU, memória, disco,...)

✓ Capacidade para evoluir


– As plataformas de hardware vão evoluíndo (rapidamente!)
bem como as exigências dos utilizadores
▪ Um sistema operativo deve possibilitar
a evolução
6
Serviços de um SO
▪ Desenvolvimento de aplicações
▪ Execução de programas
▪ Acesso a dispositivos de E/S (teclado, rato,
rede, disco,…)
▪ Acesso controlado a ficheiros
▪ Acesso ao sistema
▪ Deteção de erros
▪ Contabilização de uso, recursos, etc.
▪… 7
CLASSES DE UTILIZADORES

(c) Patricio Domingues


8
Classes de utilizadores SO (1)
✓Um SO tem quatro classes de utilizadores
– Utilizador de aplicações
– Programador de aplicações
– Programador de sistemas
– Administrador de sistemas
✓Cada classe de utilizadores tem necessidade
diferentes

Próximo slide: descrição das classes de utilizadores >>

(c) Patricio Domingues


9
Utilizador de aplicações
✓Utilizador de aplicações pretende...
– SO fácil de usar e aprender
▪ Idealmente, que nem seja preciso aprender
– SO que se adapte ao utilizador
– SO que responda rapidamente às solicitações
– SO sem surpresas (e.g.: “apagar ficheiro sem
avisar” é uma surpresa altamente indesejável…)
– SO com alternativas na realização de tarefas
▪ Exemplo: alguns utilizadores preferem o rato, outros
utilizadores preferem o teclado
– + shift + s: captura de ecrã seletiva
(c) Patricio Domingues
10
Programador de aplicações
✓Programador de aplicações
– Acesso fácil a chamadas de baixo nível do SO
▪ Leitura de input via teclado, posição do rato
– Visão consistente do sistema ao programador
– Uso fácil de serviços de alto nível
▪ Criação de janelas, acesso a canais de comunicação via rede,
código e serviços para cifração de dados, etc. ...
▪ Uso através de API
– Application Programming Interface
– Portabilidade para outras plataformas
▪ Nem sempre é um requisito
(c) Patricio Domingues
11
Programador de sistemas
✓Programador de sistemas
– Desenvolve software para tarefas do sistema
▪ Device drivers, código do núcleo do SO,…
✓SO deve possibilitar...
– fácil criação de programas corretos
– fácil depuração de programas
– fácil manutenção de programas
– fácil alterar/expandir programas
– fácil avaliar desempenho de programas
✓A programação de sistemas é exigente
(c) Patricio Domingues
12
Administrador de sistemas
✓SO deve possibilitar...
– Fácil acréscimo/remoção de dispositivos como discos,
impressoras, ligações de rede, etc.
– Segurança para todos os utilizadores do sistema, dados,
etc.
▪ Muito relevante para lidar com ciberataques
– Fácil atualização do sistema para novas versões
– Fácil gestão de utilizadores
– Eficiente gestão dos recursos
do sistema

(c) Patricio Domingues


13
TIPOS DE SISTEMAS OPERATIVOS

(c) Patricio Domingues


14
Tipos de sistemas operativos
✓Tipos
– SO mono utilizador, mono tarefa
– SO multitarefa
– SO não interativo (batch mode – processamento lotes)
– SO multiutilizador / time-sharing
– SO de tempo real
– Sistemas virtualizados

Próximos slides: Análise aos vários tipos de SO >>


(c) Patricio Domingues
15
SO monoutilizador /monotarefa
✓O SO apenas executa um processo de cada vez
– Processo: programa em execução
✓SO típico dos primórdios dos computadores
pessoais
– SO simples e limitados
– Interface de texto sem gráficos (linha de comandos)
✓Exemplos
– CP/M
– Microsoft DOS
▪ Limitado a 640 KB de memória
– FreeDos
(c) Patricio Domingues
16
SO multitarefa (1)
✓ SO suporta a execução “simultânea” de
várias aplicações
– Embora com um só utilizador interativo
✓ Requer a capacidade de comutação
de tarefas
– CPU executa parte de um processo, depois
executa parte de outro, etc.
– Tudo isso num curto intervalo de tempo (e.g. https://bit.ly/2wkJ8hp
30 processos por segundo)
– Utilizador com a ilusão que os processos estão
em execução simultânea
✓ SO recentes são multitarefa (“Windows”, Linux, Mac OS X, iOS,
Android...)

(c) Patricio Domingues


17
SO multitarefa (2)
✓O SO vai comutando as tarefas
– Uma tarefa é substituída por outra quando:
▪ Já está há demasiado tempo a executar no CPU (e.g. 50 ms)
▪ Requer o uso de um dispositivo de Entrada/Saída
– Exemplo: acesso ao disco, espera pelo teclado, etc.

(c) Patricio Domingues


18
SO não interativo (1)
✓ Também designado por processamento em lotes
(“batch”)
✓ Os recursos de um sistema de computação de alto
desempenho são caros (e.g., supercomputador)
– Supercomputador com 1024 CPUs e GPUs

China Sunway BlueLight MPP Supercomputer

✓ O SO não permite o uso interativo do sistema


– Utilizadores recebem “lote de horas de computação”
✓ Exemplo: 1000 horas (c) Patricio Domingues
19
Supercomputadores - exemplos
✓1 TFLOP/s = 1 x 1012 FLOPS/s
– 1 x 1012 operações de vírgula flutuante por segundo

(c) Patricio Domingues


20
SO não interativo (2)
✓As tarefas devem ser autónomas
– Não podem parar a meio a pedir
indicações aos utilizadores
– Tarefas em lote (“batch processing”)
– Existe um computador de acesso
▪ Frontend machine
✓Exemplos
– Computadores para a criação de
imagens de síntese
(“rendering farms”)

http://ainkaboot.co.uk/cluster-architecture.php
(c) Patricio Domingues
21
✓Exemplo
– Software de monitorização de uma renderfarm

https://www.youtube.com/watch?v=hUMOmxK_hf0
22
Evolução

(c) Patricio Domingues


23
Ainda sobre o Toy Story 4…

http://tinyurl.com/mtypsd8k 24
SO multiutilizador/timesharing (#1)
✓ SO permite o uso simultâneo de
vários utilizadores
– Utilizadores ligados em sessões
separadas
– O tempo de CPU é partilhado pelos
utilizadores
▪ Timesharing = tempo compartilhado
– Tarefas interativas deve ser tratadas
rapidamente
▪ Curto tempo de resposta
– Empregues inicialmente em sistemas de
grande porte
▪ IBM OS 360, multics (anos 1960)
– Atualmente
▪ servidores de ficheiros, de bases de dados,
servidores web, cloud (c) Patricio Domingues
25
SO multiutilizador/timesharing (#2)
✓ Exemplo de servidor timesharing
– IBM mainframe Z-serie
✓ z15 suporta
– Capacidade > 12 x 109 transações cifradas
por dia
– Até 40 TiB de memória RAM
– NOTA: Importante manter os dados cifrados para
proteção de dados (RGPD)
✓ 23 dos 25 maiores vendedores usam
mainframe
✓ 92 dos 100 maiores bancos usam mainframe

▪ NOTA: Já existe o Z16 / IBM Tellum


(c) Patricio Domingues
26
SO de tempo real (#1)
✓ “A real-time system is one in which the correctness of the
computations not only depends upon the logical correctness of
the computation, but also upon the time at which the result is
produced. If the timing constraints are not met, system failure is
said to have occurred.”
– Fonte: Real-time Computing FAQ
✓Conceito de “latência”
– Na computação, designa-se por latência o tempo que medeia
entre um evento e a resposta a esse mesmo evento
– Existem dois tipos de latência que afetam os sistemas de
tempo real
▪ Latência “interrupção” – tratamento de interrupção
▪ Latência “escalonamento” – escolha do próximo a obter CPU
27
SO de tempo real (#2)
✓Sistemas de tempo real:
– hard realtime – garantem a execução das tarefas críticas no
tempo estabelecido (nem antes, nem depois!). O não cumprir de
um prazo é considerado uma falha do sistema que pode ter
consequências catastróficas.
▪ Exemplos: sistema ABS/ESP de uma viatura; sistema de segurança de
central nuclear; sistema de condução autónoma.

– firm realtime – falhar um deadline é tolerado se o número de falhas


for muito diminuto. A utilidade de um resultado é nulo após que tenha
expirado o deadline.
▪ Exemplo: robot de construção automóvel que falha um ponto de soldadura. Se falhar
vários pontos de soldadura consecutivamente pode criar problemas de qualidade

– soft realtime – apenas é dada prioridade às tarefas críticas, não


sendo garantida a sua execução dentro de limites de tempo estritos. Um
resultado produzido após expirado o deadline ainda pode ter utilidade.
▪ Muitas vezes, o “soft” realtime é especificado através de probabilidades. O
sistema garante com probabilidade P que a resposta a determinado evento
ocorrerá num prazo T
▪ Exemplos: visionamento em streaming de um vídeo; resposta do OS a evento no
ecrã touch do telemóvel
28
SO de tempo real (#3)
▪ Exemplos de SO de tempo real
▪ VxWorks, QNX, COS-ii/iii, RIOT, Nucleus RTOS, RTEMS
▪ NOTA: RTOS – Real Time Operating System
▪ VxWorks: empregue nas missões espaciais da NASA
▪ RTEMS: Real Time Executive for Multiprocessor Systems Margaret Hamilton
▪ Código aberto Software Missão Apollo
▪ Empregue nas missões espaciais da ESA
▪ O iOS e o Android são SO de tempo real?
▪ Não, porque não são determinísticos: não garantem que determinado
evento seja respondido corretamente num determinado intervalo de
tempo
▪ Windows, macOS são SO de tempo real?
▪ Não. São GPOS – General Purpose Operating System
(c) Patricio Domingues
29
SO de tempo real – aplicações (#4)

✓Áreas de aplicação
– Sistemas de suporte de vida (“e-care”)
– Sistemas de controlo industrial
– Sistemas de comunicações
– Sistemas de controlo de tráfego aéreo, aeronaves
– Sistemas de controlo de motores
– Deteção de fraude financeira (clonagem de cartões,etc.)
– Robótica, exploração espacial
– Etc.

30
Sistemas SCADA (#1)
• SCADA
– Supervisory Control and
Data Acquisition
– Sistema de controlo e
monitorização
– Empregue em processos
industriais, energia e
infraestrutura crítica https://ih1.dpstele.com/images/scadasys.png

– Software mais hardware • PLC: Programmable Logic


• Possibilita a supervisão, Controler
controle e aquisição dados – Sistemas programáveis que
em tempo real de controlam os atuadores e sensores
equipamentos
• “Chão de fábrica”

(c) Patricio Domingues


31
Sistemas SCADA (#2)
• Exemplo SCADA – abstecimento de água

• Fonte: Brad S, Murar M, Vlad G, Brad E, Popanton M. Lifecycle Design of Disruptive SCADA Systems
for Waste-Water Treatment Installations. Sustainability. 2021; 13(9):4950.
https://doi.org/10.3390/su13094950 32
Máquinas virtuais
✓Definição de máquina virtual
– Implementação via software de uma máquina (por
exemplo, um computador) que executa programas /
processos
✓Existem dois tipos de máquinas virtuais
– Máquina virtual software
– Máquina virtual sistema

Próximo slide: máquina virtual software >>

(c) Patricio Domingues


33
MÁQUINAS VIRTUAL SOFTWARE

(c) Patricio Domingues


34
Máquina virtual software
✓Máquina virtual “software”
– Máquina abstrata que implementa uma determinada
“Instruction Set Architecture” (arquitetura virtual)
– A máquina virtual disponibiliza alguns serviços
▪ Gestão de memória, gestão de fluxos de execução (threads),
...
– Exemplos
▪ Bytecode da JVM (Java Virtual Machine)
▪ CLI (Common Language Infrastructure) implementado pelo
Microsoft .NET
▪ O código fonte dos programas é compilado para a
arquitetura virtual
– bytecode no java
– CLR no .NET (c) Patricio Domingues
35
Pros e contras das máquinas virtuais software

✓(+) Portabilidade
– Código pode ser executado em qualquer máquina
física/SO, desde que exista uma implementação da
máquina virtual para o SO em causa
✓(+) Programação
– As máquinas virtuais software disponibilizam várias
funcionalidades que facilitam a programação
▪ Gestão de memória dinâmica, mecanismos de threading e
sincronização, ...
✓(-) Lentidão
– Código é interpretado, o que torna a sua execução mais
demorada
(c) Patricio Domingues
36
Exemplo: java e bytecode (1)

1. Escrita do código
java (.java)
2. Compilação: o http://bit.ly/9QKMtO

compilador cria
uma representação
em bytecode
3. O bytecode é
executado na Java
Virtual Machine https://bit.ly/2wkagwY
(JVM)

(c) Patricio Domingues


37
Exemplo: java e bytecode (2)

Fonte: wikipedia

(c) Patricio Domingues


38
JVM vs. Android (#1)
• Android recorre a máquina • JVM
virtual – uma arquitetura “stack-based” e
– Dalvik VM (DVM) até Android 4.4 executa “bytecode” (.class)
– Android Runtime (ART) a partir de • Dalvik VM
Android 5.0 – Arquitetura “register-based” e
executa “DEX” (Dalvik EXecutable)
– Dalvik

https://bit.ly/2SuVPP7 (c) Patricio Domingues


39
JVM vs. Android (#2)
• Dalvik vs. ART • Android >= 7.0 (Nougat) faz uso de
– Dalvik usa compilação “Just In modelo híbrido: i) AOT durante a
Time” (JIT) (até Android 4.4) instalação e ii) Just-In-Time (JIT)
• Código compilado executa mais para o código mais
rápido do que código interpretado frequentemente executado
• Sistemas JIT visam compilar código
interpretado antes da execução
• Sempre que a APP é executada, o
JIT entra em ação
– ART usa compilação AOT (Ahead-
Of-Time) (Android 5.0 e 6.0)
• Quando a APP é instalada, o código
DEX é convertido para código nativo do
dispositivo
• AOT resulta numa execução menos
exigente e portanto menor consumo
de bateria ao longo da vida da APP.

(c) Patricio Domingues


40
MÁQUINAS VIRTUAL SISTEMA

(c) Patricio Domingues


41
Máquina virtual sistema (1)
• Software que cria a ilusão
de um sistema físico (PC)
dentro de um outro SO
– (e.g. VmWare, Microsoft
Hyper-V, Xen, Parallels,
Virtual PC, Virtualbox,
Virtual Iron, QEMU)
• Uma máquina virtual
sistema implementa uma
máquina...dentro de
outra máquina

(c) Patricio Domingues


42
Máquina virtual sistema – características

✓ Uma máquina virtual sistema deve providenciar as seguintes


funcionalidades:
- Similitude
▪ O comportamento da máquina virtual sistema deve ser indistinto do
comportamento de uma máquina física

- Eficiência
▪ A máquina virtual deve providenciar um desempenho similar ao das máquinas
físicas

- Gestão de recursos
▪ A máquina virtual deve ter pleno controlo sobre os recursos que implementa (e.g.
disco virtuais, rede virtual, etc.)
▪ A máquina virtual deve isolar as aplicações do sistema operativo hospedeiro
Fonte: Diogo Ferreira (U. Coimbra)

(c) Patricio Domingues


43
Máquina virtual sistema (2)
✓Quando se fala no contexto de máquinas virtuais
sistema, fala-se em...
– SO Hospedeiro
▪ SO que efetivamente executa o software de virtualização
▪ Aulas práticas: SO Windows dos laboratórios
– SO Hóspede
▪ SO que corre na máquina virtual
▪ Ubuntu no caso das aulas práticas
✓Designação anglo-saxonica
– Host OS (hospedeiro) and guest OS (hóspede)

(c) Patricio Domingues


44
Máquina virtual sistema (3)
✓As máquinas virtuais ganharam muita relevância
– Possibilitar a agregação de serviços, i.e., vários serviços
executados em máquinas físicas separadas passam a ser
executados em máquinas virtuais
– Várias máquinas virtuais pode ser executadas na mesma
máquina física
▪ Menos máquinas, menos custos (hardware, energia e
recursos humanos)
✓Máquinas virtuais também são ótimas para testes
– Vários SO podem correr numa mesma máquina

(c) Patricio Domingues


45
TIPOS DE VIRTUALIZAÇÃO

(c) Patricio Domingues


46
Tipos de virtualização (1)
✓(1) Virtualização completa
– Completa simulação do hardware físico
– O SO hóspede pensa que está num sistema físico (não existem
diferenças), a execução é transparente
– Não é necessário modificar o SO hóspede
– O SO hospedeiro pode ser substituído por um hipervisor (e.g.,
VMWareESX)
✓Exemplos: Vmware, Microsoft Hype-V, QEMU,
VirtualBox

(c) Patricio Domingues


47
Tipos de virtualização (2)
✓(2) Paravirtualização
– Recorre a uma camada intermédia entre o SO hóspede
e o hardware
– O SO hóspede precisa de ser adaptado (modificado)
– Apenas viável para SO de código aberto (Linux, etc.)
– Não é viável para SO da família Windows
▪ devido a motivos de licenciamentos
▪ tecnologicamente a paravirtualização é viável
✓Exemplo
– Xen
Próximo: virtualização assistida por hardware>>
(c) Patricio Domingues
48
Tipos de virtualização (3)

(c) Patricio Domingues


49
Suporte de hardware para virtualização

✓ Extensões de virtualização assistida por hardware


– Intel VT-x (Virtualization Technology)
– AMD-V (AMD Virtualization)
– As extensões possibilitam que hipervisores executem
múltiplas VMs com sobrecarga reduzida e melhor
desempenho.
✓Extensões para virtualização de Entrada/Saída
(E/S)
– Partilha de recursos de E/S (interfaces de rede e
controladores de armazenamento) entre múltiplas VMs
– Intel VT-d (Virtualization Technology for Directed I/O)
– AMD-Vi (AMD I/O Virtualization Technology)
(c) Patricio Domingues
50
Conceito de Hipervisor
✓ Hipervisor (aka “Virtual Machine Monitor”)
– Software que atua como um… sistema
operativo para sistemas operativos
– Efetua a gestão de máquinas virtuais
▪ Ativar, desativar, dar CPU, etc.
✓ Dois níveis
– Hipervisor nível 1 (native/bare-metal) controla
a máquina
▪ Dá a ilusão a cada SO que corre em cada uma das
máquinas virtuais, que o SO controla a máquina
▪ Exemplos: VmWare Fusion, VmWare ESXi
– Hipervisor nível 2 (“hospedado”) é um
software que corre por cima de um SO (e.g.,
VmWare Workstation, VirtualBox)
▪ Instalado como aplicação
(c) Patricio Domingues
52
CONTAINERS

(c) Patricio Domingues


53
Software containers (#1)
• As máquinas virtuais • Exemplo
sistemas necessitam de – VM empregue em SO
• Vários GiB de disco
uma quantidade – Espaço em disco para instalação
apreciável de recursos do Lubuntu

– Software • 1.5 GiB de RAM


• Hipervisor para • Vantagens máquinas virtuais
funcionamento Sistema
• SO hospedeiro – Isolamento do software que
– Espaço disco + memória corre na máquina virtual
• Não deve interferir com
RAM supervisor/SO hospedeiro
• Solução alternativa mais sóbria
em recursos: containers
(c) Patricio Domingues
54
Software containers (#2)
• Os containers • Principal diferença entre
(contentores) têm sistema VM e containers
objetivos similares às VM – Container: foco está na
aplicação
– Isolamento de aplicações e das
– VM: foco está na emulação da
respetivas dependências num
máquina física
item auto-contido que pode
executar em qualquer sistema Máquina virtual vs. containers
– Tanto as VMs como os
containers eliminam a
necessidade de uma máquina
dedicada

(c) Patricio Domingues https://ntap.com/37nHico


55
Software containers (#3)
• Máquina virtual sistema
– Emula computador real
– Corre por cima de hipervisor
ou do sistema operativo
hospedeiro
– Hipervisor pode correr
• diretamente por cima do
hardware (bare-metal
hypervisor)
– Hipervisor nível 1
OU
• por cima de SO
hospedeiro (guest
hypervisor)
– Hipervisor nível 2 https://bit.ly/2tYeZyX
(c) Patricio Domingues
56
Software containers (#4)
• Container
– Separar a aplicação da
infraestrutura
– Abstração do espaço do
utilizador
– Os containers que executam
num dado sistema partilham o
SO hospedeiro
• Poupança de recursos,
nomeadamente de espaço em
disco
• Isolamento de aplicações
– Para o utilizador, os containers
aparentam-se com VM
• Podem executar comandos como https://bit.ly/2tYeZyX
root, tem um espaço privado
para execução, interface de rede
(c) Patricio Domingues
própria, endereço IP 57
Docker (#1)
• Docker • Vantagens do docker
– Projeto código aberto – Facilidade de uso
• Conjunto de comandos
– Originalmente para
– Velocidade
sistemas operativos Linux
• Uso de pouco recursos
– Recorre a serviços do SO – Existência de repositório de
para criar ambiente de contentores
contentores por cima do SO • Docker hub que contém imagens
docker
– Modularidade e escalabilidade

(c) Patricio Domingues


58
Docker (#2)
• Arquitetura docker • (continua)
– Docker_client – Registry
• Permite interagir com containers • Serviço de repositório de imagens
(mandar executar, criar, etc.) • Existem repositórios públicos
• Interage com docker_daemon (https://hub.docker.com/)
– Docker_host • Também são suportados
repositórios privados
• Armazena imagens
– Aplicações da empresa, etc.
• Executar contentores

59
Docker (#3)
• Diferença entre… • (continua)
– Imagem (ficheiro) – Contentor
e • Imagem instanciada que se
encontra em execução
– Contentor (instância)
– A partir de uma mesma
• Imagem imagem é possível criar N
– Ficheiro ou conjunto de contentores…
ficheiros que quando
executados no ambiente
docker dão origem a um
contentor
– Representa uma aplicação
• E.g.: servidor de bases de
dados + servidor HTTP (c) Patricio Domingues
60
Docker – exemplo (#1)
• Não é recomendado • Instalar no lubuntu
instalar no Windows sudo apt-get install docker

10/11 • Formato dos comandos


sudo docker COMANDO
– Requer Hyper-V que é
incompatível com • Exemplos
virtualbox e vmware… sudo docker run hello-world

• Pode ser instalado…na


máquina virtual da UC
– Recomenda-se o uso de
uma VM dedicada a esse
efeito

(c) Patricio Domingues


61
Docker – exemplo (#2)
✓Exemplo
– Uso da imagem Alpine
▪ Alpine: micro-distribuição de Linux
sudo docker run --interactive --tty alpine

(c) Patricio Domingues


62
Docker – alguns comandos
• (continua)
• Executar como root – docker rm IDcontentor
– docker images • Termina contentor
• Lista imagens que existem – docker rmi imagem
localmente • Remove cópia local de imagem
– docker ps – docker run –p 8080:80 container
• porto local:porto contentor
• Lista contentores que estão
– docker --help
a executar na máquina local
– docker pause IDcontentor
• IDcontentor= ac259e20f9a5
– docker unpause IDcontentor
– docker stop IDcontentor
– docker restart IDcontentor
– docker attach IDContentor
• +info: https://dockr.ly/2vE0Go5
(docker cheatsheet)
63
Container registry

https://bit.ly/2uEuP6X
(c) Patricio Domingues
64
Segurança e containers
• Repositórios públicos de • Alguns containers contém
containers podem dados e elementos que
hospedar containers não deveriam ser públicos
maliciosos… – Exemplos
– Containers com software • Chaves privadas
de mineração • Credenciais
(“cryptominers”) – AWS, GitHub, NPM
• Informação privada
– Containers
maliciosamente • +info
vulneráveis (“backdoors”)
– Containers com
https://tinyurl.com/4d3r8yrh
redirectionamento de DNS
–… (c) Patricio Domingues
65
Bibliografia
▪ Capítulo 2 de “Operating Systems – Internals and Design
Principles”, William Stallings, Prentice Hall, 2017.
▪ Appendix: “Virtual Machines” - Operating Systems: Three
Easy Pieces, Remzi H. Arpaci-Dusseau and Andrea C.
Arpaci-Dusseau, 2018
(https://pages.cs.wisc.edu/~remzi/OSTEP/vmm-intro.pdf )
▪ Docker documentation, https://docs.docker.com/
▪ Barham, Paul, et al. "Xen and the art of
virtualization." ACM SIGOPS operating systems
review 37.5 (2003): 164-177.
▪ Merkel, Dirk. "Docker: lightweight Linux containers for
consistent development and deployment." Linux
journal 2014.239 (2014): 2.
▪ RTOS: https://arstechnica.com/features/2020/10/the-
space-operating-systems-booting-up-where-no-one-has-
gone-before/ (c) Patricio Domingues
66

Você também pode gostar