Yes, it went well for Linspire, still it attracted a lawsuit, and the reason they didn'tlose wasn't because Lindows is different from Windows but because "windows" was a generic term already used as such by Microsoft itself.
I wonder what would have happened if the MS product was called say WinOS and the other one LinOS, where none of the terms are common words so that similarity would be the only matter.
Since they are saying it is 'for Linux' rather than it is Linux, I suppose they are probably ok, although the system doesn't contain or even work with any parts of Linux itself in any way.
Yeah it's the 'for' in there that makes it wrong. It's not 'for' Linux, it's for Windows. I know what it is and I _still_ think of it backwards every time I read it.
'for' is heavily overloaded as an English preposition. You are expecting a connotation of "for [the benefit of] Linux" versus the connotation of "for [the purpose of] Linux". Another example in English might be the relative meanings of 'for' in "this gift is for you" versus "this gift is for good behavior".
Other languages use multiple words or different cases for some of these situations. English leaves it ambiguous.
The fact that there are so many of us discussing it implies that it is a failure of a name. After all, what are words for if not communicating? We can debate semantics all day, but in the end, it's obvious that many people find the phrasing to be confusing.
it's the subsystem for running Linux. It's not actually Linux, and after enabling the subsystem you still have to actually get the Ubutntu image. That image is the Linux part.
Note that this subsystem never actually was "Windows Services for UNIX". That was another subsystem, another personality on top of the Windows NT kernel.
But that (a subsystem "for Linux") would only be referring to the small compatibility layer for syscalls and stuff, rather than the whole Bash environment which "WSL" typically means.
Or the needless confusion when everything needed to have .NET tacked onto the name.
Or after they bought Skype, and rebranded the unrelated Lync as Skype for Business. Not to mention that Lync is a homophone of LINQ, which was coming out around when Office Communication Server became Lync...
Or lately, when you had Visual Studio 2015, and what is now Visual Studio 2017 being called Visual Studio '15 while it was pre-release.
I'd argue that it's singular in the same sense that Williams[1] is singular, despite have origins which imply it describes a plural concept. Plus, "Windows's" sounds funny.
If you like, it's the same as the ways of running GNU on the FreeBSD kernel; there's Debian/kFreeBSD, which is Debian compiled against the FreeBSD ABI, and there's the Linux compat layer that can run Linux ELF binaries unmodified. Both of those are legitimately GNU/FreeBSD systems (or subsystems).
"Windows Subsystem for Linux", though a confusing name, is still better than "Linux On Windows", because the later would lead to LOW, which is unfortunately very true, in terms of performance, they just don't want you to ever think in that way.
Whatever name is better than "Bash for Windows", the worst possible name and the least tech-savvy way of describing what is going on. A real embarrassment.
They justify their choice saying they had a survey where the most popular option was Bash for Windows. Well, surveys also led to a boat called Boaty McBoatface...
"<anything at all> for Windows" would at least accurately express what operating system it runs on. "<foo> for Linux" on a program that is not for Linux is just awful.
>In these cases, the WSL team covers test gaps by writing our own unit tests. At time of writing the team has written over 150,000 lines of unit test code for systems calls and virtual files (/proc, /sys).
I wonder why they went that route instead of contributing to LTP directly?
While there's probably some edge cases specific to WSL, surely much of their increased unit test coverage would be applicable beyond WSL.
We maintain a fork of LTP internally. Eventually we hope to contribute our changes back but unfortunately open sourcing isn't free and we have bigger fish to fry[1].
Out of curiosity, is progress on WSL bound by any blocking issues in particular, or could your team benefit from more resources being assigned to the project?
Maybe I'm naïve, but I tend to view WSL as a perfect way to win over a ton of developers who are becoming disillusioned with macOS, but are hesitant to run bare metal Linux due to the headaches involved (insofar that macOS and Windows "just work").
For some context, I've looked at what causes this slowdown. For some reason stack has mapped an mind-bogglingly huge region of memory (I'm talking dozens of terabytes). When we fork we walk the entire address range to set up the new process's state. We have a design that should vastly speed this up, but we're approaching "pencils down" date for Creators Update.
You will see ads on your command prompt from time to time and the bash completion will contain "sensible recommendations" based on your general behavior, psychological state and political orientation.
Now that everything was published they also plan to pre-install the diverse arsenal of hacking tools on every machine, as there is no reason now anymore to hide that stuff - what will make the fight for freedom much easier for everyone involved!
To support your patriotism there will now be a personal statement of all past MS CEOs showing up on startup and the national anthem playing to support your emotions.
Also from time to time a screensaver will show the sentence "Everybody adores you, because you belong to a global hacker elite using the Windows operating system in 2017! Ignore that laughter around you!"
I think that the "pico process" + kernel driver model that they are using could be leveraged to build a new operating system on the windows kernel. That would give you a base for a new OS that can reuse the Windows Device Driver infrastructure.
Although I love their work, unfortunately the terminal (window cmd bash) is horrible. Copy and Paste is a pain, doing panel splits are impossible unless you use tools like tmux.
I would love to see terminator or a more advanced terminal.
I've been using ConEmu set up to auto launch Bash. Working pretty well apart from MS's ass-backwards resolv.conf population which overrides every Ubuntu mechanism for creating the file... so I have to run a script to get my VPN's DNS to work :)
I use vim in it when I code on my home computer, haven't had any problems. I haven't tried tmux, but I think that'd be fine too.
I'm less sure about things that require a GUI, and last time I tried postgres it didn't work. That was a while ago, though, and they might have made progress since. TFA says the postgres tests are passing.
Things that require a GUI require you to have a separate X server running. WSL, as far as I know, does not support running X11. However, if you do have a Windows native X11 server running (like xming, for example) things like emacs and gvim seem to work. I haven't tried anything more intensive than those, though.
> Things that require a GUI require you to have a separate X server running. WSL, as far as I know, does not support running X11.
They mention X/GUI support in the "What's new in Bash/WSL" article[1].
> Note: Some of you may also have been following along with some intrepid explorations into running X/GUI apps and desktops on WSL. While we don’t explicitly support X/GUI apps/desktops on WSL, we don’t do anything to block/prevent them from running. So if you manage to get your favorite editor, desktop, browser, etc. running, GREAT but know that we are still focusing all our efforts on delivering a really solid command-line experience, running all the command-line developer tools you need.
I work in Vim and tmux in WSL all the time and it works great for me. In fact, the only tool I've found that doesn't work (on the latest slow ring) is vim-plug.
> having serve operations spit out the server into the actual Windows browser?
I'm unsure exactly what you mean. But you can absolutely run web servers in WSL and connect to them from any browser running on Windows.
In my experience, you can connect to any network services running on Windows from Linux (for example, I connect to the Docker for Windows daemon) and vice versa.
Yep - Vim, working on python code. It's pretty darn good. The terminal occasionally gets confused when you're popping in and out of an alternate-screen app (less or vim) and leaves the bottom line of the alt screen behind - but this can be fixed by hitting ctrl-L. Also the terminal occasionally seems to report the wrong size and vim pops up only using some of the available space - again, suspend vim, ctrl-L, unsuspend, done.
Apart from the new .NET Framework 4.7 and a few minor others, a bunch of features (e.g. Paint 3D) are not necessarily targeted towards advanced users. It would make sense to fragment some key modules we use as devs and make those available piecemeal without bundling features we'll probably never use with great features like WSL and the new Windows console. Essentially MS could give options just like it gives options about what to install on VS 2017 (for advanced users of course, regular users can have the default CU install mode).
I used it for a while, when Fedora 24 refused to work reliably on my 4k laptop (it worked under 23, and now works again under 25). It was OK. I mean, it's an amazing feat of engineering, but there's a ton of little (and not so little) quirks that made it painful.
Sharing files across the two systems was (maybe still is?) disastrous. I've heard of total Linux system corruption, but I personally had files disappear (they were checked into a remote git repo, so no loss, except for recent changes). It's covered in the docs, but I didn't grok what they were saying and the real gravity of it. Since I was using Windows native Atom for my editor, this was cumbersome.
But, most things work about how you'd expect them to. I was able to install the software I work on (which runs as root, and pokes at everything on the system), and it worked as I expected it to. I didn't even have to tweak it.
I'm still more comfortable and productive in Linux, so I'm happy to have my Linux partition running well again. I also prefer Fedora to Ubuntu, so that's a win for running Linux natively. But, if I liked developing in, say, Visual Studio, and was deploying my software to Linux servers or working on cross-platform desktop apps, having the local Linux would be a big win. Even with the forced separation of filesystems, it's still more transparent than a Vagrant managed VirtualBox, or something.
Also worth noting: Windows is remarkably better as a development environment than the last time I had to develop on a Windows machine (about 10 years ago, one of my jobs included building cross-platform software packages). The quality of tools available is very high. There are good terminals, all of the languages I use have good installers available. Even if Linux weren't there, it's much less painful to develop on Windows than it used to be. (Still painful, and I still had a huge variety of headaches, mostly due to absolutely shitty package management on Windows.)
> Sharing files across the two systems was (maybe still is?) disastrous.
I don't think this has ever been true. Just don't jump through the hoops it takes to modify Linux system files from Windows - that stuff is hidden from Windows apps for good reason.
If you need to access files from both, store them in a normal Windows place like "/mnt/c/...". E.g. in my WSL home directory I have symlinks to my Windows Documents, Downloads, Development, etc. folders. I constantly operate on the same files from both OSes simultaneously, and it's fine.
I didn't really "jump through hoops". I just did what I would do on Linux...I searched for the Linux files. Found the Linux files. Started working with the Linux files. Turns out, that's a bad idea. Files disappeared.
I've seen numerous reports of other folks entire Linux filesystem being corrupted beyond use. So, I'm not alone in doing this...and (at the time) the docs had a single (non-threatening) sentence about it, when I went back to see if maybe I'd missed something. It basically said something along the lines of "this doesn't work", rather than "this will destroy your files".
It's not a big deal. It was bleeding edge stuff when I started playing with it; things go wrong, and I expect things to go wrong when I'm on the bleeding edge. I like where they're going.
But, it's a thing to be aware of. I wasn't aware of it, based on the docs I read on the subject, so I mentioned it, just in case someone else might not be aware of it.
The thing is, I'm not a Windows user; things that may seem obvious to a Windows user (like, "those files aren't obviously visible for a reason and that reason is don't touch them!") are not always obvious to me.
Then again, you're not the first person to say the files are "hidden"; but I was able to find them, probably using the "find" command in the git or cygwin bash shell, or something (I dunno what else I'd use to find them), but maybe using system search. I don't remember...it wasn't a momentous occasion. I just wanted to edit some files in Atom, so I went and found the files I wanted to edit, using some tool on the system. Again, I don't know Windows. If the state of these files was somehow telling me not to touch them, I did not pick up that signal.
ConEmu and Cmder are the ones that get recommended the most, I think. I used ConEmu because it was the first good one I found. It worked pretty good. I like Gnome Terminal better, still, mostly due to the lack of chaos. Those Windows terminals hook into all of the shells...so, my ConEmu had a huge menu of available shells when creating a new one: a bunch of PowerShells (32/64 bit, admin/user), and bunch of Cmd.exe (32/64, admin/user), and a bunch of bash shells (git bash, WSL bash, Cygwin bash). Just a crazy amount of complexity.
It was configurable...but, sometimes I needed one of those other shells to get something done. So, I left them alone.
I use it on my laptop and am generally very happy with it, although I don't do all that much technical work there and certainly wouldn't want it to replace my primary workstation. (I'd be dearly sad if I had to give up xmonad.)
But it's made my laptop a far more pleasant place to get work done if I need to do so, and generally works far better than I was expecting it would. I no longer feel compelled to run a VM on my laptop to get real work done.
That's a bit loaded, but I'll attempt to answer seriously:
Can you replace Ubuntu? Maybe, if you are OK with 14.04 LTS level support. Certain simple things straight up don't work -- you can't send a ping without an admin level windows shell (sudo wont do it either). You also won't magically get driver support for hardware that works in Linux, but not Windows (if you think this isn't a thing, try plugging in a random USB-to-something adapter without finding obscure, broken, or nonexistant drivers on Windows). If you just need access to some tools that only run on Linux, I've found WSL invaluable, so long as those tools are available on Ubuntu 14.04.
Can you replace Linux in general? Nope - I'm a 90+% Linux user for work and home, and neither Debian, Ubuntu, or its derivatives work for me, with the notable exception of some server and embedded applications. If you want a wide variety of up-to-date software, there is no replacement for something like Arch.
Can you replace Ubuntu? Maybe, if you are OK with 14.04 LTS level support.
The latest Creators update uses 16.04 LTS.
you can't send a ping without an admin level windows shell
The latest Creators update supports ping as a non-admin.
---
I would say that for most usages it is a good replacement for vanilla Ubuntu. Microsoft is quickly closing the gaps in support. Most stuff simply works (albeit disk filesystem I/O is still a bit slow). For instance, I used it to compile packages for Ubuntu 16.04 and upload it to a PPA without much trouble. At the time the only change I had to make was using fakeroot-tcp rather than regular fakeroot. But maybe that is fixed now.
It is especially useful if you like to work in a Unix, but also need Microsoft Office, Adobe Creative Suite, or other applications that are not available on Linux.
I did know that, but the update only came out today AFAIK, and is being slow-rolled out (I checked all my Windows machines today, none updated). People with enterprise/business versions of Windows with "Defer feature upgrades" aka "Current branch for Business" enabled also wont get it for a while. I know how to force the update, but forcing Windows updates is something I've learned better than to do.
As an aside, I would highly reccomend WSL users check out wsltty[0]. Gives a better terminal than Windows' built-in 'cmd', with options to open other shells like fish/zsh/etc in arbitrary directories.
It uses a Linux-compatible kernel interface with no Linux kernel code plus Ubuntu's userland. I guess that's why they sometimes call it Bash on Windows. I'm surprised no one's proposed "Windows Subsystem for GNU".
I'd just like to interject for moment. What you're refering to as WSL, is in fact, GNU/NT, or as I've recently taken to calling it, GNU plus NT. NT is not an operating system unto itself, but rather a non-free component of a fully functioning GNU system made useful by the GNU corelibs, shell utilities and vital system components comprising a full OS as defined by POSIX.
Many computer users run a modified version of the GNU system every day, without realizing it. Through a peculiar turn of events, a version of GNU which is widely used today is often called WSL, and many of its users are not aware that it is basically the GNU system, developed by the GNU Project.
There really is an NT, and these people are using it, but it is just a part of the system they use. NT is the kernel: the program in the system that allocates the machine's resources to the other programs that you run. The kernel is an essential part of an operating system, but useless by itself; it can only function in the context of a complete operating system. WSL is normally used in combination with the GNU operating system: the whole system is basically GNU with NT added, or GNU/NT. Windows 10, the so-called NT distribution, is really a distribution of GNU/NT!
The interesting bit of WSL (what the article talks about) is a Linux syscall translation/emulation layer, as well as ELF64 binary support (not specific to Linux, but not specific to GNU either). You can certainly install the Linux versions/ports of GNU tools and run them under WSL, and that's what the stock setup looks like, but an important component of WSL is about emulating a Linux (the kernel) environment.
If MS had actually ported the GNU base system to NT, then you could reasonably call it GNU/NT. They have not done that.
I think the syscall translation part is an irrelevant hack, seems silly to act like that is what makes the project more useful because it does not guarantee performance, compatibility or stability.
The syscall translation makes it more useful than the previous UNIX subsystem, because it means it can near-perfectly emulate a popular POSIX-like system (Linux), and thus be compatible with most of its software, rather than being its own eccentric platform that existing POSIX software must first be ported to.
I don't see the value if it's not more stable than "excentric" platforms like Cygwin and MSYS, but I guess I wouldn't use it either way because there's no way I'm installing Windows 10 on my hardware.
I feel that you miss the point of WSL. Bash and coreutils have worked on Windows for years. In fact, they ship with git so most developers have had them for years.
The point is compatibility much more than CLI UX. The ability to run that nodejs or Python project even though one of the 1352 subsubsubdependencies has a bug on Windows.
So it's supposed to be more stable than Cygwin? Is it that right now?
I thought Cygwin was very stable and included most things you could want, while also supporting Win7/8, which are the last versions I'm willing to run on my hardware.
There are Linux distributions which contain almost no GNU software, e.g. Alpine Linux which is built around musl libc and busybox: https://alpinelinux.org/about/
In all seriousness (your message could be in favor of, hostile to, or neutral toward GNU; I can't be sure), I got rms' opinion on all of this in April of last year and wrote about it:
I'm a supporter of the GNU project but I'm very ambivalent about its communication strategy. I posted this because I think it's as true for GNU/NT as it is for Ubuntu, which is... technically true, but hard to talk about without sounding off-putting.
As a Linux user, MS Windows Subsystem for Linux is as interesting as Microsoft Bob.
Microsoft cannot say it loves Linux until they launch their flagship products such as MS Office and MS Visual Studio on Linux. Until then, it's all fugazzi.
Wake me when MS offers Linux subsystem for Windows (basically commercial WINE). From what I have read, MS is not actually that interested in improving the Windows kernel anymore unless needed or profitable. Why don't they give up and run windows user space on Linux (or BSD) :)
You've "read" wrong. The NT kernel has seen major changes up through and including W10, including focusing on power management and efficiency, improving modularity, and memory use.
It seems like your comment was meant to troll, but in the odd chance you're interested, you can follow a lot of these changes and the decisions behind them where Microsoft documented the process on the old Engineering Windows blog, and well as more recently at the main Windows blog itself.
That's exactly backwards. They're doing a reasonable but very late job of modernizing their user space on top of their quite decent kernel, including giving a Linux environment for those that want it. I for one respect them for that, even though I've been almost exclusively a Linux user since the early 90s. Lately installed Windows 10 and TBH between powershell and improved command line facilities, improvements to the windows GUI itself, and the linux subsystem it's not bad at all these days.