Windows Subsystem for Linux (WSL) Lecture
Introduction to WSL
- WSL allows running Linux on Windows and vice versa.
- Demonstrated running Ubuntu and Kali Linux on Windows.
- Offers GUI support, GPU access, and shared files between Windows and Linux.
- Enables use of Linux commands on Windows and Windows commands on Linux.
- WSL2 is the latest version, offering better performance and features.
Installation Requirements
Hardware Requirements
- 64-bit processor (ARM supported).
- Minimum of 4GB RAM (16GB or higher recommended for best performance).
- Enable virtualization in BIOS (Intel VTx or AMD-V).
Software Requirements
- Must be running Windows (best experience on Windows 11).
- Windows 10 supported on build 19041 or higher.
- Admin privileges needed.
Installing WSL2
- Open Windows Terminal, type
WSL --install
.
- Default installation includes Ubuntu. Restart required.
- Set up a username and a password upon first launch.
Using WSL2
- Start WSL by typing
WSL -d Ubuntu
(or your distro's name).
- List available distros using
WSL --list --online
.
- Additional distros (e.g., Kali Linux) can be installed from Microsoft Store.
- Example of installing Kali Linux using the command line and Microsoft Store.
Features and Commands
Running Windows Commands in Linux
- Use Windows commands like
ipconfig
, ping.exe
, and notepad.exe
.
- Open current location in Windows Explorer:
explorer.exe .
Running Linux Commands in Windows PowerShell
- Pipe commands using
WSL
, e.g., ipconfig | WSL grep 10.
.
- Commands like
cat
can be used with WSL
, e.g., WSL cat file.txt
.
Kali Linux Tools Setup
- Run
kali-tweaks
to access tool installation menu.
- Example: Install top 10 Kali Linux tools.
Data Privacy Concerns
- Mentioned SpiderFoot tool for OSINT (Open-Source Intelligence).
- Discussion about the vulnerability of personal data on sites like TruthFinder.
- Introduction to Incogni service to remove personal information from public databases.
- Steps to sign up and use Incogni.
WSL Functionalities
- Enable or disable WSL instances using commands.
- Example commands:
WSL --shutdown
, WSL --terminate distro_name
.
- Listing distributions with verbose output:
WSL --list --verbose
.
- Setting default distro:
WSL --set-default distro_name
.
File Management
Accessing Files
- Access Windows files from Linux:
cd /mnt/c/Users/username
.
- Access Linux files from Windows Explorer via
explorer.exe .
- Linux files also accessible from Windows' left-hand sidebar under
GUI Applications
- WSL2 supports GUI applications via WSLg.
- Running GUI applications like Wireshark and Google Chrome from Linux on Windows.
GPU Access
- WSL2 allows direct access to GPU, e.g.,
Nvidia-smi
.
Advanced Configurations
Config Files
- Two config files: local
wsl.conf
and global wslconfig
.
- Local config located in
/etc/wsl.conf
. Used for system-wide settings.
- Global config (
wslconfig
) found in user directory in Windows.
- Example: changing networking mode from NAT to mirrored.
Networking Mode Example
Backing Up and Importing Distros
- Command to export distro:
WSL --export distro_name filename.tar
.
- Command to import distro on another machine:
WSL --import new_distro location filename.tar
.
- Specify user account to avoid root default:
WSL -d distro -u username
.
Visual Studio Code Integration
- Use
code
command to open files from Linux in VS Code.
- Install WSL extension for better integration.
Docker Support
- Docker can be run inside WSL2.
- Install Docker Desktop as another method using WSL2 as backend.
Conclusion
- WSL2 combines Windows and Linux, offering powerful functionalities.
- Further capabilities include running Docker, accessing GPU, and sophisticated file management.
- Enable users to optimize development and operational workflows.
Presenter: Network Chuck
Source: Network Chuck's WSL2 Tutorial and Demonstration