WinBoat, инструментът, който интегрира и изпълнява Windows приложения на Linux по най-добрия възможен начин

  • WinBoat работи с истински Windows с Docker и KVM и интегрира Windows чрез FreeRDP.
  • Преодолява ограниченията на Wine за ключови приложения и предоставя пълен десктоп при поискване.
  • Ясни изисквания: KVM, Docker, Compose v2 и FreeRDP 3 със звук.
  • GPU passthrough все още не е наличен, Podman и Flatpak са на път с технически предизвикателства.

WinBoat

Ако работите с Linux и от време на време ви се налага да стартирате приложение, което съществува само за Windows, е лесно да се почувствате заседнали между чука и наковалнята. WinBoat се очертава като отделна опцияВместо слой за съвместимост, той изпълнява реален екземпляр на Windows и безпроблемно го интегрира във вашия десктоп.

Идеята е толкова проста, колкото и мощна: Създайте истински Windows с Docker и KVM, и да показвате прозорците му във вашата Linux сесия, използвайки FreeRDP, все едно са оригинални. Край на бърборенето със странни зависимости или непредсказуеми корекции; когато една програма работи на Windows, тя би трябвало да работи и тук, с изключение на сценарии, които изискват силно графично ускорение или мерки против измама на ниво ядро.

Какво е WinBoat и защо е интересно?

WinBoat е проект, който, както казва духът му на Windows for Penguins, се стреми да Приложенията на Windows съществуват едновременно на вашия Linux с възможно най-малко триене. Вместо API преводи, той разчита на виртуализация с KVM и Docker контейнери, за да капсулира Windows среда, която след това се представя като независими прозорци във вашата среда.

В сравнение с предишни подходи, като например Спечелете приложенияКлючовата разлика е в потребителското изживяване. С WinApps, по-голямата част от конфигурацията зависи от вас: много ръчно сглобяване, основен TUI, няколко уиджета в лентата на задачите и няколко конзолни команди, разпръснати навсякъде. WinBoat, от друга страна, върши тежката работа, след като отговаря на няколко предварителни изисквания, показва съответната информация в спретнат интерфейс и предлага по-пълноценно изживяване, без да се налага да се борите с конфигурационни файлове или да запомняте низ от команди.

Ако се чудите защо да не използвате WINE или CrossOver, отговорът се крие в граничните случаи. Има приложения, които Не вървят гладко или изобщо не започват с ВИНО.Точно затова се роди WinBoat: за да запълни тези празнини и същевременно да ви предостави пълен работен плот на Windows, когато имате нужда от него. Тестовете в реалния свят цитират примери като Affinity Photo, Paint Tool SAI v1.0, пакета Adobe, AeroChat, Acrobat и, разбира се, Office; дори Office 365 е потвърдено, че работи.

Как работи WinBoat: Виртуализация с интеграция с Windows

Под капака, WinBoat стартира машина с Windows, използвайки Docker като оркестратор и KVM като технология за внедряване. хардуерно подпомагана виртуализацияWindows се рендира на Linux чрез FreeRDP, така че можете да ги използвате като всяко друго системно приложение, като ги плъзгате между работните плотове, закачвате ги в лентата на задачите и превключвате между тях с Alt+Tab.

Красотата на изобретението е, че потребителят възприема непрекъснат поток: елегантен интерфейс, автоматизирани процеси на инсталиране и опцията за извикване на целия работен плот на Windows, ако задачата го изисква. Когато не, можете да отваряте само определени приложения и да ги интегрирате, сякаш са оригинални, с единообразен външен вид и усещане през цялата сесия.

Изключителни характеристики

  • Чист интерфейс с визуална интеграция, която кара прозорците на Windows да изглеждат сякаш са от самия Linux.
  • Автоматизирана инсталацияВие избирате предпочитанията и ресурсите си, а системата се грижи за готвенето.
  • Стартирайте почти всяко приложение който работи на Windows, представен като прозорци на системно ниво на вашия работен плот.
  • Пълен десктоп Windows е наличен, когато имате нужда от него, както и стартиране на отделни приложения по интегриран начин.
  • Интеграция на файловеМонтира вашата домашна директория в Windows за директно споделяне на документи.
  • полезни екстри На път и вече налични: преминаване през смарт карти, наблюдение на ресурси и други.

Системни предварителни изисквания

Преди да започнете, уверете се, че оборудването ви отговаря на тези минимални изисквания; в противен случай ще се сблъскате с грешки още от самото начало. Проверете всяка точка спокойно и избягвайте плашенията.

  • RAM: поне 4 GB.
  • процесорминимум 2 нишки.
  • съхранение32 GB свободно място в /var.
  • ВиртуализацияKVM е активиран в BIOS или UEFI.
  • докер: необходимо за контейнеризация.
  • Docker Compose v2: от съществено значение за съвместимостта с docker-compose.yml файловете.
  • Докер група: добавете потребителя си към групата на Docker.
  • FreeRDPВерсия 3.xx с поддръжка на звук.
  • Модули на ядрото: зарежда iptables и iptable_nat.

В допълнение към софтуерните изисквания, ще искате да потвърдите, че KVM действително работи на вашата дистрибуция. Деактивиран KVM в BIOS или блокиран от ядрото, няма да доведе до зареждане на нищо, независимо колко добро е всичко останало.

Изтегляне и инсталиране: налични варианти

Можете да изтеглите Linux компилации от секцията с издания на проекта. В момента има две версии, които покриват повечето случаи, с доста лесна крива на адаптация. Изберете този, който най-добре отговаря на вашата дистрибуция и вашия начин на работа.

  • AppImage: преносим формат, който работи на повечето дистрибуции без сложна инсталация.
  • Торба: разопаковани файлове; просто стартирайте двоичния файл в linux-unpacked/winboat.

Внимавайте за несъвместимости, съобщени от разработчиците. В момента няма подкрепа за Подман., нито за Docker Desktop, нито за дистрибуции, които емулират Docker, използвайки Podman сокет, нито за rootless конфигурации на контейнери. Ако разчитате на някоя от тези среди, ще трябва да изчакате бъдещи издания.

Най-големият признат недостатък е, че ще трябва инсталирайте различни екстри ръчно Преди да можете да се насладите на пълноценното изживяване: Docker, Compose v2, FreeRDP 3 с аудио, iptables модули и членство в Docker групата. След като приключите с това, останалото е почти наред.

Компилиране и изпълнение от изходния код

Ако предпочитате да изградите приложението на вашата машина, процесът е лесен, стига да имате необходимите зависимости. Ще ви трябват NodeJS и Go инсталиран преди стартиране.

  • Клонирайте хранилището: git clone https://github.com/TibixDev/WinBoat
  • Инсталиране на зависимости: npm i
  • Компилирайте приложението и гост сървъра: npm run build:linux-gs
  • Получените двоични файлове се появяват в dist, с AppImage и Unpacked вариант

За разработка, потокът се променя леко, за да можете да итерирате локално по-удобно. С готовност за NodeJS и Go, следвайте тези стъпки.

  • Клонирайте хранилището: git clone https://github.com/TibixDev/WinBoat
  • Инсталиране на зависимости: npm i
  • Изграждане на гост сървъра: npm run build-guest-server
  • Стартирайте приложението в режим на разработка: npm run dev

Устройства и хардуерна конфигурация

Ако трябва да модифицирате хардуер от Windows, поддръжката варира в зависимост от типа на устройството. Вече има опции за USB, въпреки че в момента настройката е ръчна. Когато USB транзитът пристигне в приложението, това може да се направи от интерфейса; междувременно е време да редактирате файл.

След като WinBoat е инсталиран, отидете в папката ~/.winboat и отворете файла docker-compose.ymlТам можете да добавите всички USB устройства, които искате да покажете на госта. След като го модифицирате, приложете промените с docker-compose down y docker-compose up -d в същата директория.

Графика и ускорение: Текущо състояние на WinBoat

Днес не работи GPU passthrough. Плановете са да се внедри ускорение чрез паравиртуализирани драйвери, но все още има работа за вършене. Драйверът MVisor Win VGPU за OpenGL е изследван и резултатите са обещаващи, въпреки че е проектиран за различен хипервизор и не е съвместим с QEMU, който WinBoat използва.

Има и екипи, които работят върху DirectX драйвери, но в момента няма нищо, което можем да тестваме със сигурност. Целта е да се интегрират тези части когато са достатъчно зрели за обща употреба, без да се прави компромис със стабилността.

Един проект, който е бил внимателно разгледан, е Looking Glass, особено неговият Indirect Display Driver, защото би позволил да се избегне използването на втори графичен процесор. Драйверът е успешно компилиран и стартиран. С някои промени, резултатът е само черен екран. Самият автор посочва, че не е готово за публиката, така че интеграцията ще трябва да изчака, докато узрее.

Игри с анти-чит и други ограничения на WinBoat

Ако целта ви са игри с анти-чит на ниво ядро, няма добри новини. Тези системи откриват и блокират виртуализацията., така че не е възможно да се стартират в WinBoat. За игри без тези ограничения или с по-малко натрапчиви защити, историята може да е различна, но това не е основният фокус на проекта.

Състояние и опаковка на Podman във Flatpak

Поддръжката на Podman е планирана и дори е била разработена както от екипа, така и от сътрудниците. Има обаче Проблеми с мрежата, които пречат на достъпа до гост сървъра, което нарушава работата. Докато не бъдат решени, задачата ще остане в списъка със задачи.

Конвертирането на WinBoat във Flatpak също е в плановете, въпреки че ще изисква усилия, тъй като Flatpak изолира приложенията значително от системата. Инсталираните приложения трябва да бъдат изложени, двоичния файл на Docker, неговия сокет и други помощни програми, всичко това без да се компрометира сигурността на sandbox-а. Не е тривиално, но не е и изключено.

Интеграция на файлове и работен процес

Практичен детайл, който улеснява живота, е, че вашата домашна директория в Linux е монтирана вътре в Windows. Това позволява споделяне на файлове. от едно място на друго, без да се настройват допълнителни ресурси или ръчно да се копира от екзотични местоположения. За офис, редакторски или CAD задачи, това е много ценен пряк път.

Приложения, които работят добре, и случаи на употреба

Истинската стойност на WinBoat идва, когато трябва да използвате програми, които Wine все още не покрива. Примери като Affinity Photo бяха подчертаниPaint Tool SAI v1.0 и части от пакета Adobe, както и инструменти като AeroChat и Acrobat. Office се откроява и е потвърдено, че Office 365 може да се използва без повече шум.

Този подход работи добре за професионалисти, които се нуждаят от няколко критични помощни програми за Windows, но предпочитат да запазят своята Linux среда за всичко останало. Дизайн, усъвършенствана офис автоматизация или определени корпоративни приложения се вписват особено добре в тази смесена употреба.

Сътрудничество с проекта WinBoat и лиценз

Приносите са отворени и винаги са добре дошли, независимо дали става въпрос за отстраняване на грешки, подобряване на функции или подобряване на документацията. Екипът иска да се съсредоточим върху техническия принос и отхвърляйте заявки за изтегляне (pull requests) с политическо, сексуално или чувствително съдържание, което не допринася за развитието. Ако искате да помогнете, най-добре е да разгледате секцията с проблеми, да предложите подобрения и да отворите ограничени заявки за изтегляне (limited pull requests).

В допълнение към докладването на грешки и предлагането на функции, можете да споделяте обратна връзка за реална употреба или да помагате за изясняване на точки в ръководството. Проектът е под лиценз на MIT, което улеснява сътрудничеството и внедряването в различни сценарии. Те също така споменават, че има и други проекти с подобни идеи, от които са черпили вдъхновение; струва си да ги разгледате.

Бележки за поверителност, известия и контекст на източника

Част от информацията, до която имате достъп, идва от дискусии в платформи, които показват известия за поверителност. В случая с Reddit ще видите типичното съобщение, което показва, че те и техните партньори използват „бисквитки“ и подобни технологии, за да предоставят по-добро изживяване, да поддържат услуги, подобряване на качеството и персонализиране на съдържанието и рекламите, в допълнение към измерването на ефективността на рекламите. Ако приемате всички „бисквитки“, продължете; ако отхвърлите несъществените „бисквитки“, те могат да използват определени „бисквитки“, необходими за функционирането на платформата. Те също така се позовават на тяхното известие за „бисквитките“ и политика за поверителност.

В някои X embed-и, ако JavaScript е деактивиран във вашия браузър, се появява подкана да го активирате или да използвате поддържан браузър, за да продължите. Връзките към центъра за помощ са изброени и условия за ползване, политика за поверителност, политика за бисквитките, данни за отпечатъка и рекламите, с корпоративния подпис X. Това са стандартни съобщения на платформата и не засягат работата на WinBoat.

И накрая, някои статии съдържат оформления с празни таблици и заместители, които не добавят съдържание. Тези визуални елементи Те са част от оригиналния дизайн и не съдържат съответна техническа информация за WinBoat.

Практически съвети за тест с добро лице

Въпреки че проектът автоматизира много, е полезно да се подготви почвата. Уверете се, че вашият потребител е в Docker групата и че можете да стартирате контейнери без sudo. Потвърдете, че FreeRDP е версия 3.xx със звук, защото по-старите версии може да причинят проблеми със звука. И проверете наличността на /var, за да не ви свърши пространството по време на внедряването.

Ако планирате да използвате специфични USB периферни устройства в Windows, дръжте под ръка техните идентификатори и документирайте всички промени, които правите в docker-compose.yml. Кратък контролен списък преди повдигане и спускане на контейнери може да ви спести време, особено ако редувате екипи или споделяте проекта с повече хора.

WinBoat предлага Прагматичен път за тези, които се нуждаят от удобен Windows, без да изоставят Linux: Добре организирана виртуализация, интегриран Windows с FreeRDP, ясни изисквания и пътна карта, която има за цел да подобри графичното ускорение, поддръжката на Podman и пакетирането Flatpak. С бета версия, която вече позволява сериозна работа, това е убедителна алтернатива, когато Wine или Proton не са достатъчни, особено за онези основни програми за дизайн, офис или бизнес работен процес, които все още се затрудняват в Linux.