❯ /mnt/c/Users/Kirkland/Downloads
March 30, 2016 10:51 AM   Subscribe

Ubuntu on Windows -- The Ubuntu Userspace for Windows Developers A team of sharp developers at Microsoft has been hard at work adapting some Microsoft research technology to basically perform real time translation of Linux syscalls into Windows OS syscalls. Linux geeks can think of it sort of the inverse of "wine" -- Ubuntu binaries running natively in Windows. Microsoft calls it their "Windows Subsystem for Linux".

Here's let's break it down slowly...
1. Windows 10 users

2. Can open the Windows Start menu

3. And type "bash" [enter]

4. Which opens a cmd.exe console

5. Running Ubuntu's /bin/bash

6. With full access to all of Ubuntu user space

7. Yes, that means apt, ssh, rsync, find, grep, awk, sed, sort, xargs, md5sum, gpg, curl, wget, apache, mysql, python, perl, ruby, php, gcc, tar, vim, emacs, diff, patch...

8. And most of the tens of thousands binary packages available in the Ubuntu archives!


Alt: Scott Hanselman demos Ubuntu on Windows
posted by CrystalDave (116 comments total) 29 users marked this as a favorite
 
So...... does this mean that I can use bash the way that I can currently use the command line or Powershell to do things to my files while running Windows?

If so that is hot as fuck.
posted by selfnoise at 10:54 AM on March 30, 2016 [9 favorites]


This, finally, is the year of Linux on the desktop... :-/
posted by RedOrGreen at 10:58 AM on March 30, 2016 [50 favorites]


So Cygwin was actually just a feature, not a product?
posted by Going To Maine at 10:58 AM on March 30, 2016 [1 favorite]


So they're trying to make it more like OS X?
posted by the painkiller at 11:03 AM on March 30, 2016 [5 favorites]


This actually isn't a new thing for Windows. See Microsoft POSIX Subsystem for Windows NT and Microsoft Services for UNIX.

This difference it seems is that it's implementing the Linux kernel ABI instead of some other UNIX-like kernel, and can therefore run Linux binaries directly.
posted by i_have_a_computer at 11:03 AM on March 30, 2016 [3 favorites]


If this means the end of dependence on cygwin, gitbash, and other good-enough-to-work-but-AAARGH applications to get web development tools into Windows, that will be terrific.
posted by ardgedee at 11:07 AM on March 30, 2016 [12 favorites]


Windows 10 only though? We probably won't upgrade from 8.1 at work for years so I'll have to keep working in Vbox until then.
posted by octothorpe at 11:10 AM on March 30, 2016 [1 favorite]


As a Linux user for many years now, I was about to say "what's the point of this," but:

So...... does this mean that I can use bash the way that I can currently use the command line or Powershell to do things to my files while running Windows?

Yes, I suppose it would be pretty cool to be able to run perl, ls, grep, and shell scripts - and pipe the output of all of these into each other. Pretty cool indeed. But... still, what's the point of this?? Most of the reason I run Linux is to have the stability and security at the OS level; I do still run Windows, but isolated in a VM so if something goes wrong, shut it down and blow it away! I'd much rather have MS Office for Linux. That I might pay for, MS. Just sayin'.

This, finally, is the year of Linux on the desktop... :-/

Linux has been running pretty damn well on desktop / laptop computers for pretty much a decade now - go out and grab a copy if you want it. Who cares who else is using it that way? I've entirely given up on Linux arriving on everyone else's desktop.
posted by Joey Buttafoucault at 11:14 AM on March 30, 2016 [16 favorites]


Excellent! A whole new, and huge, population of users to social engineer into running "curl $url | sudo bash"
posted by Xyanthilous P. Harrierstick at 11:14 AM on March 30, 2016 [16 favorites]


This is awesome! I'm really curious what impact it will have on the developer ecosystem. On one hand, sure, you can use all this Linux stuff on Windows, which in the short term might increase W10's viability in some situations. On the other, there's a question of why I would even bother with building a Windows binary at all, when I can just cover two platforms with a Linux binary. Maybe they just shrugged and realized that they'd already lost the battle for non-ui applications anyway.

Will we see a Linux target for MSVS?
posted by phooky at 11:15 AM on March 30, 2016


Computing is starting to feel like that point in time where every single new car on the road started resembling the original Ford Taurus.
posted by srboisvert at 11:16 AM on March 30, 2016 [13 favorites]


So they're trying to make it more like OS X?
For the last 10 years.
posted by i_have_a_computer at 11:21 AM on March 30, 2016 [1 favorite]


I run Windows because Lightroom runs in Windows, and every Linux photo manager is worse. But I miss my Linux userspace, yes I do.

Not sure if it's quite enough to get me to finally give up on my creaking Windows 7 install and upgrade to 10. Probably not. They'll have to tear Windows 7 out of my cold, dead hands.
posted by BungaDunga at 11:22 AM on March 30, 2016 [1 favorite]


Eh, I think cygwin is good enough.
posted by RustyBrooks at 11:23 AM on March 30, 2016


I have literally gone so far as to set up a virtual machine and then network-mounting a drive in order to be able to use bash instead of Powershell without having to switch my whole computer over. Which I'd do, but I've got too many things I want (still most games) and need ( Office and QuickBooks for my day job) that won't work that way. It seems like, if there's something you need that isn't on Linux and doesn't work well with Wine, it's probably something big.

Either I dual-boot and have to reboot to switch tasks, or I keep separate computers, or I have to work out some weird workaround like this, so I am fully in favor of it, and if it turns out to be reasonably stable, this sounds like the thing that'll actually get me on Windows 10.
posted by Sequence at 11:27 AM on March 30, 2016 [2 favorites]


So they're trying to make it more like OS X?

This is pretty much the entire reason dev teams are switching over to macs, in my field at least, and they are doing it en masse, so yes, it makes sense to make it more like OS X.
posted by Artw at 11:39 AM on March 30, 2016 [6 favorites]


Winux?
posted by Greg_Ace at 11:44 AM on March 30, 2016 [2 favorites]


Huh. This is almost as exciting as last month's groundbreaking announcement by Microsoft, announcing the advent of SQL Server on Linux.
posted by Mayor West at 11:49 AM on March 30, 2016 [1 favorite]


Oh wow, I am totally looking forward to using bash instead of CMD.
posted by Pope Guilty at 11:49 AM on March 30, 2016 [1 favorite]


First announcing SQL Server for Linux, now this. Embrace/Extend/Extinguish - hey, the '90s are back!
posted by Slap*Happy at 11:50 AM on March 30, 2016 [3 favorites]


Embrace/Extend/Extinguish

This is more like Embrace/Extend/Incept.
posted by selfnoise at 11:51 AM on March 30, 2016 [4 favorites]


Of COURSE it had to be Ubuntu/Canonical.
posted by destructive cactus at 11:51 AM on March 30, 2016 [1 favorite]


Apropos of my throwaway snide comment upthread:

I used to run Linux on my Thinkpad back when each kernel point update broke either the WiFi driver or ALSA sound. I still look over the state of Linux on laptops once in a while so that I know where my emergency parachute is for the day that Apple announces that OS X is being replaced by iOS on everything. And all our workhorses obviously still run Linux in the most boring flavors - CentOS, mostly.

But I'm really really not sure if this is a good direction for Linux on the desktop. I mean, good for Microsoft, why not offer it to people who want it? But not so good for Linux.
posted by RedOrGreen at 11:53 AM on March 30, 2016 [2 favorites]


the day that Apple announces that OS X is being replaced by iOS on everything

I honestly don't know if I want to live in that world
posted by thelonius at 11:57 AM on March 30, 2016 [7 favorites]


So my all-time favorite software for working with optical drives is k3b, a KDE-based utility which provides a frontend to all the various commandline tools for working with CDs and DVDs. Would I be able to run this straight from Windows using this system?
posted by Pope Guilty at 11:58 AM on March 30, 2016 [2 favorites]


k3b is pretty fucking sweet.
posted by mikelieman at 11:59 AM on March 30, 2016 [2 favorites]


Pope Guilty, from what I've seen, they're not supporting X.
posted by veedubya at 12:00 PM on March 30, 2016 [1 favorite]


zsh forever!
posted by beerperson at 12:04 PM on March 30, 2016 [2 favorites]


Pope Guilty, from what I've seen, they're not supporting X.

Aw. :(
posted by Pope Guilty at 12:06 PM on March 30, 2016 [1 favorite]


IMO the real hard part of this is not the ABI translation but how to provide *nix semantics for things like users & permissions, file locking, mount points & drive letters, process management, module loading, locales & encodings, etc, all of which are fundamentally different on Windows.

For things like grep or gcc I wouldn't expect much trouble, but their examples also include stuff like apt & perl. Does that imply that most packages and scripts will work? That /proc contains a sufficiently unixy view of the world? If they're willing to claim mysql works with this, they'd better be real sure file locking and caching and flushing is working right.
posted by aubilenon at 12:09 PM on March 30, 2016 [7 favorites]


Oh wow, I am totally looking forward to using bash instead of CMD.

You guys are driving me crazy. This is literally what cygwin is - you get bash and pretty much any standard gnu linux thing you want. Go to cygwin.org. It's great and it's been around for at least 10-15 years.

Edit: and it supports X.
posted by RustyBrooks at 12:12 PM on March 30, 2016 [11 favorites]


They mention apache, so we can run services in the background under this? That would certainly simplify things for our dev teams. Currently we have a split between web (all Macs) and applications (all Windows) that makes sharing tools and code really painful. This would go a long way to unifying things for us.
posted by Eddie Mars at 12:14 PM on March 30, 2016


And the bash is a damn sight more modern than the 2007-era relic OS X ships with too
posted by bonaldi at 12:18 PM on March 30, 2016 [1 favorite]


Oh wow, I am totally looking forward to using bash instead of CMD.

You guys are driving me crazy. This is literally what cygwin is - you get bash and pretty much any standard gnu linux thing you want. Go to cygwin.org. It's great and it's been around for at least 10-15 years.


Cygwin is very nice, but it’s hardly a be-all-end-all.
posted by Going To Maine at 12:19 PM on March 30, 2016 [4 favorites]


You guys are driving me crazy. This is literally what cygwin is - you get bash and pretty much any standard gnu linux thing you want. Go to cygwin.org. It's great and it's been around for at least 10-15 years.

It's not literally what cygwin is. Cgywin is a bunch of UNIX utilities compiled from source to run on Windows. This is running bit-for-bit identical Ubuntu ELF binaries on Windows. And as someone who's inherited a large cross-compiler system built on Cygwin and is forced to use it often, I can't say I share your enthusiasm for it - there are lots of corner cases and missing features.
posted by Fidel Cashflow at 12:20 PM on March 30, 2016 [15 favorites]


OK, sure, but
a) this thing announced by MS doesn't even really exist yet, so who knows how good it'll be
b) people are basically saying "oh man finally I can have bash on windows"
posted by RustyBrooks at 12:21 PM on March 30, 2016


When I say "this is what cygwin is" I am responding to people who want to use bash on windows.

P.S. this system will probably work about as well as Wine did 10 years ago, which, well.
posted by RustyBrooks at 12:22 PM on March 30, 2016 [1 favorite]


RustyBrooks: did you read the links? It absolutely exists right now.
posted by destructive cactus at 12:25 PM on March 30, 2016 [3 favorites]


And the bash is a damn sight more modern than the 2007-era relic OS X ships with too

brew install bash; sudo echo "/usr/local/bin/bash" >> /etc/shells

Ok - now, what does this newer, fancier bash get me?
posted by Going To Maine at 12:26 PM on March 30, 2016


Well, it exists as a beta. With caveats. I don't really call that "really existing"
posted by RustyBrooks at 12:33 PM on March 30, 2016


P.S. this system will probably work about as well as Wine did 10 years ago, which, well.

From the article:
Oh, and it's totally shit hot! The sysbench utility is showing nearly equivalent cpu, memory, and io performance.
So it already has near native performance vs Ubuntu userland and a Linux Kernel. WINE was a huge undertaking - reverse engineering the entire Win32 API. Linux has a much smaller, more stable system call layer which is far easier to emulate.

Well, it exists as a beta. With caveats. I don't really call that "really existing"

Hilarious!
posted by Fidel Cashflow at 12:36 PM on March 30, 2016 [2 favorites]


Well, it exists as a beta. With caveats. I don't really call that "really existing"

Debatably, by Linux Standards that’s version 2.0, if not version 3.0.
posted by Going To Maine at 12:36 PM on March 30, 2016 [10 favorites]


If it was by linux standards, I could download it without being a "Windows Insider"

Sorry, I'm grumpy. Have fun with it - I don't see the point of it myself, but clearly someone does.
posted by RustyBrooks at 12:39 PM on March 30, 2016 [1 favorite]


As a developer this is going to be quite nice. As it stands right now I can't even think of doing "real work" in Windows because I'll be missing all the command-line utilities that I use all the time. (You know, on a Mac.)

I've tried (oh, how I've tried) all the alternatives -- Cygwin, git-bash, Mobaxterm, running Linux in a VM -- but they're not terribly viable for various reasons.
posted by neckro23 at 12:39 PM on March 30, 2016 [1 favorite]


Now we have millions of new devs piping the output of curl straight to bash to set up the latest hot tool.

PROGRESS
posted by GuyZero at 12:40 PM on March 30, 2016 [1 favorite]


This, finally, is the year of Linux on the desktop...

Linux, in the guise of Android, has conquered the arena Microsoft desperately wants to be in, which is mobile. Effectively, Linux won, and they did it by becoming the default multi-platform OS. Because it's open source, it's readily adaptable for most purposes. In some form or other it runs on supercomputers, set-top boxes, mobile phones, tablets, and Raspberry Pis, and it didn't need anyone's permission to do it, or one of a limited number of specially-approved, owner-employed developers to do the work to implement it.

>So they're trying to make it more like OS X?
For the last ten years.

Oh, if only. Microsoft's chase has been mobile for the past several years, which has come to mean being more like iOS and Android than OS X, which resulted in the resounding thud of Windows 8 and the annoying dual-nature and locked-off proprietary elements of both Windows 8 and 10. (Here's a fun trick. On Windows 10, look in your Program Files folder for one labeled WindowsApps. If you have trouble finding it it's because it's hidden by default. Try to open it. Enjoy having your computer tell you, its owner, Access Denied.)
posted by JHarris at 12:40 PM on March 30, 2016 [3 favorites]


Sorry, I'm grumpy. Have fun with it - I don't see the point of it myself, but clearly someone does.

Cygwin does not have apt-get or any sane package manager. Every time you want to update a package you have to re-run the installer. It is insane! With this I can use apt-get like a normal person.
posted by Fidel Cashflow at 12:42 PM on March 30, 2016 [11 favorites]


Windows 7 may be my last personally used version of Windows, assuming someone finally fixes the still highly unstable audio stack at least for Ubuntu, if not for Linux in general so I can DJ and produce music in Linux in a live production environment.

I've found myself using a certain Ubuntu distro more and more on my dualbooted netbook just for the speed, stability and increased security.

The audio stuff is the last missing piece in my toolkit to be able to switch to Linux full time. There are F/OSS solutions for everything else I need to do with stuff like Inkscape and LibreOffice maturing nicely.
posted by loquacious at 12:42 PM on March 30, 2016 [1 favorite]


Well, I dunno what to say about that. I manage several projects that compile on linux, osx and windows. I use cygwin on the windows side, and I have had very few problems. I can compile with cygwin as a target, or as a native windows app. I use the same makefile for all the projects (with a few sections to set up compiler flags based on OS)

It is true that I don't like cygwin's package manager. It was about the same as all the other ones 10+ years ago but now it's sadly behind.
posted by RustyBrooks at 12:43 PM on March 30, 2016


It's a Unix System. I know This!
posted by zachlipton at 12:48 PM on March 30, 2016 [6 favorites]


The audio stuff is the last missing piece in my toolkit to be able to switch to Linux full time.

I feel that it'll always be 'not quite perfect' because it's so easy to just buy a mac and 'it just works' ( as opposed to getting an optimized linux box ready for real production work... )

It's do-able, but there are other things on my to-do list.
posted by mikelieman at 12:48 PM on March 30, 2016


Cats and dogs sleeping together, it'll be anarchy
posted by Tad Naff at 12:50 PM on March 30, 2016


smells like desperation on MS's part with regard to win10 adoption rates
posted by Fupped Duck at 12:58 PM on March 30, 2016


To be honest, it's been awhile, but every time I think, "It's been awhile, I should try Cygwin again," something breaks in the process that makes it not work 100% the way I expect it to work... or the whole thing just doesn't work at all. I have seen more recent stuff that purports to improve the package management problem with Cygwin, which is a big step forward, and might be worth another shot. (But I haven't tried it yet, so I'm not endorsing this.) It remains to be seen whether, for example, this new thing works any better with antivirus software than Cygwin has in the past, so I'm not going to say I know it's an improvement. But I am either very unlucky or Cygwin's had some real problems over the years.

The headless VM thing is not actually the worst solution I've ever come up with. Every now and then something has weird issues because it thinks I'm using two separate computers--like Sublime Text doesn't see that files have changed. And occasionally, Windows networking being what it is, apparently, it likes to just forget it's connected. But I've been managing that way for awhile.
posted by Sequence at 1:00 PM on March 30, 2016 [1 favorite]


smells like desperation on MS's part with regard to win10 adoption rates

You mean the adoption rate that's way higher than any other Microsoft operating system? The free upgrades + nag screens + forced upgrades probably helped quite a bit, and way more than this niche product.
posted by demiurge at 1:05 PM on March 30, 2016


  Ok - now, what does this newer, fancier bash get me?

… a shell installed with user privileges, so a larger footprint for insecurity?
posted by scruss at 1:07 PM on March 30, 2016 [3 favorites]


Yeah I don't think ubuntu support is the draw you might be imagining.
posted by RustyBrooks at 1:07 PM on March 30, 2016 [1 favorite]


I don't know about consumer adoption but Win7 is still pretty much the developer standard. Win7 with bash would probably be my ideal dev box.
posted by Artw at 1:17 PM on March 30, 2016 [1 favorite]


And nthing Cygwin getting you mostly but not all of the way there.
posted by Artw at 1:18 PM on March 30, 2016


I don't think all the developers who want ubuntu on windows are going to move the needle on windows 10 adoption at all. The number of non-developer users just completely dwarfs devs.
posted by RustyBrooks at 1:20 PM on March 30, 2016 [1 favorite]


I don't think all the developers who want ubuntu on windows are going to move the needle on windows 10 adoption at all. The number of non-developer users just completely dwarfs devs.

Certainly, but if developers don't want to use your platform, it has a major impact on the quality and quantity of the software developed for your platform.
posted by zachlipton at 1:34 PM on March 30, 2016 [1 favorite]


Why is this so much better than putty to your Ubuntu box and fiddling with your remotely mounted Windows filesystem?

Because when Rome is burning you will be fiddling.
posted by srboisvert at 1:34 PM on March 30, 2016


It's definitely nicer than a 2nd box. I think what it has to compete against is more like "docker running ubuntu" than "a 2nd computer". I run ubuntu on a docker image and I have 2 or 3 of those going at all times.
posted by RustyBrooks at 1:38 PM on March 30, 2016 [1 favorite]


The value I see isn't so much to end users (even developers as users), but as an option to consider when you want to port some big existing Linux-only software. There are some very large codebases, especially interdependent systems of libraries etc. that would be a huge pain to modify to build on Windows with Windows compilers and Windows system libraries, test, re-package to deploy/install on Windows, and test, one by one, but might have some chance of working with this.
posted by thefool at 2:00 PM on March 30, 2016


I could download it without being a "Windows Insider"

You basically just need to go to a website and sign up. I did it, and I don't remember that I gave away any kind of information that might come back to haunt me later. Of course, you probably need a "Microsoft account", so that might be a sticking point if you're morally opposed to that.

I think I might get one email a month for being an "Insider" so the spam rate is pretty low.

Disclosures: I am a Microsoft employee. Also, I know better than to install a "beta" operating system, though it sometimes feels like we're in perpetual beta with Windows 10...
posted by Slothrup at 2:13 PM on March 30, 2016


This is timely. My experiences with Apple's system software have been ominous for the last few years. OS X has never been perfect, but it was for a long time the sweet spot of an easy UNIX workstation with a large number of commercially available apps, and for a long time it just seemed to steadily get better.

But Snow Leopard was the last release that was categorically better than earlier releases. And in my opinion, Snow Leopard is also categorically better than all the subsequent releases. I can't think of a single compelling feature that's been added. There have been a number of feature fiascos (Duplicate vs Save As comes to mind). Stability is down. Sleep/Wake and WiFi issues are up. I literally do not know a single person who used Yosemite that also didn't have issues with it (I hear they're out there, but I didn't have their acquaintance). El Capitan was sold as the new Snow Leopard but it's obvious that whatever effort they put into making it a stability/performance release they didn't get back up to the high water mark.

My theory is that Apple just fundamentally doesn't *really* care about "trucks"/workstations anymore. They've always had a consumer bent, of course, but I think there once was some core of Apple's spirit that was remained about computing, and I suspect that has been lost. Either that or some key talent and perspective has been lost at the levels where system software is being managed (and that might also explain things like the recent iOS 9.3 broken links bug).

Now, look at this! Microsoft is now making something that sure resembles the sweet spot of an easy UNIX workstation with a large number of available commercial apps.

I'm sure Apple's market here is to some degree sticky. I'm not tossing the MacBookPro I'm typing this on anytime soon. But my next hardware purchase? It's going to be something running Windows 10 so I can check this out, and if it's good enough, it may well be the end of a near 20 year streak of buying nothing but Apple hardware for me.
posted by wildblueyonder at 2:27 PM on March 30, 2016 [6 favorites]


Node? Ha, forget it.

I run node on windows, including installing npm packages that build through gyp, all the time without any issues.
posted by Pyry at 2:34 PM on March 30, 2016 [2 favorites]


Apropos of nothing, systemd's vision for how we should handle package management is a fascinating and compelling read.

While much of the vision was oriented around running Linux in containers (and basically declaring that the entire userspace should be a composition of containers), this concept fits really nicely with the idea of running Linux applications inside of another OS.
posted by schmod at 2:48 PM on March 30, 2016


The quality of key software like Windows and OS X is in a worrying trend of late. I can understand the complaints about OS X, but when Microsoft fires a substantial part of their QA staff and hopes to make up the missing testing with a combination of developer testing and crowd-sourced bug reporting via the insider program, it's not giving me much confidence in their future. I agree with Slothrup about how Win10 feels like a perpetual beta, even for someone like me on the slow business ring.

But the grass is always greener, etc. Thinking about a Macbook or a very Linux compatible laptop for my next purchase because not only is Win10 in perpetual beta, but Microsoft has decided to be obnoxious and pushy about it at every turn. I'm kinda willing to put up with OS X's bugs and annoyances simply because Apple will usually leave me alone if that's my preference. I know Apple's at least partially given up on general purpose computing, but Microsoft is giving every indication they would love to give up too if they could. At least with Apple or Linux there's some hope of privacy.
posted by honestcoyote at 2:48 PM on March 30, 2016 [2 favorites]


smells like desperation on MS's part with regard to win10 adoption rates

The percentage of users that care about this is a small fraction of a percent. It's not going to move the needle very much on the Windows 10 adoption rate. But it does play to developers and might stem the tide of them turning to OS X a little, as well as helps keep the platform closer to simulating a typical cloud environment, which is an arena Microsoft wants to be big in.
posted by Candleman at 2:54 PM on March 30, 2016 [1 favorite]


My experience with node has been pretty good but like a lot of things you run into the odd peice of example code that assumes BASH, doesn't tell you that, and then leaves you scratching your head when it doesn't work.
posted by Artw at 3:02 PM on March 30, 2016


I'm not tossing the MacBookPro I'm typing this on anytime soon. But my next hardware purchase? It's going to be something running Windows 10 so I can check this out, and if it's good enough, it may well be the end of a near 20 year streak of buying nothing but Apple hardware for me.
LOL.

Seriously, though, if you're super interested in stability and logic in your system, the idea that you'd decamp from OSX, after 20 years of Apple, to Windows 10 strikes me as almost nonsensical without even mentioning the hardware differences, or the privacy implications of Win10's apparently impossible-to-disable home-phoning behavior.

Also, I've been generally pleased with El Capitan. It might not be as rock solid stable as some-idealized-point-of-the-past, but the difference is months of uptime vs. weeks, so it's not like it's a big deal. (And I'm not easy on a system -- lots of VMs, lots of other weird behavior.)

Snow Leopard was a long time ago. Mail has gotten consistently better with every release, which is reason enough to keep up. If I'm reading things right, support for gestures wasn't even added until Lion, so you'd be missing those, too. Plus, that far back you'd be stuck in skeumorph land in the UI. Ugh!

All that said, I'm excited about the prospect of Win10 getting slightly less stupid w/r/t command line and Unixy bits. They should've done this YEARS ago instead of pouring resources into PowerShell.
posted by uberchet at 3:22 PM on March 30, 2016 [1 favorite]


> Will we see a Linux target for MSVS?

Not only has that been true since the middle of last year, but Visual Studio itself is also available on Linux.

As far as X on Windows, there's Xming, but I've been off Windows long enough I can't say much other than it exists. There are a few others around, not necessarily free.

Cygwin's doofy installer was yearning to be cleaned up and productized, but any developer with that itch to scratch ended up moving to boot Linux directly and promptly forgot about Cygwin. I sure did.

I'm sure there's a build of iOS on Mac hiding in a basement in Cupertino, just like I'm sure this has existed for quite a while, but the decision to turn it into a product is a recent one. iOS and OS X are much closer together, sharing the same Darwin base. (Certainly closer than Desktop Linux and Android, anyway.)

Wherever this ends up, Nadella's NuMicrosoft is certainly something to keep an eye on!
posted by fragmede at 3:23 PM on March 30, 2016 [1 favorite]


I absolutely agree that MSFT is headed in a better direction under Nadella. I'm sorry Ballmer held on so long, and couldn't see the light while he did. Lots of smart people work there; by rights, they should be creating cool shit. That they didn't for so long is a huge indictment of pre-Nadella senior management.

I'm super skeptical that we'll ever see Apple abandon true OSX for iOS. People trot this out as something happening "real soon" every so often, but I'm really not convinced.

What IS absolutely happening is that increasingly capable mobile devices like iPads are eating up a bigger portion of what used to be the computer market. That is in some ways similar, because it means that a full desktop experience is less important to Apple (and presumably MSFT) than it used to be, butt it's not the same as iOS replacing OSX.

That'd be the reverse of the mistake that MSFT has been making, actually -- I'm pretty sure we all want a different experience on mobile than we do on a laptop or desktop, and shoehorning both into a single OS (as MSFT has been doing) ends up creating a really unloved half-monkey, half-pony monster.
posted by uberchet at 3:34 PM on March 30, 2016


I'm going to make a prediction and say that microsoft is going to kill this, or gimp it, or something to stop the unanimous adoption of just scripting and generally setting everything up the linux way on windows.

Someone high enough up to do so, who knows just enough about this to get The Implication will go "but but... then whats to stop them from converting all the servers to linux if everything slowly gets rewritten/transitioned to existing linux-y stuff this way?" and off it will go to the great google reader in the sky.

I'd love to be proven wrong, but...

(and i say this as someone who knows multiple people who work there, who have had their Cool Things they were in some way working on or with killed. Or their friends cool things)
posted by emptythought at 3:36 PM on March 30, 2016 [1 favorite]


brew install bash; sudo echo "/usr/local/bin/bash" >> /etc/shells

Ok - now, what does this newer, fancier bash get me?
The shell sets up fd redirects before forking, so if you had actually run this it would've failed with a permission denied on /etc/shells :)
posted by invitapriore at 3:37 PM on March 30, 2016 [3 favorites]


Endless Summer II
posted by Fupped Duck at 3:38 PM on March 30, 2016


As long as I can load TinyXP into QEMU to do the things I absolutely can't do without Windows, I'm fine here in linuxland.

I'm pretty sure we all want a different experience on mobile than we do on a laptop or desktop,

I dunno - all my relevant bash scripts work fine on bog-standard AOSP, which could be due to the simplicity of my scripts, the generic-ness of AOSP, or the beauty that is Busybox, or a combination of some, or all, of the above.
posted by eclectist at 3:40 PM on March 30, 2016


Someone high enough up to do so, who knows just enough about this to get The Implication will go "but but... then whats to stop them from converting all the servers to linux if everything slowly gets rewritten/transitioned to existing linux-y stuff this way?" and off it will go to the great google reader in the sky.

Windows already has a pretty low market share for servers, and a decent portion of the Windows servers out there are supporting Windows enterprise stuff like Active Directory and friends. Microsoft doesn't seem to care very much that more of the server market could jump ship, since they announced SQL Server on Linux a couple weeks ago.

It's certainly possible that some of the old Microsoft is still around and they'll use this to sell enterprises on converting Linux servers to Windows by spreading FUD.
posted by zachlipton at 3:48 PM on March 30, 2016 [1 favorite]


I'm going to make a prediction and say that microsoft is going to kill this,

I'd be willing to bet folding money that they won't, and this is why: The server room is generally heterogeneous, but Windows servers are still beloved by CIOs. Microsoft SYSTEMS running on those servers are still a huge part of the corporate landscape, and will remain so until it all goes to SaaS offerings ("the cloud"). Making a nerd's desktop experience a little bit better with a feature like this (a) improves nerd cred for Windows, which is sorely lacking and (b) might keep some folks from decamping to OSX or Linux if all they really needed was the ability to run $favorite_thing.

It's a savvier move to let it live, IMO. And I'll bet the Neu-MSFT management will see it that way, too. (Plus, it's cool.)

Eclectist, I don't know what you're saying re: mobile vs. laptop and your scripts. Can you flesh that out?

I'm a huge tinkerer on my actual computer, but all I really want out of a mobile device is "it just works, all the time." I don't really every want to be in a place where I have to sysadmin my phone. That would've been attractive to me at one point, but definitely not now.
posted by uberchet at 3:49 PM on March 30, 2016 [3 favorites]


I've been generally pleased with El Capitan. It might not be as rock solid stable as some-idealized-point-of-the-past

I'd leave this alone except for that word "idealized." It implies that in my lauding of Snow Leopard I'm recalling the past in some limited and perhaps overgenerous manner.

So I'll say this: I currently have two MacBook Pros. One of them is an older Core Duo machine and is right now still running Snow Leopard. The other one has an i7, more RAM, and better video hardware, and is running El Cap.

I don't have to reach into the past, idealized or not, to make a comparison. And the machine running Snow Leopard is more responsive and stable.

the idea that you'd decamp from OSX, after 20 years of Apple, to Windows 10 strikes me as almost nonsensical

I wouldn't have believed it either. I've used Windows plenty in that 20 years, I'm no stranger to its stability problems, and I'm aware Windows 10 is a recent product with its own issues.

But here we are. Apple is dropping the ball and showing signs of a downward apathetic trend lasting at least a half decade. Microsoft has always been uneven and every-other-release-sucks and big-releases-suck-early, but their game sure looks up, and some stability issues can be escaped by focusing on a narrower set of available hardware.

So, yeah. I'm gonna give them a shot. I'd do it out of sheer curiousity, but now I also have the reason that it sure looks like Microsoft actually cares more than Apple does.
posted by wildblueyonder at 3:53 PM on March 30, 2016 [2 favorites]


You do you, man. I can't imagine it, given that I have to interact with Windows pretty often for work. Nothing about it makes sense. I can't get anything done quickly, and it's not for lack of knowledge. Shit just takes longer with Windows.

Maybe SL is fine if you don't care about anything Apple added or changed in the last 6 years, which to me is nearly as bizarre as considering "always calling Redmond" Win 10 as a next platform. Mail.app alone would drive me to a modern OSX, to say nothing of the interface improvements or other systemic enhancements. Or Gestures!

I can't imagine a 2009 box running Snow Leopard would be more responsive than my 2015 MBP on El Cap, because I basically never have to wait for this system to do anything.

All that said, yeah, I found Yosemite to be less-great than prior releases, but pretty much everything I had to complain about went away in El Cap. But, obviously & again, you do you. I'm just confused by the level of "oh, they suck now!" I see leveled at Apple from some quarters, because I just don't see it. Like, at all. Maybe I have to reboot a little more often now than I did a few years ago, but my uptime is still generally measured in weeks; like as not, it's some update I have to apply that forces the issue, not a crash.

That's absolutely not true of my Windows systems.
posted by uberchet at 4:03 PM on March 30, 2016 [1 favorite]


RustyBrooks: Yeah I don't think ubuntu support is the draw you might be imagining.

For "consumers" (oh how I hate that term in this context) probably not. But certainly for developers, which Microsoft has been losing enthusiasm from for years now.

fragmede: Not only has that been true since the middle of last year, but Visual Studio itself is also available on Linux.

Not really. Visual Studio Code is available on Windows, OSX, and Linux. But this isn't actually Visual Studio so much as it is an Atom-based editor/light IDE. It's a very nice editor (and I, a hard-core Linux geek, use it myself) but it's not the same thing as Visual Studio. Not the same code base, nowhere near the same features.

Also, it was really hard not to say "developers, developers, developers, developers" up above.
posted by fader at 4:13 PM on March 30, 2016 [4 favorites]


It's still weird seeing something of that name under Linux though. Unthinkable not long ago.
posted by Artw at 4:30 PM on March 30, 2016 [1 favorite]


"Nothing about it makes sense. I can't get anything done quickly, and it's not for lack of knowledge. Shit just takes longer with Windows."

For you.
posted by markr at 4:38 PM on March 30, 2016 [2 favorites]


Well, yes, exactly markr, because that's what I was talking about, and I think it's pretty clear from the context.

fader, re: "Visual Studio Code" and "Visual Studio," one "old MSFT" tendency that I'd love to see them lose is the idea that it's okay to name different products the same thing for, I guess, marketing reasons. It's really goofy.
posted by uberchet at 4:40 PM on March 30, 2016 [2 favorites]


They should have called it elements, or homesite.
posted by Artw at 4:46 PM on March 30, 2016 [4 favorites]


brew install bash; sudo echo "/usr/local/bin/bash" >> /etc/shells.
-bash: brew: command not found
Oh that's right, there's no package manager either.

Mail.app alone would drive me to a modern OSX
Really? Mail has been a shitshow since 10.7. It has shedded pro features (including a lot of plain-text support) at the expense of junk like stationary and MailDrop, and still, after 5 versions, can't do Exchange sync right.

Honestly, there is literally only one thing that got me off of 10.6, and it's the same thing that sent me back to the Mac after flirting with a Surface this year: iMessage. Damn their sneaky locking-in eyes.
posted by bonaldi at 5:46 PM on March 30, 2016 [2 favorites]


I was remarking that some of us do want a somewhat similar experience on our mobile as on our smartphone - when I ssh into my phone, I want my scripts to work, and they do, which is a far cry from being sysadmin of my phone. It was largely a tangent to the actual discussion, to wit: Bash on Windows? Sure, why not.
posted by eclectist at 5:51 PM on March 30, 2016


brew install bash; sudo echo "/usr/local/bin/bash" >> /etc/shells.
-bash: brew: command not found
Oh that's right, there's no package manager either.

Not provided by Apple, no. It's a reasonable burn. But brew works pretty darn well, and -to be a bit glib- if you haven’t installed it, you’re probably not going to care about bash being a tad outdated.
posted by Going To Maine at 5:56 PM on March 30, 2016 [1 favorite]


But brew works pretty darn well, and -to be a bit glib- if you haven’t installed it, you’re probably not going to care about bash being a tad outdated.

Agreed, but my target here is Apple, which should at least have the decency to be faintly embarrassed that Microsoft is on course to have more modern Unix support than OS X, which is a Unix.
posted by bonaldi at 6:06 PM on March 30, 2016


D'oh - on our laptop as on our smartphone.
posted by eclectist at 6:14 PM on March 30, 2016


One of the things that I hated most about working on the command line in Windows was the shit console. All the third party consoles that try to make things better are ultimately ugly hacks. Has that been fixed in Win10? Or are they going to roll out a proper terminal along with this subsystem?
posted by destrius at 7:14 PM on March 30, 2016 [1 favorite]


Terminal in Win10 has indeed been majorly overhauled.
posted by Artw at 7:29 PM on March 30, 2016


Just how many of these announcements are going to be retracted on Friday though?
posted by ocschwar at 7:30 PM on March 30, 2016


"How bad is the Windows command line really?" Alex Clemmer on the Windows Batch language, which this replaces. Shades of James Mickens.

As a free and open source software developer and advocate I am very happy about the new upcoming availability of bash to Windows users. This move will make it easier for Windows users to install and use a ton of the tools that will help them learn, play, explore, and potentially join various FLOSS communities. It'll be easier for them to install all the little scripts and hooks and plug-ins that currently have poor Windows support, e.g., not just Git but git-review. It'll be easier for people on other platforms to teach and gossip with them, instead of going "uh, Windows? I dunno" and leaving them hanging. And an aggravating barrier keeping Windows power users from using and giving back to the larger FLOSS community will dissolve. Which is good; we need all the perspectives we can get.
posted by brainwane at 7:36 PM on March 30, 2016 [1 favorite]


Well, this is interesting. IANADev; I basically live in my browser but with various excursions into the OS to do odd things, generally of a radio or networky nature. For the past few years, I've had Ubuntu as my base platform and run Windows in a VM; that's been reversed for the past four months because reasons.

It's not been nice. Win 10 is less stable and gets in my face far more than Ubuntu, and as soon as I can I'll be moving back to Linux. Even if this latest move means I can move a Linuxian-like user space onto a Windows base, I have little confidence that the basic nature of Windows won't poison the whole experience.

If I was a dev in an enterprisey heterogenous environment,I can see a lot of exciting things might open up through this, especially if i were already ninja-level adept at dealing with the sort of annoying cruft thrown up by Windows and Linux. But I'm not, and will be moving Windows back into its own little fume cupboard/glove box just as soon as I can.
posted by Devonian at 7:37 PM on March 30, 2016 [1 favorite]


(Here's a fun trick. On Windows 10, look in your Program Files folder for one labeled WindowsApps. If you have trouble finding it it's because it's hidden by default. Try to open it. Enjoy having your computer tell you, its owner, Access Denied.)

Here's a fun question... will the new bash-on-Windows do what bash-on-Linux can do from mounting the Windows partition, but from inside Windows? Because, if so, I'd expect to be given access to that directory within bash-on-Windows the same way I have access to that directory from mounting it in Linux:

/mnt/Program Files/WindowsApps$ ls | wc -l
115

That problem may be solved.

For the sake of discussion, this is to say, how much of Windows' bash will inherit/emulate Windows permissions? Will full Unix-style positions be able to be set (I'm thinking not just standard chmod/chown, but also ACLs with setfacl, maybe even SELinux contexts) that can carry over into the files in Win32land?
posted by notnamed at 7:48 PM on March 30, 2016


This is the natural consequence of https://www.devever.net/~hl/windowsdefeat

As a developer of a cross-platform program that has 200 ifdefs to support windows (poorly), I am very much looking forward to removing all of those just shipping a linux ELF binary. Since the whole program interface is in the web browser, this should be doable.

Hopefully I'll be able to test my ELF binary on windows and it will work ok, then I'll add some hack to get it to start as a daemon on login, and then never, ever use Windows again.
posted by joeyh at 7:53 PM on March 30, 2016 [1 favorite]


I read about this earlier today and had many thoughts. I wasn't able to comment until now, so apologies if I'm rehashing stuff.

Here are my thoughts as a long-time *nix guy who's used both Linux and Cygwin on Windows extensively:

Firstly, as cool hacks go, this is extremely cool. It's really clever.

But, that being said, I don't actually see much use for it. Right now, if you're stuck with Windows and want a Unix-ish environment, you have two choices: Cygwin* or a VM.

Cygwin, as you know Bob, is a DLL that emulates Unix-ish system calls, allowing all of the free *nix utilities (basically, the Linux runtime) to be compiled against it and run in Windows in a Unixy way. Cygwin programs are just Windows programs using that DLL and Cygwin files are just Windows files.

This has certain advantages in that you can still visit Windowsland easily enough. Cygwin programs can launch Windows programs, for example. Also, Cygwin translates (imperfectly) between Unix- and windows-isms so that (for example) you can open 'C:\Users\Guest\PornList.txt' and the Cygwin app will get /cygpath/c/Users/Guest/PornList.txt as God intended.

Of course, Windows apps don't do the same translation so scripting them becomes... interesting. And some idiot in Redmond decided to put spaces in various system paths, just to add to the fun. Still, it's possible with moderate hacking and cursing to get a tolerable working environment on Windows with Cygwin.

The alternative--Linux** in a VM--is a lot nicer, in that it's a genuine Linux environment without needing to adapt to the host OS. And the VM lets you do a number of useful things, like pause the Linux system while you reboot the Windows host and then resume it afterward. Or take snapshats or copy the Linux VM to a different computer. Plus, you're somewhat insulated from whatever stupid thing your Windows system has decided it wants to do now.

You still have access to the Windows hosts's disks, so you can manipulate files in various ways. However, you can't really do much else with the host computer. This is fine if you can do your work in Linuxland but becomes a problem if you need to control Windows programs as well.

So this thing.

It's going to be really limited in how it can interact with the Windows host. Cygwin is just a kernel API and the programs written for it usually have some level of Cygwin awareness, so it can take liberties. Ubuntu on Windows needs to support binaries, which means it's way more restricted. I strongly doubt that you'll be able to do anything to Windows from the Unix side other than modify files.

Which means that it limits you to the capabilities of a VM without any of the advantages of a VM.

So it's the worst of both worlds.

But it is a cool hack, and it shows a high degree of tolerance toward Linux and open-source from MS, so that's a good sign.

* Yes, there's also mingw and the like. They all use the Cygwin DLL under the hood.

** Or your preferred other Unix-like OS.
posted by suetanvil at 7:55 PM on March 30, 2016 [2 favorites]


suetanvil, seems they could make exec("/mnt/c/path/to/some.exe") in the linux abi translate to the windows syscall to run such a program.

(Differences in file locking, permissions, etc is really a lot nastier than just running a program, and they certianly need to deal with all of that stuff.)
posted by joeyh at 8:02 PM on March 30, 2016


Hello! I can't help but notice that you're discussing Windows, and I’d just like to interject for a moment. What you’re referring to as “Windows," is in fact, GNU/Windows, or as I’ve recently taken to calling it, GNU plus Windows. Windows is not an operating system unto itself, but rather another 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.

Whether you use GNU/Windows or not, please don't confuse the public by using the name “Windows” ambiguously. Windows is the kernel, one of the essential major components of the system. The system as a whole is basically the GNU system, with Windows added. When you're talking about this combination, please call it “GNU/Windows”.
posted by ecmendenhall at 8:12 PM on March 30, 2016 [27 favorites]


Which means that it limits you to the capabilities of a VM without any of the advantages of a VM.

You shouldn't underestimate the value of convenience. A VM is basically a whole other computer that you have to keep up to date, and even if your VM boots in ten seconds, that's just a tiny bit of extra friction that being able to directly run linux binaries does away with.
posted by Pyry at 8:41 PM on March 30, 2016 [1 favorite]


suetanvil, seems they could make exec("/mnt/c/path/to/some.exe") in the linux abi translate to the windows syscall to run such a program.

Er, maybe?

I mean, they could do it but what would the parent process see? How would it show up in the Linux process table? What happens when the Unix parent process exits? How does init deal with it?

I'm not saying it's impossible to get right (I'm not smart enough right now to say that) but they would need to be able to fool native Linux programs and that looks really, really difficult. Cygwin has a subset of these problems but it still isn't that great. This is a much harder problem and I'm dubious that they can do better.

The best approach (IMO) is to just work on making Cygwin better integrated with Windows. It already solves the same problem and it's easier to make better.
posted by suetanvil at 8:49 PM on March 30, 2016


...and even if your VM boots in ten seconds, that's just a tiny bit of extra friction that being able to directly run linux binaries does away with.

I just leave my VM running all day. Switching to it is just an alt-tab away.

(Also, I save the state to disk at night so that if IT decides to remotely reboot the host PC, I still have all of my programs running on the VM the next day when I come in. In terms of convenience, that's huge.)
posted by suetanvil at 8:58 PM on March 30, 2016


exec doesn't start a child process. So, none of that complication need exist.

Just have exec start a windows process, leave the linux process blocked until the windows process exits, and then translate the exit code of the windows process. (Maybe also do some signal transfer between the linux and windows process so ctrl-c kills it etc.)
posted by joeyh at 8:59 PM on March 30, 2016 [1 favorite]


I just leave my VM running all day. Switching to it is just an alt-tab away.

I think this is targeted more at developers who might only occasionally need/want to run linux programs and don't have VMs always running just in case.
posted by Pyry at 9:14 PM on March 30, 2016 [1 favorite]


> For the sake of discussion, this is to say, how much of Windows' bash will inherit/emulate Windows permissions? Will full Unix-style positions be able to be set (I'm thinking not just standard chmod/chown, but also ACLs with setfacl, maybe even SELinux contexts) that can carry over into the files in Win32land?

I can't tell how much you already know, but NTFS has a bewilderingly rich set of permission, like "Write extended attributes", and you can set ACLs with the icacls command. I think NTFS's permissions might be even more granular than Unix's, but I also think the two systems are not compatible with each other, so god knows how they could interoperate.

(You have to really dig into the File Properties dialog to use NTFS's advanced permissions, so I think most people don't know/bother with them.)
posted by benito.strauss at 9:16 PM on March 30, 2016 [2 favorites]


I'm looking forward to being able to help windows users a little easier when trying to teach them how to program.
posted by bleary at 9:29 PM on March 30, 2016


I think NTFS's permissions might be even more granular than Unix's, but I also think the two systems are not compatible with each other, so god knows how they could interoperate.

In terms of filesystem semantics I would think that the result would be similar to running linux on a samba mount. Most regular applications don't care about the security model; they try to do something, and either it works or they tell the user strerror(errno). For that sort of use just translating ERROR_ACCESS_DENIED into EACCES is plenty good enough. The problem is with programs that actually try to manage permissions themselves, which is one of the big things that surprises me about apt being on that list. But most things should be fine, as long as they don't really need to do certain things (e.g., unlinking or renaming open files; so maybe log rotation?).
posted by aubilenon at 1:16 PM on March 31, 2016


okay, i'm really dumb, simple question: the ubuntu half of my computer died, and the windows 7 bit is left (i could upgrade but didn't). I can't see my ubuntu documents, except using a Ubuntu live CD (knoppix didn't work, lubuntu didn't work, no idea why, usb stick didn't either). Could i open them, delete them, access them etc with this? (I have a dual boot config on one laptop. Very old laptop. Problem is extreme old age (it's 100 in laptop years, which is about 5 in human ones). My other problem seems to be administrator privileges, which is why i guess this wouldn't work, but ignoring that, could i delete stuff? To make it work again? Thanks.)
posted by maiamaia at 2:13 PM on March 31, 2016


Maybe! But you should try one of these programs first.
posted by BungaDunga at 2:47 PM on March 31, 2016 [1 favorite]


Does this only work on a fresh install and not an upgrade to 10?
posted by xtian at 3:33 AM on April 1, 2016


Will this mean native Ext2/3/4 support on Windows??
posted by JHarris at 9:07 AM on April 2, 2016 [1 favorite]


I used to faff around with CoLinux until I switched to 64bit Windows. This sounds similar.
posted by conic at 11:03 AM on April 2, 2016


Why Microsoft needed to make Windows run Linux software <---- I don't particularly agree with the assertion that Windows will become the default development platform, but this article provides pretty good context for this decision.
posted by The Devil Tesla at 8:49 AM on April 6, 2016 [1 favorite]


« Older Close Enough for Government Work   |   Rethinking Mental Illness in Honor of World... Newer »


This thread has been archived and is closed to new comments