11 ms·
Windows Subsystem for Linux is out of beta
- tyrw 9y agoIn my experience, emulators are never quite the same as the real deal. Has anyone used this, and if so how was it?
- IncRnd 9y agoAfter this was initially announced I ran apt-get a a few times for dependencies, then compiled OpenSSL inside the box. I also got linux apps working with a gui, which was quite possible. On balance, due to security issues, I decided not to use WSL for day to day.
- SPACE_LAWYER 9y agoIt's not an emulator
- dboreham 9y agoDepends on your definition of "emulator". Since it is a thing that emulates Linux kernel calls on top of the NT kernel...it is definitely "emulating".
- BinaryIdiot 9y agoThe dependency to make this work is transforming the calls but the Ubuntu itself is not. Not everything has to run through that translation layer either, only specific types of calls to make things work. Code that isn't using specific *nix commands will run like normal without that layer. It's pretty complex. I don't think I would call it an emulator but I can see why someone would.
- drdaeman 9y agoA mirror of WSL is WINE, and we know that WINE is Not an Emulator ;) 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.
- therein 9y agoIt is not an emulator and the experience is pretty great for anything involving Linux as a workstation. Even though they say "NO current plans to support X/GUI apps, desktops, servers, etc. at this time", this is achievable by installing VcXsrv.
- tyrw 9y agoPerhaps emulator was a poor descriptor in this case -- I haven't used it. But it is running a subset of functionality non-natively, correct?
- zbuttram 9y agoFrom what I understand it's mainly translating system calls. It's been described as being like a reverse WINE, hence everyone replying 'Not an Emulator' at you. :)
- tzs 9y ago> It's been described as being like a reverse WINE, hence everyone replying 'Not an Emulator' at you. :) 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.
- deleted 9y ago[deleted]
- freehunter 9y agoIt's not really an emulator. It's more like a virtual machine that runs Linux in the background and lets you use the commands. You can install Ubuntu with it and it's officially supported. If it didn't work, I'm sure Ubuntu wouldn't run.
- tyrw 9y agoThanks for the clarification. I guess I'm having a hard time classifying it, since you can use an actual VM but this seems like something less than that.
- mkl 9y agoCorrect, it's not a virtual machine at all. It is a reimplementation of the Linux kernel's API. Most userspace Linux programs run as normal and can't tell that the system calls they do aren't handled by the Linux kernel.
- bitwize 9y agoWhat it is is what BSDers call a "kernel personality". It's not a virtual machine; the Windows kernel just knows how to load Linux binaries and translate Linux system calls to the corresponding Windows calls.
- semaphoreP 9y agoIt works great for me. Like others have mentioned, it's not an emulator, so I don't feel sandboxed using it. The main downside is one of the caveats they mention: "Linux files are NOT accessible from Windows." Hopefully they can fix this in the future.
- shpongled 9y ago%AppData%\local\lxss\rootfs Have fun
- semaphoreP 9y agoI recall there were issues if you tried to modify those files in Windows. Maybe they've fixed that in recent updates, but my impression was that while I could see the files, I shouldn't be touching them.
- justabystander 9y agoYes. Updates to those files didn't seem to be reflected in bash until I'd closed and reopened the terminal.
- russellsprouts 9y agoCareful: the Linux permissions of these files are stored in attributes of the files, and many tools don't preserve them properly. You'll likely lose access to files if you try this. https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-not-change-linux-files-using-windows-apps-and-tools/ https://blogs.msdn.microsoft.com/commandline/2016/11/17/do-n...
- deleted 9y ago[deleted]
- math0ne 9y agoFYI, this does not work.
- ruricolist 9y ago
- wvenable 9y agoIt works frighteningly well; it's practically magic how well it works. I've even used it run GUI apps (mostly emulators for embedded software) via a Win32 X client. 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.
- nickthemagicman 9y agoAlot of stuff works great. I had a pretty high functioning dev environment. Hit snags when I tried to interact with the hardware. Like for setting up VPNs or networking tools. I think because it doesn't manage the hardware.
- OhSoHumble 9y agoI had it break on me a while ago because there was no inode support and that's needed for hot-reloading of code when developing with web frameworks. I'd rather just use Linux and not be surprised by anything.
- wfunction 9y agoWould you mind elaborating a bit? What's the exact functionality that's required? Is it like notification support for file modification or something?
- chrisan 9y agoWasn't that the first beta release of insider? I thought they fixed inode support https://blogs.msdn.microsoft.com/commandline/2016/10/07/wsl-adds-inotify-filesystem-change-notification-support/ https://blogs.msdn.microsoft.com/commandline/2016/10/07/wsl-...
- OhSoHumble 9y agoThey did. 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.
- BinaryIdiot 9y ago> My point was that I just don't want to encounter bugs. 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.
- alexanderdmitri 9y agoWith the Creators Update there was major improvement. Here's how I'd put it: 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?).
- wentoodeep 9y agoI've been using this for back-end dev since 14.04 distro (lastest update is xenial). Quite stable and very fast, no emulator or vm come close to WSL. Best gift from MS to devs after VS.
- dannysu 9y agoIt's still way too slow for me using tmux. 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.
- blibble 9y agofinally I can remove the win32 specific code from all the open source software I maintain not sure that was what Microsoft was going for though...
- geofft 9y agoDepends on your software - it doesn't get you integration with other Win32 apps or features, notably the GUI, since it's a separate subsystem. If your app is a database server, probably yes. If your app is a monitoring agent, definitely no. (I'm curious if you've used it or you're just commenting based on the headline?)
- justabystander 9y ago> If your app is a database server, probably yes. 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.
- geofft 9y agoAh, thanks. I've only played around with interactively but that makes sense. 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.
- deleted 9y ago[deleted]
- vvanders 9y agoUnless you're going to force your users to install WSL up front(which is a pretty poor first contact) I think you might be better served by keeping it around.
- frozenport 9y agoDoes anybody use this?
- adrianlmm 9y agoI do, for Ruby/Sinatra development, it works very good.
- werdnapk 9y agoAs an Rails dev on OSX, do any tests (or various dev tasks) that spawn a browser work with the WSL? ie. the letter_opener gem will open a sent email in the browser, selenium will run tests in the browser, etc.
- justin--sane 9y agoWhat about PostgreSQL? Last time I tried it I had to install it on Windows because of some reason I cannot remember...
- adrianlmm 9y agoI do not use Postgress, I use Firebird SQL and I had no problems installing it in WSL.
- shpongled 9y agoI've been using it every single day since it was announced. It's pretty nice. There are compatibility issues with some programs (mainly networking and a couple weird syscalls), but for 90+% of things, I've had no issues.
- azinman2 9y agoWhy not just run Linux? Or use a Mac?
- shpongled 9y agoI run Linux at home on a laptop (arch), and had been dual booting my desktop for a while. Games, easy access to Office, and software compatibility issues for work software limit me primarily to windows. Plus I've been using Windows since '95. And with WSL, I don't need to dual boot anymore. Never used a Mac, and never will. Don't see the point, everything is ridiculously overpriced. I build my own PC's
- nikanj 9y agoCan someone point to a decent X server for windows?
- eridius 9y agoFrom the article: > NO current plans to support X/GUI apps, desktops, servers, etc. at this time
- zbuttram 9y agoNo plans to support specifically, but a surprising amount of things work simply due to their effort making the rest of it work.
- am1988 9y agoIt still works. X is a protocol, install a server and point at it. It's unsupported, which means it doesn't necessarily work well and they won't help you out.
- nikanj 9y agoYes, I know Microsoft doesn't have an X server. This is why I asked if people could recommend a 3rd party one.
- clouddrover 9y agoA Microsoft Channel 9 video on how to use XMING with Windows Subsystem for Linux: https://channel9.msdn.com/Blogs/WinCoder/XMING--Bash-on-Ubuntu-on-Windows--X11-Window-System-Running-from-Windows10-Subsystem-for-Linux 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.
- kpocza 9y agoTry this one: https://github.com/kpocza/LoWe https://github.com/kpocza/LoWe
- pizza 9y ago
- dijit 9y agoGreat news, this will hopefully allow our developers to make code on Linux since they've been forbidden from running VMs and it's extra overhead. 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.
- sayelt 9y agoSheesh, your company sounds like a crappy place to work.
- moomin 9y agoI'd like that too. The main thing holding it back is the file interop. If a windows program creates a file in a Linux directory bash literally can't see it. I've worked around this by putting my real work in Windows directories and symlinking then into my WSL home, but I can see this biting me at some point in the future.
- morecoffee 9y agoPlease support FUSE!
- nerflad 9y agoI really hope they make WSL's /home/. symlink to /mnt/c/users/. by default. What's the point of having a separate filesystem and home directory? I want native POSIX in Windows. The WSL implementation feels like... not that.
- smaddox 9y agoThe linux filesystem has to be segregated from the windows filesystem. If I remember correctly, the linux FS can read from windows FS, but not write to it, due to locking issues. Or something like that. Whatever it was, it made me discount it as a way to write windows code. Instead, I'm using Git Bash, which is based on mingw
- livingparadox 9y agoYou can definitely write to the windows file system from WSL, so long as you don't need admin privileges to do it. I use it at work and 99% of the files I edit are in a windows controlled drive.
- mmcru 9y agoFor me, reading and writing works, but I have major performance issues on /mnt/. `git status` for example is unreasonably slow on any directory under /mnt/. 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.
- jaxn 9y agoWhen was the last time you tried? There are some file I/o improve EMTs over the past few months that drastically improved the kind of performance problem you are describing.
- aylons 9y agoI believe you got it inverted. You cannot write on the WSL file system from Windows, but the other way (writing on windows from bash) is ok.
- throwaway91111 9y agoSo is this complementary to the linux subsystem in windows, or a completely unrelated option?
- Infernal 9y agoI think you've fallen victim to Microsoft's somewhat awkward naming scheme - the Windows Subsystem for Linux is the name of the "linux subsystem in windows" that you're referring to. It's not complementary or unrelated, but the same thing.
- throwaway91111 9y agoGod that's an atrocious name.
- paulmd 9y agoMicrosoft's other official name for it is "Bash on Ubuntu on Windows". "BOUOW", it just rolls right off the tongue. 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.
- TwoNineFive 9y agoThe fundamental abusiveness of the naming of this product isn't lost on people. Every time I see "Windows services for Linux" I know very well that it's just Microsoft doing what their public manipulation thing. 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.
- 9y ago
- sangd 9y agoI hope my Macbook days would be over soon. After using Macbook Pro many years, I find good Windows machines are as reliable as Mac's ones. Apple products are usually overpriced, much less options for hardware accessories and upgrades, very expensive to fix. I have to keep running both Mac & Windows machines which is very inconvenient sometimes.
- bradleyjg 9y agoWhich laptop manufactures have you found to be as reliable and well put together as macbooks? I haven't had too much luck with dells or lenovos.
- kristianov 9y agoSurface Book and Surface Laptop are quite good.
- vvanders 9y ago+1 on Surface Book. Great build quality, good dev machine and decent gaming laptop as well.
- cgb223 9y agoWas thinking about getting one for work, and gaming is a nice perk What kind of specs/graphics/resolution do you get on that for games?
- vvanders 9y agoJust make sure to grab one with the discrete GPU(dGPU aka Performance Base). It's not going to be anything near a desktop(no laptop will) but I can run most things at 1080p pretty well and some of the lighter stuff(like Pyre) at 3Kx2k(native resolution).
- FiveDegrees 9y agoI would strongly recommend the XPS 15 9560 over it, if you don't need it to be able to convert it to a tablet. More performant, cheaper, better screen.
- smegel 9y agoOnly $300 a license.
- melling 9y agoIsn’t there a way to get a free beta version? I got an image once for Virtual Box.
- smegel 9y agoWhy would you want to? 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.
- skinnymuch 9y agoAre you being facetious? It seems like you are. I'm 99% sure you have to be, but some people do think and write like that. Notably the cringeworthy second paragraph and substituting $ for s like this is Slashdot in the 00s.
- justin--sane 9y agoThe 90s called, they want your comment back.
- jdorfman 9y agoRich Turner and his team has pretty much done the impossible. Huge congratulations to them.
- deleted 9y ago[deleted]
- figers 9y agoWSL needs access to the wifi adapters for network security testing!!!
- ams6110 9y agoEvery time I read about WSL I can't help but wonder why cygwin is never mentioned. Cygwin provided all this over a decade ago.
- chokolad 9y agoCygwin was able to run unmodified elf binaries on windows? And it was doing it a decade ago? Wow, that's really impressive.
- ams6110 9y agoNo, but it ran all the Linux applications and shells and utilities. I was running Xemacs in X11 on Windows XP using cygwin years ago. But to your point they were built for cygwin, not linux.
- pharrington 9y agofrom https://msdn.microsoft.com/en-us/commandline/wsl/about https://msdn.microsoft.com/en-us/commandline/wsl/about: "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/ 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."
- randomString1 9y agoRegarding security, it increases attack surface but besides that is there any critical issues?
- 0xbear 9y agoWhy is it called Linux, though? There's no Linux there at all IIRC, in the sense that it's not using the Linux kernel.
- karlshea 9y agoIf you're going to be pedantic shouldn't it be "GNU/Linux"?
- jameshart 9y agoI guess technically MS need to start referring to Windows 10 as GNU/Linux/Windows now.
- ric2b 9y agoMore like GNU/Linux/Microsoft/NT. Windows is more of a distro name such as Ubuntu.
- IncRnd 9y agoThe other way around. Being pedantic, it would be GNU without Linux. How is any of that helpful to people?
- edsouza 9y agoThe WSL converts the Linux system calls to Windows calls with additional wrappers to implement the system calls correctly.
- sbuttgereit 9y ago
- nv-vn 9y agoBarely related, but what's with the whole "Creators Update"/"Fall Creators Update" thing? It's not "Creator's Update," so I guess it's supposed to be targetting "Content Creators," right? But looking at the changes in these updates, I'm really not sure what's been added for any sort of content creator. Windows Movie Maker hasn't turned into Premiere, Paint hasn't turned into Photoshop, etc. So where the fuck does the name come from? And why not just name it with some Apple/Google-esque codename like Snow Leopard or Jellybean instead of making some half-baked marketing scheme?
- Sylos 9y agoYeah, at the time I could still understand them calling the original Creators Update that way, just to have some marketing buzzword to throw at people, but "Fall Creators Update" is really just the dumbest thing I've seen in a while. 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.
- freestockoption 9y agoI use a Mac. And I also use this when I'm using Windows. I try to use both so I stay up to speed on the latest developments of both platforms. 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.
- deleted 9y ago[deleted]
- jesuslop 9y agoHas anyone tried to use visual studio Open Folder feature [1] along the WSL to work in that IDE with big C++ cmake built projects targeting linux? [1] https://blogs.msdn.microsoft.com/visualstudio/2016/04/12/open-any-folder-with-visual-studio-15-preview/ https://blogs.msdn.microsoft.com/visualstudio/2016/04/12/ope...
- harrygeez 9y agoNow all we need is a terminal emulator as good as iTerm/Terminal.app/urxvt.
- cadecairos 9y agoI've been quite happy using Cmder http://cmder.net/ http://cmder.net/
- arunc 9y agoMS Word and Excel
- Omnius 9y agoAs a web developer why would this be useful to me. I know Linux and run it for years and now at this job i am on windows. My stack is usually python flask, postgres, vuejs/react, ... 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