Windows Subsystem for Linux is out of beta
blogs.msdn.microsoft.com
blogs.msdn.microsoft.com
I own a Surface Pro 3 and a Surface Book. Both have only been improved through firmware updates after release. There was actually some pain points on the SP3 right around release that caused some headaches.
My Surface Book was a spotchy experience for the first 6 months or so. by month 6 it was running acceptably.
It depends which Mac you feel is most comparable to the Surface Laptop, what value is placed on Touchbar (if any), what value is placed on a touchscreen (if any), how much value you place on a slightly faster integrated GPU or a slightly faster CPU (Macbook Pro 13" or Surface Laptop respectively), and numerous other metrics.
Broadly speaking I'd likely say, "similar," but there might also be a $200 saving buying the Surface Laptop relative to a similarly spec-ed Macbook Pro 13". I don't consider that a significant saving when we're discussion laptops costing over $1200, but the savings grow as price increases.
What kind of specs/graphics/resolution do you get on that for games?
More performant, cheaper, better screen.
Microsoft makes good hardware, but you'll pay borderline "Apple Prices" for it.
Only big mistake Microsoft has made is trying to ship the Surface Laptop starting at $999 and topping out at $2199, with Windows 10 S, which you'll be able to "upgrade" "free" for a "limited time only." Meaning, when that promo runs out you may need to pay a $50 fee on your $999 Surface Laptop to get a full copy of Windows 10. To say that annoys me would be a huge understatement.
Anecdotal, but two out of three T series Thinkpads has sudden motherboard failures. No problems with 3 MacBooks or 3 Inspirons. We're done buying Lenovo.
Absolutely zero reports of problems. None.
See this comment from 2 months ago on HN [1].
Because of that negative point, I'm now considering one of the Ubuntu Dell Precision models and would appreciate any experiences on HN of Dell and international support for business class laptops.
Still being sent back and forth between Microsoft UK and Microsoft US with an occasionally unusable laptop.
This makes absolutely no sense since the only buyers of Surface products are as of now pretty much only "pro" users.
Did apple simultaneously fire all of it's hardware team along with it's QA dept? (we know the 2nd one happened).
I love apple, but it feels like they have a CEO who's running it in "latter years" mode. Zero risk, minimize cost everywhere, maximize profit even if it results in absurd cash piles...
This is what you get when bean counters run tech companies.
Apple could repatriate its overseas profits at any time. It would have to pay taxes on those profits, yes, but that would be no different than their domestic profits. Apple would be able to deduct foreign taxes, including foreign VAT payments[1], which would put their foreign profits in parity with their domestic profits in terms of tax burden.
[1] Unlike foreign income you can't take a credit on VAT payments. But VAT payments are deductible like any other business expense. Because corporations are taxed at a fixed percentage (no progressive income brackets), it's a distinction without a difference.
Yeah, letting the COO be CEO isn't necessarily a good idea in a tech company.
Yes. But they are still fugly.
I just bought a Lenovo gaming laptop (it was an amazing deal) and I'm actually surprised that it isn't super fugly. Gaming laptops are all a bit over-the-top design-wise but Lenovo actually used a little restraint. It also came with no bloatware.
Disclaimers: Inside the US, Microsoft employee, Nazgûl
I went back to the 2017 rMBP and really like it. I use Windows in a VM and have the Cmd -> as end and Cmd <- as home and it works great.
I'd still buy a Thinkpad if they put their old keyboards back in service.
* Containers (LXC, systemd-nspawn, Docker, etc. and native virtualization with QEMU/KVM), Apple doesn't even come close here.
* Use the WM/DE of your choice.
* Superior package management (pacman, apt, dnf, flatpak, etc).
* Use the distro of your choice.
* Use the latest GNU software unlike some crippled bash version like in Mac.
* Decide if you want bleeding edge or not.
* Use any hardware you want (older or new, Linux doesn't care and it will still perform well even with older hardware).
* Get more performance with Linux.[1][2]
* Freedom.[3]
* Privacy, security and transparency.
* Peace of mind, never be forced to upgrade your hardware or software. Your hardware is yours and you can use it until it literally breaks. You control your computer and not the other way around.
IMO, GNOME 3 and i3/sway are way nicer than the GUI on macOS, and you can use all the same development tools and editors on Linux today, tmux, Vim/Neovim, Emacs, Atom, VS Code, Sublime Text, etc.
There are so many other reasons.[4] Feel free to mention your reasons too.
I don't see what's the appeal with Mac at all, it seems like you are just paying for a logo.
[1] http://www.phoronix.com/scan.php?page=article&item=macos-sie...
[2] http://www.phoronix.com/scan.php?page=article&item=macos-101...
* Docker is supported and it will get better. Nano server supports it otb.
* Chocolatey is a great package manager. Others also exist.
* You can use most GNU tools.
* You can use any hardware you want
* Performance is good on Windows
* Freedom, i.e. FOSS is ubiquitous on Windows too (not as much as on Linux for sure tho).
* Privacy and security is good on Windows 10. Linux desktops are honestly not that safe.
Things not supported on Windows are:
* WM/DE - this is not a thing on Windows
* There is only 1 distro of Windows, but you can basically create your own with package manager, its just there aren't currently any OTB.
There are things Windows has better:
* Powershell is way better shell then anything Linux has to offer.
* Games still work better and there are more supported.
* More commercial tools are available for Windows.
Honestly, the only difference now is the culture around it. Although I use Windows as my desktop (which is irrelevant as I live in the shell and browser 24/7, so any OS will do), i prefer Linux engineers.
Server side ofc. you can't really bit the fact that linux servers are mostly free of charge. Windows Enterprise is terribly expensive.
Did they solve long file/path name issue? Remember Windows 7 slow FS with large file count and npm/js breaking everything due to long, nested paths.
.. and:
* Freedom.[3]
* Privacy, security and transparency.
* Peace of mind, never be forced to upgrade your hardware or software. Your hardware is yours and you can use it until it literally breaks. You control your computer and not the other way around.
?
Some things may exist (e.g. Chocolatey), but why not use a better package manager?
Docker on Windows is not native, it runs on a VM and uses Linux under the hood.
> Chocolatey is a great package manager. Others also exist.
Chocolatey is a step in the right direction, but it probably doesn't integrate as well as apt or dnf, you still have the Windows Store to update separately, and the Windows Store is what Microsoft wants you to use.
Chocolatey is more like a bandaid solution that was made by the community to deal with the limitations of software installation on Windows.
So I think Linux does package management much better than Windows, but this isn't to say that Chocolatey is bad, it's just that Microsoft has total control over everything on Windows.
I also like how Linux distros share a common file system hierarchy and share libraries between programs, while minimizing disk space and reducing security issues.
> You can use most GNU tools.
Yes, that's because those GNU programs are cross platform, which is good.
Free software also allows others to port programs to other platforms, which is also a very good thing.
> You can use any hardware you want
This isn't completely true, you cannot take your existing Windows drive and just plug it into another computer and expect everything to work, but you can do this just fine with Linux.
An existing Windows install and its license is associated to the machine where you have it installed.
Also, Windows won't run on other architectures other than x86 and I think ARM? Linux is known to work with ~20 different architectures or more.
Another advantage with Linux is that the drivers are built into the Linux kernel, so when a driver is added to the Linux kernel, it will be maintained and improved as part of the kernel, so your hardware will be supported for a very long time / forever.
This is unlike Windows where hardware vendors will release a blob for Windows and won't provide updates after the hardware is EOLed or for the next version of Windows.
I still have old printers that still work fine with Linux but the same printer doesn't have drivers for the current version of Windows anymore.
Linux is the only OS kernel with more hardware support than any other OS out there.
> Performance is good on Windows
Performance tends to vary depending on what you are doing and what you are comparing against.
So this is debatable, and one would need to run benchmarks to be sure.
That said, I find Windows to always be slower than Linux, running Linux on the same machine tends to be faster for the things I do, and Windows tends to slow over time whereas Linux doesn't.
> Freedom, i.e. FOSS is ubiquitous on Windows too (not as much as on Linux for sure tho).
You don't have freedom with Windows, you cannot give a copy of Windows to your friends, and you cannot inspect the Windows source code to learn and/or to modify it or fix anything in it.
> Privacy and security is good on Windows 10. Linux desktops are honestly not that safe.
[citation needed]
Do you have any sources to back this claim? There are a lot of security/privacy concerns with Windows 10, especially with the likes of telemetry and backdoors.
> Powershell is way better shell then anything Linux has to offer.
How is PowerShell better than the many different shells we have on Linux? I don't think this is true.
There is also PowerShell on Linux.
> Games still work better and there are more supported.
Linux has Steam now and many games are being released with Linux support every day, Vulkan is also taking off on Linux.
> More commercial tools are available for Windows.
There are many commercial tools coming out for Linux too, and this is only going to increase.
> Honestly, the only difference now is the culture around it.
It's not just about the culture, GNU/Linux and Windows are different operating systems with different ideas, purposes and design.
Windows is merely a company's product.
GNU/Linux is about freedom.
QubeOS is a good OS to provide these isolation techniques.
Sleep and hibernate still manage to break periodically.
Higher battery consumption unless I'm willing to break out powertop and tweak endlessly.
Meanwhile, the dev I do is all cross-platform Java and scripting. WSL provides a useful unix-like environment when I need it. And when it really matters I break out a VM.
These days tlp gives power management on Linux a good set of defaults. Powertop tweaking should not be necessary as long as you use a distro that supports tlp.
Happened right around the switch to systemd with Debian Sid on my old T410, which by that point was probably 5 years old. IIRC, the system would resume from sleep or hibernate but the console would not recover properly, so you had to force a VT switch to get the video to reinitialize. Just a huge PITA.
I agree, it had been stable for some time up to that point, but when it broken again, that was the last straw for me, and as a consequence I've stuck with Windows 10 on my Carbon.
These days tlp gives power management on Linux a good set of defaults. Powertop tweaking should not be necessary as long as you use a distro that supports tlp.
Could be. But I'm happy with Windows 10 on my Carbon and have no intention of switching.
It used to be that Linux was on balance the better choice for my use case, being more stable (as in, fewer crashes) and more transparent, with a superior dev experience. Yes, it was always a platform for tweakers... things never seemed to consistently work quite right (hell, back around 2010, it was a miracle if sleep or hibernate worked at all). But since you could open up the hood and mess around, I was willing to live with that given the benefits. As a result, for 20 years Linux was the operating system I ran on every piece of hardware I owned. I even built a 3-tuner MythTV backend and two front-end systems for my home back when I still had cable... you can't imagine all the tweaking!
But over the years the gap has closed considerably.
Windows has become substantially faster and more stable, and tools like WSL have made it a much nicer dev platform. Linux is still far more transparent, obviously, but the stability of Windows 10 means that just doesn't matter that much.
Meanwhile, with Linux, in my experience the need to continuously tweak and deal with random breakages continues to be a fact of life, while distros have become far less transparent through the switch to systemd, making tweaking and fixing things substantially harder (trying to diagnose those issues I described earlier was basically impossible).
As a result, Linux simply doesn't offer enough value for me, at this point, to motivate the hassle.
Of course, as always, YMMV. Some people have a higher threshold for this stuff (certainly I used to be a lot more willing to put up with Linux's idiosyncrasies), and different hardware, distros, etc, perform differently. So I'm not going to claim my experiences are universal. But they are my experiences.
Not only is its meaning just as nonexistent as the first time around, it also just seems like something that some guy thought up on the spot in a meeting, after remembering that he was still supposed to ask the marketing department about that.
It's not in any way a remarkable name and it's going to be confusing to many people as well as to search engines, making troubleshooting any issues with it unnecessarily hard.
I tried to adapt to this by instead of writing to the Windows file system from Linux; to instead write to the Linux file system from Windows. After corrupting my profile 3x and having to reinstall WSL each time, I went back to vagrant[1].
[1] vagrant is also really slow on Windows.
If you like Windows apps, why run WSL?
Symlink ~/code to /mnt/c/Users/jamie/code, run whatever editor I want in windows to edit the code, and run my app from linux-land in the console. Hasn't given me a hiccup yet, even with a local sqlite database and such.
If you just treat your linux homedir as a spot for dotfiles and symlinks out to windows, it shouldn't give you much trouble unless you're doing stuff that relies heavily on owner/write permissions.
I like having separate filesystems so I can have both Windows and Linux versions of some things in the "same" place but not interfering.
not sure that was what Microsoft was going for though...
(I'm curious if you've used it or you're just commenting based on the headline?)
They explicitly don't support that. From the article:
> Linux distro's [sic] running atop WSL are for interactive user scenarios, NOT for running production workloads on Apache/nginx/MySQL/MongoDB/etc.
And the last time I checked, it's not suitable for services. The moment I closed the bash terminal, all the processes I had running through WSL terminated - including nginx and tomcat.
It really seems like the primary use case is supporting Docker/OCI containers for local dev, so you can keep using a Windows desktop instead of switching to a Linux one.
Maybe OP is talking about tools installed on his/her own system only?
The target demographic is developers of Linux server software. A lot of those devs today run macOS
That's a huge pain in the ass for those of us who work in things that are tied to win32(graphics, gamedev tools, etc) we happily contribute back but ripping out a working port just seems petty.
I have to maintain a separate build system for Windows, all the win32 specific code, and also test under Windows... and most of this requires a Windows license
if I can rip all of that out by outsourcing the compatibility testing to Microsoft: all the better, even if I have to add a line to the documentation requiring users to check a checkbox once in some control panel somewhere
Shouldn't you be happy that WSL will enable F/OSS devs to write cross-platform software much easier by not having to keep two sets of code?
However if you're goal is to have an impact with your software then supporting win32 is a good bet since you're going to find an order of magnitude more users on win32. You'll also probably want iOS, Android and other platforms that aren't drop-in ports for POSIX if you want to provide a reasonable interface.
corysama, I agree. Windows was really lacking in any type of native unix connectivity. No native ssh, sftp support is a big one. You can get free third party programs for that, but nothing beats opening a terminal and having all of it, especially if that's what you are accustomed to.
I really love the new shell in Windows. I'm so glad they broke away from their old mindset.
In addition to the feature needing to be manually installed, developer-mode must be enabled. WSL leaving beta does not appear to change that.
If the feature was installed by default, and an X server was bundled, it would risk the Windows platform. WSL allows developers to be placated without affecting the business side of the platform.
You know what they say: "there's only 2 hard problems in programming: naming things, cache invalidation, and off-by-one errors". That team appears to be particularly bad at the first.
I've actually heard this issue discussed by the Windows admins in my company, without them having first heard my own opinion on the matter.
"Why didn't they name it 'Linux services for Windows', or something sane?" My Exchange/storage admin asked. "Because that would make sense", our other Windows admin says.
The discussion moved on to how Microsoft was afraid of the very notion of a product name that made it clear that Linux was doing something useful on Windows. They had to make it seem that Windows was offering services to Linux, because Linux needed the help of Windows, not the other way around.
I hope Visual Studio gets good integration here because it truly is a first class IDE and it's hard for me to tempt our windows developers away based on that fact combined with the "We don't support linux on desktops" and "No VMS" attitude of my company.
All of these things run natively on windows is there another advantage to moving to the WSL?
I know there are advantages but specifically for my tool chain is there something i am missing?
TIA
> NO current plans to support X/GUI apps, desktops, servers, etc. at this time
It's unsupported, which means it doesn't necessarily work well and they won't help you out.
https://channel9.msdn.com/Blogs/WinCoder/XMING--Bash-on-Ubun...
I think what they mean by "no current plans to support X/GUI apps" is that WSL itself doesn't include support for an X server but you can still go ahead and connect X applications to any running X server.
I tried both Xming (donated and got the most recent versions) and VcXsrv. I found VcXsrv to be faster and dynamically picks up my screen resolution. Xming doesn't do that out of the box.
However, I find that both are terrible when my network is a bit unstable such as when I'm in transit. That's the major pain point I have.
[1] https://blogs.msdn.microsoft.com/visualstudio/2016/04/12/ope...
But to your point they were built for cygwin, not linux.
"Bash on Windows provides developers with a familiar Bash shell and Linux environment in which you can run most Linux command-line tools, directly on Windows, UNMODIFIED, without needing an entire Linux virtual machine!"
from https://cygwin.com/:
"Cygwin is not:
a way to run native Linux apps on Windows. You must rebuild your application from source if you want it to run on Windows."
WSL leveled the playing field for me. WSL makes Windows a decent dev machine out of the box.
I wish Visual Studio would integrate better with it though. e.g. if I run a project in VS, I want the option of running in WSL.
It's pretty complex. I don't think I would call it an emulator but I can see why someone would.
But, yeah, jokes aside - it depends on the definition.
Still, the translation (or emulation) layer is partial at best. No cgroups (so no native Docker and rkt would work only with fly stage1 and a few patches), sockets are limited (e.g. a number of setsockopt stuff is missing), no tun or tap devices, no netfilter subsystem at all (so no iptables/iproute2/nftables), no GPU access, etc etc etc. Even though it's out of beta it's a bit early to think of it as a "real deal". Best it can do is run some desktop apps and build some software. Would probably work for basic webdev stuff (without containerization), but that's about it. It would probably never come close to the real thing, just as WINE probably won't ever replace Windows. But they try.
And, of course, it's non-free.
Even though they say "NO current plans to support X/GUI apps, desktops, servers, etc. at this time", this is achievable by installing VcXsrv.
WINE originally stood for "WINdows Emulator". It was several years later that it became "WINE Is Not an Emulator". The change was for marketing reasons, not technical reasons, since nothing had actually changed in how WINE worked.
The first time anyone suggested "WINE Is Not an Emulator", as far as I've been able to track down, was late August, 1993, over concern that Microsoft might win its trademark case over "Windows" and come after WINE. Someone suggested WINE become WAW, for "WINE Ain't Windows", and someone else responded to that suggesting "Wine Is Not an Emulator".
Soon fear of the trademark issues abated and nothing happened for quite a while.
By 1997, the "not an emulator" usage had become an acceptable alternative. The Wine FAQ late that year said:
> The word Wine stands for one of two things: WINdows Emulator, or Wine Is Not an Emulator. Both are right. Use whichever one you like best.
The dropping of saying WINE was an emulator came in late 1998. The 981108 release notes said:
> This is release 981108 of Wine, the MS Windows emulator.
The 981211 release notes said:
> This is release 981211 of Wine, a free implementation of Windows on Unix.
From what I was able to find, it seems there were a couple reasons for dropping calling it an emulator.
One was that it could be used for more than just running a Windows binary on Unix via emulation. It could also be used as a library that you could link with code compiled on Unix. This provided a way to provide a native port of you Windows program to Unix instead of running the Windows binary in emulation.
Calling it an emulator unnecessarily pigeon holed it.
Another was that emulators that emulated hardware were getting popular. People were making emulators that emulated x86 hardware on RISC systems. They were making emulators that emulated older personal computers, like C64 and Apple II. They were making emulators that emulated console gaming systems like NES.
One thing all of those emulators had in common was that they were very slow, in the sense that emulating one instruction of the emulated machine took many instructions on the host machine. For emulating the old gaming consoles, or the old 8-bit personal computers, where the host machine was running two or three orders of magnitude faster, that was not a problem--the emulation could run as fast or faster than the original machine actually ran. But when emulating something more contemporary, such as emulating an x86 PC at the hardware level to run Windows on it, they were very slow.
Since hardware emulators like these were the only kinds of emulators most people encountered, people tended to see "emulator" and read "ridiculously slow". If they kept calling WINE an emulator, many people would think that means it is ridiculously slow and avoid it, so they stopped calling it an emulator.
Everything else in the WSL is the regular Ubuntu user land. So all the processes are "native" and they make calls to a kernel that acts just like Linux.
It's kinda funny: the Windows NT kernel (and Executive, the actual native API) are a single-root object hierarchy where everything gets mounted - much like unix - only even moreso. Mutexes, Registry Keys, etc are all objects mounted in the root filesystem.
I guess everything old is new again. Microsoft used to have a server product called Services for Unix that replaced the built-in POSIX 1.0 subsystem with a legit Unix environment but it was always a neglected product that only existed to get people to port server apps to Windows. This time they're doing the integration on end-user desktops and have spent more time getting Win API integration working smoothly.
Although it would seem logical, the WSL doesn't actually use this system. The whole pico process engine and how it interacts with Windows is all new and not related to that design. I'm not really sure the reasoning behind it; perhaps it didn't allow them to do the level of integration they wanted.
I develop a rails app on Windows using WSL daily. Ruby runs in Linux and gems compile to Linux, not win32. So there is no weirdness compiling something like ImageMagic.
That's kind of a strange comment given that in these very same comment boxes the most ardent *nix users tend to bash the entire concept of GUI (no pun intended) and just assert that a command-line interface is the right way to use a computer.
Have fun
https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-n...
In early builds I did have some file system weirdness but I believe that's all be resolved now. I expect the creators update will be a very solid version.
I'd rather just use Linux and not be surprised by anything.
https://blogs.msdn.microsoft.com/commandline/2016/10/07/wsl-...
My point was that I just don't want to encounter bugs. When I run Linux, I get Linux. I already have it installed and I know how it works. I don't want to take the chance of a bug breaking my development workflow.
You purposefully installed a pre-release version in which they heavily mentioned there would be major bugs and other unfinished things in it.
I'm not sure what you expected here but unless you're talking about the release version I don't think you're being fair at all.
> They did. My point was that I just don't want to encounter bugs.
What an awful response. If that's the problem you have then the solution is that you don't run beta software. You're not really making a sensible point by citing bugs in explicitly-marked-as-beta software as a reason to avoid release software that has already fixed those bugs. I would give the final version a try before complaining about nonexistent bugs.
I used to bring a picture of home with me on business trips, now the house just comes along more or less (there are the occasional plumbing issues on the road and it's jarring sometimes when I go outside and realize I'm in some weird neighborhood with maple syrup coating the sidewalks and immediately I'm getting hustled by some guy with his arm around my shoulders and people aren't walking anywhere, just standing there looking at me without blinking and even with the hustler spinning his yarn there's this eerie, heavy silence like a summer storm always on the horizon and I start to miss the fresh clean mountain air back home all the while trying to disengage myself from the hustler without starting too much of a conflict but when I step away my right shoe stays stuck on the sticky street and I stumble over and the hustler, before I've even hit the ground, he's already got his fingers around the wallet in my back pocket and still everyone just stands there watching as I smack pavement ... you know?).
File system performance seems bad. Have tried multiple times to use it. First when it was first announced, and then again when Creators Update came out.
But... it's just not good enough yet. Hopefully the Fall Creators Update improve things.
For now, running a Linux VM is still way faster.
On balance, due to security issues, I decided not to use WSL for day to day.
Never used a Mac, and never will. Don't see the point, everything is ridiculously overpriced. I build my own PC's
Try the Mac trackpad, I think you will love it.
This is way better.
"Windows Subsystem for Linux" sets an appropriate expectation with me (the user) that I will get an experience not dissimilar from installing a real Linux distribution of one sort or another. For Microsoft, it's simply the easiest way to market that idea in the product.
No matter how much someone like a Richard Stallman would like me to differentiate between Linux (the Kernel) and the large proportion of GNU utilities that are the common tools of a complete system, in practice I simply think of the whole lot as "Linux" and probably always will... regardless of how fair, important (or not), the distinction actually is. I expect there are many more who think like that than not.
"If it looks like a duck, swims like a duck, and quacks like a duck..."
Windows is for corporates putting spreadsheets in front of coin counters.
For everything else there is Linux (or FreeBSD), which is probably why Micro$oft is porting SQL server to it.
Notably the cringeworthy second paragraph and substituting $ for s like this is Slashdot in the 00s.