Wednesday, August 31, 2016

Ccache Updates

Some great news for ccache users such as myself.

First, the EPEL rpm of ccache was recently updated to 3.2.7 which is great news for users of CentOS-7 and similar distributions. For installation instructions and/or more information about ccache in general I recommend reading my Faster Re-Compiling with ccache post.

Second, ccache 3.3 was just released with substantial new features including support for caching of:
  • cuda
  • Fortran 77
  • multiple arch “fat binaries”
  • some assembly code (gcc -S)
This is of course in addition to its existing support of C, C++, Objective-C, and Objective-C++. While the vanilla code appears to have an issue (‘make test’ fails) under CentOS-7, I’m confident this will be resolved in due time (unfortunately I don’t personally have time to investigate further until next week).

Happy trails with your frequent rebuilds!

Tuesday, August 2, 2016

First Thoughts: Windows Subsystem for Linux – Bash on Ubuntu on Windows

For me the most exciting new feature in the Windows 10 Anniversary Update is the Windows Subsystem for Linux which underpins the Bash on Ubuntu on Windows. Other than the long and confusing branding, this is an exciting move by Microsoft and an impressive piece of technology. WSL allows native Linux ELF binaries to run on the Windows Kernel – let that sink in, not a virtual machine/Linux kernel, and not a recompile like Cygwin (which I have long used). WSL performs real time translation of the Linux systems calls to run on the Windows kernel, enabling practically no CPU or IO performance penalty. While this has been available to Windows Insiders for a few months, I have stuck with the release version of Windows for stability reasons – with today’s Anniversary Update this beta technology is now available to all desktop Windows 10 installations! Microsoft does caution that this particular feature is understandably beta and intended for command line developer usage, not running server software or X11 applications, which fortunately fits my intended usage perfectly.


Unless you are a Windows Insider, you will need the Aug 2nd Anniversary Update (Build 14393+) installed. I haven’t tested, but you may also need to be in Developer mode (found under Settings ->Update & Security -> For Developers).

Next install Windows Subsystem for Linux from Windows Features.

After the reboot open a regular Windows command prompt and type ‘bash’ and Windows will download and install Ubuntu on Windows. After being guided through creating a Linux user account you will be ready to try it out!

First Thoughts

A few interesting first thoughts after giving it a try.
  1. Currently Ubuntu on Windows is based off Ubuntu Trusty Tahr 14.04.4 LTS. This is a venerable and well know, if slightly older distro. I’ve read that in the near future they will be moving to Ubuntu Xenial 16.04 LTS which will be a fresh and welcome update.

  2. Uname reports the kernel as 3.4.0+, so while Microsoft is clear they don’t support all system calls at this time, they appear to be targeting a fairly recent kernel version.

  3. After limited testing apt-get update and apt-get install appear to working normally. Here is a quick example installing iperf. Iperf is a perfect example of a tool you won’t want to run from an VM for IO performance reasons, so prior to this a Windows Binary or Cygwin version were the only options.

Overall I am very excited and look forward to continuing to explore WSL and Ubuntu on Windows. The only major feature omissions that I can see currently being a detraction for many developers will be the lack of an X11 client for remote Linux work. While I don’t normally make sure of them, for folks that prefer a X11 IDE or remote web browser for testing I can see it being a show stopper. Perhaps/hopefully this will be something coming in the near future as well.

For More Information