Virtualização em nível de sistema operacional

Origem: Wikipédia, a enciclopédia livre.
(Redirecionado de Container (virtualização))

A virtualização em nível de sistema operacional é um paradigma de virtualização de sistema operacional (S.O.) no qual o núcleo[a] permite a existência de várias instâncias isoladas do espaço do usuário, chamadas de contêineres (contêineres Linux (C.Lx.)[b] [en], contêineres Solaris [en], Docker, Podman), zonas (contêineres Solaris [en]), servidores privados virtuais (Virtuozzo aberto[c]), partições, ambientes virtuais (A.V.), núcleos[a] virtuais (D.S.B. Libélula[d] [en]) ou jaulas[e] (jaula da D.S.B. livre[f] ou jaula[e] chroot).[1] Essas instâncias podem parecer computadores reais do ponto de vista dos programas executados neles. Um programa de computador executado em um sistema operacional comum pode ver todos os recursos (dispositivos conectados, arquivos e pastas, compartilhamentos nas redes, potência da unidade de processamento central (U.P.C.[g]), recursos quantificáveis de hardware) desse computador. No entanto, os programas executados dentro de um contêiner [en] podem ver apenas o conteúdo do contêiner e os dispositivos atribuídos ao contêiner.

Em sistemas operacionais do tipo Unix, esse recurso pode ser visto como uma implementação avançada do mecanismo chroot padrão, que altera a pasta raiz aparente para o processo em execução atual e seus filhos. Além dos mecanismos de isolamento, o núcleo[a] geralmente fornece recursos de gerenciamento de recursos [en] para limitar o impacto das atividades de um contêiner em outros contêineres. Os contêineres do Linux são todos baseados em mecanismos de virtualização, isolamento e gerenciamento dos recursos fornecidos pelo núcleo do Linux, principalmente os espaços nomeados[h] [en] e os grupos de controle[i] [en] do Linux.[2]

O termo contêiner, embora se refira mais popularmente a sistemas de virtualização no nível do sistema operacional, às vezes é usado de forma ambígua para se referir a ambientes de máquinas virtuais mais completos operando em vários graus de acordo com o sistema operacional host[j], por exemplo, os contêineres do Hyper-V da Microsoft. Uma visão geral mais histórica da virtualização em geral, desde 1960, pode ser encontrada na linha do tempo do desenvolvimento da virtualização [en].

Operação[editar | editar código-fonte]

Em sistemas operacionais comuns para computadores pessoais, um programa de computador pode ver (mesmo que não seja capaz de acessar) todos os recursos do sistema. Eles incluem:

O sistema operacional pode permitir ou negar o acesso a tais recursos com base no programa que os solicita e na conta do usuário, no contexto em que ele é executado. O sistema operacional também pode ocultar esses recursos, de modo que, quando o programa de computador os enumerar, eles não apareçam nos resultados da enumeração. No entanto, do ponto de vista da programação, o programa de computador interagiu com esses recursos e o sistema operacional conseguiu um ato de interação.

Com a virtualização do sistema operacional, ou conteinerização, é possível executar programas dentro de contêineres, aos quais apenas parte desses recursos são alocados. Um programa que espera ver o computador inteiro, uma vez executado dentro de um contêiner, pode ver apenas os recursos alocados e acredita que eles são tudo o que está disponível. Vários contêineres podem ser criados em cada sistema operacional, para cada um dos quais é alocado um subconjunto dos recursos do computador. Cada contêiner pode conter qualquer número de programas de computador. Esses programas podem ser executados simultaneamente ou separadamente e podem até interagir uns com os outros.

A conteinerização tem semelhanças com as virtualizações de aplicativos [en]: na última, apenas o programa de computador é colocado em um contêiner isolado e o isolamento se aplica apenas ao sistema de arquivos.

Usos[editar | editar código-fonte]

A virtualização no nível do sistema operacional é comumente usada em ambientes de hospedagens virtuais, onde é útil para alocar com segurança recursos finitos de hardware entre um grande número de usuários que não se confiam mutuamente. Os administradores do sistema também podem usá-la para consolidar o hardware do servidor, movendo serviços em hosts[j] separados para contêineres em um servidor.

Outros cenários típicos incluem a separação de vários programas para contêineres separados para segurança aprimorada, independência de hardware e recursos adicionais relacionados ao gerenciamento de recursos.[3] A segurança aprimorada fornecida pelo uso de um mecanismo chroot, no entanto, não é perfeita.[4] Implementações de virtualização no nível do sistema operacional capazes de migração ao vivo [en] também podem ser usadas para balanceamento de carga dinâmico de contêineres entre nós em um cluster[k].

Sobrecarga[editar | editar código-fonte]

A virtualização no nível do sistema operacional geralmente impõe menos sobrecarga do que a virtualização completa [en] porque os programas nas partições virtuais no nível do sistema operacional usam a interface normal de chamada de sistema do sistema operacional e não precisam ser submetidos à emulação ou executados em uma máquina virtual intermediária, como é o caso com a virtualização completa (como o Céu elástico X integrado (C.E.X.i.)[l] da VMware, o Emulador rápido (Emul.R.)[m] ou o Hyper-V) e a paravirtualização [en] (como com o Xen ou o Linux em modo de usuário [en]). Essa forma de virtualização também não requer suporte de hardware para um desempenho eficiente.

Flexibilidade[editar | editar código-fonte]

A virtualização no nível do sistema operacional não é tão flexível quanto outras abordagens relacionada à virtualização, pois não pode hospedar um sistema operacional convidado diferente do host[j] ou um núcleo[a] convidado diferente. Por exemplo, com o Linux, distribuições diferentes são boas, mas outros sistemas operacionais, como o Windows, não podem ser hospedados. Os sistemas operacionais que usam sistemática de entrada variável estão sujeitos a limitações dentro das arquiteturas virtualizadas. Os métodos de adaptação, incluindo a análise de retransmissão do servidor em nuvem, mantêm o ambiente virtual no nível do sistema operacional dentro desses aplicativos.[5]

O Solaris supera parcialmente a limitação descrita acima com seu recurso de zonas de marcas, que fornece a capacidade de executar um ambiente em um contêiner que emula uma versão mais antiga do Solaris 8 ou 9 em um host[j] Solaris 10. As zonas de marcas Linux (referidas como zonas de marcas "lx") também estão disponíveis em sistemas Solaris baseados em x86[n], fornecendo um espaço de usuário Linux completo e suporte para a execução de aplicativos Linux; além disso, o Solaris fornece os utilitários necessários para instalar as distribuições Linux Chapéu vermelho empresarial (L.C.V.E.)[o] 3.x ou Sistema operacional empresarial comunitário (S.O.E.C.)[p] 3.x dentro das zonas "lx".[6][7] No entanto, em 2010, as zonas de marcas Linux foram removidas do Solaris; em 2014, elas foram reintroduzidos no illumos [en], que é a remificação de código aberto do Solaris, com suporte para núcleos[a] Linux de 32 bits.

Armazenamento[editar | editar código-fonte]

Algumas implementações fornecem mecanismos de cópia na gravação (C.n.G.)[q] em nível de arquivo. (Mais comumente, um sistema de arquivos padrão é compartilhado entre as partições, e as partições que alteram os arquivos criam automaticamente suas próprias cópias.) Isso torna mais fácil fazer cópias de segurança[r], mais eficiente em termos de espaço e mais simples de armazenar em cache do que esquemas de cópias nas gravações (C.n.G.[q]) em nível de bloco comuns em virtualizadores de sistemas inteiros. Os virtualizadores de sistemas inteiros, no entanto, podem trabalhar com sistemas de arquivos que não são nativos e criar e reverter instantâneos de todo o estado dos sistemas.

Implementações[editar | editar código-fonte]

Mecanismo Sistema operacional Licença Ativamente desenvolvido desde ou entre Recursos
Isolamento do sistema de arquivos Cópia na gravação (C.n.G.)[q] Cotas de disco [en] Limitação de taxa de entrada e saída (E./S.) Limites de memória Cotas da U.C.P.[g] Isolamento de rede Virtualização aninhada Migração ao vivo e ponto de verificação de partição Isolamento de privilégio de raiz[s]
chroot A maioria dos sistemas operacionais do tipo Unix Varia de acordo com o sistema operacional 1982 Parcial[t] Não Não Não Não Não Não Sim Não Não
Docker Linux,[9] Distribuição de software Berkeley (D.S.B.) livre[u],[10] Windows 64 bits (x64)[11] macOS[12] Licença Apache 2.0 2013 Sim Sim Não diretamente Sim (desde a versão 1.10) Sim Sim Sim Sim Apenas no modo experimental com Ponto de verificação/restauração no espaço do usuário [en][v] [1] Sim (desde a versão 1.10)
Servidor virtual Linux[w] [en]
(contexto de segurança)
Linux, Servidor Windows 2016 Licença pública geral Gnu versão 2[x] 2001 Sim Sim Sim Sim[y] Sim Sim Parcial[z] ? Não Parcial[aa]
Deixe-me conter isso para você (d.m.c.i.p.v.[ab]) [en] Linux Licença Apache 2.0 2013 – 2015 Sim Sim Sim Sim[y] Sim Sim Parcial[z] ? Não Parcial[aa]
Contêineres Linux (C.Lx.)[b] [en] Linux Licença pública geral Gnu versão 2[x] 2008 Sim[14] Sim Parcial[ac] Parcial[ad] Sim Sim Sim Sim Sim Sim[14]
Singularidade [en] Linux Licenças da D.S.B.[ae] 2015[15] Sim[16] Sim Sim Não Não Não Não Não Não Sim[17]
Virtuozzo aberto[c] Linux Licença pública geral Gnu versão 2[x] 2005 Sim Sim[18] Sim Sim[af] Sim Sim Sim[ag] Parcial[ah] Sim [ai]
Virtuozzo [en] Linux, Windows Trialware [en] 2000[22] Sim Sim Sim Sim[aj] Sim Sim Sim[ag] Parcial[ak] Sim Sim
Contêineres Solaris [en] (zonas) illumos [en] (Solaris aberto),
Solaris
Licença de desenvolvimento e distribuição comum (L.D.D.C.)[al],
Proprietário
2004 Sim Sim (ZFS) Sim Parcial[am] Sim Sim Sim[an][25][26] Parcial[ao] Parcial[ap][aq] Sim[ar]
Jaula da Distribuição de software Berkeley (D.S.B.) livre[f] Distribuição de software Berkeley (D.S.B.) livre, Distribuição de software Berkeley Libélula[d] Licença Distribuição de software Berkeley[ae] 2000[28] Sim Sim (ZFS) Sim[as] Sim Sim[29] Sim Sim[30] Sim Parcial[31][32] Sim[33]
vkernel [en] Distribuição de software Berkeley (D.S.B.) Libélula[d] Licença Distribuição de software Berkeley[ae] 2006[34] Sim[35] Sim[35] ? Sim[36] Sim[36] Sim[37] ? ? Sim
sysjail [en] D.S.B. aberta, D.S.B. Net[at] Licença Distribuição de software Berkeley[ae] 2006 – 2009 Sim Não Não Não Não Não Sim Não Não ?
Partições de carga de trabalho[au] [en] Executivo interativo avançado (X.I.A.)[av] Software proprietário comercial 2007 Sim Não Sim Sim Sim Sim Sim[aw] Não Sim[39] ?
Contas virtuais iCore [en] Windows XP Freeware 2008 Sim Não Sim Não Não Não Não ? Não ?
Sandboxie [en] Windows Licença pública geral Gnu versão 3[ax] 2004 Sim Sim Parcial Não Não Não Parcial Não Não Sim
systemd-nspawn [en] Linux Licença pública geral Gnu versão 2.1+[ay] 2010 Sim Sim Sim[40][41] Sim[40][41] Sim[40][41] Sim[40][41] Sim ? ? Sim
Turbo [en] Windows Freemium 2012 Sim Não Não Não Não Não Sim Não Não Sim
rkt[az] [en] Linux Licença Apache 2.0 2014[42] – 2018 Sim Sim Sim Sim Sim Sim Sim ? ? Sim

Os contêineres do Linux que não estão listados acima incluem:

  • LXD [en] – um invólucro alternativo em torno do C.Lx.[b] [en] desenvolvido pela Canonical[43]
  • Podman[44] – um substituto avançado e seguro, sem root, pronto para Kubernetes para o Docker, com suporte para vários formatos de imagem de contêiner, incluindo imagens da Iniciativa de contêiner aberto (I.C.A.)[ba] e do Docker
  • Charliecloud – um conjunto de ferramentas de contêiner usadas em sistemas de computação de alto desempenho (C.A.D.[bb])[45]
  • Contêineres Kata[bc][46] – plataforma de micro máquina virtual[bd]
  • Bottlerocket – um sistema operacional de código aberto baseado em Linux desenvolvido especificamente pela Serviços web da Amazon (S.W.S.)[be] para executar contêineres em máquinas virtuais ou hosts[j] vazios[bf][47]
  • Linux base comum (L.B.C.) Marinheiro[bg] – uma distribuição Linux de código aberto criada especificamente pelo Azure da Microsoft e semelhante ao CoreOS Fedora

Ver também[editar | editar código-fonte]

Notas[editar | editar código-fonte]

  1. a b c d e do inglês kernel
  2. a b c do inglês Lx.C.Linux containers
  3. a b do inglês Open Vz.Open Virtuozzo
  4. a b c do inglês Dragonfly B.S.D.Dragonfly Berkeley software distrubution
  5. a b do inglês jail
  6. a b do inglês Free B.S.D. jailFree Berkeley software distribution jail
  7. a b c do inglês C.P.U.central processing unit
  8. a b do inglês namespaces
  9. a b do inglês cgroupscontrol groups
  10. a b c d e um computador que medeia acesso múltiplo aos bancos de dados nele montados ou fornece outros serviços ema redes de computadores.
  11. um conjunto de computadores que trabalham juntos para que possam ser vistos como um único sistema.
  12. do inglês E.S.X.i.elastic sky X integrated
  13. do inglês Q.Emu.quick emulator
  14. 32 bits
  15. do inglês R.H.E.L.Red hat enterprise Linux
  16. do inglês C.ent.O.S.community enterprise operating system
  17. a b c do inglês C.o.W.copy on right
  18. do inglês backup
  19. do inglês root
  20. O usuário raiz (root) pode facilmente escapar do chroot. O chroot nunca deveria ser usado como um mecanismo de segurança.[8]
  21. do inglês Free B.S.D.Free Berkeley software dustribution
  22. do inglês C.R.I.U.checkpoint/restore in userspace
  23. do inglês Linux-VServer
  24. a b c do inglês Gnu G.P.L.v.2Gnu general public license version 2
  25. a b Usando o agendador das filas completamente justas (F.C.J.; do inglês C.F.Q.completely fair queueing), há uma fila separada por convidado.
  26. a b A rede é baseada no isolamento, não na virtualização.
  27. a b Um total de 14 recursos de usuários são considerados seguros dentro de um contêiner. O restante pode não ser concedido a processos dentro desse contêiner sem permitir que esse processo interfira potencialmente com coisas fora desse contêiner.[13]
  28. do inglês l.m.c.t.f.y. – "let me contain that for you"
  29. Cotas de disco por contêiner são possíveis ao usar partições separadas para cada contêiner com a ajuda do gerenciador de volumes lógicos (G.V.L.; do inglês L.V.M.logical volume manager), ou quando o sistema de arquivos do host subjacente é o btrfs, caso em que os subvolumes btrfs são usados automaticamente.
  30. A limitação da taxa de entrada e saída (E./S.) é suportada ao usar o btrfs
  31. a b c d do inglês B.S.D. licenseBerkeley software distribution license
  32. Disponível desde o núcleo (do inglês kernel) 2.6.18-028stable021 do Linux. A implementação é baseada no agendador de entrada e saída (E./S.) de disco das filas completamente justas (F.C.J.; do inglês C.F.Q.completely fair queueing), mas é um esquema de dois níveis, portanto, a prioridade de entrada e saída (E./S.) não é por processo, mas sim por contêiner.[19]
  33. a b Cada contêiner pode ter seus próprios endereços de protocolo de Internet (P.I.; do inglês I.P.Internet protocol), regras de firewall, tabelas de roteamento e assim por diante. Três esquemas de redes diferentes são possíveis: baseado em rota, baseado em ponte e atribuição de um dispositivo de rede real (C.I.R. – controlador de interface de rede; do inglês N.I.C. - network interface controller) a um contêiner.
  34. Os contêineres do Docker podem ser executados dentro dos contêineres do Virtuozzo aberto.[20]
  35. Cada contêiner pode ter acesso raiz (root) sem possivelmente afetar outros contêineres.[21]
  36. Disponível desde a versão 4.0, janeiro de 2008.
  37. Os contêineres Docker podem ser executados dentro dos contêineres Virtuozzo.[23]
  38. do inglês C.D.D.L.common development and distribution license
  39. Sim com illumos[24]
  40. Ver "Controle de recursos e virtualização de redes do Solaris aberto (OpenSolaris)" para mais detalhes.
  41. Somente quando o nível superior é uma zona KVM (illumos) ou uma zona kz (Oracle).
  42. A partir do Solaris 11.3 beta, as zonas de núcleo Solaris podem usar migração ao vivo.
  43. A migração fria (desligar-mover-reiniciar) é implementada.
  44. As zonas que não são globais são restritas para que não afetem outras zonas por meio de uma abordagem de limitação de capacidade. A zona global pode administrar as zonas que não são globais[27]
  45. Verifique a opção "allow.quotas" e a seção "Jaulas e sistemas de arquivos" nas páginas do manual das Jaulas da Distribuição de software Berkeley livre (D.S.B. livre, do inglês Free B.S.D.Free Berkeley software distribution) para detalhes.
  46. do inglês Net B.S.D.Net Berkeley software distribution
  47. do inglês W.Pars.workload partitions
  48. do inglês A.I.X.advanced interactive executive
  49. Disponível desde TL 02.[38]
  50. do inglês Gnu G.P.L.v.3Gnu general public license version 3
  51. do inglês Gnu G.P.L.v.2.1+Gnu general public license version 2.1+
  52. do inglês rocket
  53. do inglês O.C.I.open container initiative
  54. do inglês H.P.C.high-performance computing
  55. do inglês Kata containers
  56. do inglês MicroV.M.
  57. do inglês A.W.S.Amazon web services
  58. do inglês bare metal, bare machine
  59. do inglês C.B.L.-Marinercommon base Linux-Mariner
  60. do inglês V.R.P.virtual resource partitioning
  61. do inglês V.P.S.virtual private server

Referências[editar | editar código-fonte]

  1. Hogg, Scott (26 de maio de 2014). «Software containers: Used more frequently than most realize». networkworld.com (em inglês). Network world, Inc. Consultado em 9 de julho de 2015. Existem muitos outros sistemas de virtualização no nível do sistema operacional, como: Virtuozzo aberto (do inglês Open Vz.) para Linux, Linux-VServer, jaulas da B.S.D. livre, partições de carga de trabalho (do inglês W.Pars.workload partitions) X.I.A. (do inglês A.I.X.advanced interactive execution), contêineres do Unix da Hewlett Packard (Ux.-H.P.; do inglês H.P.-Ux.Hewlett Packard Unix) (P.R.D. – Partições de recursos seguras; do inglês S.R.P.secure resource partitions), contêineres Solaris, entre outros. 
  2. Rami, Rosen. «Namespaces and cgroups, the basis of Linux containers» (PDF) (em inglês). Consultado em 18 de agosto de 2016 
  3. «Secure Bottlerocket deployments on Amazon E.K.S. with KubeArmor | Containers». aws.amazon.com (em inglês). 20 de outubro de 2022. Consultado em 20 de junho de 2023 
  4. Korff, Yanek; Hope, Paco; Potter, Bruce (2005). Mastering Free B.S.D. and Open B.S.D. security. Col: O'Reilly series (em inglês). [S.l.]: O'Reilly media, Inc. p. 59. ISBN 0596006268 
  5. Huang, D. (2015). «Experiences in using os-level virtualization for block I/O». Proceedings of the 10th parallel data storage workshop (em inglês). [S.l.: s.n.] pp. 13–18. ISBN 9781450340083. doi:10.1145/2834976.2834982 
  6. «System administration guide: Oracle Solaris containers-resource management and Oracle Solaris zones, Chapter 16: Introduction to Solaris zones» (em inglês). Corporação Oráculo. 2010. Consultado em 2 de setembro de 2014 
  7. «System administration guide: Oracle Solaris containers-resource nanagement and Oracle Solaris zones, Chapter 31: About branded zones and the Linux branded zone» (em inglês). Corporação Oráculo. 2010. Consultado em 2 de setembro de 2014 
  8. «3.5. Limiting your program's environment». freebsd.org (em inglês) 
  9. «Docker drops Lx.C. as default execution environment». InfoQ (em inglês) 
  10. «Docker comes to Free B.S.D.». freebsdnews.com (em inglês). 9 de julho de 2015 
  11. «Install Docker desktop on Windows | Docker documentation». Docker (em inglês). 9 de fevereiro de 2023 
  12. «Get started with Docker desktop for Mac». Docker documentation (em inglês). 6 de dezembro de 2019 
  13. «Paper - Linux-VServer». linux-vserver.org (em inglês) 
  14. a b Graber, Stéphane (1 de janeiro de 2014). «Lx.C. 1.0: Security features [6/10]». Consultado em 12 de fevereiro de 2014. O C.Lx. agora tem suporte para espaços nomeados de usuário. [...] O C.Lx. não está mais "rodando" como raiz (root) então, mesmo que um invasor consiga escapar do contêiner, ele terá os privilégios de um usuário regular no host. 
  15. «Sylabs brings Singularity containers into commercial high-performance computing (H.P.C.) | Top 500 supercomputer sites». www.top500.org (em inglês) 
  16. «SIF — Containing your containers». www.sylabs.io (em inglês). 14 de março de 2018 
  17. Kurtzer, Gregory M.; Sochat, Vanessa; Bauer, Michael W. (11 de maio de 2017). «Singularity: Scientific containers for mobility of compute». PLOS ONE (em inglês). 12 (5): e0177459. Bibcode:2017PLoSO..1277459K. PMC 5426675Acessível livremente. PMID 28494014. doi:10.1371/journal.pone.0177459Acessível livremente 
  18. Bronnikov, Sergey. «Comparison on Open Virtuozzo wiki page». Open Virtuozzo wiki (em inglês). Open Virtozzo. Consultado em 28 de dezembro de 2018 
  19. «I./O. priorities for containers». Open Virtuozzo containers wiki (em inglês) 
  20. «Docker inside CT» (em inglês) 
  21. «Container». Open Virtuozzo containers wiki (em inglês) 
  22. «Initial public prerelease of Virtuozzo (named ASPcomplete at that time)» (em inglês) 
  23. «Parallels Virtuozzo now provides native support for Docker» (em inglês) 
  24. Pijewski, Bill. «Our ZFS I/O throttle» (em inglês) 
  25. «Network virtualization and resource control (Crossbow) F.A.Q.» (em inglês). Cópia arquivada em 1 de junho de 2008 
  26. «Managing network virtualization and network resources in Oracle® Solaris 11.2». docs.oracle.com (em inglês) 
  27. Oracle Solaris 11.1 administration, Oracle Solaris zones, Oracle Solaris 10 zones and resource management E29024.pdf, pp. 356 – 360. Disponível dentro de um arquivo (em inglês).
  28. «Contain your enthusiasm - Part two: Jails, zones, Open Virtuozzo, and Lx.C.». As jaulas foram introduzidas pela primeira vez na Distribuição de software Berkeley (D.S.B.) livre (do inglês Free B.S.D.Free Berkeley software distribution) 4.0 em 2000 
  29. «Hierarchical resource limits - Free B.S.D. wiki». wiki.freebsd.org (em inglês). 27 de outubro de 2012. Consultado em 15 de janeiro de 2014 
  30. «Implementing a clonable network stack in the Free B.S.D. kernel» (PDF). usenix.org (em inglês). 13 de junho de 2003 
  31. «V.P.S. for Free B.S.D.» (em inglês). Consultado em 20 de fevereiro de 2016 
  32. «[Announcement] V.P.S. // O.S. virtualization // alpha release» (em inglês). Consultado em 20 de fevereiro de 2016 
  33. «3.5. Limiting your program's environment». freebsd.org (em inglês). Consultado em 15 de janeiro de 2014 
  34. Matthew Dillon (2006). «sys/vkernel.h». B.S.D. cross reference (em inglês). Distribuição de software Berkeley Libélula 
  35. a b «vkd(4) — Virtual kernel disc» (em inglês). Distribuição de software Berkeley Libélula. trata a imagem de disco como cópia na gravação. 
  36. a b Sascha Wildner (8 de janeiro de 2007). «vkernel, vcd, vkd, vke — virtual kernel architecture». DragonFly miscellaneous information manual (em inglês). Distribuição de software Berkeley Libélula 
  37. «vkernel, vcd, vkd, vke — Virtual kernel architecture». Dragonfly on-line manual pages (em inglês). Distribuição de software Berkeley Libélula 
  38. «I.B.M. fix pack information for: W.Par. network isolation - United States». ibm.com (em inglês). 21 de julho de 2011 
  39. «Live application mobility in A.I.X. 6.1». ibm.com (em inglês). 3 de junho de 2008 
  40. a b c d «systemd-nspawn». www.freedesktop.org (em inglês) 
  41. a b c d «2.3. Modifying control groups Red hat enterprise Linux 7». Red hat customer portal 
  42. Polvi, Alex. «CoreOS is building a container runtime, rkt». CoreOS blog (em inglês). Consultado em 12 de março de 2019. Cópia arquivada em 1 de abril de 2019 
  43. «LXD». linuxcontainers.org (em inglês). Consultado em 11 de fevereiro de 2021 
  44. «Rootless containers with Podman and fuse-overlayfs» (PDF). C.E.R.N. workshop (em inglês). 4 de junho de 2019 
  45. «Overview — Charliecloud 0.25 documentation» (em inglês). Consultado em 4 de outubro de 2020 
  46. «Home». katacontainers.io (em inglês) 
  47. «Bottlerocket is a Linux-based operating system purpose-built to run containers» (em inglês) 

Ligações externas[editar | editar código-fonte]