Windows Subsystem for Linux (WSL)
WSL is not supported by CADES, who can not provide assistance in installing or debugging it. Users may explore it as a potentially easier method to run Linux apps like terminals and python on Windows systems, and share experiences and assist each other via the CADES slack channels and community self-support.
Note: WSL 2.0 will implement a full Linux kernel, and thus improved performance, Docker support, etc.
Advantages of WSL:
- Bypass putty, converting .pem keys to putty format, etc. Use a real shell, terminal, ssh , SCP, etc.
- Root access, normal expected Linux environment
- Easily access Windows filesystems (under /mnt/c, etc.) s
- Easy to use / maintain frameworks and virtual envs
- Install and run native Linux apps via package manager
- No netreg entries required (for basic functionality)
- Run graphical applications, though requires installing a X Server as well.
- Use Docker containers from within WSL - sort of
- Docker support will become native in WSL 2.0
- Performance for glibc calls, memory and cpu intensive workloads is decent. IO workloads, databases notsomuch (think double filesystem metadata handling for one.)
- WSL 2.0 brings many performance improvements
- Rolling release - upgrade Suse LEAP to Tumbleweed and you have a rolling release without getting dinged for a non-compliant system
- WSL disto switcher scripts allow installing docker images for other Linux distros
Ubuntu LTS, Debian, and Suse LEAP can be installed directly through the Windows store on ORNL systems running Windows 10 with WSL enabled.
- If you have trouble installing from the Windows Store contact the ORNL Service Center, CADES can not assist with the installation. You may need a Windows update, or WSL enabled, etc.
Installers for other distros (Arch, CentOS, etc.) can are also available - your mileage may vary.
Brief Suse + Xcfe install Example
Install Suse LEAP from Windows Store
Install an XServer like https://sourceforge.net/projects/vcxsrv/
Run Suse Windows app, set initial username and password
sudo zypper install konsole sudo zypper install -t pattern xfce export DISPLAY=localhost:0 export LIBGL_ALWAYS_INDIRECT=1 Add those so they occur on login: echo "export DISPLAY=localhost:0" >> ~/.bashrc echo "export LIBGL_ALWAYS_INDIRECT=1" >> ~/.bashrc
In windows, run XcXsrv, then within Suse run graphical apps - e.g.:
startxfce4 Konsole etc.
Tips and Issues
Forgot the root/sudo password?
- Reset via
Within Linux distro: pae@LAP111759:~> whereis openSUSE-42.exe #or ubuntu.exe, etc. openSUSE-42: /mnt/c/Users/pae/AppData/Local/Microsoft/WindowsApps/openSUSE-42.exe Within Windows cmd: C:\Users\pae\AppData\Local\Microsoft\WindowsApps>openSUSE-42.exe config --default-user root Default UNIX user set to: root Launch Linux, run passwd, and set default user back as appropriate.
Smartcard Readers *
chmod does not work on Windows filesystems (/mnt/c) - see (here)[https://github.com/Microsoft/WSL/issues/81]
- cp files (ssh keys) to within the Linux instance, or use and ssh agent and forwarding, etc.
Running Linux Applications
These run under Windows Subsystem for Linux (WSL) and are not VMs - they use the Windows kernel. You do not need to register them in netreg. WSL or a traditional VM (or both) may be installed and used.
Running graphical applications (Konsole or gnome-shell, etc.) requires you install an X server in Windows as well. XcXsrv or Xming will do.
Common applications can be install via the Linux package manager, updates run, etc.
Windows filesystems is mounted a /mnt/c
You can install python module, virtual environments, compilers, debuggers, run a web server, etc.
It is possible to install a full graphical desktop environment such as xfce4, or even Unity and perhaps KDE. However, this requires varying degrees of tweaking. Start with running a few standalone apps first - you may find you don't need a full desktop environent. If you do want one, xfce4 may be the easiest to get working.
Ubuntu, Unity, xfce4