
Om du arbetar i Linux och ibland behöver köra ett program som bara finns för Windows är det lätt att känna sig fast. WinBoat framstår som ett annat alternativ : istället för ett kompatibilitetslager kör det en riktig instans av Windows och integrerar det sömlöst i din dator.
Idén är lika enkel som den är kraftfull: konfigurera en riktig Windows-miljö med Docker och KVM och visa dess fönster i din Linux-session med FreeRDP, som om de vore inbyggda. Inget mer krångel med konstiga beroenden eller oförutsägbara patchar; om ett program fungerar på Windows borde det fungera här också, förutom i scenarier som kräver stark grafikacceleration eller anti-fuskåtgärder på kärnnivå.
Vad är WinBoat och varför är det intressant?
WinBoat är ett projekt som, i linje med sin Windows for Penguins-anda, syftar till att få Windows-appar att fungera sömlöst på ditt Linux-system med minimal friktion. Istället för API-översättningar förlitar det sig på virtualisering med KVM- och Docker-containrar för att inkapsla en Windows-miljö, som sedan presenterar sig som oberoende fönster i ditt system.
Jämfört med tidigare metoder som WinApps ligger den viktigaste skillnaden i användarupplevelsen. Med WinApps faller huvuddelen av konfigurationen på dig: mycket manuell installation , ett grundläggande användargränssnitt, några widgetar i aktivitetsfältet och några spridda konsolkommandon. WinBoat, å andra sidan, gör det grova arbetet efter att ha uppfyllt vissa förutsättningar, visar relevant information i ett polerat gränssnitt och erbjuder en mer komplett upplevelse utan att du behöver brottas med konfigurationsfiler eller memorera en rad kommandon.
Om du undrar varför du inte använder Wine eller CrossOver, ligger svaret i undantagen. Vissa program fungerar inte smidigt eller startar helt enkelt inte med Wine . Det är just därför WinBoat skapades: för att fylla dessa luckor och dessutom ge dig ett komplett Windows-skrivbord när du behöver det. Verkliga tester har nämnt exempel som Affinity Photo, Paint Tool SAI v1.0, Adobe-sviten, AeroChat, Acrobat och naturligtvis Office; det har till och med bekräftats att Office 365 fungerar.
Så fungerar WinBoat: Virtualisering med fönsterintegration
Under huven kör WinBoat en virtuell Windows-maskin med Docker som orkestrator och KVM som hårdvaruassisterad virtualiseringsteknik . Windows renderas i Linux via FreeRDP, så du kan använda dem som vilken annan systemapp som helst, dra dem mellan skrivbord, fästa dem i aktivitetsfältet och växla mellan dem med Alt+Tab.
Det fina med denna uppfinning ligger i den sömlösa användarupplevelsen: ett elegant gränssnitt , automatiserade installationsprocesser och möjligheten att starta hela Windows-skrivbordet om det behövs. Om du inte gör det kan du bara öppna de specifika programmen och integrera dem sömlöst, som om de vore inbyggda, med ett enhetligt utseende och känsla i din session.
Enastående funktioner
- Snyggt gränssnitt med visuell integration som gör att Windows-fönster ser ut som om de kommer från Linux självt.
- Automatiserad installationDu väljer dina preferenser och resurser, och systemet tar hand om matlagningen.
- Kör nästan vilken app som helst som körs på Windows, presenteras som systemnivåfönster på skrivbordet.
- Hela skrivbordet Windows tillgängligt när du behöver det, samt att starta enskilda appar på ett integrerat sätt.
- FilintegrationMonterar din hemkatalog i Windows för att dela dokument direkt.
- Användbara extrafunktioner På väg och redan tillgängligt: smartkortsgenomströmning, resursövervakning och mer.
Systemförutsättningar
Innan du börjar, se till att din utrustning uppfyller dessa minimikrav, annars kommer du att stöta på problem från början. Kontrollera varje punkt noggrant och undvik överraskningar.
- RAM: minst 4 GB.
- CPUminst 2 trådar.
- lagring: 32 GB ledigt i /var.
- VirtualiseringKVM aktiverat i BIOS eller UEFI.
- Hamnarbetarekrävs för containerisering.
- Docker Compose v2: viktigt för kompatibilitet med docker-compose.yml-filer.
- Docker-gruppen: lägg till din användare i dockergruppen.
- FreeRDPVersion 3.xx med ljudstöd.
- Kärnmoduler: laddar iptables och iptable_nat.
Utöver programvarukraven bör du bekräfta att KVM faktiskt fungerar på din distribution. En KVM som är inaktiverad i BIOS eller blockerad av kärnan kommer att förhindra att någonting startar, oavsett hur bra allt annat fungerar.
Nedladdning och installation: tillgängliga varianter
Du kan ladda ner Linux-versioner från projektets utgåva-sektion. För närvarande finns det två alternativ som täcker de flesta fall, med en ganska enkel inlärningskurva. Välj det som bäst passar din distribution och ditt arbetsflöde.
- AppImage: portabelt format som fungerar på de flesta distributioner utan komplicerad installation.
- packasuppackade filer; kör bara binärfilen i linux-unpacked/winboat.
Var medveten om de inkompatibiliteter som utvecklarna noterat. För närvarande finns det inget stöd för Podman , Docker Desktop, distributioner som emulerar Docker med en Podman-socket eller rotlösa containerkonfigurationer. Om du förlitar dig på någon av dessa miljöer måste du vänta på framtida versioner.
Den största erkända nackdelen är att du måste installera flera extrafunktioner manuellt innan du kan njuta av den fulla upplevelsen: Docker, Compose v2, FreeRDP 3 med ljud, iptables-moduler och medlemskap i dockergruppen. När du väl har övervunnit det hindret är resten ganska väl orkestrerat.
Kompilera och kör från källkod
Om du föredrar att bygga applikationen på din dator är processen enkel så länge du har de nödvändiga beroendena. Du behöver NodeJS och Go installerade innan du börjar.
- Klona arkivet:
git clone https://github.com/TibixDev/WinBoat - Installera beroenden:
npm i - Kompilera appen och gästservern:
npm run build:linux-gs - De resulterande binärfilerna visas i
dist, med AppImage och Unpacked-varianten
För utveckling ändras arbetsflödet något så att du enklare kan iterera lokalt. Följ dessa steg med NodeJS och Go ready .
- Klona arkivet:
git clone https://github.com/TibixDev/WinBoat - Installera beroenden:
npm i - Bygg gästservern:
npm run build-guest-server - Starta appen i utvecklingsläge:
npm run dev
Enheter och hårdvarukonfiguration
Om du behöver komma åt hårdvara från Windows varierar stödet beroende på enhetstyp. Det finns redan alternativ för USB, men för närvarande är konfigurationen manuell. När USB-genomströmning läggs till i appen kommer det att vara möjligt att göra det från gränssnittet; under tiden måste du redigera en fil.
När WinBoat är installerat, gå till mappen ~/.winboat och öppna filen docker-compose.ymlDär kan du lägga till alla USB-enheter du vill visa för gästen. Efter att ha modifierat den, tillämpa ändringarna med docker-compose down y docker-compose up -d i samma katalog.
Grafik och acceleration: Nuvarande status för WinBoat
För närvarande finns det ingen fungerande GPU-genomströmning. Planerna innefattar att implementera acceleration med hjälp av paravirtualiserade drivrutiner , men det finns fortfarande arbete att göra. MVisor Win VGPU-drivrutinen för OpenGL har undersökts och resultaten är lovande, även om den är utformad för en annan hypervisor och inte är kompatibel med QEMU, som används av WinBoat.
Det finns också team som arbetar med DirectX-drivrutiner, men för närvarande finns det inget vi kan testa på ett tillförlitligt sätt. Målet är att integrera dessa komponenter när de är tillräckligt mogna för allmän användning, utan att kompromissa med stabiliteten.
Ett projekt som har granskats noggrant är Looking Glass, särskilt dess indirekta bildskärmsdrivrutin, eftersom det skulle eliminera behovet av en andra grafikprocessor. Drivrutinen har kompilerats och körts med några lösningar, men bara en svart skärm produceras. Författaren själv anger att den ännu inte är redo för offentlig utgivning, så integrationen får vänta på vidare utveckling.
Spel med anti-cheat och andra WinBoat-gränser
Om ditt mål är att spela spel med anti-cheat på kärnnivå finns det inga goda nyheter. Dessa system upptäcker och blockerar virtualisering , så det är inte möjligt att köra dem på WinBoat. För spel utan dessa begränsningar eller med mindre påträngande skydd kan situationen vara annorlunda, men det är inte projektets primära fokus.
Podman-status och förpackning i Flatpak
Podman-stöd är planerat, och arbetet har till och med påbörjats av både teamet och bidragsgivarna. Nätverksproblem hindrar dock gästservern från att vara tillgänglig , vilket stör användarupplevelsen. Tills dessa är lösta kommer det att förbli eftersläpande.
Att konvertera WinBoat till Flatpak finns också med på planen, även om det kommer att kräva ansträngning eftersom Flatpak isolerar appar väldigt tätt från systemet. Installerade applikationer , Docker-binärfilen, dess socket och andra verktyg skulle behöva exponeras, allt utan att kompromissa med sandlådans säkerhet. Det är inte trivialt, men det är inte uteslutet.
Filintegration och arbetsflöde
En praktisk detalj som gör livet enklare är att din Linux-hemkatalog är monterad i Windows. Detta gör att du kan dela filer fram och tillbaka utan att montera ytterligare resurser eller manuellt kopiera från okända platser. För kontorsuppgifter, redigering eller CAD är detta en mycket välkommen genväg.
Appar som fungerar bra och användningsområden
WinBoats verkliga värde blir uppenbart när man använder program som Wine ännu inte hanterar perfekt. Bland anmärkningsvärda exempel finns Affinity Photo , Paint Tool SAI v1.0 och delar av Adobe-sviten, samt verktyg som AeroChat och Acrobat. Office sticker ut och bekräftar att Office 365 kan användas utan större svårigheter.
Den här metoden fungerar bra för yrkesverksamma som behöver ett par viktiga Windows-verktyg men föredrar att behålla sin Linux-miljö för allt annat. Design, avancerade kontorsprogram eller vissa företagsappar passar särskilt bra in i den här blandanvändningsmodellen.
Samarbeta med WinBoat-projektet och licensiera
Bidrag är alltid välkomna, oavsett om det gäller att åtgärda buggar, förfina funktioner eller förbättra dokumentationen. Teamet ber dig att fokusera på tekniska bidrag och kommer att ignorera pull requests med politiskt, sexuellt eller annat känsligt innehåll som inte bidrar till utvecklingen. Om du vill hjälpa till är det bästa sättet att besöka avsnittet om problem, föreslå förbättringar och öppna riktade pull requests.
Förutom att rapportera buggar och föreslå funktioner kan du dela feedback från verkligheten eller hjälpa till att förtydliga punkter i manualen. Projektet är licensierat under MIT-licensen , vilket underlättar samarbete och implementering i olika sammanhang. De nämner också att det finns andra projekt med liknande idéer som har inspirerat dem; de är värda att kolla in.
Sekretessmeddelanden, meddelanden och källkontext
En del av informationen som konsulteras kommer från trådar på plattformar som visar integritetsmeddelanden. När det gäller Reddit ser du det typiska meddelandet som anger att de och deras partners använder cookies och liknande tekniker för att ge en bättre upplevelse, upprätthålla tjänster, förbättra kvaliteten och anpassa innehåll och reklam , samt mäta annonseringseffektivitet. Om du accepterar alla cookies kan du fortsätta; om du avvisar icke-nödvändiga cookies kan de fortfarande använda vissa cookies som är nödvändiga för att plattformen ska fungera. De hänvisar dig också till deras cookiemeddelande och integritetspolicy.
I vissa X-inbäddningar, om din webbläsare har inaktiverat JavaScript, visas ett meddelande som ber dig att aktivera det eller använda en kompatibel webbläsare för att fortsätta. Länkar till hjälpcentret och användarvillkor, integritetspolicy, cookiepolicy, impressum och annonsdata listas , alla med X:s företagssignatur. Dessa är standardmeddelanden för plattformen och påverkar inte WinBoats funktionalitet.
Slutligen innehåller vissa artiklar layouter med tomma tabeller och platsmarkörer som inte lägger till något innehåll. Dessa visuella element är en del av den ursprungliga designen och innehåller inte relevant teknisk information om WinBoat.
Praktiska tips för ett prov med ett bra ansikte
Även om projektet automatiserar mycket är det fortfarande bra att förbereda sig. Kontrollera att din användare finns i Docker-gruppen och att du kan köra containrar utan sudo. Bekräfta att FreeRDP är version 3.xx med ljud, eftersom tidigare versioner kan ha ljudproblem. Och kontrollera tillgängligheten för /var för att undvika att få slut på utrymme mitt i driftsättningen.
Om du planerar att använda specifika USB-tillbehör i Windows, ha deras identifierare nära till hands och dokumentera alla ändringar du gör i docker-compose.yml. En kort checklista innan du laddar upp och laddar ner containrar kan spara tid, särskilt om du byter dator eller delar projektet med andra personer.
WinBoat erbjuder en pragmatisk lösning för de som behöver en Windows-liknande miljö utan att överge Linux: välorganiserad virtualisering, Windows integrerat med FreeRDP , tydliga krav och en färdplan fokuserad på att förbättra grafikacceleration, Podman-stöd och Flatpak-paketering. Med en betaversion som redan klarar seriöst arbete visar det sig vara ett övertygande alternativ när Wine eller Proton inte fungerar, särskilt för viktiga design-, kontors- eller företagsarbetsflödesapplikationer som fortfarande kämpar på Linux.