Windows Subsystem for Linux is making inroads with developers
arstechnica.com
arstechnica.com
But I'm not sure what this will do to Open Source in the long run. I don't think WSL users will care a lot about the ideals of the Free Software people and I'm not sure whether the Free Software people will love to maintain code for people who don't give a fuck.
Or maybe it will expose more people to the idea and will provide a new entry point for new talents.
At least Canonical is getting paid.
The nice thing about FOSS is there's a property-based guarantee over software development progress. The moment WSL goes embrace-extend-extinguish (and that's far from guaranteed to happen, given Microsoft's benign nature of late), Linux will just continue to do its own thing. It won't just stop existing. The code isn't going anywhere, and you can always host your own mirrors.
And there's always BSD.
The only reason their are being benign to open source is because it allows them to hedge their bets and leverage their good hardware support to gain share among people who wouldn't consider Windows a viable option.
WSL's primary purpose is to prevent market loss to Linux and macOS. And yes, BSD (but we all know how likely that is to happen).
However the open source AOSP has been amazing - lots of innovation from individuals and other companies has occurred because they could start a project using AOSP.
Also because Android is based on Linux, drivers have been released and improvements have happened to the kernel. Compare that to what you get from Apple with Mach (or iOS).
It feels to me that you are complaining because someone gave you a free beer, but only half filled the glass.
People who care about the ideals of the free software people have always been a genuine minority group. You might be using the terms interchangeably, but it's why the term "Open Source" exists.
It'd be a lot different if, for instance, Oracle was able to actually kill MySQL.
WSL1 wasn't restricted to just Ubuntu. All the major distros were available. Canonical's cooperation is useful from a trademarks standpoint, but I don't see Canonical having any leverage in this arrangement.
I don't know about Open Source as a concept/movement, however it will destroy Linux as we know it.
More and more developers are already flocking to it (and VSC) for writing Linux software. All it needs is a killer library (Windows GUI bindings?) and/or extensions that could push developers into writing software that expects to be run under WSL instead of the real thing. It may seem stretched, but WSL is to Linux what WINE is to Windows; so how many of us could run Windows software under WINE without any Windows installed? WINE didn't damage Windows because there are simply too many native Windows installs compared to Linux users with WINE, but what about the other way around? Linux wouldn't stand a chance. Microsoft is slowly gaining full control of Linux, one developer at a time, and nobody seems to care.
Can’t imagine the licensing for server editions of Windows will take off when Linux for servers is still FOSS.
I think it’s great that more people are getting access to FOSS on Windows. I remember when Linux didn’t have a package manager and you had to install dependencies manually.
Enabling Windows users a limited Linux experience should help encourage more Linux switchers.
I really wished this was the case, however I hardly imagine Microsoft execs discussing at meetings the introduction of WSL to encourage people to switch to Linux.
WSL2 is faster, better integrated and closer to what a Linux environment is supposed to be.
All I want from Linux is the command line. Instead of having to fire up a VM or SSH into a remote box and transfer files I have access to them on my PC.
Based on my experience it makes Linux more accessible to me. It doesn't really change the way I use Linux other than to give me more options.
I can't imagine it being hurtful to Linux overall. Because of things like the Raspberry Pi and Android people are already in some ways getting familiar with Linux. Because of MacOS some people are getting familiar with Unix in general. If anything I think people will be like me in that WSL will simply make Linux more accessible.
And with WSL's import feature I have trivially replicated this WSL environment to all of my machines.
Yes, it's won me over.
Oh huh, are you running an X server for this? And if so, does GPU acceleration work for Linux apps?
Many people are using it now but I don't have time to mess with beta software. I am exercising my patience.
0: https://docs.microsoft.com/en-us/windows/wsl/wsl2-ux-changes...
Edit: to be specific, I can access local servers on wsl2 from windows, I don't even use an xserver.
I think "Windows Linux Subsystem" would've been more accurate, but it's also more confusing.
On the other hand, they named their 32-bit Windows emulator "WOW64 (Windows-on-Windows 64-bit).
The preposition "for" has a lot of different meanings, and the one they've used, though extremely unexpected here, is legal.
They mean it in the sense that it enables something, like in "tips for success" or "a budget for entertainment". This is a Windows subsystem, and what it's for is making Linux stuff available as a feature.
In the context of computers, "for" commonly means targeting toward or being compatible with something, like "apps for iPhone". Which is not how they mean it. And which is why they should have chosen something different.
Traditionally they had the name of the non-native system first. So Win32 subsystem for running Windows 32bit applications, OS/2 subsystem for running OS/2 applications, POSIX subsystem for running POSIX applications etc.
So had they been following this, it should have been called the Linux subsystem.
[1]: https://docs.microsoft.com/en-us/previous-versions/windows/i...
The old installer had "Windows Executive" and "Human Interface Parser" as installation items that always had my head scratching
In a parallel timeline Linux would never picked up steam if those systems had been serious POSIX implementations.
The main part of the appeal of WSL is that it lets me use the Linux dev ecosystem, which (for web work) is larger/nicer than the Windows ecosystem.
I think a lot of this comes from the revenue model - For example, nginx is free, where IIS cost money.
As the world of cloud computing took off, it was easier to have devs learn Linux than it would be to pay for licenses for each server.
Eventually this meant that more companies were expanding/developing Linux solutions, developers were more familiar with those tools, and you have a self-reinforcing circle.
In what concerns desktop and embedded, it hasn't won.
Ironically IoT is now getting full of BSD/MIT licensed POSIX clones, exactly for not having to deal with anything GPL related.
Thankfully that has started to change, and there are at least a few solid laptops available that ship with some flavor of Linux installed. I hope those options continue to make their way into the ranks of employer issued gear too.
My only gripe was how slow containers in WSL were on Windows, but with WSL2 that issue is going away.
Hence why stuff like homebrew came to be, due to people developing OS X, but deploying into GNU/Linux.
Many having the same reasoning as Miguel de Icaza:
"What Killed the Linux Desktop"
https://tirania.org/blog/archive/2012/Aug-29.html
To the point that it just feels ironic walking around FOSDEM corridors and seeing the majority carrying macbooks.
On Windows 10 Pro - ssh didn't even work correctly in Git Bash after I ran ssh-keygen. I could only git clone from a cmd prompt.
The only 2 things I kinda miss from Windows are TortoiseGit and SSDT. Luckily, I don't really need them most of the time.
(Before Manjaro I used Windows since version 3 and I only used Linux for server since Red Hat 4 or 5. A couple of years ago I couldn't have imagined using a Linux desktop but now everything I do is just better on Linux.)
Pretty much true for any Linux distro. Also much easier to fix when something goes wrong (which is increasingly rare unless self-inflicted). And Gnome is an unbelievably polished environment (if not very customizable)
Hypothetical scenario - new Dell laptop refuses to connect to your home Wifi. Linux laptop does that flawlessly, same laptop connects when booted to a Linux live USB stick. Where do you look? Standard control panel? Driver-specific panel? Dell's panel? System logs?
Just like I reckon WINE is useless, too. And for pretty much the same reasons.
If you want to use Windows, use Windows.
If you want to use Linux, use Linux.
If you want to use both at the same time, then you might get away with using a pure Linux guest on a Windows host, or a pure Windows guest on a Linux host, using VMWare or VirtualBox. But these hybrids (WINE and WSL) are the worst of both worlds.
Wine, OTOH, is a runtime, not a VM... and I've personally never been able to get it to work (I'm sure this speaks to my lack of knowledge more than the merits of the project). I've had issues with WSL, but it's not really comparable.
I wouldn't do development that's primarily for the other platform with them though.
Or get a Windows VM.
> If you want to use Linux, use Linux.
Then get a Linux VM.
Simple. Easily solved.
But I really cannot understand why anyone would willingly use Windows. I sometimes have to, and it is hellaciously, embarrassingly bad. There's nothing about the experience which says good or enjoyment or quality or anything positive. Things are inconsistent. There are ads on the home version. Simple things are slow. And it's ugly!
If you're stuck at a company which forces you to use Windows, I guess WSL is better than nothing. But why not just move on?
Nowadays I use vim so I gave it another chance a couple of weeks ago. Together with the new Windows Terminal app [1] it's been a great experience. I can run my editor and my code on Linux and then visit the webapp from the browser in the Windows environment.
Note: There's also better support for talking to the Linux filesystem from Windows nowadays, but I've not needed it so I can't comment on how good it is. Scott Hanselman has a good blog post on getting it set up though [2])
[1] https://github.com/Microsoft/Terminal
[2] https://www.hanselman.com/blog/RubyOnRailsOnWindowsIsNotJust...
I can open explorer.exe from inside wsl2 environment to copy files back and forth easily.
The big question mark for me is drivers. Having great drivers to take advantage of hardware across a multitude of different platforms is an issue of market share and market demand. I have an NVMe drive, 16GB of the fastest RAM, workstation-grade networking, and Dolby speakers on my laptop. I can't take advantage of it, because I accidentally erased Windows 10 Professional for Workstations when dual booting Ubuntu, that had all the specialized drivers. I'm fine with Ubuntu, but I kind of wish I had Windows + WSL instead.
(For Windows itself, you can just download the ISO from Microsoft's website and use the product key that is on the laptop during installation.)
When it comes to drivers, it's one of the reasons why I dislike Windows. I try Windows every now and then, just to see what is happening in that ecosystem. The last time I installed Windows on my NUC, it automatically got the drivers for all the hardware (nice), but with that all kinds of vendor applications that I don't want, some Realtek nonsense and some Intel GPU application.
I was quite surprised by that. On Linux or macOS, I driver is just something that you load into the kernel, but it would never come with applications that I most likely I don't need. The system felt... polluted?
The license is stored on Microsoft's server's.
Meanwhile Windows starts looking for drivers for a few minutes, and may or may not find them.
Also Solaris, SmartOS, IBM and Unisys mainframes also run Linux on their hypervisor based environments and not much are complaining about them.
And then, how do I use bindfs with WSL ? Where are the WSL files and the docker volumes inside it ?
The app and having a window open of that app are decoupled, simple as that. Open up, say, Safari, press Cmd+W to close the window, and Safari will still be open. Press Cmd+N and you'll open a new window. Press Cmd+Q to quit it, regardless of how many windows (including zero) are open.
This is about the only gripe I've had with linux desktop in recent years. For everything else, its been at par or better than windows/osx for me. I do mostly programming, music synthesis/recording and photogrammetry/image processing on a Dell XPS-15, and its been great.
- use alsamixer to find out which mic is which and if they are muted (it's a CLI app)
- install blueman to have it easier to switch the headset to hsp/hfp (a2dp sink is one way and it means it's not designed to send sound from the headphones, I made that mistake)
- since I have a Dell I had to fight that pesky mute led status in alsa (haven't figured out yet what it means, I ended up disabling the internal mic in the bios to be sure it was the headphone doing the recording) ; there are bug reports about the keyboard key not doing what it's supposed to do ; the internal mic only works when I set it to On in the alsamixer menu ; you can check if the laptop led is on or off (like the webcam) ;
- use pavucontrol to try to figure out what device is doing what (it's like the sound control center but it displays more information)
- make sure to switch off every device that is not your headset/headphone (hdmi, internal, anything) ; it's funny how you can configure an audio stream (say your laptop's internal speakers) to be the recording stream: it'll just record itself
I also installed audacity and recorded myself muttering "blah blah" way too many times in order to try to identify the microphones detected by the system. I still don't understand why I have so many redundant output devices with the same name and an incremental version (:1, :2, :3) but hey.. it works (I just want to be able to video call two colleagues tomorrow, I really don't know how to control for quality if you have studio quality sound recording needs :/).
In WSL1 files are stored in a protected folder of %LocalAppData%. It's protected because using Windows and regular NTFS-expecting tools has a bad tendency to mess up Linux ACL metadatda. More recent versions of WSL1 added a Plan9-based file server that shows up as a pseudo-device in Windows under a UNC path \\wsl$
In WSL2 the files are stored in a VHD-like file (VM hard drive) and the Plan9-based file server is always available in every version of WSL2 (under \\wsl$ still) and additionally used in both directions (/mnt/c/ is no longer a direct NTFS mount on the Linux side, but now uses the file server, because WSL2 is more VM-like in every facet).
/usr/bin/bindfs --force-user=johnchristopher --force-group=johnchristopher --create-for-user=www-data --create-for-group=www-data /home/johnchristopher/.docker-data/volumes/web/_data /home/johnchristopher/Dev/Web
So that I can write code without messing up permissions (and map xdebug path to ~/Dev/Web) ?But it could be done in WSL2 (keeping permissions intact in the volume while being able to edit them outside) ?
The best part of any Linux distro is the terminal, I've ditched my Linux laptop for a Windows laptop with WSL and haven't looked back.
I've been pretty tired of linux desktop environments being flaky, lack of gaming, Nvidia driver issues, etc. Windows + WSL has been a godsend
If you’re getting audited by Microsoft this is probably not OK, but I have never had any problems with it for personal use.
There are also numerous ways to get upgrades from 7 to 10, your employer might offer etc. etc. Microsoft is being pretty liberal with windows 10 licenses these days, even pro.
$100 seems pricey for a text editor, my friend. Is it IntelliJ or PyCharm? Why not VSCode + Sourcegraph?
You do make a good point re: Windows 10 Pro. I hadn't thought of it from that perspective.
In my case, I use X410+WSL and have a xfce panel always active on my desktop, and that is sufficient to keep WSL alive and so have a working cron.
I get around this by having an X app always running, and its behaviour is sufficient to prevent WSL from sleeping.
Some folks I know just leave the shell open, but having an xfce panel is desirable to me.
#> systemctl
System has not been booted with systemd as init system (PID 1). Can't operate.(also does systemd handle this stuff now?)
So sometimes I give up on my favorite command line tools and switch to "CMD".
Also, if there are are no hard requirements for Windows such as most webdev why would anyone use WSL instead of the real thing? Especially if the deployment platform is Linux, makes no sense for me.
Since then I've switched to linux (less gaming) which has its own flaws and pains, but I love it.
Regarding WSL, why bother mixing two philosophies together ? Switch to linux and you've got it all, unaltered, and open source.
Now that I manage teams, I don't care about what OS people use. The more productive they are the better. The only dev (over 15 people) that used windows told me after a few months he regretted keeping windows on his machine !
I believe you, but I don't know what you're doing that makes it so unstable. Or maybe I'm just a bit more OCD than others. I am extremely selective about kernel-mode components and what I install on my machine.
Also chocolatey -> brew etc
Great stuff!
Doing it that way, no files are ever mounted 'from windows', it's all contained within wsl.