Will Linux distros run on Windows 10 S?
Many people have asked "You just announced that Linux distro's are coming to the Windows Store - will they run on Windows 10 S?"
The answer is No!
Just because an "app" comes from the Windows Store does NOT automatically mean that it's safe & suitable for running in Windows 10 S. There are some apps that are not allowed to run on Windows 10 S, including all command-line apps, shells and Consoles.
Read on for more background & info:
What is Windows 10 S?
A couple of weeks ago, Microsoft announced Windows 10 S - a new SKU of Windows which is "Streamlined for security and superior performance".
Windows 10 S is primarily aimed at non-technical users - teachers & grade-school children, non-technical students, content creators, artists, etc. - people who don't typically want to spend time & effort futzing with their PC - people who just expect their computer to work safely, quickly, reliably and efficiently.
To deliver this experience, Windows 10 S users can only install apps from the Windows Store. This enables Microsoft to help ensure a safe, predictable, easy-to-use experience by preventing malicious and/or inefficient apps from getting onto users' machines and wreaking havoc with their data and resources.
Windows 10 S is not well-suited for many app developers/hackers, admins & IT pro's!
- App developers often need to use tools that have access to low-level features of the local machine, e.g. debuggers, registry access, filesystem access, hardware access, etc.
- Admins & IT Pro's need to write and run scripts & tools that deploy apps, configure users' accounts, modify security settings, configure firewalls & anti-malware systems, etc.
These needs are not well met by an operating system that has been deliberately constrained to prevent just these types of apps and tasks from running!
This said, Windows 10 S can be used for building code that runs elsewhere - on the web, on IoT devices, on a remote VM via ssh, etc. Such scenarios don't require the user access/modify a local machine's system, settings/registry, filesystem, etc.
And of specific interest to readers of this blog, Windows 10 S does not run command-line applications, nor the Windows Console, Cmd / PowerShell, or Linux/Bash/WSL instances since command-line apps run outside the safe environment that protects Windows 10 S from malicious / misbehaving software:
Windows 10 S primarily runs apps downloaded & installed via the Windows Store.
Modern Universal Windows Platform (UWP) store apps run within a secure & constrained sandbox, with explicitly controlled access to system resources, devices, and capabilities like file storage devices, cameras, ability to run in the background, etc.
Another class of Windows Store app, called Desktop Bridge (or "Centennial") apps, are given much broader access to the OS. However, Desktop Bridge apps are only published by organizations which have a direct engagement with Microsoft, and which have been vetted and are well supported by the publisher. Examples of Desktop Bridge apps include Evernote, Arduino IDE, doubleTwist, PhotoScape, Virtual Robotics Kit, etc.
Linux distro store packages are an exotic type of app package that are published to the Windows Store by known partners. Users find and install distros , safely, quickly, and reliably via the Windows Store app.
Once installed, however, distro's should be treated as command-line tools that run outside the UWP sandbox & secure runtime infrastructure. They run with the capabilities granted to the local user - in the same way as Cmd and PowerShell do.
This is why Linux distro's don't run on Windows 10 S: Even though they're delivered via the Windows Store, and installed as standard UWP APPX's, they run as non-UWP command-line tools and this can access more of a system than a UWP can.
So what should I use?
If you want to run all your dev tools, distros, shells, etc. on a machine running Windows 10 S - like the sweeet new Surface Laptop - then upgrade it to full Windows 10. You'll then be able to run Linux distro's, Cmd/PowerShell, install dev tools, debuggers, profilers, packet sniffers, etc.
I hope this helps clear-up the question as to whether Windows 10 S - an operating system environment "Streamlined for security and superior performance" - can run Linux distro's (and other command-line tools).
Rich Turner (@richturn_ms)