20

As most of you know, in the Microsoft Store, there are three versions of Ubuntu. This means that on Windows I can emulate Ubuntu and have the Ubuntu command line directly on Windows.

The question is very easy: what can’t I do from the Ubuntu command line emulated in Windows that I can do on a proper Linux-based Ubuntu? Is it useful to download this Ubuntu application, install it, and work just with it instead of the real OS? Is it possible to install all the development libraries? Can I write (or not) device drivers? In other words: what are the limits?

What features of Ubuntu Linux-based are missing from Ubuntu-on-Windows?

New answers are welcome: I know that every software is always changing by improving characteristics and features!

  • If you've booted into Windows, perhaps for gaming, it's nice to have Ubuntu 16.04 installed there when you are on micro-breaks, reading Ubuntu Q&A's here and want to quickly check some commands out without rebooting. If you want the limitations of Ubuntu on Windows your best bet is to go to Microsoft's website and read all the new feature requests or bugs users have posted: docs.microsoft.com/en-us/windows/wsl/faq – WinEunuuchs2Unix Jul 2 '18 at 15:21
  • 1
    WSL is still quite a lot slower in terms of I/O (disk operations), even compared to Linux virtual machines running on Windows. Though, this seems to be an area worked on by Microsoft. – liori Jul 2 '18 at 22:23
  • @jpaugh, exactly, thanks! I have also just updated the question again :) – Leos313 Jul 3 '18 at 10:40
21

The Ubuntu that runs under Windows 10 Subsystem for Linux is not a full distro. In fact, it's not Linux at all -- it has no Linux kernel. So you can't test or try kernel extensions, including drivers, because you're not running Linux.

If you want to do stuff like that, either install Ubuntu in a VM -- Win10 includes Hyper-V, but personally, I prefer VirtualBox, which is free -- or dual-boot your machine with Ubuntu running on the bare metal. You will almost certainly find the latter faster than running Windows -- I do on all my machines. Partly this is because you need antivirus protection when running Windows, which saps performance, especially disk performance. And because you need it, Win10 includes built-in antivirus.

With Linux, you do not need any, so there is less performance impact.

  • 18
    Why do you think that you do not need antivirus on Linux? – Zymus Jul 2 '18 at 15:38
  • 7
    @SeligkeitIstInGott It's not an emulator. It's a compatibility layer, just like for Wine on Linux. – Eric Duminil Jul 2 '18 at 17:19
  • 6
    "With Linux, you do not need any [antivirus], so there is less performance impact." -- Linux is not immune to viruses/malware/etc. Antivirus SW is useful in Linux both to protect yourself and to prevent bad stuff from spreading to other environments (e.g. Windows). I know it is not normally used, but that doesn't mean the threat doesn't exist. – Daniel Jul 2 '18 at 23:35
  • 4
    I have issue with this. 1. Antivirus is not "required" to run windows. The windows operating system will run without an antivirus. It also comes with an antivirus, which leads to point 2: picking random software to point at as "slowing down the OS" seems arbitrary - what if I argued that ubuntu was slower because I needed a bunch of extra software to get apps working that only work in Windows? (like a VM so I could play AAA games?). 3. You have provided no evidence to support this claim. – Caleb Jay Jul 2 '18 at 23:40
  • 6
    @Hack-R There is no deception. They have been quite clear from the beginning that this is not the actual Linux kernel. It started off as "running Linux tools, especially Bash" to "running Linux environments/distributions/applications". If any of that is deceptive, so is WINE. – Bob Jul 3 '18 at 1:48
7

One of the things you cannot easily do under the Windows Subsystem for Linux (WSL) is run Linux GUI applications.

To do so you have to install an unsupported X11 server such as VcXsrv or Xming.

Enabling WSL is relatively trivial. It seems to be pretty good as a Linux command-line userland.

  • I wouldn't call VcXsrv unsupported. They've released about 10 updates since I've been using it (October 2017). – WinEunuuchs2Unix Jul 2 '18 at 17:19
  • 1
    @WinEunuuchs2Unix: I meant unsupported by Miscrosoft, in the sense in which they support WSL by implementing the kernel API, distributing the Ubuntu userland, providing tools to install/enable WSl and so on. – RedGrittyBrick Jul 2 '18 at 19:04
4

From How-To Geek:

[It] doesn’t yet support background server software, and it won’t officially work with graphical Linux desktop applications. Not every command-line application works, either, as the feature isn’t perfect.

Update from allquixotic's comment:

As of Windows 10 v1803 background tasks are supported.

  • 6
    As of Windows 10 v1803 background tasks are supported. – allquixotic Jul 3 '18 at 1:46
  • It might be helpful to point out "background tasks" = crontab and other daemons. Here is a practical example of loading crontab when Windows boots up. Then using rsync every 2 days to backup Windows database: blog.snowme34.com/post/… – WinEunuuchs2Unix May 7 at 11:24
4

There are many useful pieces of information on each of the above answers. I am here summarizing the main concepts of each of them.

Update May 2019: as pointed out in one of the most recent answers, WSL is evolving by using the real Linux Kernel and giving many more options. I have been through this document and, if confirmed, it will be a big step forward. Here you can find a nice article about the topic "real Linux kernel on W10"

Summarizing: "Ubuntu on windows is the complete Ubuntu userland on top of a Windows kernel in Linux-Compatibility mode", as point out in one of the comment.

What I can't do:

  • Officially, no graphics interface supported so far. This means also that graphics applications cannot be executed. Additionally, the standard GUIs of the classic Ubuntu Linux-based are not supported for this reason of course.
  • The kernel of Linux developed by Linus is NOT part of the Windows Subsystem for Linux (WSL). This means that you cannot develop drivers and try it directly.
  • Not every command line works.

What I can do:

  • Use the command line and the basic Bash shell. It is possible to write and execute scripts.
  • Develop applications (compile or cross-compile and execute them) but with no graphics so far.
  • Use "apt-get" to install/remove new/old packets.

Additional information:

  • other distributions are officially supported (like, for example, Debian and Kali)
  • these applications are free, downloadable from the Windows Store and here you can find the instruction to install and use it.

  • In this other question of the blog, some suggestion on how to use a GUI for WSL (unofficial, third party)

UPDATE August 2019: The new WSL 2 was relesed (read here for more information). It seems that you can work with a real linux kernel and with a Linux file system. Onestly I haven't try the new verion so far (it is on my TODO list).

2

As of May 2019, WSL 2 is under development.

Dramatic file system performance increases, and full system call compatibility, meaning you can run more Linux apps in WSL 2 such as Docker.

...

WSL 2 uses an entirely new architecture that uses a real Linux kernel.

...

Initial builds of WSL 2 will be available through the Windows insider program by the end of June 2019.

(emphasis mine)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.