Virtualização em nível de sistema operacional
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
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:
- Os recursos de hardware que podem ser empregados, como a unidade de processamento central (U.P.C.)[g] e a conexões de redes;
- os dados que podem ser lidos ou gravados, como arquivos, pastas e compartilhamentos nas redes;
- os periféricos conectados com os quais ele pode interagir, como a webcam, a impressora, o scanner ou o fax.
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
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
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
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
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
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
- Caixa de areia
- cgroups[i] do Linux [en]
- Computação sem servidor [en]
- ContêinerLinux [en]
- Criadores de aplicações portáteis
- Espaços nomeados[h] do Linux [en]
- Hipervisor
- Hipervisor de armazenamento [en]
- Iniciativa Contêiner aberto [en]
- Núcleo de separação [en]
- Orquestração de contêiner
- Particionamento de recurso virtual (P.R.V.[bh] [en])
- Servidor privado virtual (S.P.V.)[bi]
- Snap – gerenciador de pacotes
Notas
- ↑ a b c d e do inglês kernel
- ↑ a b c do inglês Lx.C. – Linux containers
- ↑ a b do inglês Open Vz. – Open Virtuozzo
- ↑ a b c do inglês Dragonfly B.S.D. – Dragonfly Berkeley software distrubution
- ↑ a b do inglês jail
- ↑ a b do inglês Free B.S.D. jail – Free Berkeley software distribution jail
- ↑ a b c do inglês C.P.U. – central processing unit
- ↑ a b do inglês namespaces
- ↑ a b do inglês cgroups – control groups
- ↑ 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.
- ↑ um conjunto de computadores que trabalham juntos para que possam ser vistos como um único sistema.
- ↑ do inglês E.S.X.i. – elastic sky X integrated
- ↑ do inglês Q.Emu. – quick emulator
- ↑ 32 bits
- ↑ do inglês R.H.E.L. – Red hat enterprise Linux
- ↑ do inglês C.ent.O.S. – community enterprise operating system
- ↑ a b c do inglês C.o.W. – copy on right
- ↑ do inglês backup
- ↑ do inglês root
- ↑ O usuário raiz (root) pode facilmente escapar do chroot. O chroot nunca deveria ser usado como um mecanismo de segurança.[8]
- ↑ do inglês Free B.S.D. – Free Berkeley software dustribution
- ↑ do inglês C.R.I.U. – checkpoint/restore in userspace
- ↑ do inglês Linux-VServer
- ↑ a b c do inglês Gnu G.P.L.v.2 – Gnu general public license version 2
- ↑ 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.
- ↑ a b A rede é baseada no isolamento, não na virtualização.
- ↑ 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]
- ↑ do inglês l.m.c.t.f.y. – "let me contain that for you"
- ↑ 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.
- ↑ A limitação da taxa de entrada e saída (E./S.) é suportada ao usar o btrfs
- ↑ a b c d do inglês B.S.D. license – Berkeley software distribution license
- ↑ 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]
- ↑ 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.
- ↑ Os contêineres do Docker podem ser executados dentro dos contêineres do Virtuozzo aberto.[20]
- ↑ Cada contêiner pode ter acesso raiz (root) sem possivelmente afetar outros contêineres.[21]
- ↑ Disponível desde a versão 4.0, janeiro de 2008.
- ↑ Os contêineres Docker podem ser executados dentro dos contêineres Virtuozzo.[23]
- ↑ do inglês C.D.D.L. – common development and distribution license
- ↑ Sim com illumos[24]
- ↑ Ver "Controle de recursos e virtualização de redes do Solaris aberto (OpenSolaris)" para mais detalhes.
- ↑ Somente quando o nível superior é uma zona KVM (illumos) ou uma zona kz (Oracle).
- ↑ A partir do Solaris 11.3 beta, as zonas de núcleo Solaris podem usar migração ao vivo.
- ↑ A migração fria (desligar-mover-reiniciar) é implementada.
- ↑ 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]
- ↑ 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.
- ↑ do inglês Net B.S.D. – Net Berkeley software distribution
- ↑ do inglês W.Pars. – workload partitions
- ↑ do inglês A.I.X. – advanced interactive executive
- ↑ Disponível desde TL 02.[38]
- ↑ do inglês Gnu G.P.L.v.3 – Gnu general public license version 3
- ↑ do inglês Gnu G.P.L.v.2.1+ – Gnu general public license version 2.1+
- ↑ do inglês rocket
- ↑ do inglês O.C.I. – open container initiative
- ↑ do inglês H.P.C. – high-performance computing
- ↑ do inglês Kata containers
- ↑ do inglês MicroV.M.
- ↑ do inglês A.W.S. – Amazon web services
- ↑ do inglês bare metal, bare machine
- ↑ do inglês C.B.L.-Mariner – common base Linux-Mariner
- ↑ do inglês V.R.P. – virtual resource partitioning
- ↑ do inglês V.P.S. – virtual private server
Referências
- ↑ 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.
- ↑ Rami, Rosen. «Namespaces and cgroups, the basis of Linux containers» (PDF) (em inglês). Consultado em 18 de agosto de 2016
- ↑ «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
- ↑ 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
- ↑ 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
- ↑ «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
- ↑ «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
- ↑ «3.5. Limiting your program's environment». freebsd.org (em inglês)
- ↑ «Docker drops Lx.C. as default execution environment». InfoQ (em inglês)
- ↑ «Docker comes to Free B.S.D.». freebsdnews.com (em inglês). 9 de julho de 2015
- ↑ «Install Docker desktop on Windows | Docker documentation». Docker (em inglês). 9 de fevereiro de 2023
- ↑ «Get started with Docker desktop for Mac». Docker documentation (em inglês). 6 de dezembro de 2019
- ↑ «Paper - Linux-VServer». linux-vserver.org (em inglês)
- ↑ 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.
- ↑ «Sylabs brings Singularity containers into commercial high-performance computing (H.P.C.) | Top 500 supercomputer sites». www.top500.org (em inglês)
- ↑ «SIF — Containing your containers». www.sylabs.io (em inglês). 14 de março de 2018
- ↑ 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 5426675
. PMID 28494014. doi:10.1371/journal.pone.0177459
- ↑ Bronnikov, Sergey. «Comparison on Open Virtuozzo wiki page». Open Virtuozzo wiki (em inglês). Open Virtozzo. Consultado em 28 de dezembro de 2018
- ↑ «I./O. priorities for containers». Open Virtuozzo containers wiki (em inglês)
- ↑ «Docker inside CT» (em inglês)
- ↑ «Container». Open Virtuozzo containers wiki (em inglês)
- ↑ «Initial public prerelease of Virtuozzo (named ASPcomplete at that time)» (em inglês)
- ↑ «Parallels Virtuozzo now provides native support for Docker» (em inglês)
- ↑ Pijewski, Bill. «Our ZFS I/O throttle» (em inglês)
- ↑ «Network virtualization and resource control (Crossbow) F.A.Q.» (em inglês). Cópia arquivada em 1 de junho de 2008
- ↑ «Managing network virtualization and network resources in Oracle® Solaris 11.2». docs.oracle.com (em inglês)
- ↑ 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).
- ↑ «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
- ↑ «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
- ↑ «Implementing a clonable network stack in the Free B.S.D. kernel» (PDF). usenix.org (em inglês). 13 de junho de 2003
- ↑ «V.P.S. for Free B.S.D.» (em inglês). Consultado em 20 de fevereiro de 2016
- ↑ «[Announcement] V.P.S. // O.S. virtualization // alpha release» (em inglês). Consultado em 20 de fevereiro de 2016
- ↑ «3.5. Limiting your program's environment». freebsd.org (em inglês). Consultado em 15 de janeiro de 2014
- ↑ Matthew Dillon (2006). «sys/vkernel.h». B.S.D. cross reference (em inglês). Distribuição de software Berkeley Libélula
- ↑ 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.
- ↑ 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
- DragonFly miscellaneous information manual (em inglês). [S.l.: s.n.]
- ↑ «vkernel, vcd, vkd, vke — Virtual kernel architecture». Dragonfly on-line manual pages (em inglês). Distribuição de software Berkeley Libélula
- ↑ «I.B.M. fix pack information for: W.Par. network isolation - United States». ibm.com (em inglês). 21 de julho de 2011
- ↑ «Live application mobility in A.I.X. 6.1». ibm.com (em inglês). 3 de junho de 2008
- ↑ a b c d «systemd-nspawn». www.freedesktop.org (em inglês)
- ↑ a b c d «2.3. Modifying control groups Red hat enterprise Linux 7». Red hat customer portal
- ↑ 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
- ↑ «LXD». linuxcontainers.org (em inglês). Consultado em 11 de fevereiro de 2021
- ↑ «Rootless containers with Podman and fuse-overlayfs» (PDF). C.E.R.N. workshop (em inglês). 4 de junho de 2019
- ↑ «Overview — Charliecloud 0.25 documentation» (em inglês). Consultado em 4 de outubro de 2020
- ↑ «Home». katacontainers.io (em inglês)
- ↑ «Bottlerocket is a Linux-based operating system purpose-built to run containers» (em inglês)
Ligações externas
- «An introduction to virtualization» (em inglês). Cópia arquivada em 28 de novembro de 2019
- «A short intro to three different virtualization techniques» (em inglês)
- Mathijs Jeroen Scheepers (22 de junho de 2015). «Virtualization and containerization of application infrastructure: A comparison» (PDF) (em inglês)
- Josh Berkus (28 de maio de 2015). «Containers and persistent data». lwn.net [en] (em inglês)