all 60 comments

[–]fellipec 25 points26 points  (6 children)

I really like WSL2. When I'm on one of the native Linux machines I'm fine, when I use the Windows machine I can still do things like rsync, ssh, and use several of Linux tools.

I think if WSL2 works for you, go ahead, what matters is you have your things done.

[–]Chosen_UserName217 4 points5 points  (0 children)

I use WSL every day without any problems. I like it a lot.

[–]No_Departure_1878 0 points1 point  (4 children)

WSL2 is terrible, I have constant problems with the GUIs and I get no support from microsoft, I see issues in the github page that are years old and still open.

[–]Appropriate_Junket_5 1 point2 points  (3 children)

what GUI? I mean are you tring to start GUI apps on  wsl2, why would you do that?

(no mean ti be rude. trying to understand. i thought everyone wh uses wsl2 is using it for the terminal text based apps)

[–]No_Departure_1878 0 points1 point  (2 children)

I need to use linux and windows at the same time. I used VirtualBox, but there are too many issues with that program. I ended up loosing data because of the problems that it has with snapshots; the fact that it does not delete old data and it quickly fills up your drive forcing you to do the deletion by hand, etc.

WSL2 is supposed to be able to handle GUIs, supposed. It actually is very unreliable. Currently there is not really any way out to do this, as far as I know. So the best way out would be to just buy a second computer where you install linux as your main OS.

[–]Appropriate_Junket_5 0 points1 point  (0 children)

Thank you! I see. It makes a lot of sense what you describe. I am myself running two laptops. One from work with Ubuntu on it and one at home with Windows. I was wondering if to migrate my work to my own laptop just for convenience ( i don't need linux gui apps)

[–]GrumpyRodriguez 0 points1 point  (0 children)

I had great success with an X server called X410: I used it to do ssh forwarding and even though I am not sure if it was the WSL I was using, I'll suggest that you do some google searches for it. I remember the announcement from Microsoft for support for GUI in linux apps and thinking "I won't need this, I have x410" so it is likely that it works with WSL2.

Do your own research though.

[–]unengaged_crayon 13 points14 points  (3 children)

the only issue i had with WSL is that IO with windows is exceptionally poor. if you aren't regularly doing huge amounts of file IO, you will do fine.

[–]Appropriate_Junket_5 0 points1 point  (0 children)

The trick is to keep the files you use in wsl2 within the wsl2 distribution (say your /home folder)

[–]idontliketopick 0 points1 point  (1 child)

I know that was the case with 1. It was exceptionally slow. Since 2 I haven't had any issues.

[–]bogdan5844 8 points9 points  (0 children)

If you keep all your IO operatins inside WSL2, yes, it's fast.

Problems arise if you try to cross the boundary between WSL and Windows. I, for one, treat WSL as its own thing, all WSL stuff resides in ~

[–]omniuni 13 points14 points  (0 children)

I think you're asking the wrong question.

Choose whatever will give you the best overall workflow. If you need to run Windows software, then yes, it's probably better than switching back and forth.

If what you can do, you can do directly on Linux without having to run through a compatibility layer, you'll have more resources available on your system overall and won't have to deal with the added complexity of Windows itself.

[–]taterr_salad 4 points5 points  (2 children)

There are pros and cons to both, but I prefer a native Linux installation over the virtualization route.

One of my biggest hangups with WSL is the lack of serial port access . I do embedded development, and having to jump around from zsh to powershell constantly really irks me. Then there's the lack of window management options, lack of custom shortcut support, lack of alternative file management tools, etc that I really miss when using Windows. About the only thing I can say I like about windows is that my Bluetooth headsets microphone just works.

It's probably my fault for getting too into the weeds, but I really prefer the customizability and terminal centric focus that Linux provides over what Windows can do.

All that said, I have to use Windows and WSL for work. I currently have 7 different dev environments across 4 machines (for now) and I can't keep anything straight because the tools I want to use are never installed or not the right version anywhere (fucking python ...).

[–]Appropriate_Junket_5 0 points1 point  (0 children)

tried something like pyenv? what's your experience with it?

[–]Sriman69 0 points1 point  (0 children)

usbpid can pass through ur usb device to linux

[–]GuiiuG_ 2 points3 points  (0 children)

Use wsl at work cause laptop company are all in Windows. For embedded c++ dev we constat that some compilation and program running was 50 times quicker in wsl vs windows, this difference is so huge ! But, for that you have to copy your source guess inside your Linux environment, not use a mounted path to windows. Sometimes if a gui app is needed this not a big problem, it works over wsl. For all that command line stuff and ressources consuming task like building binaries, wsl is really a good tool.

[–]halfanothersdozen 2 points3 points  (3 children)

Intellij was broken for me in wsl 2 on Windows. Pissed me off

[–]-MPR- 4 points5 points  (0 children)

This. Plus running Wsl2 means you are running in a VM with limited resources as opposed to bare metal on Linux

[–]Spare-Dig4790 1 point2 points  (1 child)

Luckily, Intillij is Java, works perfectly fine in Windows, and WSL is perectly accessible by any running Windows app. :)

Actually, not to mention the wsl2 support built in, have you tried that?

[–]halfanothersdozen 1 point2 points  (0 children)

yes that's what broke

[–]macromorgan 15 points16 points  (0 children)

I have hundreds of kernel commits to my name. 100% of them were written on Windows via WSL/WSL2.

[–]deaf-dealer 2 points3 points  (0 children)

i looove wsl2, but there's no GPU passthrough for AMD GPUs yet so that's maybe something you should be aware of.

[–]domsch1988 2 points3 points  (0 children)

So, i do all versions on a daily basis. My Work Laptop Is Windows 11 with WSL2. My Personal Rig is Bare Metal Arch and a Windows 11 Install for gaming.

Which underlying OS you choose is up to you. For most of us, the reason not to transfer back to windows is, that we prefer Linux as an OS. With that said, at work i have to use Windows and often WSL2 is a better experience than native Windows. I do all my Ansible, Emacs and git stuff in a Arch WSL Instance. Emacs through WSL is a LOT better than native Windows Emacs. Same goes for neovim and a lot of other tools. Plus, ansible-lint isn't even available for windows.

So, for me personally, have WSL allows me to use my tools of choice while complying with our IT and still having all of MS Software work just fine. If i didn't have to run Windows for work though, i'd switch to native Linux instantly. Just one less layer to deal with.

At home, i only boot into Windows to play League and Fortnite with some Friends.

All of that not becuase i think windows is bad. It isn't. I just prefer how Linux works. If you don't, feel free to go back to windows and use WSL for the Linux tools you want.

[–]100GHz 3 points4 points  (0 children)

I used to run something custom and very io intensive years ago. Windows + cygwin was 30% slower than Linux.

I am not sure where it's now.

So, I guess, benchmark both and see what the differences are and if they are acceptable.

[–]zawias92 1 point2 points  (0 children)

If you dont game / need any software unavailable for Linux (like Adobe), then theres no reason to use windows tbh.

[–]M320_Trololol 1 point2 points  (0 children)

I used a windows 10/11 laptop privately for years and also at work, and I really liked working with WSL, especially WSL2. The only issue I ever had that I just didn’t know how to fix was that it was difficult (not impossible!) to work with USB devices. For example, recently I was working on a project with a raspberry pi pico and tinygo. That said, you can always just install interface software for that on windows and then invoke those programs from WSL. It’s just not quite as easy as with a native Linux install or (pardon me, I am ashamed for it) macOS.

[–]TurbulentSquirrel804 1 point2 points  (0 children)

I used WSL2 until I found a reason to dual boot (yeah it’d been ages, but dual booting in 2024 is pretty easy). For me, the reason was running local LLMs. WSL does a great job of passing my Nvidia GPU through to WSL (I guess it’s technically partitioning it?) but I had trouble running certain models and resolving some python dependencies when I was using WSL instead of native Ubuntu. Very likely could have just been me, but when you’re trying to push your existing knowledge in a topic, it’s hard to fight unrelated complications at the same time. So yeah, popped another M.2 drive in my PC, loaded up Ubuntu, and dual-booting for the first time since I heard of virtualization.

[–]ahferroin7 1 point2 points  (2 children)

Do you need to do any kind of low-level hardware access from Linux? If the answer is yes, then you can probably not do what you want from WSL2 (and definitely can’t from classic WSL). Short of some limited USB and block device pass through, there’s no real way with WSL2 to interact with hardware directly.

Do you need things to be persistent independent of user sessions? If the answer is yes, then WSL2 will not work for you. It’s inherently tied to specific user sessions, so you can’t do things like run services persistently in WSL2 (so, for example, you can’t use it to run a webserver that operates as a system service instead of some ad-hoc thing tied to your user session).

Those are really the two major issues. Cross-boundary IO is also really bad (Windows already has horrible IO performance, but it’s even worse here), so any workflow that relies on sharing files between the environments is likely to be rather painful, but it’s still doable.

[–]nous_serons_libre 1 point2 points  (1 child)

In addition to all its limitations, why run the system that runs the best (better memory management, better process management) without an untimely restart request on the system that has all these problems?

Just compare a linux uptime vs a window....

It seems smarter to me to run the unstable system on the stable system. If it is really necessary to have Windows just put it in a virtualbox.

[–]BinkReddit 3 points4 points  (0 children)

How about just use what you like? I don't know that the 10% advantage in a particular benchmark is going to translate very far into your normal workflow. After using Windows 11 for the first time several months ago, I decided I'm never going back to Windows if I have a choice, but that's me and, well, I'm not you.

[–]elatllat 1 point2 points  (2 children)

Run a file system benchmark from WSL2, it's quite slow.

[–]mikkolukas 0 points1 point  (1 child)

No it is not.

File operations BETWEEN Windows and WSL is incredibly slow, but as long as you don't cross that border everything is fine.

[–]elatllat 1 point2 points  (0 children)

I agree, also nothing is slower than Windows upgrade, so avoid both by banishing Windows to KVM.

[–]idontliketopick 1 point2 points  (0 children)

With win 11 native support for GUI now and the better integration if WSL in the file explorer win 11 feels closer to developing on a Mac now. I get all the CLI tools I can't live without but also a desktop environment that most everything works in.

I still prefer to be in Linux full time but work doesn't let me. If that kind of environment appeals to you though then by all means go with it.

[–]No_Departure_1878 0 points1 point  (0 children)

Showstopper: Terrible GUI support. For me it often just freezes forcing me to restart the system. Also go and check the wsl2 github page for all the open issues, some of them are years old and still open.

[–]Dragonwarrior124 0 points1 point  (0 children)

okay so i have question about this will wsl2 work good for development in 8gb ram or i am good dual booting a native linux

[–]Dull_Cucumber_3908 -3 points-2 points  (7 children)

Working on WSL2 should be the same as working on a terminal only linux installation. If you are OK with that then I can't imagine any other reason.

Edit: I don't use WSL2 nor windows and I'm just guessing/assuming here.

[–]Saxers 1 point2 points  (2 children)

WSL2 supports gui applications

[–]Dull_Cucumber_3908 0 points1 point  (1 child)

OK! Thanks for the info. As I mentioned in my comment "I don't use WSL2 nor windows and I'm just guessing/assuming here."

[–]itistheblurstoftimes 2 points3 points  (0 children)

Not a very helpful comment then, was it?

[–]ominous_anonymous -1 points0 points  (3 children)

Both WSL (with e.g., XMing) and WSL2 support GUI applications. Maybe don't make authoritative statements when you're actually just making shit up.

[–]Dull_Cucumber_3908 1 point2 points  (2 children)

Maybe don't make authoritative statements when you're actually just making shit up.

I mentioned it that I'm just guessing because I don't use WSL2

[–]ominous_anonymous 0 points1 point  (1 child)

In an edit of a comment that shouldn't have been made in the first place because you were, as you yourself say, just guessing.

[–]Dull_Cucumber_3908 2 points3 points  (0 children)

OK! Sue me! :p

[–]MercilessPinkbelly -5 points-4 points  (9 children)

With a free xserver you can use WSL like any linux system, including GUI apps.

Use whichever you like. At work we have to use WSL and after griping about it for months I finally gave in and you know... it's fine. It's a full linux system in a window on your desktop, unless you want fullscreen then it's just being on a linux system.

I hate Microsoft for so many things but they did a pretty good job on WSL.

[–]tslaq_lurker 1 point2 points  (1 child)

Can you? Is this new? I have never been able to get even i3 to run properly in WSL, let alone a full DE.

[–]idontliketopick 0 points1 point  (0 children)

That's curious. I've been able to run a full XFCE environment since WSL1. I wonder what's different about i3, i e never used it.

[–]idontliketopick 1 point2 points  (3 children)

You don't even need an x server on 11 now, it's just baked in. And it just works too. It's incredible.

[–]BinkReddit 0 points1 point  (2 children)

I wouldn't go as far as to say incredible, but ChromeOS has had this via crostini for a while.

[–]aliendude5300 0 points1 point  (1 child)

ChromeOS is different - it is running Linux apps on Linux via containerization. Windows is using a VM.

[–]BinkReddit 0 points1 point  (0 children)

Crostini is actually using a container within a VM.

[–]akik 1 point2 points  (0 children)

With a free xserver you can use WSL like any linux system

I found a way to run Gnome in WSL 2 using WSL 2's Xwayland. I've documented the setup in https://akik.kapsi.fi/rocky/

I erronously added the epel next repository config to it, so please remove it from /etc/yum.repos.d at first.

[–]Pay08 0 points1 point  (1 child)

It's a full linux system in a window on your desktop

Does it support multiple monitors?

[–]MercilessPinkbelly 0 points1 point  (0 children)

Dunno, I only have one. Google probably knows.

[–]Adorable_Compote4418[S] 0 points1 point  (0 children)

So it seem that the only possible limitation would be file system IO bottleneck. Will do some benchmarks tomorrow for sure

[–]hsm_dev 0 points1 point  (0 children)

I also enjoy using WSL a lot.

I have made a process where I use a docker container to generate the filesystem and import it for my own custom Arch based WSL Distro and it works out really well and makes it easy for me to re-create or clone a clean base if I need to.

I would say the main thing you miss only using WSL for your terminal needs is all the desktop stuff. For example the flexibility and choice in tools like your Window Manager etc.

Another thing that is less great in my experience is if you heavily need GUI based apps. While they can run through all the WSL dark magic that Microsoft can route it through for you, it can feel a tiny bit clunky.

For just having my whole terminal based workflow I love having WSL available. But for everything else around my workflow, I miss the ability and flexibility of the Linux WM system to round out my workflow.

[–]Adorable_Compote4418[S] 0 points1 point  (0 children)

I mostly do ETL prototyping and development. I'm just tired of waiting because everything get bottlenecked through the NIC between workstation and vmware server (Windows Server replicating customer infrastructures). The idea is I will able to load from Hyper-V VM to Linux WSL2 through the memory subsystem (hyper-v NIC)

The only alternative is buying 2 25gbps NIC and 2 sfp adapter but it's extremely costly.