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

Ако се чудите защо да не използвате Wine или CrossOver, отговорът се крие в изключенията. Някои приложения не работят гладко или просто не се стартират с Wine . Именно затова е създаден 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.

Имайте предвид несъвместимостите, отбелязани от разработчиците. В момента няма поддръжка за Podman , 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 passthrough бъде добавен към приложението , ще бъде възможно да го направите от интерфейса; междувременно ще трябва да редактирате файл.

След като 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) с политическо, сексуално или друго чувствително съдържание, което не допринася за разработката. Ако искате да помогнете, най-добрият начин е да посетите секцията с проблеми, да предложите подобрения и да отворите целенасочени заявки за изтегляне.

В допълнение към докладването на грешки и предлагането на функции, можете да споделяте обратна връзка от реалния свят или да помагате за изясняване на точки в ръководството. Проектът е лицензиран под лиценза на 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.


Добавяне като предпочитан източник в Google