Cooperative LinuxAutor original Dan AloniDesenvolvedorComunidadeLançamento Inicial25 de Janeiro de 2004; 22 anos atrás (2004-01-25)Lançamento final0.7.9 "Cooperative Linux Documentation". Archived from the original on 2023-05-13. Retrieved 2020-08-08. / 9 de Abril de 2011; 14 anos atrás"Cooperative Linux Documentation". Archived from the original on 2023-05-13. Retrieved 2020-08-08.Sistema OperacionalWindows NT familyTipoVirtualização de plataformaLicençaLicença Pública Geral GNUWebsitewww.colinux.org Cooperative Linux, abreviado como coLinux, é um software que permite o Microsoft Windows e o Kernel Linux serem executados simultaneamente na mesma máquina.

Cooperative Linux utiliza o conceito the Máquina Virtual Cooperativa (CVM). Comparado à máquinas virtuais tradicionais, a CVM compartilha os recursos que já existem no Sistema Operacional hospedeiro. Em máquinas virtuais hospedeiras tradicionais, os recursos são virtualizados para todos os sistemas operacionais (visitantes). O CVM dá a ambos os sistemas operacionais completo controle da máquina hospedeira enquanto que máquinas virtuais tradicionais configuram cada sistema operacional visitante para um estado não privilegiado de acessar a máquina real.

Visão Geral esquerda|miniaturadaimagem|Synaptic e nautilus sendo executados no Windows O termo "cooperativo" é usado para descrever duas entidades trabalhando em paralelo. Na prática o Cooperative Linux transforma os kernels dos dois sistemas operacionais em duas grandes corrotinas. Cada kernel tem seu próprio contexto de CPU completo e espaço de endereço, e cada kernel decide quando devolver o controle de volta ao seu parceiro.

Apesar disso, enquanto ambos os kernels em teoria possuem acesso completo ao hardware real, o hardware de computadores modernos não é feito para ser controlado por dois sistemas operacionais ao mesmo tempo. Logo, o kernel hospedeiro permanece com o controle do hardware real e o kernel visitante possui drivers especias para se comunicar com o hospedeiro e apresentar vários dispositivos importantes para o sistema operacional visitante. O hospedeiro pode ser qualquer kernel de sistema operacional que exporte primitivos básicos que permitam que o driver portátil do Cooperative Linux seja executado em modo CPL0 (camada 0) e aloque memória.

História Dan Aloni originalmente começou o desenvolvimento do Cooperative Linux como um projeto de pesquisa baseado em trabalho similar com o User-mode Linux. Ele anunciou o desenvolvimento em 25 de Janeiro de 2004. Em Julho de 2004 ele apresentou um artigo no Simpósio Linux. O código fonte foi liberado pela Licença Pública Geral GNU. Desde então outros desenvolvedores tem contribuído com vários patches e adições ao software.

Comparações O Cooperative Linux é significantemente diferente de uma virtualização x86 completa, que costuma funcionar executando o sistema operacional visitante de um modo menos privilegiado que o do kernel hospedeiro. Em contraste, o Cooperative Linux executa um kernel Linux especialmente modificado que é Cooperativo visto que assume responsabilidade por dividir recursos com o kernel NT e não investigar condições de corrida.

Distribuição

direita|miniaturadaimagem|Ubuntu sendo executado com o coLinux direita|miniaturadaimagem|200x200px|speedLinux sendo executado com o coLinux A maioria das mudanças no patch do Cooperative Linux estão na tree i386—a única arquitetura suportada pelo Cooperative até a época desta escrita. As outras mudanças são em grande parte adições de drivers virtuais: cobd (dispositivo de bloco), conet (rede), e cocon (console). A marioria das mudanças na tree i386 envolvem a inicialização e código de configuração. É um objetivo do design de kernel do Cooperative Linux de permanecer o mais fiel possível ao kernel autônomo i386, logo todas a mudanças são localizadas e minimizadas o máximo possível.

O pacote coLinux instala uma portabilidade do kernel Linux e um dispositivo de rede virtual e pode executar simultaneamente sob uma versão do sistema operacional Windows como o Windows 2000 ou Windows XP. Ele não usa uma máquina virtual como o VMware.

Debian, Ubuntu, Fedora and Gentoo são especialmente populares entre usuários do coLinux.

Devido a estrutura particularmente incomum do hardware virtual, instalar distribuições Linux sob o coLinux é geralmente difícil. Logo, usuários na maioria das vezes usam ou uma instalação Linux existente numa partição real ou uma imagem pronta de sistema de arquivo distribuída pelo projeto. As imagens de sistema de arquivo são feitas por vários métodos diferentes, incluindo pegar imagens de um sistema Linux normal, achar meios de fazer executar instaladores com o hardware estranho, construir instalações à mão usando o gerenciador de pacotes ou simplesmente atualizando imagens existentes usando ferramentas como yum e apt. Um jeito mais fácil de conseguir uma imagem de sistema de arquivo atualizada é usar o QEMU para instalar o Linux e "converter" a imagem removendo os primeiros 63 blocos de 512 bytes como descrito no wiki do coLinux.

Já que o coLinux não possui acesso ao hardware de gráficos nativos, X Window ou Servidores X não irão executar sob o coLinux diretamente, mas pode ser instalado um Servidor X sob o Windows, como o Cygwin/X ou Xming e usar o KDE ou o GNOME e uase qualquer outro aplicativo ou distribuição Linux. Todos estas questões são corrigidas usando distribuições com base em coLinux como o andLinux, baseados no Ubuntu, ou o TopologiLinux, baseado no Slackware.

Distribuições dedicadas Algumas distribuições foram montadas especificamente para funcionar com o coLinux.

AndLinux speedLinux TopologiLinux

Hardware emulado

Rede ethernet usando TAP, PCAP, NDIS e SLiRP.

Limitações

Ainda não suporta Windows ou Linux 64-bit (nem utiliza mais que 4GB de memória), mas uma portabilidade está em desenvolvimento pela comunidade. Sem suporte para multiprocessador (SMP). Aplicativos Linux e o kernel subjacente são capazes de usar somente um CPU.

Win32-loader Virtualização de platforma Comparison of platform virtualization software Cygwin MSYS Wubi (installer) Longene Chroot Windows Subsystem for Linux

Ligações externas

Página oficial

coLinux no GitHub

+Interoperabilidade Unix-WindowsSubsistemas do tipo Unix•Cygwin • Substema Microsoft POSIX• Serviços Windows para UNIX (Interix) • Subsistema Windows para Linux (WSL 1)Ambientes de desenvolvimento e shellsDJGPP • Hamilton C shell • MinGW (MSYS) • Mingw-w64 (MSYS2) • MKS Toolkit • PowerShell • UWINPortabilidades de utilidades do tipo Unix para WindowsGnuWin32 • UnxUtilsAmbientes Windows runtime para nixWabi • Willows Toolkit for UNIX • Wine (WINE@Etersoft, Cedega, CrossOver, Darwine, Proton)Software de plataforma de virtualizaçãoCooperative Linux (TopologiLinux) • Merge • Subsistema Windows para Linux (WSL 2)RelacionadoAPIW • Captive NTFS • NDISwrapper • Windows Interface Source Environment • DXVK

+Kernel LinuxOrganizaçãoKernelFundação Linux • Instituto Linux Mark • Lei de Linus • Debate entre Tanenbaum e Torvalds • Tux • Disputas SCO • Linaro • GNU GPL v2 • menuconfig • Arquiteturas de computador suportadas • Histórico de versionamento • CriticismoSuporteDesenvolvedores • The Linux Programming Interface • kernel.org • LKML • Conferências Linux • Usuários • (Grupo de Usuários Linux (LUG))PessoasWerner Almesberger • H. Peter Anvin • Jens Axboe • Moshe Bar • Suparna Bhattacharya • Andries Brouwer • Rémy Card • Alan Cox • Matthew Garrett • Avi Kivity • Con Kolivas • Greg Kroah-Hartman • Benson Leung • Robert Love • David S. Miller • Ingo Molnár • Andrew Morton • Hans Reiser • Rusty Russell • Shuah Khan • Linus Torvalds • Theodore Ts'o • Stephen Tweedie • Harald Welte • Chris WrightTécnicoDebuggingCRIU • ftrace • kdump • Oops de kernel Linux • SystemTap • BPFInicializaçãovmlinux • System.map • dracut • initrd • initramfsABIsLinux Standard Base • x32 ABIAPIsKernelInterface de Chamada do SistemaPOSIX (ioctl • select • open • read • close • sync • …) • Linux-only (futex • epoll • splice • dnotify • inotify • readahead • …)In-KernelALSA • Crypto API • io_uring • DRM • kernfs • Barreira de memória • New API • RCU • Video4Linux • IIOEspaço de usuárioDaemons, sistemas de arquivobpffs • configfs • devfs • devpts • debugfs • FUSE • hugetlbfs • pipefs • procfs • securityfs • sockfs • sysfs • tmpfs • systemd (udev) • Kmscon • binfmt_miscBibliotecas WrapperBiblioteca padrão do C (glibc • uClibc • Bionic (libhybris) dietlibc • EGLIBC • klibc • musl • Newlib) libcgroup • libdrm • libalsa • libevdev • libusb • liburingComponentesMódulos do Kernel • BlueZ • cgroups • [./Https://en.wikipedia.org/wiki/Linux_console Console] • bcache • Mapeador de dispositivos • dm-cache • dm-crypt • DRM • EDAC • evdev • Fundidor de mesma página de Kernel (KSM) • LIO • Framebuffer • LVM • Driver KMS • Netfilter • Netlink • nftables • Escalonador de rede • perf • SLUB • zram • zswap

Escalonamento de processos e de I/O: • Escalonador Completamente Justo (CFS) • Primeiro Prazo Virtual Disponível (EEVDF) • Escalonador Noop • Escalonador O(n) • Escalonador O(1) • SCHED_DEADLINE • SCHED_FIFO • SCHED_RR

Módulos de Segurança: AppArmor • Exec Shield • seccomp • SELinux • Smack • Tomoyo Linux • Linux PAM

Drivers de dispositivo (802.11 • graphics) • Dispositivo Bruto

initramfs • KernelCare • kexec • kGraft • kpatch • KspliceVariantesPrincipal (Kernel do Linux • Linux-libre) • Computação de alto desempenho (INK • Compute Node Linux • SLURM) • Computação em tempo real (RTLinux • RTAI • Xenomai • PREEMPT_RT) • MMU-less (μClinux • PSXLinux)VirtualizaçãoHipervisor (KVM • Xen) • Virtualização em nível de sistema operacional (Linux-VServer • Lguest • LXC • OpenVZ) • Outros (L4Linux • Linux modo de usuário • MkLinux • coLinux)AdoçãoAlcance de usoÁrea de trabalho • Embutido • Jogos • Cliente fino: (LTSP) • Servidor: (LAMP • LYME-LYCE • Dispositivos)AdotantesLista de adoção do LinuxPortal Linux • Portal de Software livre e de código aberto • Categoria Categoria:Software de Virtualização para o Linux Categoria:Variante do Kernel Linux Categoria:Software livre exclusivo para Windows Categoria:Softwares de virtualização Categoria:Software livre de virtualização