
Če delate v Linuxu in občasno morate zagnati aplikacijo, ki obstaja samo za Windows, se zlahka znajdete v zastoju. WinBoat se izkaže kot drugačna možnost : namesto plasti združljivosti zažene pravi primerek sistema Windows in ga brezhibno integrira v vaše namizje.
Ideja je tako preprosta kot zmogljiva: nastavite resnično okolje Windows z Dockerjem in KVM ter prikažite njegova okna znotraj seje Linux z uporabo FreeRDP, kot da bi bila izvorna. Nič več ukvarjanja s čudnimi odvisnostmi ali nepredvidljivimi popravki; če program deluje v sistemu Windows, bi moral delovati tudi tukaj, razen v scenarijih, ki zahtevajo močno pospeševanje grafike ali ukrepe proti goljufijam na ravni jedra.
Kaj je WinBoat in zakaj je zanimiv?
WinBoat je projekt, ki si v skladu z duhom projekta Windows for Penguins prizadeva za nemoteno delovanje aplikacij Windows v sistemu Linux z minimalnim trenjem. Namesto prevajanja API-jev se zanaša na virtualizacijo s KVM in Docker vsebniki, ki zaokrožujejo okolje Windows, ki se nato predstavi kot neodvisna okna v vašem sistemu.
V primerjavi s prejšnjimi pristopi, kot je WinApps , je ključna razlika v uporabniški izkušnji. Pri WinApps večino konfiguracije opravite vi: veliko ročnih nastavitev , osnovni uporabniški vmesnik, nekaj pripomočkov v opravilni vrstici in nekaj razpršenih ukazov konzole. WinBoat pa po izpolnitvi določenih predpogojev opravi težko delo, prikaže ustrezne informacije v elegantnem vmesniku in ponuja popolnejšo izkušnjo, ne da bi se vam bilo treba ukvarjati s konfiguracijskimi datotekami ali si zapomniti niz ukazov.
Če se sprašujete, zakaj ne bi uporabljali Wine ali CrossOver, se odgovor skriva v izjemah. Nekatere aplikacije ne delujejo gladko ali se preprosto ne zaženejo z Wine . Prav zato je bil ustvarjen WinBoat: da zapolni te vrzeli in vam poleg tega ponudi polno namizje sistema Windows, ko ga potrebujete. Testi v resničnem svetu so navedli primere, kot so Affinity Photo, Paint Tool SAI v1.0, paket Adobe, AeroChat, Acrobat in seveda Office; potrjeno je celo, da Office 365 deluje.
Kako deluje WinBoat: Virtualizacija z integracijo sistema Windows
V ozadju WinBoat poganja virtualni stroj Windows, ki uporablja Docker kot orkestrator in KVM kot tehnologijo virtualizacije s strojno podporo . Windows se v Linuxu upodablja prek FreeRDP, zato jih lahko uporabljate kot katero koli drugo sistemsko aplikacijo, jih povlečete med namizji, jih pripnete v opravilno vrstico in preklapljate med njimi s tipkama Alt+Tab.
Lepota tega izuma je v brezhibni uporabniški izkušnji: elegantnem vmesniku , avtomatiziranih postopkih namestitve in možnosti zagona celotnega namizja sistema Windows, če je potrebno. Ko ni, lahko odprete le določene aplikacije in jih brezhibno integrirate, kot da bi bile izvorne, z doslednim videzom in občutkom znotraj vaše seje.
Izjemne lastnosti
- Čist vmesnik z vizualno integracijo, zaradi katere so okna sistema Windows videti, kot da so iz samega Linuxa.
- Samodejna namestitevIzberete svoje nastavitve in vire, sistem pa poskrbi za kuhanje.
- Zaženite skoraj katero koli aplikacijo ki se izvaja v sistemu Windows in je na namizju predstavljen kot okna na sistemski ravni.
- Celotno namizje Windows je na voljo, ko ga potrebujete, in omogoča zagon posameznih aplikacij na integriran način.
- Integracija datotek: Priklopi vaš domači imenik v sistemu Windows za neposredno skupno rabo dokumentov.
- Uporabni dodatki Na poti in že prisotni: prenos pametnih kartic, spremljanje virov in drugo.
Sistemski predpogoji
Preden začnete, se prepričajte, da vaša oprema izpolnjuje te minimalne zahteve, sicer boste že od samega začetka naleteli na težave. Vsako točko natančno preverite in se izognite presenečenjem.
- RAM: najmanj 4 GB.
- CPUnajmanj 2 niti.
- shranjevanje32 GB prostega prostora v /var.
- Virtualizacija: KVM omogočen v BIOS-u ali UEFI-ju.
- Lučki delavec: potrebno za kontejnerizacijo.
- Docker Compose v2: bistvenega pomena za združljivost z datotekami docker-compose.yml.
- Dockerjeva skupina: dodajte svojega uporabnika v skupino Docker.
- FreeRDPRazličica 3.xx z zvočno podporo.
- Jedrni moduli: naloži iptables in iptable_nat.
Poleg zahtev programske opreme morate preveriti, ali KVM dejansko deluje na vaši distribuciji. Če je KVM onemogočen v BIOS-u ali ga blokira jedro, se ne bo mogoče zagnati, ne glede na to, kako dobro deluje vse ostalo.
Prenos in namestitev: razpoložljive različice
Različice za Linux lahko prenesete iz razdelka z izdajami projekta. Trenutno sta na voljo dve možnosti, ki pokrivata večino primerov, s precej enostavno krivuljo učenja. Izberite tisto, ki najbolj ustreza vaši distribuciji in vašemu delovnemu procesu.
- AppImage: prenosna oblika, ki deluje na večini distribucij brez zapletene namestitve.
- Neembaliran: nerazpakirane datoteke; binarno datoteko preprosto zaženite v linux-unpacked/winboat.
Upoštevajte nezdružljivosti, ki so jih opazili razvijalci. Trenutno ni podpore za Podman , Docker Desktop, distribucije, ki posnemajo Docker z uporabo vtičnice Podman, ali konfiguracije vsebnikov brez dostopa do root-a. Če se zanašate na katero koli od teh okolij, boste morali počakati na prihodnje različice.
Največja priznana pomanjkljivost je, da boste morali pred polno izkušnjo ročno namestiti več dodatkov : Docker, Compose v2, FreeRDP 3 z zvokom, module iptables in članstvo v skupini docker. Ko premagate to oviro, je ostalo dokaj dobro organizirano.
Prevedi in zaženi iz izvorne kode
Če raje zgradite aplikacijo na svojem računalniku, je postopek preprost, če imate potrebne odvisnosti. Preden začnete, boste morali namestiti NodeJS in Go .
- Kloniraj repozitorij:
git clone https://github.com/TibixDev/WinBoat - Namestite odvisnosti:
npm i - Prevedite aplikacijo in gostujoči strežnik:
npm run build:linux-gs - Nastale binarne datoteke se pojavijo v
dist, z AppImage in nepakirano različico
Za razvoj se potek dela nekoliko spremeni, da lahko lažje izvajate lokalne iteracije. Ko sta NodeJS in Go pripravljena , sledite tem korakom.
- Kloniraj repozitorij:
git clone https://github.com/TibixDev/WinBoat - Namestite odvisnosti:
npm i - Zgradite gostujoči strežnik:
npm run build-guest-server - Zaženite aplikacijo v razvojnem načinu:
npm run dev
Konfiguracija naprav in strojne opreme
Če morate dostopati do strojne opreme iz sistema Windows, se podpora razlikuje glede na vrsto naprave. Možnosti za USB že obstajajo, čeprav je konfiguracija trenutno ročna. Ko bo aplikaciji dodan prehod USB , bo to mogoče storiti iz vmesnika; medtem boste morali urediti datoteko.
Ko je WinBoat nameščen, pojdite v mapo ~/.winboat in odprite datoteko docker-compose.ymlTam lahko dodate poljubne naprave USB, ki jih želite prikazati gostu. Po spremembi, uporabite spremembe z docker-compose down y docker-compose up -d v istem imeniku.
Grafika in pospešek: Trenutno stanje WinBoata
Trenutno ni delujočega prehoda grafičnega procesorja. Načrti vključujejo implementacijo pospeševanja z uporabo paravirtualiziranih gonilnikov , vendar je še vedno treba postoriti. Gonilnik MVisor Win VGPU za OpenGL je bil raziskan in rezultati so obetavni, čeprav je zasnovan za drug hipervizor in ni združljiv s QEMU, ki ga uporablja WinBoat.
Obstajajo tudi ekipe, ki delajo na gonilnikih DirectX, vendar trenutno ni ničesar, kar bi lahko zanesljivo preizkusili. Cilj je integrirati te komponente, ko bodo dovolj zrele za splošno uporabo, ne da bi pri tem ogrozili stabilnost.
En projekt, ki je bil pod drobnogledom, je Looking Glass, zlasti njegov gonilnik Indirect Display Driver, ker bi odpravil potrebo po drugi grafični kartici. Gonilnik je bil preveden in zagnan z nekaj rešitvami, vendar se prikaže le črn zaslon. Avtor sam navaja, da še ni pripravljen za javno izdajo, zato bo morala integracija počakati na nadaljnji razvoj.
Igre z omejitvami proti goljufijam in drugimi omejitvami WinBoat
Če je vaš cilj igrati igre z zaščito pred goljufijami na ravni jedra, ni dobrih novic. Ti sistemi zaznajo in blokirajo virtualizacijo , zato jih ni mogoče zagnati na WinBoatu. Pri igrah brez teh omejitev ali z manj vsiljivo zaščito je lahko situacija drugačna, vendar to ni glavni cilj projekta.
Status Podmana in embalaža v Flatpaku
Podpora za Podman je načrtovana in tako ekipa kot sodelavci so že začeli delati na njej. Vendar pa težave z omrežjem preprečujejo dostop do gostujočega strežnika , kar moti uporabniško izkušnjo. Dokler te težave ne bodo odpravljene, bo ostala v zaostanku.
Pretvorba WinBoata v Flatpak je prav tako na načrtu, čeprav bo zahtevala trud, saj Flatpak zelo tesno izolira aplikacije od sistema. Nameščene aplikacije , binarna datoteka Docker, njeno vtičnico in druge pripomočke bi bilo treba razkriti, ne da bi pri tem ogrozili varnost peskovnika. Ni trivialno, vendar ni izključeno.
Integracija datotek in potek dela
Praktična podrobnost, ki olajša življenje, je, da je vaš domači imenik Linuxa nameščen v sistemu Windows. To vam omogoča skupno rabo datotek brez nameščanja dodatnih virov ali ročnega kopiranja z neznanih lokacij. Za pisarniška opravila, urejanje ali CAD je to zelo dobrodošla bližnjica.
Aplikacije, ki dobro delujejo, in primeri uporabe
Prava vrednost programa WinBoat postane očitna pri uporabi programov, ki jih Wine še ne obvladuje popolnoma. Med pomembne primere spadajo Affinity Photo , Paint Tool SAI v1.0 in deli programskega paketa Adobe, pa tudi orodja, kot sta AeroChat in Acrobat. Izstopa Office, ki potrjuje, da je Office 365 mogoče uporabljati brez večjih težav.
Ta pristop je primeren za strokovnjake, ki potrebujejo nekaj ključnih orodij za Windows, vendar raje obdržijo svoje okolje Linux za vse ostalo. Oblikovanje, napredne pisarniške aplikacije ali nekatere poslovne aplikacije se še posebej dobro ujemajo s tem modelom mešane uporabe.
Sodelujte s projektom WinBoat in pridobite licenco
Prispevki so vedno dobrodošli, pa naj gre za odpravljanje hroščev, izpopolnjevanje funkcij ali izboljšanje dokumentacije. Ekipa vas prosi, da se osredotočite na tehnične prispevke in bo zavrgla zahteve za vlečenje s politično, spolno ali drugo občutljivo vsebino, ki ne prispeva k razvoju. Če želite pomagati, je najbolje, da obiščete razdelek z vprašanji, predlagate izboljšave in odprete ciljno usmerjene zahteve za vlečenje.
Poleg poročanja o napakah in predlaganja funkcij lahko delite tudi povratne informacije o uporabi v resničnem svetu ali pomagate razjasniti točke v priročniku. Projekt je licenciran pod licenco MIT , ki omogoča sodelovanje in uporabo v različnih okoljih. Omenjajo tudi, da obstajajo drugi projekti s podobnimi idejami, ki so jih navdihnili; vredni ogleda.
Opombe o zasebnosti, obvestila in kontekst vira
Nekatere informacije, ki jih poiščete, izvirajo iz niti na platformah, ki prikazujejo obvestila o zasebnosti. V primeru Reddita boste videli tipično sporočilo, da oni in njihovi partnerji uporabljajo piškotke in podobne tehnologije za zagotavljanje boljše izkušnje, vzdrževanje storitev, izboljšanje kakovosti ter prilagajanje vsebine in oglaševanja ter za merjenje učinkovitosti oglaševanja. Če sprejmete vse piškotke, lahko nadaljujete; če zavrnete nebistvene piškotke, lahko še vedno uporabljajo nekatere piškotke, ki so potrebni za delovanje platforme. Prav tako vas napotijo na njihovo obvestilo o piškotkih in politiko zasebnosti.
V nekaterih vdelanih programih X se bo, če je v vašem brskalniku onemogočen JavaScript, prikazalo sporočilo, ki vas bo pozvalo, da ga omogočite ali za nadaljevanje uporabite združljiv brskalnik. Navedene so povezave do centra za pomoč in pogojev storitve, pravilnika o zasebnosti, pravilnika o piškotkih, impresuma in oglaševalskih podatkov , vse s korporativnim podpisom podjetja X. To so standardna sporočila platforme in ne vplivajo na delovanje sistema WinBoat.
Končno, nekateri članki vsebujejo postavitve s praznimi tabelami in nadomestnimi besedili, ki ne dodajajo vsebine. Ti vizualni elementi so del prvotne zasnove in ne vsebujejo ustreznih tehničnih informacij o WinBoatu.
Praktični nasveti za test z dobrim obrazom
Čeprav projekt veliko avtomatizira, je vseeno koristno, da se pripravite. Preverite, ali je vaš uporabnik v skupini Docker in ali lahko zaženete vsebnike brez ukaza sudo. Preverite, ali je FreeRDP različice 3.xx z zvokom, saj imajo lahko starejše različice težave z zvokom. In preverite razpoložljivost mape /var, da se izognete pomanjkanju prostora sredi uvajanja.
Če nameravate v sistemu Windows uporabljati določene periferne naprave USB, imejte njihove identifikatorje pri roki in dokumentirajte vse spremembe, ki jih naredite v datoteki docker-compose.yml. Kratek kontrolni seznam pred nalaganjem in prenosom vsebnikov vam lahko prihrani čas, še posebej, če zamenjate računalnik ali projekt delite z drugimi.
WinBoat ponuja pragmatično rešitev za tiste, ki potrebujejo okolje, podobno sistemu Windows, ne da bi pri tem opustili Linux: dobro organizirano virtualizacijo, sistem Windows, integriran s FreeRDP , jasne zahteve in načrt, osredotočen na izboljšanje pospeševanja grafike, podporo za Podman in paketiranje Flatpak. Z beta različico, ki je že sposobna resnega dela, se izkaže za prepričljivo alternativo, ko Wine ali Proton ne uspeta, zlasti za bistvene aplikacije za oblikovanje, pisarniške programe ali poslovne delovne procese, ki se še vedno težko obnesejo v Linuxu.