Weitere ähnliche Inhalte Ähnlich wie Linux GUI Applications on Windows Subsystem for Linux (20) Mehr von Embarcadero Technologies (20) Kürzlich hochgeladen (20) Linux GUI Applications on Windows Subsystem for Linux1. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
Linux GUI
Applications on
Windows Subsystem
for Linux [WSL2]
Jim McKeeth
Chief Developer Advocate
Embarcadero Technologies
jim.mckeeth@embarcadero.com
@JimMcKeeth
Developers Perspective
Slides, links & replay: blogs.embarcadero.com/?p=130922
2. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
Agenda
▪ Introduction to WSL
▪ Setup and configuration
▪ Different Linux Distributions
▪ Deploying and debugging
▪ Troubleshooting
▪ Advanced Options
▪ Q&A
Slides, links & replay: blogs.embarcadero.com/?p=130922
3. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
Presenter: Jim McKeeth
● Chief Developer Advocate & Engineer for Embarcadero
● Long time software developer
○ Delphi, C/C++, Python, Java, JavaScript, Ruby, etc.
● Invented and patented pattern and swipe to unlock
○ e.g. US Patents # 8352745 & 6766456
● Built thought controlled drone with Google Glass and
wireless EEG headset
● Contributor to Internet of Things and Data Analytics Handbook
● Blogger, podcaster, conference speaker, webinar host, etc.
● Twitter, TikTok, YouTube, etc. @JimMcKeeth
4. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
Windows Subsystem for Linux
● Introduced in Windows 10
○ Trivia: Replaces Windows Services for Unix from 2004
○ Also available on Windows 11 and Windows Server 2019
● Developed in collaboration with Canonical and others
● WSL2 improved performance with a real Linux kernel
○ Uses a subset of Hyper-V features
● Not as isolated or as much overhead as a VM
○ Performance rivals native Linux
● WSLg adds GUI support
○ Ships in Windows 11 or Windows 10 Insider 21364
5. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
&
LINUX
Addressing the
Elephant in
the Room…
6. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
"a step
backward in the
campaign for
freedom."
https://tek.io/3ufuXWR
Linus Torvalds
Creator of Linux kernel
Img https://w.wiki/4n93
"The whole
anti-Microsoft thing was
sometimes funny as a
joke… I feel like, yes,
they have changed… So
I completely dismissed
all the anti-Microsoft
stuff."
https://zd.net/35x8YjE
Richard Stallman
Found of FSF & GNU
Img https://w.wiki/4n8x
Satya Nadella
Microsoft CEO
https://zd.net/3IQSst6
Img https://w.wiki/4n9G
Mark Shuttleworth
Founder & CEO Canonical
Img https://w.wiki/4n9H
“It’s not like Microsoft is
stealing our toys, it’s
more that we’re sharing
them with Microsoft in
order to give everyone
the best possible
experience.”
https://tek.io/3ufuXWR
7. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
Benefits and Use Cases
● Ability to run unmodified ELF64 Linux binaries, expand toolkit and capabilities
● Flexibility of combining Windows and Linux tool chain on one computer
● Less overhead than a traditional virtual machine means better performance
● Local build environment with containers, etc.
● Testing server applications from Windows without additional infrastructure
● No need to mess with dual boot or 3rd
party VM installation
● Invoke Linux binaries from Windows and Windows executables from Linux
● Runs as you need it, less management
● Memory and drive space are dynamically shared
8. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
WSL Installation Guide
● Enable "Windows Subsystem for Linux" optional feature (via Admin PowerShell or Windows Features)
○ Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
● Install Linux Distro of Choice
○ Windows Store or manually via script
● Launch Linux Distro to initialize it, provide password, etc.
● You can also build a custom distro
● Launch WSL 4 ways
○ Icon on start menu
○ [distro], for example ubuntu
○ wsl.exe or bash.exe
○ wsl [command] or bash -c [command]
https://docs.microsoft.com/en-us/windows/wsl/install
9. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
Available Distributions
● Ubuntu, Kali, & Pengwin are in the
Debian family (using .deb pkgs - apt)
○ Kali is focused on security
○ Pengwin is designed around WSL
● SUSE and Fedora are in the RPM family
with Red Hat
● Alpine is an independent, lightweight,
security-oriented, Linux distribution
● Some distros include multiple versions
10. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
Managing WSL Distros
● List distributions
○ wsl --list --all or wsl --list --running
● Set default distribution
○ wsl --setdefault <DistributionName> or wsl -s <DistributionName>
● Run a specific distro
○ wsl --distribution <DistributionName>
● Run as specified user
○ wsl --user <Username> (or use the specific distro name)
● Unregister and uninstall a distribution
○ wsl --unregister <DistributionName>
● Shutdown all WSL instances
○ wsl --shutdown
11. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
First Run
▪ On first run you are usually
prompted for a username
and password
▪ openSUSE uses YaST2 for a
nice ASCII GUI
12. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
Connecting from the IDE
● Tools -> Options -> Deployment ->
Connection Profile Manager
● The IP address and ports are shared with
the host
● So you connect to 127.0.0.1
● Can only use each port number once
(even if you have multiple distros setup)
● So use different port numbers for
multiple instances if you want to run
them simultaneously
13. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
Linux User Password Reset
1. Note your username
2. From Windows terminal get the distro name
➢ wsl -l
3. From Windows terminal switch default-user to root
➢ ubuntu config --default-user root
4. Launch the WSL distro (you will be logged in as
root)
➢ ubuntu
5. Change the user’s password
➢ passwd username
6. Change the default user back
➢ ubuntu config --default-user username
7. Launch the WSL distro again
14. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
Accessing Files Between Systems
● Access Windows from Linux
○ cd /mnt/c/
● Open WSL in current Windows directory
○ wsl
○ wsl -d ubuntu
○ ubuntu
● Access Linux from Windows
○ wsl.localhost
● Open current Linux path from Windows
○ explorer.exe .
○ cmd.exe
○ powershell.exe
16. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
● Command Line Blog (includes WSL) http://aka.ms/cliblog
● Learn WSL http://aka.ms/learnwsl
● WSL Docs http://aka.ms/wsldocs
● Connect USB to WSL https://aka.ms/wsl-usbip
● WSL: Run Linux GUI Apps youtu.be/kC3eWRPzeWw
● Deep Dive in WSL2 youtu.be/lwhMThePdIo
● Windows Dev Tool Updates: WSL, Terminal, Package Manager, and more youtu.be/m5tt9mDRPSw
Windows Subsystem for Linux resources
Slides, links & replay: blogs.embarcadero.com/?p=130922
17. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
More WSL Resources
● Advanced WSL Launcher / Installer (Simplify making your own WSL distro)
○ https://github.com/yuk7/wsldl
● Other prebuilt distros based on WSLDL
○ https://wsldl-pg.github.io/docs/Using-wsldl/#distros
● Collection of WSL Utilities
○ https://github.com/wslutilities/wslu
● A GUI WSL2 instance manager
○ https://github.com/bostrot/wsl2-distro-manager
● Awesome list for WSL
○ https://github.com/sirredbeard/Awesome-WSL
18. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
● DocWiki: Linux Application Development
docwiki.embarcadero.com/RADStudio/en/Linux_Application_Development
● DocWiki: Installing the Platform Assistant on Linux
docwiki.embarcadero.com/RADStudio/en/Installing_the_Platform_Assistant_on_Linux
● DocWiki: FireMonkey for Linux
docwiki.embarcadero.com/RADStudio/en/FireMonkey_for_Linux
● Script to automate setup on Ubuntu
○ embt.co/Ubuntu4Delphi22
● Script to automate setup on Redhat
○ embt.co/RedHat4Delphi22
FMXLinux Resources
Slides, links & replay: blogs.embarcadero.com/?p=130922
19. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company
Setting up CentOS (Redhat based)
● Install Docker in Ubuntu docs.docker.com/engine/install/ubuntu/
● Follow steps docs.microsoft.com/en-us/windows/wsl/use-custom-distro
○ Make folder on Windows C:WSLCentOS
○ From Ubuntu
■ sudo service docker start
■ sudo docker run -t dokken/centos-stream-9 bash ls /
■ dockerContainerID=$(sudo docker container ls -a | grep -i
dokken/centos-stream-9 | awk '{print $1}')
■ sudo docker export $dockerContainerID > /mnt/c/WSL/CentOS/centos.tar
■ sudo docker rm $dockerContainerID
○ From PowerShell
■ cd C:WSLCentOS
■ wsl --import CentOS C:WSLCentOS .centos.tar
○ From CentOS
■ yum update -y && yum install passwd sudo -y
■ myUsername=jim
■ adduser -G wheel $myUsername
■ echo -e "[user]ndefault=$myUsername" >> /etc/wsl.conf
■ passwd $myUsername
○ From PowerShell
■ wsl --terminate CentOS
Fedora
Redhat
CentOS
● Base OS
● By Redhat &
Community
● Feature focus
● Free
● By Redhat
● Supported
● Stable focus
● Commercial
● By community
● No support
● Free
https://embt.co/RedHat4Delphi22
20. Delphi 11
Copyright © 2022 by Embarcadero, an Idera company RAD STUDIO
Q&A
Slides, links & replay: https://blogs.embarcadero.com/?p=130922
Jim McKeeth
Chief Developer Advocate
Embarcadero Technologies
jim.mckeeth@embarcadero.com
@JimMcKeeth
Linux GUI
Applications on
Windows Subsystem
for Linux [WSL2]