„WinBoat“ – įrankis, kuris geriausiai integruoja ir paleidžia „Windows“ programas „Linux“ sistemoje

  • „WinBoat“ veikia su tikra „Windows“ operacine sistema su „Docker“ ir KVM, o „Windows“ integruojama per „FreeRDP“.
  • Įveikia „Wine“ apribojimus pagrindinėse programose ir suteikia visą darbalaukio versiją pagal poreikį.
  • Aiškūs reikalavimai: KVM, Docker, Compose v2 ir FreeRDP 3 su garsu.
  • GPU pralaidumas dar ne, „Podman“ ir „Flatpak“ pakeliui susiduria su techniniais iššūkiais.

WinBoat

Jei dirbate su „Linux“ ir retkarčiais reikia paleisti programą, kuri egzistuoja tik „Windows“, lengva pasijusti įstrigusiam. „WinBoat“ yra kitokia alternatyva : vietoj suderinamumo sluoksnio ji paleidžia tikrą „Windows“ egzempliorių ir sklandžiai integruoja jį į jūsų darbalaukį.

Idėja paprasta ir galinga: sukurkite tikrą „Windows“ aplinką naudodami „Docker“ ir KVM , o jos langus „Linux“ sesijoje rodykite naudodami „FreeRDP“ taip, lyg jie būtų vietiniai. Daugiau jokių keistų priklausomybių ar nenuspėjamų pataisymų; jei programa veikia „Windows“ sistemoje, ji turėtų veikti ir čia, išskyrus atvejus, kai reikalingas stiprus grafikos spartinimas arba branduolio lygio apsaugos nuo sukčiavimo priemonės.

Kas yra „WinBoat“ ir kuo jis įdomus?

„WinBoat“ yra projektas, kuris, ištikimas savo „Windows for Penguins“ dvasiai, siekia, kad „Windows“ programos sklandžiai veiktų jūsų „Linux“ sistemoje su minimaliu trikdžiu. Vietoj API vertimų jis remiasi virtualizacija su KVM ir „Docker“ konteineriais, kad apjungtų „Windows“ aplinką, kuri vėliau pateikiama kaip nepriklausomi langai jūsų sistemoje.

Palyginti su ankstesniais metodais, tokiais kaip „WinApps“ , pagrindinis skirtumas slypi naudotojo patirtyje. Naudojant „WinApps“, didžiąją dalį konfigūravimo atliekate jūs: daug rankinio nustatymo , pagrindinė TUI, keli valdikliai užduočių juostoje ir kelios išsklaidytos konsolės komandos. Kita vertus, „WinBoat“ atlieka sunkų darbą, įvykdžius tam tikrus reikalavimus, rodo reikiamą informaciją tvarkingoje sąsajoje ir siūlo išsamesnę patirtį, jums nereikės grumtis su konfigūracijos failais ar įsiminti komandų eilutės.

Jei svarstote, kodėl gi nepanaudojus „Wine“ ar „CrossOver“, atsakymas slypi išimtyse. Kai kurios programos neveikia sklandžiai arba tiesiog nepaleidžiamos naudojant „Wine“ . Būtent todėl buvo sukurta „WinBoat“: užpildyti šias spragas ir, be to, suteikti jums visą „Windows“ darbalaukį, kai jo reikia. Realiuose bandymuose pateikti tokie pavyzdžiai kaip „Affinity Photo“, „Paint Tool SAI v1.0“, „Adobe“ programų paketas, „AeroChat“, „Acrobat“ ir, žinoma, „Office“; netgi patvirtinta, kad „Office 365“ veikia.

Kaip veikia „WinBoat“: virtualizacija su langų integracija

Po gaubtu „WinBoat“ veikia kaip „Windows“ virtuali mašina, kurios orkestravimo įrankis yra „Docker“, o aparatinės įrangos virtualizacijos technologija – KVM . „Windows“ sistema „Linux“ sistemoje atvaizduojama naudojant „FreeRDP“, todėl jas galima naudoti kaip ir bet kurią kitą sistemos programą – vilkti tarp darbalaukio, prisegti užduočių juostoje ir perjungti tarp jų paspausiant Alt+Tab.

Šio išradimo grožis slypi sklandžioje naudotojo patirtyje: elegantiška sąsaja , automatizuoti diegimo procesai ir galimybė paleisti visą „Windows“ darbalaukį, jei reikia. Kai to nereikia, galite atidaryti tik konkrečias programas ir jas sklandžiai integruoti, tarsi jos būtų vietinės, išlaikant nuoseklią išvaizdą ir pojūtį jūsų sesijoje.

Puikios savybės

  • Tvarkinga sąsaja su vizualine integracija, dėl kurios „Windows“ langai atrodo taip, lyg būtų iš pačios „Linux“.
  • Automatizuotas montavimasJūs pasirenkate savo pageidavimus ir išteklius, o sistema pasirūpina maisto gaminimu.
  • Paleiskite beveik bet kurią programą kuris veikia „Windows“ sistemoje ir pateikiamas kaip sistemos lygio langai jūsų darbalaukyje.
  • Visas darbalaukis „Windows“ pasiekiama, kai jos reikia, taip pat integruotas atskirų programų paleidimas.
  • Failų integracija: Prijungia jūsų pagrindinį katalogą sistemoje „Windows“, kad būtų galima tiesiogiai bendrinti dokumentus.
  • naudingų priedų Jau pakeliui ir įdiegta: išmaniųjų kortelių perdavimas, išteklių stebėjimas ir kita.

Sistemos reikalavimai

Prieš pradėdami įsitikinkite, kad jūsų įranga atitinka šiuos minimalius reikalavimus; kitaip nuo pat pradžių susidursite su problemomis. Atidžiai patikrinkite kiekvieną punktą ir išvenkite netikėtumų.

  • RAM: ne mažiau kaip 4 GB.
  • CPUmažiausiai 2 siūlai.
  • Sandėliavimas32 GB laisvos vietos /var aplanke.
  • VirtualizacijaKVM įjungtas BIOS arba UEFI.
  • dokininkas: reikalinga konteinerizavimui.
  • Docker Composite v2: būtinas suderinamumui su „docker-compose.yml“ failais.
  • Docker grupė: pridėkite savo vartotoją prie „docker“ grupės.
  • FreeRDP3.xx versija su garso palaikymu.
  • Branduolio moduliai: įkelia „iptables“ ir „iptable_nat“.

Be programinės įrangos reikalavimų, turėtumėte patvirtinti, kad KVM iš tikrųjų veikia jūsų distribucijoje. BIOS išjungtas arba branduolio užblokuotas KVM neleis paleisti jokios sistemos, nesvarbu, kaip gerai veikia visa kita.

Atsisiuntimas ir diegimas: galimi variantai

„Linux“ versijas galite atsisiųsti iš projekto leidimų skyriaus. Šiuo metu yra dvi parinktys, kurios apima daugumą atvejų ir yra gana lengvai išmokstamos. Pasirinkite tą, kuri geriausiai atitinka jūsų distribuciją ir darbo eigą.

  • "AppImage": nešiojamas formatas, veikiantis daugumoje platinamųjų programų be sudėtingo diegimo.
  • išpakuoti: išpakuoti failai; tiesiog paleiskite dvejetainį failą aplanke linux-unpacked/winboat.

Atkreipkite dėmesį į kūrėjų nurodytus nesuderinamumus. Šiuo metu nepalaikomos „Podman“ , „Docker Desktop“, distribucijos, kurios emuliuoja „Docker“ naudodamos „Podman“ lizdą, arba konteinerių konfigūracijos be šaknies. Jei naudojate bet kurią iš šių aplinkų, turėsite palaukti būsimų versijų.

Didžiausias pripažintas trūkumas yra tas, kad prieš mėgaujantis visaverte patirtimi, reikės rankiniu būdu įdiegti keletą papildomų programų : „Docker“, „Compose v2“, „FreeRDP 3“ su garsu, „iptables“ modulius ir narystę „docker“ grupėje. Įveikus šią kliūtį, visa kita bus gana gerai suorganizuota.

Sudarykite ir paleiskite iš šaltinio kodo

Jei norite kurti programą savo kompiuteryje, procesas yra paprastas, jei tik turite reikiamas priklausomybes. Prieš pradėdami turėsite įdiegti „NodeJS“ ir „Go“ .

  • Klonuoti saugyklą: git clone https://github.com/TibixDev/WinBoat
  • Įdiekite priklausomybes: npm i
  • Sukompiliuokite programėlę ir svečio serverį: npm run build:linux-gs
  • Gauti dvejetainiai failai rodomi dist, su „AppImage“ ir „Unpacked“ variantu

Kūrimo metu darbo eiga šiek tiek pasikeičia, kad būtų lengviau iteruoti lokaliai. Kai „NodeJS“ ir „Go“ yra paruošti , atlikite šiuos veiksmus.

  • Klonuoti saugyklą: git clone https://github.com/TibixDev/WinBoat
  • Įdiekite priklausomybes: npm i
  • Sukurkite svečių serverį: npm run build-guest-server
  • Paleiskite programėlę kūrimo režimu: npm run dev

Įrenginių ir aparatinės įrangos konfigūracija

Jei jums reikia pasiekti aparatinę įrangą iš „Windows“, palaikymas priklauso nuo įrenginio tipo. Jau yra USB parinkčių, nors šiuo metu konfigūravimas vyksta rankiniu būdu. Kai prie programos bus pridėta USB perdavimas , tai bus galima padaryti iš sąsajos; tuo tarpu turėsite redaguoti failą.

Įdiegę „WinBoat“, eikite į aplanką ~/.winboat ir atidarykite failą docker-compose.ymlTen galite pridėti bet kokius USB įrenginius, kuriuos norite rodyti svečiui. Po jo modifikavimo, pritaikykite pakeitimus naudodami docker-compose down y docker-compose up -d tame pačiame kataloge.

Grafika ir pagreitis: dabartinė „WinBoat“ būsena

Šiuo metu nėra veikiančio GPU pralaidumo. Planuojama įdiegti spartinimą naudojant paravirtualizuotus tvarkykles , tačiau dar reikia daug nuveikti. Buvo ištirtas „MVisor Win VGPU“ tvarkyklė, skirta „OpenGL“, ir rezultatai yra daug žadantys, nors ji skirta kitam hipervizoriui ir nesuderinama su „QEMU“, kurį naudoja „WinBoat“.

Taip pat yra komandų, dirbančių su „DirectX“ tvarkyklėmis, tačiau šiuo metu nėra nieko, ką galėtume patikimai išbandyti. Tikslas – integruoti šiuos komponentus, kai jie bus pakankamai subrendę bendram naudojimui, nepakenkiant stabilumui.

Vienas atidžiai išnagrinėtas projektas yra „Looking Glass“, ypač jo netiesioginio ekrano tvarkyklė, nes ji panaikintų antros GPU poreikį. Tvarkyklė buvo sukompiliuota ir paleista su tam tikrais laikinais sprendimais, tačiau sukuriamas tik juodas ekranas. Pats autorius nurodo, kad ji dar nėra paruošta viešam išleidimui, todėl integracija turės palaukti tolesnio kūrimo.

Žaidimai su apsauga nuo sukčiavimo ir kitais „WinBoat“ apribojimais

Jei jūsų tikslas yra žaisti žaidimus su branduolio lygio apsauga nuo sukčiavimo, nėra gerų naujienų. Šios sistemos aptinka ir blokuoja virtualizaciją , todėl jų neįmanoma paleisti „WinBoat“. Žaidimams be šių apribojimų arba su mažiau įkyriomis apsaugomis situacija gali būti kitokia, tačiau tai nėra pagrindinis projekto tikslas.

Podmano būsena ir pakuotė „Flatpak“ programoje

Planuojama „Podman“ palaikymo paslauga, ir tiek komanda, tiek bendradarbiai jau pradėjo jos kūrimo darbus. Tačiau dėl tinklo problemų svečio serveris negali būti pasiekiamas , o tai sutrikdo naudotojo patirtį. Kol šios problemos nebus išspręstos, serveris liks neatliktų darbų sąraše.

Taip pat planuojama konvertuoti „WinBoat“ į „Flatpak“, nors tam reikės pastangų, nes „Flatpak“ labai griežtai izoliuoja programas nuo sistemos. Reikėtų atskleisti įdiegtas programas , „Docker“ dvejetainį failą, jo lizdą ir kitas pagalbines programas, nepažeidžiant „smėlio dėžės“ saugumo. Tai nėra trivialu, bet neatmetama galimybė.

Failų integravimas ir darbo eiga

Viena praktiška detalė, palengvinanti gyvenimą, yra ta, kad jūsų „Linux“ pagrindinis katalogas yra prijungtas prie „Windows“. Tai leidžia bendrinti failus neįjungiant papildomų išteklių ar rankiniu būdu nekopijuojant iš nepažįstamų vietų. Tai labai naudingas sutrumpintas būdas atliekant biuro užduotis, redaguojant ar kuriant CAD.

Gerai veikiančios programos ir jų naudojimo atvejai

Tikroji „WinBoat“ vertė išryškėja naudojant programas, kurių „Wine“ dar ne itin gerai valdo. Žymūs pavyzdžiai: „Affinity Photo“ , „Paint Tool SAI v1.0“ ir „Adobe“ programų paketo dalys, taip pat tokie įrankiai kaip „AeroChat“ ir „Acrobat“. „Office“ išsiskiria, patvirtindama, kad „Office 365“ galima naudoti be didelių sunkumų.

Šis metodas puikiai tinka specialistams, kuriems reikia kelių svarbių „Windows“ programų, bet kurie nori išlaikyti savo „Linux“ aplinką viskam kitam. Dizainas, pažangios biuro programos arba tam tikros įmonės programos ypač gerai tinka šiam mišraus naudojimo modeliui.

Bendradarbiaukite su „WinBoat“ projektu ir licencijuokite

Įnašai visada laukiami – nesvarbu, ar tai būtų klaidų taisymas, funkcijų tobulinimas ar dokumentacijos gerinimas. Komanda prašo sutelkti dėmesį į techninius indėlius ir atmes užklausas su politiniu, seksualiniu ar kitu jautriu turiniu, kuris neprisideda prie kūrimo. Jei norite padėti, geriausias būdas yra apsilankyti problemų skiltyje, siūlyti patobulinimus ir atidaryti tikslines užklausas.

Be klaidų pranešimo ir funkcijų siūlymo, galite pasidalyti atsiliepimais apie realų naudojimą arba padėti paaiškinti vadovo punktus. Projektas licencijuotas pagal MIT licenciją , kuri palengvina bendradarbiavimą ir pritaikymą įvairiose aplinkose. Jie taip pat mini, kad yra ir kitų projektų su panašiomis idėjomis, kurie juos įkvėpė; verta juos peržiūrėti.

Privatumo pastabos, pranešimai ir šaltinio kontekstas

Dalis informacijos, kuria naudojamasi, gaunama iš platformų, kuriose rodomi privatumo pranešimai, gijų. „Reddit“ atveju matysite įprastą pranešimą, kuriame teigiama, kad jie ir jų partneriai naudoja slapukus ir panašias technologijas, siekdami užtikrinti geresnę patirtį, palaikyti paslaugas, gerinti kokybę, suasmeninti turinį ir reklamą , taip pat matuoti reklamos efektyvumą. Jei sutinkate su visais slapukais, galite tęsti; jei atmesite nebūtinus slapukus, jie vis tiek gali naudoti tam tikrus slapukus, būtinus platformai veikti. Jie taip pat nukreipia jus į savo slapukų pranešimą ir privatumo politiką.

Kai kuriuose X įterptuosiuose elementuose, jei jūsų naršyklėje išjungta „JavaScript“, pasirodys pranešimas, kuriame bus prašoma ją įjungti arba naudoti suderinamą naršyklę, kad galėtumėte tęsti. Pateikiamos nuorodos į pagalbos centrą ir paslaugų teikimo sąlygas, privatumo politiką, slapukų politiką, leidybos informaciją ir reklamos duomenis , visi jie pažymėti X įmonės parašu. Tai standartiniai platformos pranešimai ir neturi įtakos „WinBoat“ funkcionalumui.

Galiausiai, kai kuriuose straipsniuose pateikiami maketai su tuščiomis lentelėmis ir vietos žymekliais, kurie neprideda jokio turinio. Šie vaizdiniai elementai yra originalaus dizaino dalis ir juose nėra svarbios techninės informacijos apie „WinBoat“.

Praktiniai patarimai, kaip išlaikyti egzaminą gražiai

Nors projektas daug ką automatizuoja, vis tiek naudinga pasiruošti. Įsitikinkite, kad jūsų vartotojas yra „Docker“ grupėje ir kad galite paleisti konteinerius be „sudo“. Įsitikinkite, kad „FreeRDP“ versija yra 3.xx su garsu, nes ankstesnėse versijose gali būti garso problemų. Ir patikrinkite /var prieinamumą, kad diegimo metu nepritrūktų vietos.

Jei planuojate naudoti konkrečius USB periferinius įrenginius sistemoje „Windows“, laikykite jų identifikatorius po ranka ir dokumentuokite visus atliktus „docker-compose.yml“ pakeitimus. Trumpas kontrolinis sąrašas prieš įkeliant ir atsisiunčiant konteinerius gali sutaupyti laiko, ypač jei keičiate kompiuterius arba bendrinate projektą su kitais žmonėmis.

„WinBoat“ siūlo pragmatišką sprendimą tiems, kuriems reikia „Windows“ tipo aplinkos neatsisakant „Linux“: gerai organizuota virtualizacija, su „FreeRDP“ integruoti „Windows“ , aiškūs reikalavimai ir grafikos spartinimo gerinimo planas, „Podman“ palaikymas ir „Flatpak“ paketai. Jau turint beta versiją, galinčią atlikti rimtą darbą, ji pasirodo esanti patraukli alternatyva, kai „Wine“ ar „Proton“ neturi pakankamai pajėgumų, ypač svarbioms dizaino, biuro ar įmonės darbo eigos programoms, kurios vis dar sunkiai veikia „Linux“ sistemoje.


Pridėti kaip pageidaujamą šaltinį „Google“ sistemoje