stringtranslate.com

Кооперативный Linux

Cooperative Linux , сокращенно coLinux , — это программное обеспечение, которое позволяет Microsoft Windows и ядру Linux одновременно работать параллельно на одной машине. [2]

Кооперативный Linux использует концепцию кооперативной виртуальной машины (CVM). В отличие от традиционных виртуальных машин , CVM использует ресурсы, которые уже существуют в операционной системе хоста . В традиционных хостах виртуальных машин ресурсы виртуализируются для каждой (гостевой) ОС. CVM дает обеим ОС полный контроль над хост-машиной, в то время как традиционная виртуальная машина переводит каждую гостевую ОС в непривилегированное состояние для доступа к реальной машине.

Обзор

Synaptic и Nautilus , работающие в Windows

Термин «кооператив» используется для описания двух организаций, работающих параллельно. По сути, Cooperative Linux превращает два разных ядра операционной системы в две большие сопрограммы . Каждое ядро ​​имеет свой собственный полный контекст ЦП и адресное пространство, и каждое ядро ​​решает, когда вернуть управление своему партнеру.

Однако, хотя оба ядра теоретически имеют полный доступ к реальному оборудованию, современное оборудование ПК не предназначено для одновременного управления двумя разными операционными системами. Таким образом, ядро ​​хоста сохраняет контроль над реальным оборудованием, а гостевое ядро ​​содержит специальные драйверы, которые взаимодействуют с хостом и предоставляют гостевой ОС различные важные устройства. Хостом может быть любое ядро ​​ОС, которое экспортирует базовые примитивы, которые позволяют переносимому драйверу Cooperative Linux работать в режиме CPL0 (кольцо 0) и выделять память. [3]

История

Дэн Алони изначально начал разработку Cooperative Linux как исследовательский проект, основанный на аналогичной работе с Linux пользовательского режима . [4] [5] Он объявил о разработке 25 января 2004 года. [6] В июле 2004 года он представил доклад на симпозиуме Linux. [7] Исходный код был выпущен под лицензией GNU General Public License . С тех пор другие разработчики внесли в программное обеспечение различные исправления и дополнения. [8]

Сравнения

Кооперативный Linux существенно отличается от полной виртуализации x86 , которая обычно работает за счет запуска гостевой ОС в менее привилегированном режиме, чем режим ядра хоста, и делегирования всех ресурсов ядром хоста. Напротив, Cooperative Linux использует специально модифицированное ядро ​​Linux , которое является кооперативным в том смысле, что оно берет на себя ответственность за совместное использование ресурсов с ядром NT и не вызывает условий гонки .

Распределение

Ubuntu работает с coLinux
SpeedLinux работает с coLinux

Большинство изменений в патче Cooperative Linux находятся в дереве i386 — единственной поддерживаемой архитектуре Cooperative на момент написания этой статьи. Остальные изменения в основном представляют собой добавление виртуальных драйверов: cobd (блочное устройство), conet (сеть) и cocon (консоль). Большинство изменений в дереве i386 связаны с кодом инициализации и настройки. Цель конструкции ядра Cooperative Linux — оставаться как можно ближе к автономному ядру i386, чтобы все изменения были локализованы и сведены к минимуму, насколько это возможно.

Пакет coLinux устанавливает порт ядра Linux и виртуальное сетевое устройство и может работать одновременно под управлением такой версии операционной системы Windows, как Windows 2000 или Windows XP . Он не использует виртуальную машину, такую ​​как VMware .

Debian , Ubuntu , Fedora и Gentoo особенно популярны среди пользователей coLinux.

Из-за довольно необычной структуры виртуального оборудования установка дистрибутивов Linux под coLinux вообще затруднена. Поэтому пользователи в большинстве случаев используют либо существующую установку Linux на реальном разделе, либо готовый образ файловой системы, распространяемый проектом. Образы файловой системы создаются различными методами, включая создание образов обычной системы Linux, поиск способов запуска установщиков на незнакомом оборудовании, создание установок вручную с помощью менеджера пакетов или простое обновление существующих образов с помощью таких инструментов, как yum и удачный . Более простой способ получить актуальный образ файловой системы — использовать QEMU для установки Linux и «конвертировать» образ, удалив первые 63 блока по 512 байт, как описано в вики coLinux.

Поскольку coLinux не имеет доступа к собственному графическому оборудованию, X Window или X-серверы не будут работать под coLinux напрямую, но можно установить [ необходима ссылка ] X-сервер под Windows, например Cygwin/X или Xming , и использовать KDE или GNOME и практически любое другое приложение и дистрибутив Linux. Все эти проблемы устраняются с помощью дистрибутивов на основе coLinux, таких как andLinux на основе Ubuntu или TopologiLinux на основе Slackware .

Выделенные дистрибутивы

Несколько дистрибутивов были созданы специально для работы с coLinux.

Эмулируемое оборудование

Ограничения

Смотрите также

Рекомендации

  1. ^ ab «Совместная документация по Linux». Архивировано из оригинала 13 мая 2023 г. Проверено 8 августа 2020 г.
  2. ^ «Основной сайт coLinux» . Архивировано из оригинала 19 мая 2018 г. Проверено 13 апреля 2004 г.
  3. ^ "Главная страница coLinux" . Архивировано из оригинала 4 декабря 2015 г. Проверено 13 апреля 2004 г.
  4. ^ «Вклад открытого исходного кода | Дэн Алони» . blog.aloni.org . Проверено 8 января 2022 г.
  5. ^ «Совместная группа активных разработчиков Linux» . www.colinux.org . Проверено 8 января 2022 г.
  6. ^ «LKML: Дэн Алони: [ОБЪЯВЛЕНИЕ] Кооперативный Linux» . lkml.org .
  7. ^ «Доклад Дэна Алони, представленный в июле 2004 г. на симпозиуме Linux» (PDF) . Архивировано из оригинала (PDF) 30 сентября 2018 г. Проверено 30 марта 2008 г.
  8. ^ Алони, Дэн (17 ноября 2021 г.), da-x/colinux , получено 8 января 2022 г.
  9. ^ Рид, Майкл (6 сентября 2011 г.). «andLinux: беспрепятственный запуск приложений Linux в Windows». Linux-журнал . Проверено 6 октября 2023 г.
  10. ^ «Итак, Linux введен под Windows zum Laufen» . WWW.TECCHANNEL.DE . Проверено 7 октября 2023 г.
  11. ^ «Часто задаваемые вопросы». коЛинукс .

Внешние ссылки