Microsoft will include a Linux kernel inside Windows

Back in 2017 when Microsoft first announced Bash on Windows (WSL), a tool that made it simple for developers to run an entire Ubuntu environment within the OS without dual-booting, it was already a huge surprise—and an enormous technical feat. 

For many developers, myself included, it laid the groundwork for switching away from macOS back to Windows—since most of your existing development environment would work as expected. Fast-forward to today and the company announced at BUILD that it's doubling down on the integration with WSL2.

Yes, hell has frozen over and Microsoft will now ship a Linux kernel with Windows. That's a huge deal—both because it's unprecedented, and it means that every Linux tool will work natively on Windows. To understand why this matters, let's zoom out and talk about the last generation of WSL.

The first cut of this Linux-esque movement from Microsoft worked very differently. Because Windows doesn't natively understand Linux calls natively—used to access memory, files, creating processes and so on—the team built a translation layer (LXCore) to interpret calls from Linux processes and essentially emulate them.

bashlinuxwin10.jpg#asset:10004

The old approach, pictured above, worked well enough when it started out, but I don't think Microsoft quite understood the breadth of what it was getting itself into. With a translation layer, they were forced to implement almost every Linux call manually—which meant that while most packages worked just fine, occasionally things would explode very dramatically, or worse, perform very poorly. 

Including a Linux kernel in Windows changes the game. Instead of a Linux environment that has barriers and known edge cases, this is a full-on, no-limitation, macOS-esque Linux environment—with a notable improvement: it's containerized so you can dispose of it and get a fresh environment in a second, then just keep working. 

Instead of translating calls, Windows now just understands them natively, thanks to that included Linux kernel (which it'll be building in-house by the way), dramatically lowering the amount of work involved for the company and unlocking new use cases entirely by removing almost every limitation the environment had on it in the past. 

ac2598ef-lcow.png#asset:10017

Not only is this change something I had never expected to happen, it'll also mean much broader support for more complicated, lower-level tools like virtualization—Docker and even Vagrant will work natively, perform quickly, and still function in the context of the Windows environment. 

Essentially, the terminal experience on Windows is as good as sitting in front of a native Ubuntu shell, with a bunch of modern benefits thrown in. It's quite literally the best of both worlds! If web developers weren't already considering jumping to Windows because their MacBook keyboard broke again, they might now.

The master stroke here is that including a Linux kernel in Windows also dramatically changes the cloud story for Microsoft. Windows Server just gained a huge leg up, now able to run Linux and Windows tooling side-by-side on the same system, making developer tooling and deployment of code significantly easier.

It's impressive work that delivers on the vision they originally promised with WSL—and goes far beyond to what many of us assumed was not possible. Essentially, Microsoft just told developers it's all in on this story, and they want them to switch back to Windows. On top of this? It's building a first-party terminal as well, called Windows Terminal.

explorer_2019-05-07_09-21-28.jpg#asset:10007

If you went back in time to a decade ago and told any developer that this would happen, and Microsoft would be leading the charge, they'd laugh in your face—but Microsoft continues to be a force in improving the developer experience more than anyone else in the industry.

The reason? Its Azure cloud service. By building the absolute best developer experience—from acquiring GitHub, to creating the most popular coding tool VSCode, and now, a fully-functioning Linux environment, Microsoft can say it provides the best tools for developers, period, wherever they are. 

If those developers are impressed, they're more likely to use Azure, or at least become familiar with it, expecting the same level of tooling. That turns into dollars for Microsoft, and continues to be a great way to market its products directly to the people who will end up using it (or convincing the CTO to use it).

These improvements will start shipping with the next version of Windows, which begins testing in June through Microsoft's 'Windows Insider' program. A bunch more details were provided, along with that great sketch above, in an interview with The New Stack if you want to read more.


Events season is upon us

While Microsoft BUILD is ongoing, and day two starts with another keynote, there's more coming up:

  • Google I/O: Starts today, 10AM PT/6PM CET, streaming here.
  • Apple's WWDC: June 3-7.

Tab Dump

Dropbox has a new long-term, cheaper storage option
The cloud platforms already have something like this—Amazon has Glacier and Google has 'Coldline'—but they're complicated and hard to access. Dropbox is betting people have big blobs of data to put somewhere, and they don't need to access them very often.

Tim Cook says Apple buys a company every 2-3 weeks on average
Damn, it's good to be the world's richest company and go on a shopping spree.

What to expect from WWDC next month
Mark Gurman has the scoop on almost everything: dark mode, new health tools, multi-user HomePod, better iPad multitasking and so on.

Amazon wants to pay US publishers to make more content that includes affiliate links 🤔

Good read: Behind the Microsoft decision to drop EdgeHTML and build its browser based on Chrome