[HN Gopher] WSL Manager
___________________________________________________________________
WSL Manager
Author : gballan
Score : 54 points
Date : 2026-03-08 18:08 UTC (4 hours ago)
(HTM) web link (github.com)
(TXT) w3m dump (github.com)
| wongarsu wrote:
| The ability to run docker containers as wsl instances looks
| nifty. A bit more overhead since they now run as a VM instead of
| a container, but you get the ability to start a shell with
| Windows terminal or access files with Explorer (and thus every
| program running in Windows)
| osigurdson wrote:
| Perhaps I misunderstand your comment but when you run docker /
| podman in Windows, you are using WSL / HyperV.
| smallerize wrote:
| The linked project includes a very different way to launch
| docker containers.
| wongarsu wrote:
| running docker on windows runs docker in wsl (which is a
| HyperV guest). The project offers running docker images _as
| wsl instance_ (which is a HyperV guest), no docker involved
| llm_nerd wrote:
| You said - "A bit more overhead since they now run as a VM
| instead of a container"
|
| To which osigurdson seemed to be noting that WSL2 itself is
| a VM (meaning if you launch 1 or 100 WSL2 instances, a
| single Linux VM will be spun up), and when you run docker,
| it runs using exactly that same VM (optionally, though it's
| the default now to just use WSL2's backend).
|
| Can you clarify what you meant by "A bit more overhead"?
| Running a container via docker or directly via WSL2 will
| use the same underlying VM, and there will only be that one
| VM regardless of the number of WSL2 or docker instances.
| wongarsu wrote:
| For a single container the difference depends on your
| exact setup. I typically run docker in the same WSL
| instance as my other wsl stuff, so starting a single
| docker container adds 0 additional VMs, while starting
| the container as a wsl instance will add one VM. If you
| use the "docker for windows" package you may be adding a
| VM just for running docker, depending on your setup.
|
| Once you start the second container the difference
| becomes more obvious: running $N containers in docker
| uses one VM with one linux kernel, no matter how many
| containers you add. Running $N containers as separate WSL
| instances runs $N VMs and $N linux kernels. That's the
| "bit more overhead" I was referring to
| llm_nerd wrote:
| "Running $N containers as separate WSL instances runs $N
| VMs and $N linux kernels."
|
| But it doesn't, and this is what I'm disagreeing with.
|
| If you instantiate WSL2, it launches a Linux VM. A single
| Linux VM. If you then run Docker with WSL2 integration
| (the default and hugely recommended), it uses that Linux
| VM as its VM as well, so you're still at 1 VM.
|
| If you run 100 WSL2 instances, they will all use that
| single Linux VM, each doing namespacing for isolation
| with their own filesystems. If you run 100 Docker
| instances, they will all use that single Linux VM.
|
| If you run 100 WSL instances, _and_ 100 Docker instances
| (assuming, again, WSL2 integration which is the default),
| they will _all_ be using that single Linux VM.
| Chris2048 wrote:
| How does this compare to running the containers in one of the
| WSL VMs? Can't you do all the same things via the host VM?
| lukax wrote:
| Looks nice but still a bit sad that Flutter is used instead of
| something native given that they don't need the app to be cross-
| platform.
|
| Well, even Microsoft uses React Native for a lot of Windows-only
| apps.
| Defenestresque wrote:
| I'm glad I'm not alone in missing native apps. I get that it's
| easier to code a note-taking Electron app, but every time I
| look at a Linux terminal app written in JavaScript it makes me
| want to cry.
|
| I know I'm beating a dead HN horse here, but how the hell is it
| possible that megabytes of embedded JavaScript in websites, to
| the point that LinkedIn uses about half the RAM I had for my
| first computer loading 32 MB of JavaScript files. Jjira loads
| 50 (!) MB of javascript, enough to include the uncompressed
| version of War and Peace 16 times. That's the size of a full
| installation of the entire Windows 95 operating system.
| GitLab's static landing page is 13MB of JavaScript, larger than
| that of Twitter.
|
| What the hell are we doing here? Why can I spin up a 100 MHz,
| 8MB RAM VM with a hard drive size that's 1/16th of your entry
| level MacBook's RAM and have apps open immediately? I
| understand some backsliding as things get more high level, but
| a website loading 50 megabytes of JavaScript, to me, is like a
| bright neon sign that screams "something has gone wrong
| terribly here". Obviously programs, websites and operating
| systems have become incredibly more complex but your $200
| A-series Samsung phone has about 8 cores at 2.2 GHz each. A
| $200 processor when Windows 95 was released had one core at
| 0.1GHz. making the processing power about 164x faster. Keep in
| mind this $200 includes a fully functioning computer in the
| palm of your hand. The actual CPU part for a midrange phone
| like the Samsung A15 5G is the Dimension 6100+, which costs all
| of $25 bucks.
|
| There must be some sort of balance between ease of prototyping,
| creating and deploying an application without bundling it with
| Electron or building websites that use tens of megabytes of a
| scripting language for seemingly nothing. Especially when we
| can see that a fast, usable website (see this very website or
| the blogs of many of the people who post here, compared to
| Reddit for your average medium or substack blog).
|
| How the hell do we fix this? The customers clearly don't want
| this bloat, companies clearly shouldn't want it either (see
| research that indicates users exposed to a 200 millisecond load
| delay on Google, performed 0.2-0.6% fewer searches, and effect
| that remained even when the artificial delay was removed. This
| was replicated by Microsoft, Amazon and others. It's frequently
| brought up that Amazon has said that every 100 milliseconds of
| page load time cost them 1% in sales, though it's hard to find
| definitive attribution to this), programmers should hopefully
| not want to create crappy websites just like mechanics should
| hopefully not want to install brake pads that squeal every time
| the user breaks.
|
| This got way longer than the two sentences I expected the post
| to be, so my apologies.
|
| [1] https://tonsky.me/blog/js-bloat/ [2] Velocity and the
| Bottom Line, Shurman and Brutlag
| ai-psychopath wrote:
| > The customers clearly don't want this bloat,
|
| citation needed. the customers clearly want it, for example
| most programmers chose VS Code over a native app
| behnamoh wrote:
| I wish it was a TUI. Windows is a plague I try to stay away from
| as much as possible, and it already gives me headaches to setup
| WSL and manage them over ssh. Some things you just can't do w/o
| remote desktop... And sometimes WSL crashes and there's literally
| no way to recover except to restart the whole machine.
|
| The only reason I use Windows is because Nvidia drivers are
| easier to setup. But once I'm inside my Fedora WSL, that feels
| like home, not the Windows host.
| Juminuvi wrote:
| I think the UI is pretty slick but agree having a TUI option as
| well would be awesome. Everything in wsl management (import,
| export, register, compact, etc) can be done with shell commands
| I believe so a tiny performant TUI might be a straight forward
| thing for op to add in the future though.
| eddythompson80 wrote:
| Are you sshing into the wsl instances or he windows host?
| Pretty much all my interactions with wsl is using the wsl cli.
| Other than the very initial step of enabling wsl, mostly
| because I never memorized the powershell enable command.
| behnamoh wrote:
| I ssh directly into WSL but for setting it up (auto-start,
| recovery, etc.) I ssh into PowerShell (which I hate). A TUI
| would go a long way there because no one wants to learn
| PowerShell.
| eddythompson80 wrote:
| You can use wsl.exe from powershell to manage wsl.
| mmastrac wrote:
| FWIW I started reverse engineering the WSL2 API -- it's
| not terribly complicated to do most tasks without the CLI
| (which is clunky IMO, as it had a number of times where
| it changed in backwards/forwards incompatible ways)
|
| https://crates.io/crates/wsl-api
| shmerl wrote:
| Is there anything that can run a normal Linux VM guest with good
| quality graphics acceleration on Windows host (i.e. both full
| OpenGL and Vulkan support)? Not the gimped half VM over HiperV.
|
| VirtualBox has really broken graphics support, you can only run
| software rendering Linux DEs that way.
| eddythompson80 wrote:
| You can pass a GPU to the vm if you have more than one. GPU
| vendors have been gating GPU virtualization for data centers
| only. Or you can run X on windows like wslg does it.
| shmerl wrote:
| I need something similar to what qemu/kvm can do with virgl
| and venus, i.e. pass through graphics call to the same GPU
| that's used by the host, not pass whole GPU with SR-IOV or
| PCIe passthrough. So far I haven't found anything like that
| which actually works.
|
| I'm not using X, I need a normal KDE Wayland session.
| okanat wrote:
| WSL2 already allows you to use your own GPU driver as a
| paravirtualized GPU over open source Mesa d3d12 driver. You get
| quite good OpenGL performance with that.
|
| There are projects like this
| https://github.com/jamesstringer90/Easy-GPU-PV that you can use
| to setup a Hyper-V machine to use the same paravirtualization.
| shmerl wrote:
| _> Tere are projects like this
| https://github.com/jamesstringer90/Easy-GPU-PV that you can
| use to setup a Hyper-V machine to use the same
| paravirtualization._
|
| _> Automatically Installs Windows to the VM_
|
| This seems to be focused on Windows guests. I need this for
| Linux guests.
|
| May be when Hyper-V will make this usable out of the box for
| any guests, I'll take a look. And if it's something
| shareable, may be VirtualBox should pick that up.
| skhameneh wrote:
| This is great and all... Except I've long given up on WSL. I
| really tried to make WSL work for many things, only to find the
| entire experience (reliability, performance, and beyond) was
| simply better in every way without Windows.
|
| No matter what you do, there will always be some weird platform
| detection or line termination that pops up somewhere. And if it
| isn't that, it's degraded performance or kernel-level
| incompatibility.
| righthand wrote:
| 100% agree. If anything WSL is a Linux onboarding experience at
| best.
| omnibrain wrote:
| Yes, I since embraced pwsh for terminal stuff on Windows. For
| everything else I switched back to proper VMs or remote hosts.
| TZubiri wrote:
| I've transitioned from linux back to windows for workstation
| usage, and it's one of the main features that allowed me to do
| so, I haven't had major problems, so I would be interested to
| know what issues you faced. Of course direct linux is better
| than WSL, but I found the product to be of very high quality
| and well integrated with windows.
| nilkn wrote:
| Same here. The initial version of WSL back in the day could
| certainly be rough, but modern WSL2 seems totally fine to me.
| It is the key ingredient that allows me to have one
| workstation that can do "everything".
| Rapzid wrote:
| I guess your YMMV. I switched from developing in Linux VMs to
| WSL about 3 years ago and have used it daily for development.
|
| I don't do much OS level engineering these days though and
| would probably fire up some VMs for that.
| eddythompson80 wrote:
| > (reliability, performance, and beyond)
|
| Considering it's just a headless linux vm with some integration
| with the host, I don't understand what reliability, performance
| or beyond it could possibly introduce beyond what any VM
| solution provides?
|
| There are few gotchas with WSL. I hate how by default it
| includes your Windows path in your default linux path out of
| the box. It's easy to turn off and my init scripts for any VM
| always do that anyway, but it's the main thing I have seen
| people who are new to WSL get tripped by. It's useful to be
| able to run windows programs from within WSL. Like all the cli
| tools that pop up a browser to make you login, but that's about
| where its usefulness ends for me.
|
| > No matter what you do, there will always be some weird
| platform detection
|
| In my experience, unless you're running a very mainstream
| distro (read Ubuntu) there will always be a weird "platform
| detection" issue. I run openSUSE on most of my devices, and
| used to scripts not working because "uhhh, this is not Ubuntu
| or Debian or Fedora". The only time I run into "platform
| detection" issues are scripts that assume `uname -r` of a very
| narrow format.
|
| > or line termination that pops up somewhere.
|
| That goes back to my original comment about running Windows
| programs from linux, or moving files to/from linux. I never run
| into this issue because, just like on a linux desktop, I only
| interact with linux through the commandline. Even on a full
| linux desktop, I have this mental separation between GUI apps
| and terminal apps.
|
| > it's degraded performance or kernel-level incompatibility.
|
| The only "kernel-level incompatibility" I run into is that WSL
| kernel doesn't have /dev/kvm. Granted I don't do a lot of
| kernel module specific development, so I don't know how
| something like a USB device or a PCIe interface can be passed
| to the WSL instance. But again, I'm thinking of it, and
| treating it like a user-mode development VM, not a full host.
| withinboredom wrote:
| USB forwarding to WSL is built in to the WSL kernel, but you
| do need to install a thing on the windows side. After that,
| there are a number of GUIs to manage your usb devices or you
| can use the shell. Switching a usb devices from windows to
| WSL basically unplugs it from windows and plugs it into WSL.
|
| I need it to access ssh keys from my yubikey. It's painless
| if you just set it up to automatically forward the device on
| startup.
| tonymet wrote:
| maybe it was WSL1 ? WSL2 IO is excellent as long as you stay
| within the FS. And with VS Code WSL support , all IO & commands
| are remoted into WSL so there are no Windows/Linux
| compatibility issues.
| llm_nerd wrote:
| Neat project. Merging the layers of a docker image and setting
| that as a WSL filesystem is a nice convenience.
|
| I recently realized that 100% of what I use Windows for was as a
| WSL2 foundation: It had been reduced to being an extremely
| overbearing and heavyweight host machine for a Linux VM. Nothing
| in my life was Windows-only anymore, and it was basically just
| inertia that I even still had it installed.
|
| I'd been a "Windows guy" for decades, had decades of Windows
| software dev under my belt, even got my MCSE, MCDBA, along with
| other Microsoft certs, and even wrote for MSDN Magazine. No
| longer did it have any leverage on my profession at all, which
| was shocking to me.
|
| The next day I purged Windows from my two main working machines,
| so now I'm pure Linux and macOS. A few weeks later and I can say
| it has been a marvelous transition, and cuts out the no longer
| relevant middleman.
| tonymet wrote:
| this is great and I have a feature request: A "refresh VM"
| feature that exports your home dir + packages into a new VM
| instance.
|
| I've tried Optimize-VHD but renewing the VM this way frees up
| disk and speeds up the VM as well. None of the WSL settings for
| sparse disk / disk shrinking seem to work well.
|
| Here's what I usually do $ tar -czf
| /mnt/c/Temp/home-backup.tgz $HOME $ apt list --installed >
| /mnt/c/Temp/packages.txt
|
| delete the VM, create a new one, reverse the process.
| $ tar -cxf /mnt/c/Temp/home-backup.tgz -C $HOME $ apt
| update $ cat /mnt/c/Temp/packages.txt | xargs apt install
___________________________________________________________________
(page generated 2026-03-08 23:00 UTC)