Microsoft Brings Bash on Ubuntu on Windows 10

Yes, you’ve read that right, and no, it’s not an April Fools’ Day prank, Microsoft and Canonical really cooperated to bring Ubuntu user space to Windows 10 allowing developers and others to run bash commands directly into Windows. All you’ll need to do is to install Ubuntu on Windows app, hit the Windows key, and type bash to get a terminal window.

Once you are in bash, you can run any Ubuntu command line, including apt-get to install packages, just like if you were in a terminal in Ubuntu, and all binaries are the same as in Ubuntu, as Microsoft implemented new infrastructure within Windows called the Windows Subsystem for Linux (WSL). That means Ubuntu runs without Linux, but instead the implementation is a conversion layer somewhat similar to Wine to run Windows programs in Ubuntu, or Libhybris to convert Linux calls to Android calls.

Dustin Kirkland, in charge of Ubuntu Product and Strategy, explains it’s not Ubuntu running in a virtual machine or a container, not something like cygwin his blog post about the announcement:

“Right, so just Ubuntu running in a virtual machine?”  Nope!  This isn’t a virtual machine at all.  There’s no Linux kernel booting in a VM under a hypervisor.  It’s just the Ubuntu user space.
“Ah, okay, so this is Ubuntu in a container then?”  Nope!  This isn’t a container either.  It’s native Ubuntu binaries running directly in Windows.
“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.
[long pause]
“So maybe something like a Linux emulator?”  Now you’re getting warmer!  A team of sharp developers at Microsoft has been hard at work adapting some Microsoft research technology to basically perform real time translation of Linux syscalls into Windows OS syscalls.  Linux geeks can think of it sort of the inverse of “wine” — Ubuntu binaries running natively in Windows.  Microsoft calls it their “Windows Subsystem for Linux”.  (No, it’s not open source at this time.)

CPU, memory, and I/O performance is almost the same as native performance according to results obtained with sysbench utility.

Since there are already ways to access a Linux terminal in Windows as mentioned above, this new feature may not not seem much, but for example that means Ubuntu or Linux instructions posted in this website, most of them using the command line, will run in Windows 10 natively without having to install a VirtualBox or VMWare and a virtual machine running Ubuntu.

You can also get a perspective from a web developer using Windows 10 on Scott Hanselman blog.

This is a beta release so it’s not working 100% just yet. If you are part of Windows Insider program you can have access to the early beta of Ubuntu on Windows.

Share this:

Support CNX Software! Donate via PayPal or cryptocurrencies, become a Patron on Patreon, or buy review samples

17 Replies to “Microsoft Brings Bash on Ubuntu on Windows 10”

  1. the perfect trojan horse..
    well now to permanently kill the “great” windows experience, install X and feel the pain =)

    besides the filesystem (obviously), which interfaces are available, display, networking, bus devices ?

    wait wouldn’t the smart move have been to do the opposite ? bring windows binaries to linux..
    I mean steam guys, bring steam to linux pleeaaase..

  2. yeah, linux geeks used to compile their linux kernels every time a led should blinking another way than it did before or to change screen resolution, clearly got confused how Windows run ubuntu progs… xD But Wintows NT from the very beginning has a conception of environment subsystems incorporated in its architecture, which gives you an ability to implement every system API/system call services interface needed. Basically, – every userspace from the other OS. withot any emulation or that ugly virtualization. If you desire. POSIX, OS/2, anything else. Giving NT has a great modular design, it’s all possible relatively easily. The other thing is that having Win32/Win64 API user space, you just don’t need anything else. So all those posix subsystems, os/2 were discarded. And now someone on the high chairs in MS decided to flirt with the linux community. And commanded to do this. I understand and welcome porting to linux MSSQL, or Windows development tools, but this. For what the reason there is needed a ubuntu user space in Windows? For freaking bash?! Having Powershell? and a bunch of other things? so maybe it would be easier to port it into Win32/Win64? as a standalone application? If it is that needed (to someone). what the ubuntu userspace brings to the Windows ecosystem except a mess? It’s just practically not needed on Windows, all what ubuntu userspace may bring to Windows is mediocre comparing to the native Windows counterparts. For example that awful ugly graphical things – X server and other dinosaurs and mutants. Just look how they rape CPU on linux! and how ugly UI on linux is! Even if graphical subsytem would be translated to the Win, then still, what it gives? Firefox for X translated to run on Win? For what? Toeat not 150MB of ram at the start, but 300MB?… My prediction is this thing will be discarded soon. But if bringing the bash command line interpreter is worth all of this, then at least to ones loving to masturbate with it this will be a good news. I don’t care about linux stuff on Windows and won’t use them. The only notice to those sharp engineers, who did it, you, guys, have wasted your brilliant time. If you wanted something crazy, you’d better off to not discard Itanium architecturecontinuing support it in new kernels, and press Intel to not discard it and push it into broader range of market. I believe it is worth the effort. It’s great architecture. Well, it’s totally another question.

  3. @cortex-a72

    You should not spend time to write long comments like this one. When you wrote:

    linux geeks used to compile their linux kernels every time a led should blinking another way than it did before or to change screen resolution

    Everybody clearly understands that you don’t know anything about Linux. Nobody reads the rest 🙂

  4. @Laurent Simon
    I was using sarcasm, but that one was not far from the reality, and I don’t need to convince you, just read numerous forums if you want to see, they are speaking out on this topic loudly.

  5. @Laurent Simon
    well i think you got trolled on that one, or let’s say it was a figure of speech on his part.

    Anyways, that video is hilarious !
    they basically keep saying “if i were (not using windows) blahblah or if i were (still not using windows) blahblah” to conclude with “the team is working very hard on this” (making sure you keep not using windows !?).

    I’m seriously wondering if they realize that it’s not the shell that makes linux attractive, who knows..

    cortex-a72 :
    For example that awful ugly graphical things – X server and other dinosaurs and mutants. Just look how they rape CPU on linux! and how ugly UI on linux is!

    I must somewhat disagree with you on that point, X is ugly but the UI is quite good looking and soon enough (well you know we count in decades on linux, right ?), X will be gone and my nice and slick UI will still be there 🙂

  6. This is almost some kind of April fool !
    Imaginate that people will have to install tons of Linux library to run most relevant applications.
    And everything will be on top of Windows Kernel ?
    Even NTFS will produce many kind of errors, because it is simply far from been an EXT4 filesystems.
    It will be a complete flop !

  7. @cnxsoft
    Ok, it’s their choice. I don’t believe it much, I see it by my own eyes, there is some flirting lately not more. Actually back then in the early 90ths, when NT was coming out, full support of the POSIX subsytem was more needed to encourage unix developers and customers migrate on NT. And they didn’t release the full support. There is no real demand from the developers side on Windows to bring bash now. It’s just ridiculous argument.
    ” Many developer tools are working better in Linux.”
    But this one is even more ridiculous unless you are talking about development tools intended to run on linux. maybe those really run better on linux. But most often, tool are designed first for Windows and then, if there is some desire and noise, the tool is ported on linux.
    Anyway, it’s linuxoid prevailed place I understand, so I will not continue this and end somewhat positively. I for example would welcome if MS decided to bring full support of their compilers to posix-like platforms, and broaden this to not only arm but the mips architecture too. It would be really cool for all. linuxoids finally would get the real compiler. xD

  8. @Martin
    Lol. right. but they first would need to find those “tons of relevant applications”, with which there is no the same app or adequate alternative on Windows from the beginning. (except invicible bash of course xD)
    But generally you’re wrong. NTFS or any else FS, in this scenario would not be a problem. You should learn somewhat about environmental subsystems on Windows and the NT architecture and generally – on OS architecture to do such a conclusions. You seem missing the point. But coincidently, your conclusion is right, just for another reason, – that would be a flop cause noone needs linux apps on Windows.

  9. Technically, there’s nothing new. NT had POSIX subsystem (expensive). Cygwin is there since 1995, UWIN from 1997. In 2002, you could run Linux binaries on Windows using LINE (look up on SourceForge). In recent couple of years, it was a common theme among open-source project to tell: “You have a problem building our project under Windows? Stop wasting your and our time, install Linux in VM and rejoice.”

    Organizationally, it’s of course a big step that Microsoft now tells everyone the same: “If you have problems with Windows development tools, just use Linux ones instead.”

  10. @Paul
    Yeah, it’s a way more politically correct answer to this imagined question that the right one – “If you have problems with Windows development tools, then you are just a moron and your open source project whose developers weren’t able to handle it to compile it on our dev tools is moronic”. Seriously how you guys love to talk about yourselves and give yourself such a freaking “important” role. Gosh, it’s even somewhat sad to look at this.

    The normal project should not be built every time a user wants to use it at all – it should be delivered as a prebuilt binary to happy customers. And even if it is needed to customize it at the source level from the third party, then IF that project is going to support Windows (or whatever else platform) it MUST manage itself to be able to compile on the dev tools of that platform. If not, this is ITS problem and its lameness, not the platform, not the user. It’s amazing how zealots reverse all the thing upside down. who the hell should care about your lame projects, this is NOT users problem but yours, and they never should take such a project into consideration if it is so lame. Only masochists would continue do this. for those VM’s were thought out.

    And technically it’s a big deal to implement one OS’s user space to run on another completely deifferent one, in this case it’s wasteful (linux apps have no any value on windows), but it doesn’t mean a lot of job hasn’t been done. It’s more than just a translation layer for the system services accommodation, there are many subtle things along the way. They possibly would need some kernel module(s) for the extension of system services, to adapt efficiently posix\linux realities that don’t map to NT services easily. they should have done the whole user space part of the library part of subsystem API, some kind of analog to kernel32 with the company for the ubuntu user space, and also some analog of the server part of the subsystem – analog of csrss.exe, then there was need to fit it into graphical subsystem, thus they have to establish some bridge between X (or whatever ubuntu uses) and win32k/gdi/direct2d or replace linux graphic stack at all still giving X applications the old interface. this is entirely complex task. Especially because of this it’s so wonders me – why, for what to do such a huge job? the reasons? to have been liked by that camp of zealotry, arrogancy and hatred? just look at them, they seek attention on every step, you just give them a chance to satisfy their complexes not more. love for you from them will never happen, cause the main reason of that hatred is jealousy. since linux was irreversibly kicked out from even becoming the #1 OS for the end users, the hatred to MS from that side never stops. this flirting is stupid. And I finally go work! xD

  11. cortex-a72, LOL, this matter has really got you spinning ;-). Pity nobody reads your long ramblings, I may imagine there’s even rational seed somewhere in there, just your curse words vocabulary isn’t large enough to convey it ;-).

  12. @cortex-a72
    u mad bro?

    obviously you don’t understand that this is an unofficial acknowledgement by MS that Linux has by far the most flexible and powerful set of userspace tools. Something that MS has failed to be able to provide until now. They have finally caught up to the idea and will now slowly start to provide a complete *nix sublayer to make windows finally a useful and productive system. Looking forward to the first truely open MS Linux Distro built on the NT kernel… should be interesting.

  13. Still on a non-stable kernel
    Still on a closed thing hard to debug
    Still on something that lock you for update without asking you if you want to update now, locking your work, blocking you from shuting down your computer when you are hurry an still hope some battery for later work.

    A very good thing on a so sucking and scary big binary blob 🙁

  14. cortex-a72 :

    But generally you’re wrong. NTFS or any else FS, in this scenario would not be a problem. You should learn somewhat about environmental subsystems on Windows and the NT architecture and generally – on OS architecture to do such a conclusions.

    My point is that NTFS isn’t well designed. did you ever tried to move a file while it is open by an application ?
    On Linux you can do that without any problem because EXTx FS are using Inode. On NTFS, you can’t, it will simply lock the file, there is no concept of Inode.

Leave a Reply

Your email address will not be published.