55 ms·
Ubuntu on Windows
- dukoid 11y ago1. embrace
- gvb 11y ago1. Embrace is good. 2. Extend can be good if done openly and collaboratively, as opposed to closed and hidden. 3. Extinguish - Here be dragons. I'm hopeful the New Kinder Gentler Microsoft stays on steps 1. and 2. (done collaboratively).
- Grishnakh 11y agoThe definition of insanity is doing the same thing and expecting a different result. Microsoft has been trying to extinguish their competition for decades now; what makes you think they're going to be different this time?
- deleted 11y ago[deleted]
- orf 11y agoAnd what makes you think they will do the same? Fact is you have no idea, and all signs point to a more open MS that has learned that simply throwing their weight around won't work anymore.
- Grishnakh 11y ago>And what makes you think they will do the same? Decades of history, and their own self-interest. >Fact is you have no idea Sure I do. They've acted this way for decades, under various different management. To think they're suddenly going to become some nice, ethical company is sheer lunacy. >and all signs point to a more open MS that has learned that simply throwing their weight around won't work anymore. What signs? I haven't seen any. They've done stuff just like this before, and it always turned out badly.
- dohboy 11y agoYou clearly don't work with Microsoft on a daily basis in a enterprise setup... I'll fill you in. The new lock-in is Office 365 with Intune/SCCM and Azure. We are in the extinct phase of having better management options in Intune for Office and surrounding technologies and enterprise IT will see this as an advantage over choosing another MDM/MAM vendor. Step one done for still controlling productivity apps and device management. Now it's getting developer mindshare and focus back on the Windows ecosystem. Pretty easy in enterprise as we just did a lock-in with Office 365/Intune. They still throw their weight around and their key/technical account managers must have missed the memo saying to be more open for other vendors/partners. So they may look nice but don't make the mistake of thinking there isn't a plan behind.
- hythloday 11y agoThat's also the definition of "getting better".
- Paradigma11 11y agoBecause they changed their position and direction. This was a necessary, rational and defendable choice and not some hollow marketing gag. The company would be worse off if they do not stick to this direction and start backstabbing. It is bad enough that companies are legal persons, let's not anthropomorphize them even more into irrational evil villains that hold grudges.
- Fice 11y agoThere is no "New Kinder Gentler Microsoft". Corporations just do what they see as more profitable. They do not make decisions based on morality per se, but they try to maintain a certain public image when it helps profits.
- deleted 11y ago[deleted]
- zymhan 11y ago"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"." I find it amazing that you can have such a functional Ubuntu environment by translating system calls. Microsoft does have the advantage of Linux being open-source I suppose, while the Wine project had to reverse engineer DLLs. Or have you supply them on your own.
- grandalf 11y agoIndeed. Perhaps it will increasingly make sense to design software for Linux and then run it on windows via this method. Over time the Windows system calls that are not needed by the linux overlay can be phased out.
- UK-AL 11y agoWindows NT had a POSIX subsystem awhile ago, not sure what happened to it. The NT Kernel was designed to have different personalities like Win32, OS/2, POSIX, etc It could be an updated version.
- tonymillion 11y agoI came here to make the same comment. Its ironic (old)microsoft exerted so much effort to put the personalities in place (OS/2, posix etc), then (mid)microsoft systematically destroyed that work under Balmer, and now (new)microsoft are reimplementing the same thing under a (seemingly) completely different system.
- akiselev 11y agoTo be fair, this new implementation is very completely different. If we had the same kind of experience with virtualization and hardware with VT-i/x/d or AMD-V when Microsoft was developing personalities, the chips would have landed very differently.
- vram22 11y ago>Windows NT had a POSIX subsystem awhile ago, not sure what happened to it. I was interested in that too, since I write Unix utilities and it is sometimes useful to have them work on Windows as well. I've done that (checked that it worked on Windows) with a few utilities in the past (written in C), that did not use any very Unix specific features that were not present on Windows. And remember reading around that time that Windows (I think it was from NT onwards) had a POSIX subsystem. Then more recently, as in, a few months ago, I wanted to check that out again, and did. IIRC I read (maybe on a Wikipedia page) that the POSIX subsystem is not present in Windows any more.
- xaduha 11y ago> Windows 10 users > Can open the Windows Start menu > And type "bash" [enter] > Which opens a cmd.exe console Right... Bash is a shell, but your interaction with it is controlled by a terminal program. Unless there are some real changes to cmd.exe t̶h̶e̶n̶ ̶i̶t̶'̶s̶ ̶n̶o̶t̶ ̶t̶h̶a̶t̶ ̶i̶m̶p̶r̶e̶s̶s̶i̶v̶e̶ . You can compile a native bash and other utils now yourself, it's not that hard. EDIT: It's more like a Linuxulator from BSD, which is certainly cool.
- tlrobinson 11y ago> "Hum, well it's like cygwin perhaps?" Nope! Cygwin includes open source utilities are recompiled from source to run natively in Windows. Here, we're talking about bit-for-bit, checksum-for-checksum Ubuntu ELF binaries running directly in Windows.
- seren 11y agoIf you write a command line utility, just putting in ubuntu repo makes it available to all windows user, without even recompiling.
- AlexeyBrin 11y agoYou seem to completely miss the point of what they did. It is not a simple Bash recompilation for Windows. It is a way to run Linux (Ubuntu) binaries on Windows.
- xaduha 11y agoMy point is that you need a terminal program (like putty or iTerm2 on OS X for example) to get all the benefits.
- tlrobinson 11y agoHe says it mostly works in cmd.exe, and they're working on getting things like screen/tmux working too. If a fully-compatible terminal emulator doesn't exist yet (I have no idea) I bet there will be one within a year.
- msoad 11y agoSo what OS you're going to get when you run an application under this? So if I run this: node -e 'console.log(require("os").type())' What it's going to print?
- jokr004 11y agoWould depend entirely on how you installed node, I would imagine.
- orf 11y agoWhatever it prints on Ubuntu I expect. Obviously it's not going to return "Windows", or "UbuntuInWindows" else anything that makes that call that would break.
- jdub 11y agoAs WinLS is very much like branded Solaris Zones, here's what it looks like when you run `uname -a` in an (old, copypasta from the web) Linux branded zone: Linux centos 2.4.21 BrandZ fake linux i686 i686 i386 GNU/Linux
- pookeh 11y agoDepends if the node is a Windows executable or a Linux binary.
- jensvdh 11y agoSo if I install Node as a Linux binary. Can I access it in Windows "environment" too? Does that mean I can do "apt-get install nginx" from their new "bash" terminal app? Does that then run under port 80 in Windows? Since no VM is involved. I'm still a bit confused.
- anonymfus 11y ago>Does that then run under port 80 in Windows? Yes, they demonstrated that localhost is the same localhost under both environments.
- 11y ago
- zyngaro 11y agoNow I just hope this will also be enabled in the Windows 10 build running on the Surface.
- partiallypro 11y agoIt will be on every Windows 10 machine, but not Windows 8.1 on the Surface RT, obviously.
- cabirum 11y agoAre posix permissions supported/emulated? Or are they set to 777 for all Windows drives in /mnt like shared folders in a VM?
- the_mitsuhiko 11y agoYeah, that's something that really interests me. Likewise I want to know how extended attributes and streams are mapped.
- andoma 11y agoOr unlinking an open file. Something you can't do on traditional Windows kernels IIRC.
- JdeBP 11y agoYou recall incorrectly. Windows NT kernels have been able to unlink open files right from the get-go, at the start of the 1990s. They had to be, in order to support the POSIX subsystem. When files are manipulated through the Win32 subsystem they are (normally) opened in "deny delete" mode (i.e. without passing FILE_SHARE_DELETE to CreateFile and thence to NtCreateFile). But that's Win32 programs and language runtime libraries explicitly setting the sharing mode flags that they like, not an inability of the Windows NT kernel that is below the Win32 subsystem, nor even an inability of the Win32 subsystem itself. * https://msdn.microsoft.com/en-gb/library/windows/desktop/aa363858(v=vs.85).aspx#FILE_SHARE_DELETE https://msdn.microsoft.com/en-gb/library/windows/desktop/aa3...
- alternize 11y agoin the demo video https://channel9.msdn.com/Events/Build/2016/P488 https://channel9.msdn.com/Events/Build/2016/P488 it's visible at 05:53 that the files all belong to root:root and have mode 777
- recrof 11y agoreminds me of '90 teleshopping videos..
- abritishguy 11y agoI wonder how buggy thus is. For example, how do symlinks work given windows doesn't have an equivalent that behaves the same.
- sabarn01 11y agoWindows does have symlinks and hardlinks that work very similarly but are only exposed via a built in cmd command. That said no one uses them.
- wvenable 11y agoI use them. They're also heavily used by the OS itself -- the entire WinSxS folder structure is a whole lot of symlinks.
- Dylan16807 11y agoIt is? I thought it was hard links.
- stcredzero 11y agoMy work uses symlinks to avoid re-downloading 3rd party libraries in different Perforce branches.
- mmebane 11y agoI used to use them (directory junction points) quite a bit back when 64GB SSDs were still expensive and I wanted to redirect a few folders without changing my folder structure. Nowadays, the most common use I've seen is as the Windows implementation of 'npm link' for Node.js developers.
- sabarn01 11y agoI was being a little over dramatic windows has like 1B installs obviously someone "uses" them.
- abritishguy 11y agoI know but the semantics are different.
- technimad 11y agoOMG.
- otterley 11y agoTo clarify, it sounds like what Microsoft has added to Windows 10 is a Linux ABI. This has been done before with other x86 OSes: FreeBSD has had 32-bit ABI compatibility for at least a decade (https://www.freebsd.org/doc/handbook/linuxemu.html https://www.freebsd.org/doc/handbook/linuxemu.html), and the "lx branded zone" for Solaris has it as well (https://docs.oracle.com/cd/E19455-01/817-1592/gchhy/index.html https://docs.oracle.com/cd/E19455-01/817-1592/gchhy/index.ht...).
- jle17 11y agoI think FreeBSD linuxulator has 64bit support too since they introduced Docker support last year.
- Sanddancer 11y agoThat was only for 32 bit containers. FreeBSD 11 should have 64-bit linux support though.
- melloc 11y agoYou can't use lx-branded zones in Solaris anymore, but SmartOS has revived and continued the project, and OmniOS has started porting the bits into their distribution, too.
- otterley 11y agoOh, that's a shame. When was it removed?
- bahamat 11y agoAfter Oracle bought Sun. It was never a part of Solaris 11. I don't know if it's still part of Solaris 10 or not, but even if it is, it's only barely usable. But it's alive and well (and awesome) in SmartOS, with active work going on to merge it into OmniOS, and eventually will be upstreamed to illumos-gate.
- melloc 11y ago
- freekh 11y agoWhat? This is sick!? I can't wait for this to happen! Maybe I am gonna get one of those Surface Books after all... though I am gonna miss my i3 setup... I wonder if X (or wayland! or wayland...) can run as well... Native Emacs FTW :)
- itchynose 11y agoI frigging love i3, but not a big fan of thinkpad and linux desktop combo. I ordered a surface pro 4 and planning to run i3 in a VM with my existing nixOS configuration. I wonder how this news will affect my workflow. I have emacs running as a systemd service and client emacs connecting to it, so it's quite a killer combo for development.
- anthk 11y ago1) You have native EMacs for W32 since forever 2) Run XMing in fullscreen mode 3) Compaile and run i3.
- jeena 11y agoI'm confused what has this list: 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... to do with Ubuntu?
- twic 11y agoThey are programs which are included in the Ubuntu distribution.
- deleted 11y ago[deleted]
- jeena 11y agoAnd OS X, and BSD, and OS2 and AmigaOS and probably one million other OSses.
- JdeBP 11y agoStrictly speaking: none of those commands were "included in the distribution" when it came to OS/2. There were of course ports of those commands to OS/2, which one could install. But none of those came in the box. I believe that that was also true for AmigaDOS, even the post-Commodore versions, but I don't have the firsthand knowledge to state it unequivocally.
- ominous 11y agoUbuntu ate Linux (or GNU/Linux), as it seems, for the mainstream world. I hate it. I bet Stallman, Ken Thomson, the GNU Project, Bell Labs and many others are crying and laughing at the same time. We live in a world built upon the previous one, as the previous was already was. Some things we forget, others become lore, folklore, myths, and others are lost... It is similar to Facebook providing Internet. Or Dropbox providing 'rsync'. Maybe one day the common man will rediscover plaintext and the command line interface. And the then hipsters will use it. Some links: - find http://doc.cat-v.org/unix/find-history http://doc.cat-v.org/unix/find-history - grep https://medium.com/@rualthanzauva/grep-was-a-private-command-of-mine-for-quite-a-while-before-i-made-it-public-ken-thompson-a40e24a5ef48 https://medium.com/@rualthanzauva/grep-was-a-private-command... - cp https://news.ycombinator.com/item?id=8305283 https://news.ycombinator.com/item?id=8305283 - wget https://en.wikipedia.org/wiki/Wget#cite_note-13 https://en.wikipedia.org/wiki/Wget#cite_note-13 - AWK was created at Bell Labs in the 1970s, and its name is derived from the family names of its authors – Alfred Aho, Peter Weinberger, and Brian Kernighan. ~ https://en.wikipedia.org/wiki/AWK https://en.wikipedia.org/wiki/AWK - http://www.cryptonomicon.com/beginning.html http://www.cryptonomicon.com/beginning.html BONUS: - https://wiki.ubuntu.com/DashAsBinSh https://wiki.ubuntu.com/DashAsBinSh
- mrkd 11y agoScott Hanselman has a good write-up here: http://www.hanselman.com/blog/DevelopersCanRunBashShellAndUsermodeUbuntuLinuxBinariesOnWindows10.aspx http://www.hanselman.com/blog/DevelopersCanRunBashShellAndUs... Google Cache: https://webcache.googleusercontent.com/search?q=cache:http://www.hanselman.com/blog/DevelopersCanRunBashShellAndUsermodeUbuntuLinuxBinariesOnWindows10.aspx https://webcache.googleusercontent.com/search?q=cache:http:/...
- whatever_dude 11y agoThanks. This link has a lot more (real) information.
- anthk 11y ago"Of course, I have no idea how to CLOSE emacs, so I'll close the window. ;)" What if you read the welcome screen, Mr. Scott ;) ?
- rejschaap 11y ago"C-x C-c... what does that even mean?"
- anthk 11y agoYou have literally the answer in the welcome screen.
- btreesOfSpring 11y ago<esc> : q <enter>
- ericmo 11y agoI was excited until I reached the Windows Store part.
- tobias3 11y agoI wonder if they implemented a copy-on-write fork syscall in NT. Otherwise it will be slower (and use a lot more memory) in some scenarios. Edit: And cow fork only makes sense if there is memory over-commit. So to be fully featured it would need a separate memory subsystem with memory over-commit.
- quotemstr 11y agoNo, you don't need overcommit for COW fork. You can fully commit the writable pages of the new process. Yes, that uses a bit of pagefile space, but disk space is cheap, and this approach works fine. You can (and should, if you care about robustness) turn off overcommit on Linux too.
- the_why_of_y 11y agoLooks like it wouldn't be the first copy-on-write fork() on NT; Interix had that already many years ago. Solaris doesn't have VM over-commit either, and few people would claim it's not a fully featured UNIX.
- matt_wulfeck 11y agomicrosoft is leveraging FOSS Linux to get Mac users. I think it's a real smart move. The author points to using grep and Xargs and some other tools to quickly update a package. That's the key here. These bash/Linux utilities are productivy boosters for all the Linux and Mac/bsd people out there. I can't imagine living without them and they're necessary for any system I develop on (which is currently a Mac).
- simonlc 11y agoI completely agree. I only really switched to OSX because getting node tools to work on windows and cygwin is a pita.
- tostitos1979 11y agoI've been "stuck" with a 2010 Macbook since Apple isn't refreshing it's laptop hardware soon enough. Plus I'm sick of soldered in RAM and other BS. For devs that do heavy Linux work (but have stuck with a Mac OS for GUI/app reasons), is it time to move (back) to Windows? If so, what would be a good laptop to get at the moment?
- sixothree 11y agoThinkpad T460s. I have the T450s and like it plenty. It's definitely up there with macbook build quality.
- captainmuon 11y agoA few random thoughts: - Wow, hell is really freezing over! - The hardest part of running bash and other posix things under windows is filesystem access. Windows uses drive letters and backslashes, unix has a root filesystem with forward slashes. It seems they are taking the same route as cygwin by "mounting" windows drives in /mnt/c (or /cygdrive/c). - If you just wanted bash and some posix tools, the harder but nicer way would be to patch them to understand windows paths. It is not clear to me that it is even possible, for example many tools assume a path that does not start with a slash is a relative path - while "C:\" is absolute. You would also want to make more windows apps understand forward slashes like "C:/Windows". To make things even more complicated, there are NT native paths "\Device\HarddiskVolume4\Users\Bill", UNC paths "\\Server\share", and the crazy syntax "\\?\C:\MyReallyLongPath\File.txt". - I am really surprised this works in an appx container. From my little dabbling with modern apps in Visual Studio, I've found that they are incredibly sandboxed - no filesystem access unless you go through a file picker, no network connections to localhost (!?), no control of top-level windows, no loading of external DLLs. You can get around most restrictions for sideloaded apps, but not for windows store apps. That they can now package such a complex application as a modern app (with maybe only the linux subsystem DLLs delivered externally) means that they are slowly moving the modern/universal apps and traditional Win32 apps together with regards to their powers. - Running a Linux kernel in windows, and then ELF executables on top (without virtualization) is nothing new, see CoLinux or andLinux. If I understand correctly, this new work uses a new Linux NT subsystem. It remains to be seen if this is better (more performant) or worse (if the Linux kernel is just another process, and it crashes, it doesn't take down the system). - If they actually wrote a NT subsystem for Linux, this opens a whole can of GPL licensing worms, as you'll need to include internal NT headers. However, they say it is closed source, so I wonder how they did it. - This really stands and falls with how well it is integrated in the rest of the system. I want to install tools in "Ubuntu" via apt and use them from cmd.exe, and vice versa. And long term, a X11/Wayland bridge would be nice too.
- barrkel 11y agoI expect they implemented a subsystem for Linux at the syscall level - i.e. they implemented the Linux kernel's interface at the ABI level. No headers would need to intermingle with open source; compile on Linux, run on Windows.
- hodwik 11y agoHow in God's green earth did Canonical think helping Microsoft with this was a good idea for the Linux community?
- josephpmay 11y ago-It solidifies Bash as the dev. shell of choice -It facilitates app cross comparability -For Canonical, it reinforces the idea that Ubuntu == Linux, which is really good for their bottom line -I wouldn't be surprised if Microsoft forked over a solid amount of cash
- rhabarba 11y agoAs a dev, I don't use the screwed up bash on any system I work on. It just doesn't work.
- creshal 11y ago> -For Canonical, it reinforces the idea that Ubuntu == Linux, which is really good for their bottom line And Microsoft manages to undermine RedHat at the same time. Win-Win for them, why the Linux community should be excited about it, I don't know.
- zhobbs 11y agoIt helps push Windows developers to use Ubuntu on Azure.
- geofft 11y agoFrom the Scott Hanselman link posted elsewhere in this comment thread: > Note that this isn't about Linux Servers or Server workloads. This is a developer-focused release that removes a major barrier for developers who want or need to use Linux tools as part of their workflow. It helps Canonical deploy Linux on the server in places that refuse to run Linux on the desktop, since Microsoft has said they're not interested in replacing Linux on the server with lxss on the server. This is absolutely good for certain subsets of the "Linux community" with certain motivations and ideologies. (And awful for others, of course.)
- 11y ago
- diebir 11y agoApril fools. Coming next: Windows 11 will use Linux kernel.
- k__ 11y agoWell we are close. But I thought the 1st of April idea was to make the joke on 1st and reveal it after that date. Not to make a joke in March and tell people it was a joke on 1st of April...
- barrkel 11y agoA performant fork - the single biggest problem with Cygwin - sounds awesome. As does the ability to run Linux binaries directly, opening up the direct use of binary package repos. I wonder if I can use it via mintty instead of conhost.exe; at the very least, I could ssh into it from Cygwin. As always, the devil is in the details; the rough edges where support peters out, or syscall inconsistencies creep in.
- vetinari 11y agoThe important question of course is: when it will appear in Windows Server? Incidentally, I've found the Windows 2012R2 to be my favorite OS for the desktop from the Windows family.
- tkubacki 11y agoWondering if ansible will work... If done right - I fell desktop linux and OSX market share will shrink
- poofyleek 11y agoHow do they handle various NTFS related issues? https://cygwin.com/cygwin-ug-net/using-specialnames.html https://cygwin.com/cygwin-ug-net/using-specialnames.html
- bryanlarsen 11y agoI'm reading between the lines, but it looks like the linux subsystem is using a separate file system. So you'll have the usual problems when using files from /mnt/c, but other files are mounted in a unixy file system of some sort. The Ubuntu file system is mounted onto your Windows subsystem at C:\Users\<user>\AppData\Local\Lxss\rootfs\, according to the article.
- poofyleek 11y agoI'm guessing you are right. The usual problems with /mnt/c. I was wondering about rootfs being per user as well. On a server that may be a problem, but perhaps not on a laptop. It sounds like this is not meant to be the basis for production level deployments, but useful for development.
- kiproping 11y ago> All of your Windows drives, like C: are mounted read/write directly under /mnt. Its the real deal lads, congratulation Microsoft.
- frozenport 11y agoI don't get it. What's the use case for a few core utilities running natively?
- typon 11y agoIt's not a 'few' core utilities. It's any packages available on Ubuntu.
- frozenport 11y agoAll the CLI packages I want that are on Ubuntu are also on Windows. I don't see Windows users dying for lack of applications...
- jdub 11y agoYou can run any* Linux binary on WinLS, including apt-get in the Ubuntu rootfs. * within the probably surprisingly broad limits of the WinLS syscall emulation, though it wouldn't support niche OS config stuff, SELinux calls, etc.
- pbhjpbhj 11y agoSo I can install apt then install apps like Firefox, Thunderbird and run them that way instead of using Windows binaries? Interesting ...
- Keyframe 11y agoSweet baby Jesus. If this can alleviate at least half of the issues running cygwin/babun/msys/whatnots... Namely, 64-bitness, speed, and repository madness.
- look_lookatme 11y agoWhat is up with the unix-y directory structure in this screenshot? http://o.aolcdn.com/dims-global/dims3/GLOB/resize/1345x666/quality/80/https://tctechcrunch2011.files.wordpress.com/2016/03/o92a2876.jpg http://o.aolcdn.com/dims-global/dims3/GLOB/resize/1345x666/q... It's been a while since I've used Windows but I'm pretty sure it doesn't have a unix directory structure... is it the case that they map / to a folder inside windows?
- geofft 11y agoYes, as mentioned in the article, / on the Linux side maps to C:\Users\...\AppData\Local\Lxss\rootfs\, and C:\ on the Windows side maps to /mnt/c/ on the Linux side. Think of it as an Ubuntu chroot on Windows, with C:\ bind-mounted into the chroot.
- bryanlarsen 11y agoI get the impression that it's a new filesystem, so C:\Users\Kirkland\AppData\Local\Lxss\rootfs is a file containing a linuxy file system that's mounted onto / in the Linux subsystem and onto C:\Users\Kirkland\AppData\Local\Lxss\rootfs\ on the Windows subsystem.
- JdeBP 11y agoIt's not, though. Windows NT was designed with multiple "personality" subsystems right from the start. The filesystem that any given "personality" sees is not the underlying system that is seen via the "Native API". They are all reinterpreted views of the NT Object Manager's namespace. * The Win32 subsystem presents a view where C:\ in a Win32 name is mapped to \DosDevices\C:\ in a Native NT name. * The POSIX subsystem (at least in the later SFU/SFUA) presents a view where /dev/fs/c/ in a POSIX name is mapped to \DosDevices\C:\ in a Native NT name. * This Linux subsystem (reportedly) presents a view where /mnt/c/ in a Linux name is mapped to \DosDevices\C:\ in a Native NT name. \DosDevices\C: is, in turn, a Object Manager symbolic link that points to somewhere else in the Object Manager namespace. (There's also a whole mechanism of "per-login" and "global" symbolic links that I'm glossing over.) Win32 names relative to \ , D:., and . , and POSIX names relative to \ and . , are also things that are handled within the subsystem (sometimes within a set of conspirator language runtime libraries, in fact) that are mapped by that to the NT Object Manager's namespace. * The Win32 subsystem itself only supports one current directory, the current directory on the current drive. The Win32 subsystem keeps a handle to that current directory open per Win32 process (and stores the handle value in the Process Environment Block in the process' address space) and remembers what string, including drive letter, it was set to. * The current directory on another drive is a fiction maintained by conspiring Win32 language runtime libraries, using a set of otherwise hidden environment variables. A Win32 name with D:. is mapped using the value of an "=D:" environment variable. See http://unix.stackexchange.com/a/251215/5132 http://unix.stackexchange.com/a/251215/5132 for how this can make a mess with the (Win32) Bourne Again shell running on Cygwin. * Win32 names relative to a driveless \ use a Win32-subsystem-maintained idea of a current drive letter, derived from the Win32 "current directory" string that is set, and then go through the mapping to \DosDevices\C:\ (or whatever drive letter). * The (SFU/SFUA) POSIX subsystem doesn't need such conspiracy, as the POSIX model is to have only one current directory, too. So the POSIX subsystem keeps a handle to the current directory open per POSIX process. * This Linux subsystem (reportedly) presents a view where / in a Linux name is mapped to \DosDevices\C:\Users\Kirkland\AppData\Local\Lxss\rootfs\ in a Native NT name. * Presumably, this Linux subsystem similarly keeps a handle to the current directory open per Linux process, and remembers its string. After all, it has to present /proc/self/cwd to Linux programs. Every Windows NT subsystem has filename mapping mechanisms, and they all present their own "views" of the actual native namespace of the NT operating system kernel. This is not a new filesystem. It's another NT subsystem with its own view of the NT Object Manager's namespace, just as the other subsystems have.
- meursault334 11y agoThis seems like it could be pretty amazing for developing and testing some of our backend computer vision tools directly in Windows. What would be really amazing would be if you could use CUDA and cuDNN from Ubuntu executables in Windows 10.
- shmerl 11y agoSo it's like Wine in reverse. Is it FOSS?
- HeadlessChild 11y ago"Microsoft calls it their "Windows Subsystem for Linux". (No, it's not open source at this time.)"
- shmerl 11y agoSounds like they might open it. But probably it won't be as useful as Wine which is portable to POSIX systems. May be it can benefit ReactOS or something. What could be good though is MS backing the Wine project. But I guess it goes too much against their lock-in DNA.
- kyberias 11y agoThis is a "Windows Subsystem" implementation. There are no open subsystem implementations and it hasn't been documented. Therefore it's a little far-fetched that they would release this as open source. Not impossible though.
- toyg 11y agoNo.
- drvdevd 11y agoAnd here you've hit upon what would actually be interesting: the open sourcing of Windows itself, open sourcing of Hyper-V, etc. This is a 'nice to have' addition to Windows for sure. But it really does nothing to make Windows more relevant as an open source platform which is actually a major technical strength of most UNIX-alikes. And no I'm not saying Microsoft has to go GPL.
- thought_alarm 11y ago15+ years ago Microsoft shipped a UNIX subsystem for Windows NT/2k. https://en.m.wikipedia.org/wiki/Windows_Services_for_UNIX https://en.m.wikipedia.org/wiki/Windows_Services_for_UNIX It blew my mind at the time, but it was kind of a pain and I didn't stick with it. I don't remember why. I guess this is about same thing, only its Linux instead of some other sort of UNIX.
- rejschaap 11y agoThe article also reminded me of this. I didn't use it much because Cygwin was a little less painful.
- bahamat 11y agoThe significant difference here is that it's running unmodified Linux binaries. Compile on Linux, run in windows. You should be able to compile functioning Linux binaries on Windows and run them on Linux as well.
- mark_l_watson 11y agoI am a little annoyed at myself. One of my 5 laptops is a HPStream 11 that was running Windows 10 until a few months ago when I wiped the disk and installed Ubuntu. Windows 10 is not bad at all, and I would have enjoyed keeping a Windows 10 machine handy with the new Ubuntu user land support.
- T-A 11y agoAFAIK, Windows 10 registration amounts to generating a hash based on your hardware and storing it online. If you reinstall Windows 10 now and try to register again (and have not updated the hardware, e.g. replaced the hard drive), the same hash will be generated again and your machine will be recognized as already registered. So there should be no extra license cost involved.
- swampthinker 11y agoTorrent time!
- emmelaich 11y agoNot necessary; just download the iso. Well, the iso maker on another Windows machine.
- noelsusman 11y agoI'm fairly certain you can just reinstall Windows 10 and not have to deal with any licensing shenanigans. I'm no expert but I think it's baked into the machine itself these days.
- vram22 11y agoMicrosoft also had or still has something called SFU - Services For Unix. I know they were working on it some years ago. But that could be for some sort of interoperability, not the same as this thing.
- insulanian 11y agoI think that was removed in Win8.
- rosalinekarr 11y agoGlad to see everyone taking the title so literally, "_Bash_ on Windows."
- sickbeard 11y agoNow windows users can learn bash cmd line and switch completely!
- rhabarba 11y agoAs a Windows and BSD user, I completely switched to the superior ksh.
- azeirah 11y agoWhew, I'll finally be able to run WINE on windows! :)
- anthk 11y agohttps://sourceforge.net/projects/wine/files/Win32%20Packages/ https://sourceforge.net/projects/wine/files/Win32%20Packages...
- chadzawistowski 11y agohttp://oldwiki.winehq.org/WineOnWindows http://oldwiki.winehq.org/WineOnWindows
- bsharitt 11y agoFor some older games and applications, they run on Wine better than newer Windows, so that might actually be a useful.
- castratikron 11y agoI wonder how long it'll be until we see some kind of NT kernel with GNU userland distribution (GNU/NT?).
- patrickaljord 11y agoI guess that fixes bug #1 https://bugs.launchpad.net/bugs/1 https://bugs.launchpad.net/bugs/1
- plank 11y agoConfused: can we now START or STOP bashing windows?
- deagle50 11y agoAfter they fix highdpi scaling
- insulanian 11y agoOh yes... That's one of the reasons I switched to OSX.
- deagle50 11y agono kidding, I have a 4K monitor that looks awesome when hooked up my macbook and terrible when hooked up to my Windows desktop
- randyrand 11y agoWin10 on my dual 4ks looks great. What issues do you have?
- deagle50 11y agoI'm not really sure if you're serious about this question... Well the task manager for example, the header is rendered per pixel, the rest of the window is a blurry mess. File Explorer window scales with DPI setting but for some reason the fonts still render at 4k pixel size even at 175% scaling making it very hard to read. Chrome looks like its rendering at much lower resolution then blowing back up. Resizing a busy window chugs my GTX 980 yet the Haswell integrated GPU on my MBP 13" handles 5120x2800 pretty well on OSX. Why can't they just supersample the user-selected resolution then shrink back down to 4k like OSX? Everyone already has retina assets for their app.
- davesque 11y agoThey're working on it. The rub now is that they can't handle (last I checked) using two monitors with significantly different DPIs. At least, that's how it was with my retina macbook and using an external monitor that was low DPI.
- deleted 11y ago[deleted]
- dba7dba 11y agoTitle of the article made me think, bash on Windows? Why is that news?
- verytrivial 11y agoI remember seeing an ad for an PowerBook (oh, this first one one: http://xaharts.org/funny/Apple_Mac_OS_X_Unix_ad.html http://xaharts.org/funny/Apple_Mac_OS_X_Unix_ad.html ) back in 2002 (apparently) and thinking: "Wow, now I want one." Outstanding pitch. And for the last decade and a half so have a huge number busy engineers, scientists and most recently and profoundly, web developers. Microsoft is making a very smart move here, even if it is exceedingly late.
- mbrock 11y agoI remember similar thoughts when the first MacBook (x86) came out in early 2006, as I was just starting university, and also thinking "Hmm, this is all probably going to be huge, and I should find out how to buy Apple stock with this ~$1200 I have... oh, no, I'll buy a MacBook for myself." Ten years later, I'm totally bored with Apple and OS X. Especially after trying to use Xcode and the iOS Development Cloud Platform or whatever. So yeah, I'd probably switch to Microsoft Linux. And I could totally play Counter-Strike and Diablo II while pausing from coding bash scripts? Omg!
- jc4p 11y agoI know it's just an example, but both of the games you mentioned have had Mac versions for a very long time, if not initial release.
- thescriptkiddie 11y agoAdding on to this, Counter-Strike (1.6, Source, and CSGO) runs natively on Linux, and Diablo II runs absolutely perfectly under WINE.
- 80x25 11y ago"But there are some imperfections still, especially around tty's an the vt100. My beloved byobu, screen, and tmux don't quite work yet, but they're getting close!" If they actually fix these imperfections, that would be fantastic. It would address a number issues that are "unfixable" in Cygwin flavors of utilities/apps.
- rspeer 11y agoIt sounds like this would involve tweaking conhost.exe so that it understands all the vt100 sequences, as well as UTF-8. (I hope they wouldn't assume everyone's tmux setup uses only characters from codepage 437.) If they did that, it would also fix the awfulness of Python's stdout on Windows!
- marshray 11y agoI was watching the stream and I think they said Windows console host will, in fact, directly support VT-100.
- anonymfus 11y ago>as well as UTF-8. UTF-8 was always available as codepage 65001.
- batat 11y agoIt's terribly broken https://social.msdn.microsoft.com/Forums/vstudio/en-US/e4b91f49-6f60-4ffe-887a-e18e39250905/possible-bugs-in-writefile-and-crt-unicode-issues?forum=vcgeneral https://social.msdn.microsoft.com/Forums/vstudio/en-US/e4b91... Seems to work only with WriteConsoleOutputW(), while C I/O behaves unpredictably.
- JdeBP 11y ago> I hope they wouldn't assume everyone's tmux setup uses only characters from codepage 437. I hope that people here aren't assuming that terminals are all VT100 clones. (-: The old (Interix) Windows NT POSIX subsystem added escape sequence recognition to Windows consoles when POSIX programs were using them as their terminal output. Such terminals match up with an "Interix" terminal type in the termcap and terminfo databases. Their escape sequence set is not the same as any DEC VT type. The Dickey ncurses termcap database has an "interix|opennt|ntconsole" entry, although I have encountered systems with ncurses but without this termcap entry and had to add it myself. It is, apparently, wrong. David Given has a different one in LBW. * https://technet.microsoft.com/en-gb/library/bb463194.aspx https://technet.microsoft.com/en-gb/library/bb463194.aspx * http://invisible-island.net/ncurses/colored-terminfo.src.html http://invisible-island.net/ncurses/colored-terminfo.src.htm... * https://developer.mozilla.org/en-GB/docs/Mozilla/Developer_guide/Build_Instructions/Building_on_Windows_with_SFU_%28Interix%29 https://developer.mozilla.org/en-GB/docs/Mozilla/Developer_g... * https://github.com/sedwards/lbw/blob/master/extras/interix.termcap https://github.com/sedwards/lbw/blob/master/extras/interix.t...
- rocky1138 11y agoIs this better, the same, or worse than git bash?
- ibrahima 11y agoBetter, it seems like this is literally running the same Linux binaries as would run on Ubuntu on Windows. Git bash uses msys so those binaries are recompiled for Windows. And he casually mentioned apt, which is pretty crazy if they can actually have the standard apt repositories working on Windows without modification.
- tdicola 11y agoCompletely different. Git bash is based on msys which is a suite of Linux/Unix tools ported to compile and run natively on Windows. This is taking actual Linux programs and running them as-is on Windows. Wherever the Linux programs make system calls to the Linux kernel, etc. there is a shim layer from MS that translates those calls into Windows system calls. It's not going to be 100% perfect compatibility with every app, but will probably support a lot more stuff than msys.
- ljani 11y agoInteresting! I've been following Flinux [1], but it's not ready for day to day use. I hope this one will be soon! [1]: https://github.com/wishstudio/flinux/ https://github.com/wishstudio/flinux/
- jagtesh 11y agoFlinux was the first thing in my mind when I saw this. Could this be inspired from it? In which case, at least some sort of recognition or attribution would have been great considering the amount of effort Flinux author has put into it.
- omarforgotpwd 11y agoImagine going back in time to the 90s and telling people that in 2016 Microsoft would bend over backwards to make sure Windows could run Linux ELF binaries natively in the kernel by converting syscalls. You'd probably be laughed at.
- jacquesm 11y agoNo, they'd point to Kerberos and ask what the difference is.
- brlewis 11y agoMicrosoft wasn't trying very hard to make their Kerberos compatible with MIT Kerberos, at least in the mid '90s. I think you'd still be laughed at, especially since Windows was ubiquitous, Unix was niche, and Linux was a niche within a niche.
- keeperofdakeys 11y agoThey'd laugh, because NT already had posix system calls http://social.technet.microsoft.com/wiki/contents/articles/10224.posix-and-unix-support-in-windows.aspx http://social.technet.microsoft.com/wiki/contents/articles/1...
- deleted 11y ago[deleted]
- omarforgotpwd 11y agoPOSIX calls, which have always been there but require a recompiled binary, are different than the binary compatibility announced today. This additional step is actually quite an impressive feat of software engineering. To think that Microsoft would care so much about maintaining compatibility would have seemed ridiculous just a few years ago.
- cyphar 11y agoIt should be noted that FreeBSD has had this for a decade AFAIK, and LX-branded Zones have been massively improved in SmartOS.
- ilmiont 11y agoI wonder what implications this has for SSH for PowerShell... Microsoft were originally planning to release native SSH in PowerShell this summer. But now it seems redundant when you could just use Bash anyway...
- kodablah 11y agoI don't think it's redundant. Many people want to remote into Windows' native shell without having bash present.
- joeyaiello 11y agoIt's not redundant, and that's why our work is continuing to go forward. We're definitely not cancelling our plans[1] to deliver native Win32 OpenSSH any time soon. [1] https://github.com/PowerShell/Win32-OpenSSH/wiki/Win32-OpenSSH-RoadMap https://github.com/PowerShell/Win32-OpenSSH/wiki/Win32-OpenS...
- breakingcups 11y agoSome sysadmins might want to be able to SSH into their servers from Windows without actually having a complete Linux userspace installed.
- new_hackers 11y agowhat these guys said, also when you consider that automating tasks for both your WinRM-able and SSH-able machines would be very easy. Does bash support WinRM or WMI as well as PowerShell?
- rcurry 11y agoI'm just blown away by how much Microsoft is changing their direction these days. These are heady times, for sure.
- kelvin0 11y ago<tears of joy> It's not a VM ... it's natively running on Win10 </tears of joy>
- lazzlazzlazz 11y agoWill rendering Unicode characters still be a complete disaster? Will I need to care about which "code page" or whatever is being used (not that that ever seemed to help)?
- mastax 11y agoI think making unicode work properly is a prerequisite to run native linux applications, so I'm hopeful. Personally I think they should change the terminal to unicode by default and make the 1% of pos-ported-from-windows-95 apps `chcp` before they work.
- uxp 11y agoI agree, but as someone who has to "maintain" one of those pos-ported-from-windows-95 apps, the actual source code is long gone so it's nearly impossible to make any meaningful changes to the application. I'd venture a guess that most of these things that would break are in a similar boat. That said, F-it. If updating to Server 2016 breaks it for good, we might actually prioritize a rewrite within the next two decades.
- justncase80 11y agoThis is great. For the last couple of years, as a windows user, I have just been installing Git Scm, which includes something similar to this and have been using that for all script / command line needs. If this was baked into Windows so much the better! I would love it if nobody ever wrote a single CMD or PS1 file ever again. Let's please all just converge on bash and put this debate behind us.
- JdeBP 11y ago> Let's please all just converge on bash As (I hope most) Unix/Linux users would respond: let's not. A good thing about the Unix/Linux world is that there is a multiplicity of shells. And this is regularly taken advantage of. I have systems (for example) where my interactive shell is the Z shell and /bin/sh is the Almquist shell. I have others where /bin/sh is the Korn shell. The "Shellshock" incident should have told everyone that Bourne Again shell everywhere, for everything, is not a good idea. In any case, this is not a debate to be won/lost in the first place, as I hope Unix/Linux users would also respond. There are places for shell scripts, places for Python, places for perl, places for awk, TCL, REXX, execlineb, and a whole lot of others. One size, one scripting language, does not fit all. Indeed, if you do eventually gain all the Ubuntu command-line toolsets from this, your options should broaden to those and more besides, not narrow to the Bourne Again shell.
- justncase80 11y agoAlso, for windows devs not in the know check this out: http://cmder.net/ http://cmder.net/
- insulanian 11y agoI highly recommend it! It's making my life easier in the office.
- dang 11y agoThere's another big discussion at https://news.ycombinator.com/item?id=11388418 https://news.ycombinator.com/item?id=11388418.
- wyldfire 11y ago> But there are some imperfections still, especially around tty's an the vt100 Yeah, it would be excellent if something like gnome-terminal worked well with this linux ABI.
- partycoder 11y agoThe first one to run Ubuntu on Windows on Wine gets a cookie. More cookies for running ubuntu userland on windows on wine on emscripten.
- abawany 11y agoApparently I wasn't the first one to think of this: 2016, the year that Linux finally takes off on the desktop. https://twitter.com/search?q=year+linux+desktop https://twitter.com/search?q=year+linux+desktop
- JdeBP 11y ago... except that: * Linux is the part that's being replaced, with the Windows NT kernel and this subsystem. * The people promoting this are not aiming it at GUI programs. (https://news.ycombinator.com/item?id=11391961 https://news.ycombinator.com/item?id=11391961) * The desktop seen on the screen will still be Windows Explorer. So it's "Linux on the desktop", except in every particular. (-:
- abawany 11y agoFair point - it was a "clever" and shallow comment on my part for which I paid. I am not particularly a Windows fan either and have been using Linux since the early 90s - the Linux desktop has always been quite adequate for my needs so it is personally hard for me to see why it is difficult for people to adopt Linux on the desktop. The only reasons I can see are sub-optimal driver support, some Windows application that keeps them locked (for me it is OneNote and its support for handwriting), or general fear.
- hughw 11y agoCoincidentally I've spent the past week re-learing how to develop on windows. I wanted to avoid cygwin if possible, but the experience has been painful. I had some hope for Chocalatey, and it seemed encouraging that MS had ported OpenSSH over, but my first ssh to a Byobu session on Ubuntu was disastrous... I'm sure there is some TERM parameter I can fiddle, but I don't know what or where in 5 minutes of searching. I needed "grep", so I tried "choco search grep", and there are a dozen choices for grep-like tools.... with GUIs, written in Perl,... oh christ.
- Gmo 11y agohttp://gnuwin32.sourceforge.net/packages/grep.htm http://gnuwin32.sourceforge.net/packages/grep.htm
- e12e 11y agoYou might enjoy scoop (http://scoop.sh http://scoop.sh): ~ $ scoop search grep main bucket: busybox (1.24.0-TIG-1778) --> includes 'egrep' gow (0.8.0) --> includes 'egrep.exe' grep (2.5.4) nim (0.11.2) --> includes 'nimgrep.exe' pcregrep (10.20) rktools2k3 (1.0) --> includes 'qgrep.exe' ~ $ scoop install grep installing grep (2.5.4) loading http:(...)grep-2.5.4-bin.zip from cache... checking hash...ok extracting...done loading (...)grep-2.5.4-dep.zip from cache... checking hash...ok extracting...done creating shim for grep grep (2.5.4) was installed successfully! ~ $ grep --version GNU grep 2.5.4 Copyright (C) 2009 Free Software Foundation (...) Getting colors to work is a bit of work, as windows conhost doesn't quite come with vt100 support out-of-the box yet: http://www.nivot.org/blog/post/2016/02/04/Windows-10-TH2-(v1511)-Console-Host-Enhancements http://www.nivot.org/blog/post/2016/02/04/Windows-10-TH2-(v1... But that's just a: ~ $ scoop install conemu installing conemu (150813g) downloading (...) Note that conemu is in the "extras" "bucket" for scoop: scoop bucket add extras
- beagle3 11y agoCan someone explain how is an "NT subsystem" or "NT personality" (which the linux ABI is supposedly an example of) different than any other library? Answers I've received before is "it can call the native API", but any program can call the native API. So, what's in a subsystem?
- sveiss 11y agoIt's mostly a matter of layering. Think of a "subsystem" as a "pluggable system call interface layer". The Win32 layer (mostly) sits on top of the Native layer. The Native API is mostly implemented by the kernel itself, ntoskrnl.exe, which has a system call table (KiServiceTable). Most of the native API is exposed to userspace via ntdll.dll, which calls through that system call table. This API is available from very early boot. The Win32 subsystem is mostly exposed by win32k.sys, which is a kernel mode driver. It has a second system call table (W32pServiceTable) which is then consumed by user32.dll and friends. Some parts of the Win32 user-mode API are implemented by calling the Native API via ntdll.dll, though. Processes which exist in the Win32 subsystem have additional kernel data associated with them (the private state of win32k.sys for that process), had additional win32k.sys code ran during initialization, and can therefore make use of the services of that driver. If you create a Native process with RtlCreateUserProcess, it won't be able to make Win32 API calls. But it can run in environments where a Win32 process can't -- for example, autochk.exe, which is the version of chkdsk which runs as part of boot before the graphics driver has loaded, is a Native executable. There's also support in the PE executable format to indicate which subsystem to use, so the loader knows which type of process to create. Obviously, this won't be relevant for running Linux ELF executables. The layering isn't perfect, especially since while NT was designed to support multiple subsystems (OS/2, Win32, Posix), Win32 is the only one which Microsoft have historically focused on.
- versteegen 11y agoSo does this mean that creating a process (or forking one) can be fast if you omit the Win32 state table and initialisation for the new process? And if so, do you think it would be possible to get fast forking by using Native processes instead of using the Linux emulation layer (assuming that NT actually has an API to CoW-map an existing process' memory, which might be internal to the Linux-on-Windows subsystem)?
- sp332 11y agoSo how do we get it? I have a laptop set to get "Insider" updates but I don't see the feature anywhere obvious.
- entitycontext 11y agoAccording to Mike Harsh, a beta version is coming in an insider release "after the Build conference." [1] During an interview Q&A, Kevin Gallo says that it might show up in a week or two. [2] [1] https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/ https://blogs.windows.com/buildingapps/2016/03/30/run-bash-o... [2] https://channel9.msdn.com/Events/Build/2016/C904 https://channel9.msdn.com/Events/Build/2016/C904
- jameslk 11y agoThis comment should be at the top. It's nice that everyone has an opinion about this announcement, but I just wanted to try it out. Unfortunately it's not as obvious that it hasn't been released yet.
- deleted 11y ago[deleted]
- hydromet 11y ago"Resistance Is Futile"
- geertj 11y agoSystem call emulation... The end goal of this would be to run Docker containers natively on Windows, right?
- jrgifford 11y agoThat's my hope with this news...
- UK-AL 11y agoThey have their own container technology with a docker API.
- nslindtner 11y agoCheck out the docker app for Windows (Beta now). Pretty sure this is the road they are heading.
- deleted 11y ago[deleted]
- frik 11y agoIs this part of a patent deal between Microsoft and Canonical? Or why would Canonical help them - that' s the only explanation that makes sense. We all know how it works out for companies sleeping in bed with a huge corporation... either the buy you, do an inside job trojan horse style, or compete against you. (Cyanogen, Nokia, Xamarin, Yahoo, Sun, RedHat, Google, Apple, etc) If they buy Canonical and/or RedHat, I would drop Ubuntu/RedHat in a second and would advise everyone to switch to Debian or another independent community driven distro.
- deleted 11y ago[deleted]
- pratnala 11y agoFinally the year of the linux desktop then
- geertj 11y agoI'm really hoping the syscall emulation will give us fork() and an efficient poll(). Lack of these has been the most significant Windows porting issue for me (on Python, which otherwise has great platform abstraction).
- agumonkey 11y agowusybox
- andersonmvd 11y agoI wonder if Linux malware will increase, as they will be almost cross-platform now. It's very cool, but from this perspective, that would be bad news for the linux community -- to get the same or more eyeballs as Windows already has.
- bcantrill 11y agoThis is great to see, as it's very similar to the approach that we took with LX-branded zones on SmartOS[1][2]. I commented at some length on the other thread on this on HN[3], but I have a bunch of questions about apps that we know to be thorny: Go, strace, tcpdump, systemd, etc. As we learned, this approach is entirely possible -- but there are many, many details to be nailed before you get to the point that you can run production applications on it. So while the journey across the uncanny valley of Linux is long and arduous, we know from our experience that it can be done. Very much hoping that Microsoft gets to the other side -- and that they open source it all so we can all learn from one another! [1] http://www.slideshare.net/bcantrill/illumos-lx http://www.slideshare.net/bcantrill/illumos-lx [2] http://us-east.manta.joyent.com/patrick.mooney/public/talks/surge2015-lx.pdf http://us-east.manta.joyent.com/patrick.mooney/public/talks/... [3] https://news.ycombinator.com/item?id=11392119 https://news.ycombinator.com/item?id=11392119
- crudbug 11y agoI think M$ is targeting more developers with *NIX background on the desktop side rather than Linux apps on server. So a bash support with uniform CLI is the end-game.
- talawahdotnet 11y agoYea, I think they are going after developers who use OS X because it is UNIXy. Smart move given how en vogue Apple laptops have become for developers these days.
- NateDad 11y agoyuuup
- noelsusman 11y agoIt kinda makes me regret my MBP purchase last fall. I really wanted a Surface Pro but I couldn't deal with developing on Windows.
- takeda 11y agoSurprised I don't see anyone else mentioning this. This looks to me like typical Microsoft strategy that they utilized a lot 25 years ago. 1. when not leader in given market, make your product fully compatible with competitor 2. start gaining momentum (e.g. why should I use Linux, when on Windows I can run both Linux and Windows applications) 3. once becoming leader break up compatibility 4. rinse and repeat Happened with MS-DOS, Word, Excel, Internet Explorer, and others.
- sabelo 11y agoEmbrace, extend and extinguish. See https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish
- wmccullough 11y agoPlease GTFO. It's going to be awfully hard to extinguish all of their major technology When's it's developed in the wild and MIT licensed.
- EdSharkey 11y agoI'm not ruling EEE out, but this move feels more like "staunch the bleeding" to capture more developers and retain the ones they have. I'd love to read a leaked Powerpoint or memo that explains the long-term strategy here. I think this is a great move by Microsoft to be able to EXEC a competitor's binary files natively. But, I think it risks being an admission that Win32/64 syscalls and Windows file system semantics are a crufty boat anchor holding developers back. To admit that risks inviting more developers to bail on Windows.
- CamperBob2 11y agoI'd love to read a leaked Powerpoint or memo that explains the long-term strategy here. If MS's marketing department has half a brain at all, they will accidentally leak such a memo fairly soon.
- partiallypro 11y ago
- bdcravens 11y agoLooking at Hanselman's blog on this, was excited to see Redis running. Presumably this makes the Rails on Windows story a bit better?
- shanselman 11y agoAbsolutely. As Rails would then be running on Linux. I code ruby running in this system (some stuff has issues, it's beta, and I'm doing Sinatra) but using Visual Studio Code as my editor.
- TheRealDunkirk 11y agoNow we're talking. I don't expect it'll ever be as smooth to develop with Rails under Windows as it is under actual Linux, but if it were as good as OS X, I'd say this was a success. But, then again, maybe this subsystem really will make it feel native. As a matter of fact, this was the only use case I could come up with to test the implementation of this announcement. I'd like to think that I speak for enough people to make it worthwhile to suggest that you should do a writeup on your experiences with this. I'm strongly reconsidering letting my main machine re-upgrade to 10 to try it, but it works really nicely for gaming right now, without any other cruft. ;-)
- shanselman 11y agoThis is actual Linux (minus the kernel) so it should work 99% the same as under Ubuntu when doing usermode stuff.
- joeclark77 11y agoThis is interesting! I spent almost a whole school year (I'm a professor) trying to use Linux as my main operating system, tried Arch, Ubuntu, Mint. Ultimately the limiting factor was projectors. Every classroom I teach in seems to have a different brand of projector and I just couldn't get my laptop to work well with any of them. Windows does whatever magic is needed so that it always "just works" with a projector, therefore, I went back. I have been trying to raise money for a Mac because I figured it's the best compromise, but this could change it.
- wmccullough 11y agoAwful lot of hate in the comments on this one. The arguments are coming off as petty at best. I keep seeing something analogous to: "Microsoft finally add a temperature control knob to their toaster just like all the others!" Comment: But it isn't blue, these corporate behemoths don't know what they are doing. As a user and lover of all the ecosystems, the argument from the non-Microsoft crowd is beginning to appear quite desperate.
- jessegreathouse 11y agoLast time we heard linux was coming to Windows, what we got was Powershell. I remain cautiously optimistic because Im hoping this doesn't lead to the same disapppointment.
- EastSmith 11y agoDoes this means that persistent* command line history will work out of the box on Windows? If this is the case, wow, we waited and waited and waited and it is finally here, thanks Ubuntu! *persistent: open command line, write something, close command line, open command line, arrow up\down shows last executed command. And yes, I know persistent command line history can be set via power shell, but it needs to be set (i.e. not working out of the box) and it is not quite the same.
- icc97 11y agoA Scott Anselman article [1], mentions Clink [2] which appears to be a pretty fully implemented and persistent command line history. Don't know about up / down arrow though. [1]: http://www.hanselman.com/blog/MakingABetterSomewhatPrettierButDefinitelyMoreFunctionalWindowsCommandLine.aspx http://www.hanselman.com/blog/MakingABetterSomewhatPrettierB... [2]: http://mridgers.github.io/clink/ http://mridgers.github.io/clink/
- deleted 11y ago[deleted]
- filtersweeo 11y agoIf this has shared home directories, I will literally tongue kiss any Microsoft employee that requests said service.
- niutech 11y agoHow does it differ from CoLinux from 2004? http://www.colinux.org http://www.colinux.org
- joeyh 11y agohttps://www.devever.net/~hl/windowsdefeat https://www.devever.net/~hl/windowsdefeat seems very relevant. Question to my mind is, are they going to manage to limit this to development and advanced users, or will whole applications that target windows start depending on the linux emulation to work?
- recursive 11y agoYou have to opt-in to the feature.
- bensummers 11y agohttps://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish
- daigoba66 11y agoI bet this is also a step towards having a proper SSH server running on Windows.
- PaulHoule 11y agoIt's official... cygwin is dead.
- quotemstr 11y agoNot even close. Maybe when I can call CreateWindow from a POSIX process.
- godgod 11y agoAm I the only one who thinks this is suspect? Microsoft 10 is the spy platform for the NSA. Add in Linux to that and you now have another huge set of users to capture data from.
- nocdib 11y agoFINALLY, a successor to Wubi!
- bluegreyred 11y agoEmbrace, extend, extinguish.
- nag32 11y agoLong, detailed demo -> https://channel9.msdn.com/Events/Build/2016/P488 https://channel9.msdn.com/Events/Build/2016/P488
- NateDad 11y agoGiven that I work on a cross platform application for linux & windows... I'll be interested to see if they try to hide some of the more annoying platform compatibility problems.... like the fact that many linux applications assume you can rename/delete a file while it's still open, and windows won't let you. Also filesystem ACLs are quite different on linux and windows, it'll be interesting to see exactly how the one maps to the other. What will chown and chmod do?
- NateDad 11y agoOh and environment variables... Will $HOME be defined, for example?
- JdeBP 11y ago> windows won't let you This is a common misconception. See https://news.ycombinator.com/item?id=11415366 https://news.ycombinator.com/item?id=11415366 . > filesystem ACLs are quite different on linux and windows It's not that simple. Filesystem ACLs are different between TRUSIX-style and NFS-style, too. Try using a TRUSIX-style setfacl on PC-BSD when the volume has been mounted with NFS-style ACLs, some time. (-: > What will chown and chmod do? One thing that was noticeable from Microsoft's demonstration video was that everything seemed to be owned by the superuser and have execute permissions. That included a .gitignore and a README.md file.
- valine 11y agoSo does this mean I can compile Swift on widows?
- AimHere 11y agoIt's time that people stopped using the term 'Windows' for this operating system. The Free Software Foundation created the bulk of the userspace, under terms that allow anyone to share, modify and fork the programs, and then Microsoft came along with the one last missing piece of the puzzle - the kernel, and completed the full operating system, which, to be frank, users find completely unusable and worthless without the free software provided by GNU. The kernel is an important part of the system, sure, but only one among many important parts. We therefore think that, to give full credit to the authors, the whole system should be termed GNU/Windows.
- mattbillenstein 11y agoLOL!
- 13of40 11y agoOK, that deserved an upvote. http://www.gnu.org/gnu/linux-and-gnu.en.html http://www.gnu.org/gnu/linux-and-gnu.en.html
- lrvick 11y agoYou are my hero
- iamcurious 11y agoYou jest, but I agree. I might accept a GNU/Windows machine as a working computer, but I would be a lot more weary of accepting just a Windows machine.
- stingraycharles 11y agoWould this be possible? How far could anyone (outside of Microsoft) strip down Windows to leave behind just a kernel with a functioning GNU environment (let's say, a shell and file access) ?
- lmm 11y agoI ran bb4win as my window manager for a while. You can get a full suite of userspace applications e.g. KDE for windows. If you're too much of a purist to use cygwin you can (or could until recently) build everything against SUA and then you just need to run a windows X server, but at that point you're still running explorer as the graphical shell/window manager.
- eip 11y agohttp://i.imgur.com/y6clspP.jpg http://i.imgur.com/y6clspP.jpg
- seomint 11y ago"Fire and brimstone coming down from the skies! Rivers and seas boiling! Forty years of darkness! Earthquakes, volcanoes! The dead rising from the grave! Human sacrifice! Dogs and cats living together! Mass hysteria!"
- seomint 11y ago"Fire and brimstone coming down from the skies! Rivers and seas boiling! Forty years of darkness! Earthquakes, volcanoes! The dead rising from the grave! Human sacrifice! Dogs and cats living together! Mass hysteria!"
- deleted 11y ago[deleted]
- Bjartr 11y agoReminds me of andLinux[1] [1] http://www.andlinux.org/ http://www.andlinux.org/
- mmagin 11y agoFirst they ignore you, then they laugh at you, then they fight you, then err... Microsoft doing lots of Linux stuff to remain relevant.
- icc97 11y agoI know what is being proposed is a whole lot more, but the GNU command line tools that come with msys git are pretty extensive. The example commands from the article are all available with the git distribution: > cp -a > find | xargs | rename > grep | xargs | sed You can do all that - plus ssh (with ssh-agent) from the DOS prompt (you don't need PS, PuTTY or git bash). There's vim too that comes with syntax highlighting, for which there's solarized dark/light colour palettes for the DOS prompt [1], as well as decent enough consolas fonts that you can use. You can do an `ls *.exe` in the C:\Program Files\Git\usr\bin directory to see the list of programs that are there. Now that Windows 10 has done some 20 year late improvements to the underlying console window [2], you can properly resize the window and the text flows properly. The only thing I miss are the `history` and `!` commands for which I wrote a hacky bat file implementation of [3]. Edit: Clink [4] appears to be a fully compatible GNU history (Readline) implementation. Chocolatey is pretty awesome too. [1]: https://github.com/neilpa/cmd-colors-solarized https://github.com/neilpa/cmd-colors-solarized [2]: https://technet.microsoft.com/en-us/library/mt427362.aspx https://technet.microsoft.com/en-us/library/mt427362.aspx [3]: https://ianchanning.wordpress.com/2014/10/29/dos-command-history/ https://ianchanning.wordpress.com/2014/10/29/dos-command-his... [4]: http://mridgers.github.io/clink/ http://mridgers.github.io/clink/
- imron 11y agoI've been using Git Bash (installed with Mysys Git) as my Windows command line for years now. It's not perfect, but I much prefer it over cygwin.
- homulilly 11y agoIs this still going to be using the absolutely dreadfull conhost? Because that's the biggest shortcoming windows currently has with its interactive command line tools, cmd.exe and powershell are both usable, not great (okay, pretty bad honestly, but usable) when you don't consider the shitty terminal they force you into using.
- icc97 11y agoI agree conhost is terrible - but they have finally made some improvements in Windows 10 [1]: - Drag-to-resize - Automatic text reflowing on resize - Ctrl + X/C/V support for cut/copy/paste - Selection that does line-wrapping - Transparency - A full-screen mode [1]: http://futurice.com/blog/a-saner-windows-command-line-part-1
- homulilly 11y agoCtrl+Key shortcuts aren't going to work in bash (at least not without breaking other important stuff) so I'm hoping they decide to make quickedit mode more usable someday. Unfortunately I still think this is going to be kind of a shitshow as long as they keep the black box nature of conhost. The terminal apps OSX and most linux distros ship with are fairly bare-bones too and I doubt reprogrammable 256-color mode is on microsoft's roadmap.
- wvenable 11y ago"I doubt reprogrammable 256-color mode is on microsoft's roadmap..." http://www.nivot.org/blog/post/2016/02/04/Windows-10-TH2-%28v1511%29-Console-Host-Enhancements http://www.nivot.org/blog/post/2016/02/04/Windows-10-TH2-%28...
- sveiss 11y agoHopefully they'll include emulation for ptys, which will make it very easy for you to run your terminal emulator of choice instead of relying on on conhost. If they're smart, they'll allow a Linux ABI exe to sit on one end of a pty, and Win32/UWP exe on the other, so people can use a native Windows terminal emulator instead of needing Xming or similar.
- jwildeboer 11y agoTL;DR if you don't support the Linux API/ABI you are out of business. The reality is software defined everything and it's based on Linux.
- umanwizard 11y agoApple is hardly out of business and they don't support the Linux API or ABI.
- smartbit 11y agoMaybe jwildeboer talks about Cloud Native/micro-services/12 factor apps, not client apps.
- Udo 11y agoHonestly, this makes me reconsider my future OS choices. I've been an OS X user for a decade now, but getting increasingly dissatisfied with Apple's stance on hardware and software, I have been thinking about moving to Ubuntu for a while now. The problem with that though is the scarcity and quality of commercial software builds on Linux. My biggest pain points are the Unreal Engine and Unity3D IDEs right now, which technically have Linux builds available, but in practice they just don't work. With the availability of Unix command line tools (and maybe even GUI apps) on Windows, this becomes a very viable platform for me as a developer. I'd still be throwing away most of the software I purchased for OS X, but at least Windows equivalents are available. If Microsoft is indeed courting programmers again, this is a smart move.
- bigger_cheese 11y agoIf it can run GCC and EMACS I'm pretty happy. At the moment I have to use Msys. Are Ubuntu's libraries available. Could you theoretically produce a statically linked binary under Windows and then run it natively in 'real' linux
- mdip 11y agoemacs and gcc - Yes - they actually demoed emacs in the keynote and gcc in the later discussion at https://channel9.msdn.com/Events/Build/2016/P488?ocid=player https://channel9.msdn.com/Events/Build/2016/P488?ocid=player). So many tools require compiling/building in Cygwin and it'll be quite convenient to just be able to do that without the extra layer. As for Ubuntu's libraries - Aptitude is there and you can apt-get quite a bit. I believe you could -- in some cases -- static link and run in "real" linux. They were pretty insistent that this is "real Ubuntu" -- basically they've done the reverse of Wine, mapping Linux calls to Win API equivalents, so that might open up the scenario you're thinking about.
- elcct 11y agoThat will be really nice. I only use Windows for Music and for development I use virtual machines. I would love to develop things "natively" in Windows.
- voltagex_ 11y agoKevin Gallo just announced that there'll be more information live at Build at 4:30pm PDT. https://channel9.msdn.com/?wt.mc_id=build_hp https://channel9.msdn.com/?wt.mc_id=build_hp
- sarthakk 11y agoI am curious to see how Microsoft execute on the implementation of the user model for this: would user accounts used while running bash (or other utilities) correspond to actual Windows accounts (and integrate modes like "Run as administrator" with "sudo" calls from within the shell) or whether accounts for these binaries would exist separately (the demo video linked in one of the comments shows everything running as 'root' but it is a preview after all). I guess we will find out.
- leishulang 11y agoJust like IE finally giving its way to W3C, Windows is finally giving its way to POSIX.
- snambi 11y agoI have been on Unix(Mac/Linux) atleast for 8 years. A lot of developers are buying mac books these days. At this point, even non-technical people are buying "expensive" mac books. This directly affects microsoft bottomline. Obviously, microsoft cannot port mac utilities into windows to reduce the exodus of developers from windows. The stop-gap solution would be to run all "gnu core-utils" in windows natively, the most important one being apt-get. I believe at this point microsoft does not have the critical mass to create an app-store. There is not enough momentum. Only Linux, Android and Apple have successful appstores. If microsoft allows debian package manager, it can bring back a lot of developers back to windows. Still there are many companies that still use windows desktops and laptops. There is potential to evolve this into a microsoft app-store that is compatible with ubuntu. That would be a win-win for microsoft and may potentially boost sales and slow down the decline of their OS.
- manigandham 11y agodevelopers != mainstream App-stores require critical mass of mainstream users which Windows still has more of beyond anyone else. Developers follow the masses, not the other way around.
- schappim 11y agoYou say that, but we're the same a--holes who say to our family: "we'll only provide tech support for Apple devices"...
- manigandham 11y agoI dont follow how this is relevant to my comment...
- janvdberg 11y agoThere are roughly two ways to differently phrase what has happened: 1. "A multi-billion dollar corporation with almost an omni presence on the desktop computer was seeing it was missing something that was readily available with other competing solutions, and decided to nitpick the greatest parts of those competitors and incorporate it in their own solution. If you can't beat 'em join 'em strategy." 2."Computing and software is becoming more fluid, and an OS doesn't have clear boundaries as it used to have but it is just made up of whatever the best ideas are, ideas that are expressed by software and thus interconnect via API's and can be glued together to make the best possible solution to fit your needs. And that big multi-billion dollar company wants the best solution." (If you like that last idea, I have news for you. This is exactly the idea behind GNU/Linux, and it already exists. So you know, instead of being excited and giddy for all this you could just install Ubuntu.) And this is where the sticky part is. The openness of GPL software makes way for their current Microsoft approach, but it also bites itself in the butt. By using bash in such a way and incorporating this Free and Open software within this closed OS is suffocating the ideas of GPL and diluting its purpose. Because Microsoft is not GPL-ing its own code base (sure, small parts), it's just using the best parts and sticking to its own strategy. It's a smart, clever, and tactically strong move and it will be very successful. But GPL thrives and exists because of other GPL software, and this approach works and creates beautiful things (take how GCC made may for Linux, which made way for a gazillion other tools etc.). There is a viral aspect to the GPL that will be completely cut off. I believe GPL software in a non-GPL environment have a harder time in reaching their potential. But most people will just look at it from a user perspective and think: 'hey, I get best of both worlds'. But they forget that this software only got this far because of exactly this license. It's a fundamental and integral part of it's success. Since what's happening was completely unheard throughout the 90's and 00's I don't think both sides would have guessed this would ever happen. But it did. Just like a couple of weeks ago Microsoft decided to create its own Linux version to support SQL server on Linux. So even stranger things might happen and I'm trying to keep an open mind.That being said I really think the nature of software is and should be fluid and so it should be able to be stitched together to create what you need. But this only work really well, if all parts of the 'quilt' follow the same rules.
- zmmmmm 11y agoThe key question is how does the file system integration work. Cygwin has to do all kinds of tricks to make windows file paths and things like PATH and CLASSPATH variables work. Does Ubuntu see Windows files? If so, how? How then does windows see the Ubuntu files? I would also be very curious if Ubuntu executables can fork windows processes and vice versa. The magic of Cygwin is that - with all the caveats and kludges they have to do to make it work, it mostly pulls this stuff off. But they don't achieve in a manner that I would have thought would be acceptable to Microsoft when shipping a product in their own name.
- maaarghk 11y agoIt says in the article that they have reimplemented Linux syscalls in the windows kernel.
- antaviana 11y agoWill Linux programs also work on Windows Nano Server?
- justincormack 11y agoI dont think so, it is the minimal system, Linux emulation is not needed.
- caf 11y agoIs this operating at the libc level, or is it running the Ubuntu glibc package and emulating at the syscall level? If the latter, it would be interesting to see how things like futex are implemented.
- stantona 11y agoIs this a sign that Windows is moving towards a linux kernel?
- shiftoutbox 11y agoWow Microsoft, what's next jails with a manager called Plumber . Zing !
- soneil 11y agoI'm failing to see the difference between this, and any other VM? Is WOW in the cpu identifiers "windows-on-windows", the shim they use for "xp mode"? If everything's mounted under /mnt(/c..), and the screenshot shows nothing mounted there - Can this run just like a VM without the host fs mounted? I'd be really curious to see; if linux attempts to access raw block devices in /dev/, what's actually there. in the process list in windows, are all linux processes enumerated. For now it just looks like a linux VM with the guest fs mounted in the host, and the host fs mounted in the guest.
- JdeBP 11y ago> I'm failing to see the difference between this, and any other VM? Then you've failed to take in the point, copiously made in pretty much all of the coverage of this (and often right at the start), that this is not a virtual machine. This is Windows NT, the operating system designed with "personality subsystems" right from the start, gaining another subsystem that lets it run ELF64 binaries that were compiled to run on top of the Linux kernel.
- ageofwant 11y agoI've been waiting for MS to announce MSLinux for the last 5 years. Its hard for me to understand why they just don't roll their own distribution and port their common suits to it.
- dikaiosune 11y agoOnce I can have the Arch/AUR repos in Windows, it will no longer be my year of Linux on the desktop. Watching eagerly, but not sold yet.
- jhwhite 11y agoMy heart skipped a beat when I saw that that ssh is going to be available. And tmux is being worked on! But will I be able to change shells? Will I be able to put zsh with oh-my-zsh on it?
- icc97 11y agossh is already available natively if you install msys git
- shanselman 11y agoAnd there's openssh as a Windows binary that will eventually ship with Windows in the future. https://github.com/PowerShell/Win32-OpenSSH/releases https://github.com/PowerShell/Win32-OpenSSH/releases
- hatelove85911 11y agoBest news coming from Microsoft. I had been struggled for a long time for being stuck in the windows OS on my working PC, hope it's going to be mature and stable ASAP
- rhabarba 11y agoIt's been a couple of years since Microsoft stopped developing their Xenix UNIX system and sold it to SCO so they could concentrate on OS/2 and DOS. It's been some years less since Microsoft started providing Unix command-line tools for their professional Windows series which has lately come to a halt too. After all, there's not that much ground-breaking "news" in this story. About the technical part: 1. I wish they wouldn't distribute it in cooperation with Canonical, a company with a reputation that is rapidly decreasing for very good reasons. 2. I, for one, would surely have preferred the `ksh` which came with earlier "Unix for Windows" packages, IIRC it was the "MKS ksh", but I guess they had a reason. 3. I'm afraid of what this means for the PowerShell.
- spectaclepiece 11y agoIt's like i you had two friends your whole life, you needed one and you really liked the other but they lived in different cities and all of a sudden they move in to the same flat. I am sure there is a firestorm of opinions in the hundreds of comments below this textbox but frankly I just want to say that this was the best fucking news I have had all year.
- beamatronic 11y agoIs this a cheap ploy by Microsoft to get me to stop fighting that Windows 10 upgrade? If so, it worked!
- rhabarba 11y agoBy the way, for those who are curious: there already have been native (non-msys) Windows versions of Vim, ls etc. for years.
- jasonjei 11y agoThis is totally reminiscent of the Apple integrating the NeXT code base (and inheriting BSD by way of it). If they can integrate Linux as a first-class citizen in Windows, I will totally be sold on Windows as an OS platform. Can you imagine the day you'd be able to link a library built in Linux with a Windows native app?
- discordance 11y agoOn the plus, Rails won't be such a pain to install on Windows now.
- hackguru 11y agoWhat does this mean for PowerShell?
- Sanddancer 11y agoNada. This is an addition to PowerShell, like Services For Unix was back in the day. Different use cases and there are a lot of things from both ends that don't map to the other.
- joeyaiello 11y agoSee my reply on the other thread: https://news.ycombinator.com/item?id=11392734 https://news.ycombinator.com/item?id=11392734
- israrkhan 11y agoI hope this will make porting Linux application to windows a breeze ( fork, and other syscalls that do not have equivalent windows APIs).
- newman314 11y agoI wonder if this means that I can natively ssh into Windows via this method. Anyone know if daemon/services are permitted eg sshd?
- dcw303 11y agoThis is good news for developers with Macs, and it has nothing to do with an option to switch platforms. By doing this, Microsoft are legitimising bash as an OS feature for "developers who like unix". This has two effects on Apple: 1. It means they will be less likely to remove their bash CLI from a future OSX / iOS hybrid workstation OS nightmare that we all don't like to think about. 2. They will have to compete with Microsoft for customers who are "developers who like unix". Competition is good for us, the users.
- drakenot 11y agoI was thinking this as well. The bash version which is included with OS X is really old[0]. They refuse to ship any software which is licensed under GPLv3. It makes me wonder if they will reverse on that stance? Homebrew also breaks with every major OS X release. It would be really nice to get some 1st party support on a package manager. I feel like Apple does the bare minimum in this area to stay POSIX compliant. I would really like to see them feel some pressure here. [0] https://www.reddit.com/r/bash/comments/393oqv/why_is_the_version_of_bash_included_in_os_x_so_old/ https://www.reddit.com/r/bash/comments/393oqv/why_is_the_ver...
- timgws 11y agoDoesn't stop you from installing homebrew, and installing a newer version of bash though.
- JdeBP 11y ago> Microsoft are legitimising bash as an OS feature for "developers who like unix". You are imputing far too much power to Microsoft. It's Linux operating systems that have "legitimized" the Bourne Again shell as an operating system feature, long since and with more clout than Microsoft could wield in this regard. As such, if Apple can stand up to the "pressure" from a quarter of a century of Linux operating systems, several of which are no longer "bash everywhere" in any case, it can stand up to any pressure that the Windows NT Linux subsystem could possibly exert. Anyway, "developers who like Unix" hopefully also like its long-standing notion, going back to the 1970s, that there is not only one shell. Thompson, Bourne, Almquist, C, TENEX C, Korn 88, Korn 93, MirBSD Korn, Bourne Again, Z, Debian Policy-compliant, Debian Almquist, Friendly Interactive, Yet Another, .... Given that this new subsystem is touted as giving developers the means to run Ubuntu toolsets, it behooves us all to look and see what Ubuntu (14.04, the same as in the demo video) actually has when it comes to shells: * http://packages.ubuntu.com/hu/trusty/shells/ http://packages.ubuntu.com/hu/trusty/shells/
- jegoodwin3 11y agoSomething similar was available years ago on sourceforge: https://sourceforge.net/projects/line/ https://sourceforge.net/projects/line/ ("Line is not an emulator") Hard to tell from the article, but I'd guess they just made an MS version of what this project does. The "mapping syscalls" sounds like implementing the ABI, similar to how Line did it.
- yarou 11y agoThis is neat. Many moons ago, I remember using Interix and SFU on Windows XP (also tried coLinux and of course Cygwin and mingw as they became available). What I did notice with SFU/Interix is that they were extremely sluggish, when compared to an actual POSIX system. It will be interesting to see the performance of this on Windows 10.
- awqrre 11y agoHopefully this will fail and they will switch to GNU Linux and ditch Windows... that would be a long time dream come true.
- apricot 11y agoMicrosoft is embracing Ubuntu. That's the first step. https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish https://en.wikipedia.org/wiki/Embrace,_extend_and_extinguish
- tomc1985 11y agoEmbrace, extend, extinguish...
- ausjke 11y agoUbuntu desktop can do pretty much all Windows can do these days, not to mention mostly all I need is just a browser now. I spent 364 out of 365 days with a Ubuntu and it works fine(yes the one day left is for Turbotax that needs the Windows). Maybe the real reason that MS is moving super fast towards open source nowadays is to damage the open source goodies from within after they failed to attack it heads on many years ago? I just don't trust MS and it's hard to change that after so many years' hostile move from its side.
- Fogest 11y agoAnd what about games? Majority do not work on Ubuntu/Linux.
- bluejekyll 11y ago> I just don't trust MS and it's hard to change that after so many years' hostile move from its side. Yeah, same feeling. Given all the lawsuits to monitize patents against Linux, I can't help but think this is some end run to accidentally get people to slip Windows APIs into OpenSource, that would then end up in Linux, and then those lawsuits end up with more teeth.
- wtbob 11y agoI've been running TurboTax on Linux for over a decade now …
- superobserver 11y agoSo now I will be able to do what I already do on my ChromeOS device with Crouton, but worse. I admit that gives me a bit of encouragement since I'm shackled to Windows at work, where I really try to make the most of it, but I'm by no means impressed given I already have done the following to get many native GNU/Linux binaries (as one example): PS > Install-Package gow -Source Chocolatey Another example: cygwin The real limiting factor has been muxing terminals while on Windows. And judging by the post, that certainly remains a problem. If they could successfully bring a full Bash terminal to Windows 10, I would actually be somewhat impressed.
- bluejekyll 11y agoDoes this imply better POSIX compliance by MS as well?
- shostack 11y agoI'm a Win10 user who is learning Ruby and RoR on Ubuntu setup with Virtualbox/Vagrant/Chef with Git Bash as my terminal. Is there any real benefit to me switching over to this approach aside from what I'm guessing is better performance since it is native and not a VM?
- davesque 11y agoThey should call it Winux :P.
- T-A 11y agoNice chat / Q&A about this here: https://channel9.msdn.com/Events/Build/2016/C906 https://channel9.msdn.com/Events/Build/2016/C906
- rajahafify 11y agoCan unix fork() be used?
- emmelaich 11y agoFantastic! Curious to know how tight it is tied to Ubuntu. Presumably very little or none. Also, would it require Windows 10 Pro? I suspect so.
- indiv0 11y agoGreat! I've been waiting for the day I can `rm -rf system32`.
- ctstover 11y agoI've seen plenty of windows centric IT departments that would try to ban this from being installed. This act of admission will just be to iconoclastic for all those really enterprisey entrenched forces. You know the type.
- madmax96 11y agoAs a FreeBSD user, this does nothing to attract me. I dislike GNU+Linux because it feels like a hacked together mess; now they're going to add that poorly designed system to an even worse system? Count me out.
- andor 11y agoIf you weren't trolling, I'd suggest you to leave your bubble from time to time. There are pros and cons to everything, and finding the good parts is usually more productive. Just for fun, here's a version of your quote from another perspective: As a Linux user, FreeBSD does nothing to attract me. I dislike it because it feels like it's stuck in the 70's, with a mess of shell scripts for system and service management. Now with the SCO Unix compatibility layer they added something absolutely prehistoric to what already felt old. Count me out. Also, how did you post this, is there a browser for FreeBSD now? ;-)
- madmax96 11y agoFirefox runs fine on FreeBSD, as does chromium. That's your opinion, and your certainly entitled to it. I value simplicity, and IMHO it's easier for me to wrap my head around FreeBSD than Linux. I've used Linux of course, but I consistently find that it (the userland, system configurations) violates the rule of least surprise. If Linux works for you, certainly use it. Just realize a lot of us UNIX guys aren't thrilled about Linux, and aren't going to be thrilled about this subsystem because we have different values than the Linux community. And by the way, FreeBSD's init system solves a lot of the same problems that systemd solves, albeit in a more transparent fashion. Zfs is also great. FreeBSD users have enjoyed containers now for quite some time, and didn't need Docker to do it. Your remark about the supposed antiquity of FreeBSD reveals a fundamental ignorance of its technologies and principles.
- giis 11y agoDoes it comes with patented 'sudo' command? http://www.linux-magazine.com/Online/News/Microsoft-Patents-Sudo http://www.linux-magazine.com/Online/News/Microsoft-Patents-...
- Stratoscope 11y agoSo how does one actually install this thing? I set up the brand new Windows 10 Pro Insider Preview 14295 from MSDN. Hanselman's blog post says: > After turning on Developer Mode in Windows Settings and adding the Feature, run you bash and are prompted to get Ubuntu on Windows from Canonical via the Windows Store... OK, I turned on Developer Mode. Now what? What does "[add] the Feature" mean? http://www.hanselman.com/blog/DevelopersCanRunBashShellAndUsermodeUbuntuLinuxBinariesOnWindows10.aspx http://www.hanselman.com/blog/DevelopersCanRunBashShellAndUs...
- shanselman 11y agoBuilds coming soon first via the Windows Insider Program. Sign up and you'll get it all over Windows Update soon.
- Stratoscope 11y agoThanks Scott! I've got my Insider builds turned on with the Fast level on this test machine, so will hang tight and wait for updates. Well, actually my "test machine" is a Windows 10 14295 VM running in Parallels. So if this ends up working (no reason it shouldn't) I will be running Ubuntu on Windows on OSX! :-)
- kitsirota 11y agoHaha I am running Windows 10 on a macbook pro (bootcamp). So in my case it would be ubuntu on windows on a macbook =P
- kitsirota 11y agoThe wait is literally killing me! Scott, is there any chance you could drop a hint how soon is "soon"? Will this drop on a Wednesday with other updates or will it be a special release? Thank you!
- shanselman 11y agoThis is in the current Insiders release, NOW.
- BogusIKnow 11y agoIt is funny how in your head, one image of a company is replace by another over time. It does not happen instantly, but with more and more actions by the company (open source .NET, Ubuntu on Windows,...) the image changes over time. I found that fascinating watching myself change the image of MS in my head.
- executesorder66 11y agoIt's really cool that this can be done. But why would you not run Ubuntu on Linux? What is the advantage of running it on a windows kernel?
- stop1234 11y agoSo wait... you still get the "cmd.exe console"? After all these decades Microsoft Windows still does not provide a decent terminal out of the box?
- JdeBP 11y agoOf course, one could phrase the question the opposite way. Many people have, over the years. > After all these decades, Unix and Linux people are still limited and encumbered by the antique typewriter-mode way of interacting with a computer? This sword cuts both ways, remember. In many people's minds, the typewriter-oriented way of interacting with computers -- with all of its concomitant problems of multiple incompatible escape code sequence sets, control sequence tearing, terminal mode enquiry from the host end, modal character encodings, modal display, 8-bitness, 7-bitness (!), and of course all of the modem and serial line hoops to jump through -- is something that the world got away from in the 1980s and early 1990s. The console subsystems in Windows NT, and in OS/2 1.x before it, provided simple manipulation of cursor and attributes without worrying about which escape sequence set to use or without danger of escape sequence tearing. They provided simple enquiry mechanisms for reading characters and attributes back out of the display, and for reading the cursor. There were no worries about "having bit #7 set", or accidentally dropping into "great runes mode". One could use full UCS-2 (this was pre-Unicode 1.1, remember) if one wanted to avoid worrying about code pages. The kernel didn't impose a fixed number of devices or (at least in Windows NT) a low limit on the total number of consoles. The input stream included both keyboard and mouse events in a single machine-readable form, and application softwares didn't have to decode human-readable (sic) protocols for the latter. Keyboard events comprised key press and release information. There were no worries about BPS settings and carrier detect. * http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/conapi.html http://homepage.ntlworld.com./jonathan.deboynepollard/Softwa... * http://homepage.ntlworld.com./jonathan.deboynepollard/Softwares/conapi/ http://homepage.ntlworld.com./jonathan.deboynepollard/Softwa... All of these were 1980s advances on the state of the art with respect to typewriter-oriented interfaces, and from them in the same decade we got a whole range of TUI programs (even on MS/PC/DR-DOS) whose textual user interfaces did things like incorporate the mouse, draw UI widgets with actual box/line/arrow glyphs, react to modifier keys as they were pressed and released (the most memorable perhaps being a press and release of the [ALT] key activating the menu bar), and save and restore what was displayed "behind" a window/dialogue box. So one should understand the non-Unix non-Linux world's amazement at people who bemoan the lack of systems inferior to even that. And after that in the 1980s, they will tell you, we gave you the ability to have graphics with the text, multiple fonts, more than 16 colours, a cross-application clipboard, a unified message queue, message passing between different programs, and so forth. There's another "after all these decades" question that could be shot back, as well. > After all these decades, it's only in 2011 that the Unix and Linux worlds finally got a workable mouse event protocol for their typewriter user interface? The OS/2 MOU subsystem could handle 16-bit row and column positions, without any of these problems and in the same recognition that consoles were no longer 80 by 25, in 1987! * http://www.edm2.com/index.php/OS2_API:DataType:MOUEVENTINFO http://www.edm2.com/index.php/OS2_API:DataType:MOUEVENTINFO * http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Extended-coordinates http://invisible-island.net/xterm/ctlseqs/ctlseqs.html#h2-Ex... * http://superuser.com/a/413835/38062 http://superuser.com/a/413835/38062 * https://groups.google.com/d/msg/vim_use/lo6PLRUu2Gg/MDcpLf1PDZ8J https://groups.google.com/d/msg/vim_use/lo6PLRUu2Gg/MDcpLf1P... * http://leonerds-code.blogspot.co.uk/2012/04/wide-mouse-support-in-libvterm.html http://leonerds-code.blogspot.co.uk/2012/04/wide-mouse-suppo... There is no "Microsoft cannot do a decent terminal (like we can)" high ground for you to claim.
- paramk 11y agoSo does this mean sooner or later we will be seeing the end of Cygwin ?
- ruevs 11y agoThis is ancient news re-implemented. Windows NT had a POSIX layer up to about Windows Server 2003: https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem http://brianreiter.org/2010/08/24/the-sad-history-of-the-microsoft-posix-subsystem/ http://brianreiter.org/2010/08/24/the-sad-history-of-the-mic...
- wsc981 11y agoA 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". Sounds a lot like Rosetta [0], which Apple used to transition people from PowerPC to Intel. --- [0]: https://en.wikipedia.org/wiki/Rosetta_(software) https://en.wikipedia.org/wiki/Rosetta_(software)
- homero 11y agoSick
- jwr 11y agoIt's basically what WINE has been doing for years, but the other way around.
- partycoder 11y agoWhile I encourage people to embrace open source tools and libraries as much as possible, I also would like to issue a word of caution on feeling too comfortable targeting a proprietary environment such as Windows. Some people have compared Mac OS X and Windows because of their proprietary nature, but one key difference is that you don't run Mac OS X as a server operating system or on the cloud. While many people develop on Mac OS X, they might still build and deploy to a Linux server. For Windows to support the GNU/Linux userland is to finally empower Windows as a competitive platform for the cloud. Windows has suddenly became a viable deployment target for a wide spectrum of software that prior to this could not target Windows. I am not looking forward for a lower market share of Linux (or BSD, Solaris derivatives, to be fair) on servers or on the cloud.
- creshal 11y agoAnd people should also take a long look at Silverlight, XNA, and all the other technologies Microsoft dropped on a whim and left developers relying on them to hang dry; before they decide to bet on Microsoft SFU 4.0 "This Time For Reals" Edition.
- nekkoru 11y ago(...)one key difference is that you don't run Mac OS X as a server operating system or on the cloud. http://www.apple.com/osx/server/ http://www.apple.com/osx/server/ It's actually a pretty decent server environment.
- partycoder 11y agoThat's a valid point, but you cannot elastically provision 100 OS X servers machines on demand in the cloud.
- nekkoru 11y agoI don't think anyone has tried it, but is there a reason why it couldn't be done?
- WatchDog 11y ago
- gchokov 11y agoWindows is going absolutely nowhere.
- nxzero 11y agoIt is possible this is the beginning of the end for Window and Linux too. Basically the strategy would be to get all the user to switch to a priority (aka propriety) version of Linux, much like Google has done with Android.
- creshal 11y agoCanonical has been trying that for a long time, what with Ubuntu having a huge semi-proprietary code base not shared with any other distribution (Mir, Unity, own font rendering, Launpad/bzr for development, …).
- nxzero 11y agoObviously, Canonical isn't Microsoft, though who knows, anything is possible; maybe Google will acquire Canonical.
- hathym 11y agoWill cygwin die?
- bonkskiboot 11y agoI have to admit that watching the comments of all the "freedom philosophers" is entertaining. Even when something good happens...people running more free software...it's just not good enough. Never mind the massive amounts of "un-freedom" that are involved in producing computer hardware...or that their profit RMS developed his "freedom philosophy" on computers at MIT that were being used to literally build the most powerful technologically advanced military in history. Seriously, protesting password access to computers paid for by DARPA? Tool. So are all of you fanboi's.
- mpnordland 11y agoI just can't see them being willing to support all the different and weird configurations (like space bar heating) that exist. I don't believe I have a weird configuration, but I've run into old bugs that nobody wants to fix before, so I really don't think I'll switch to Windows. I just can't imagine that it will be any easier in the long run.
- prirun 11y agoI won't be running Ubuntu on Windows 10, because I'd never run Windows 10. It's like inviting Microsoft to take up permanent residence with me, and eventually, I'm sure I'll be the one paying for the privilege.
- jagermo 11y agoDoes anyone See any possible security problems with that Setup? It looks so promising and fun, i hope you can secure all that additonal capabilities.
- gumby 11y agoI'm not being deliberately obtuse: I don't really understand how this helps anyone particularly much. (OK, I assume there's a small number of developers who develop, or at least debug, for both systems and prefer windows as a development environment, but I assume that number is small, at least on Microsoft's scale). If you're developing to deploy on Linux but are more of a Windows dev, this helps you, but that doesn't help Microsoft ship more server OS licenses. If you're a Windows dev this is irrelevant. If you're a linux (or posix only) dev I don't see how this helps you much. It does help a person like me, who only uses Windows when I need some weird tool like a compiler for an exotic embedded part or vendor-supplied FPGA tool that only works under Windows -- again, not a large enough market t move the needle. Could the market be CIOs? I.e. demonstrating "hipness" in a way that can be verified when the CIO asks the devs "does this really work the way MS claims?" Obviously it's not opening the huge number of popular Linux desktop apps to the Windows environment. :-(
- larsiusprime 11y agoNever having to run Cygwin again sounds pretty great to me!
- mcintyre1994 11y ago> If you're developing to deploy on Linux but are more of a Windows dev, this helps you, but that doesn't help Microsoft ship more server OS licenses. Could it be something to do with helping Microsoft sign up more Azure customers using Linux? Windows dev, Linux on Azure deploy, end to end Microsoft.
- Slippery_John 11y agoI work on a platform agnostic python tool. It's just so much easier developing python on a nix system, but I'm restricted to either an old version of enterprise linux or OSX. I love linux, but I don't love having to customize everything to get a workable environment. I tolerate OSX, but if it wasn't nix I would never touch it. Now Windows has some pretty major issues (utf-8 in CMD is agonizing), but it comes out of the box more usable (to me) than either OSX or the vast majority of linux distros. If I can have my nice window management and also the ubuntu user space, I'll be a very happy camper.
- gooseyard 11y agocan someone confirm whether this is derived from MSR's Drawbridge research? (http://research.microsoft.com/en-us/projects/drawbridge/ http://research.microsoft.com/en-us/projects/drawbridge/)
- zzzcpan 11y agoNo, the whole thing was created from scratch. Linux processes even live in a separate address space and are not showing up in a task manager at the moment. At least that's what they said. You should watch both videos posted here somewhere.
- altendo 11y agoI'm interested in the security implications that this will bring. Extra features bring extra potential attack vectors, and this is one doozy of a feature.
- neves 11y agoHow do I get it? I want it now!
- sebringj 11y agoNow if they can just run XCode, we are on to something.
- bithush 11y agoDoes anyone know if this will allow me to run GBD in tui mode on Windows?
- 2ifrgtmypss 11y agogo damnit... why are they still forcing explorer?
- 2ifrgtmypss 11y agothis is good for linux admins forced to use windows for stupid reasons.
- 2ifrgtmypss 11y agouser says: i need a windows server... admin says FUCKYOU! ... still makes windows server for user, at least this makes that process (in conjunction with choco) less painful.
- msellout 11y agoIf they had announced this on April 1st, the media attention might have been even better.
- tracker1 11y agoI'm actually happy to see this... it's similar to the efforts Joyent took in getting their docker solution in place.. and I'd be really surprised if that isn't one of the goals for this effort. I tend to lately have a Linux server VM on my desktop, and then SSH into it to do linux things... not having to setup a VM is a bonus imho... Being able to run actual docker, better still, as handling the VM's copy of docker images, and making them accessible outside isn't always fun. In the end, I think it's pretty cool, and scary all at once.. mainly because too many developers take no effort to making their apps work across platforms... not just Windows, but the BSD and Solaris variants.