Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 8 additions & 3 deletions content/learning-paths/laptops-and-desktops/wsl2/ssh.md
Original file line number Diff line number Diff line change
Expand Up @@ -80,15 +80,15 @@ There are two options to SSH from another machine on the local network:
- Bridged networking
- Port forwarding

# Bridged networking
### Bridged networking

WSL uses NAT by default. This means the Linux distribution running in WSL will get an IP address starting with 172.X.X.X and not an IP address on the local network. NAT makes it impossible to SSH to WSL.

One way to get an IP on the local network is to use a bridged network.

For more information refer to the [short WSL bridging and networking reference](https://github.com/luxzg/WSL2-fixes/blob/master/networkingMode%3Dbridged%20-%20quick%20setup.md)

# Port forwarding
### Port forwarding

Another way to connect to WSL via SSH is to forward or proxy the Windows port for SSH, such as 2022, to the WSL instance.

Expand Down Expand Up @@ -120,8 +120,13 @@ Get the IP address of Windows:
ipconfig
```

From another local machine SSH to the Windows IP on port 2022 and it should forward to WSL running on that Windows computer.
From another local machine, SSH to the Windows IP on port 2022. It should forward to WSL running on that Windows computer.

## What you've accomplished and what's next

You've now learned when SSH is useful for WSL and when the built-in `/mnt/c` mount is enough for local file transfers. You installed and started the OpenSSH server inside your Linux distribution, connected from Windows using `ssh.exe`, changed the SSH port when needed, and reviewed options for connecting to WSL from another machine on your local network.

Next, you'll learn how to connect to WSL using RDP and VNC so you can work with a full Linux desktop environment from Windows.



Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ weight: 2 # 1 is first, 2 is second, etc.
layout: "learningpathall"
---

# Deploy an Arm based VM using Terraform
## Deploy an Arm based VM using Terraform

## Generate an SSH key pair
### Generate an SSH key pair

Generate an SSH key pair (public key, private key) using `ssh-keygen` to use for Arm VMs access. To generate the key pair, follow this [guide](/install-guides/ssh/#ssh-keys).

Expand All @@ -19,13 +19,13 @@ If you already have an SSH key pair present in the `~/.ssh` directory, you can s
{{% /notice %}}


## Acquire GCP Access Credentials
### Acquire GCP Access Credentials

The installation of Terraform on your Desktop/Laptop needs to communicate with GCP. Thus, Terraform needs to be authenticated.

To obtain GCP user credentials, follow this [guide](/install-guides/gcloud/#acquire-user-credentials).

## Terraform infrastructure
### Terraform infrastructure
Add resources required to create a VM in `main.tf`.

Add below code in `main.tf` file:
Expand Down Expand Up @@ -64,9 +64,9 @@ resource "google_compute_instance" "vm_instance" {
Replace `project_ID` with your value which can be found in the [Dashboard](https://console.cloud.google.com/home?_ga=2.56408877.721166205.1675053595-562732326.1671688536&_gac=1.125526520.1675155465.CjwKCAiAleOeBhBdEiwAfgmXfwdH3kCFBFeYzoKSuP1DzwJq7nY083_qzg7oyP2gwxMvaE0PaHVgFhoCmXoQAvD_BwE) of Google Cloud console.
{{% /notice %}}

## Terraform commands
### Terraform commands

### Initialize Terraform
#### Initialize Terraform
Run `terraform init` to initialize the Terraform deployment. This command downloads all the modules required to manage your resources.

```
Expand Down Expand Up @@ -100,7 +100,7 @@ rerun this command to reinitialize your working directory. If you forget, other
commands will detect it and remind you to do so if necessary.
```

### Create a Terraform execution plan
#### Create a Terraform execution plan

Run `terraform plan` to create an execution plan.
```
Expand All @@ -109,7 +109,7 @@ Run `terraform plan` to create an execution plan.
A long output of resources to be created will be printed.


### Apply a Terraform execution plan
#### Apply a Terraform execution plan
Run `terraform apply` to apply the execution plan to your cloud infrastructure. Below command creates all required infrastructure.

```
Expand All @@ -132,7 +132,7 @@ In the Google Cloud console, go to the [VM instances page](https://console.cloud

![terraform4 #center](https://github.com/ArmDeveloperEcosystem/arm-learning-paths/assets/40816837/320b4c6f-0d2b-44f3-9517-dc427d82a018)

## SSH into the launched instance
### SSH into the launched instance

Run following command to connect to VM through SSH:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ layout: "learningpathall"

---

# Go on Arm Neoverse processors
## Go on Arm Neoverse processors

[Go](https://go.dev/) is a statically typed, compiled programming language supported by Google.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,19 +8,17 @@ layout: "learningpathall"

---

# Java on Arm Neoverse processors
## Java on Arm Neoverse processors

Java is a general-purpose, high-level programming language used in a wide variety of applications.

Java code is typically compiled to bytecode that runs on a Java virtual machine (JVM) making it portable across computer architectures.
Java code is usually compiled to bytecode that runs on a Java virtual machine (JVM) making it portable across computer architectures.

There are many ways to install Java on Arm Linux distributions. Refer to the [Java install guide](/install-guides/java/) for information about how to install Java.

# How can I increase Java performance on Arm?
There are many ways to install Java on Arm Linux distributions. For more information, see the [Java install guide](/install-guides/java/).

Java runs well on Arm, but there are some things to investigate to make sure you are getting the best performance.

## Which JVM flags impact performance?
## JVM flags that impact performance

The JVM includes a number of flags which are available to tune performance and aid in debugging. Some of the flags are general purpose and some are Arm architecture specific.

Expand All @@ -30,7 +28,7 @@ To print the final values of the flags after the JVM has been initialized run:
java -XX:+PrintFlagsFinal -version
```

Use the output from the above command to see the current values before making any changes.
Use the output from the previous command to see the current values before making any changes.

For example, to check the value of `CICompilerCount` run:

Expand Down Expand Up @@ -58,7 +56,7 @@ The `-XX:CompilationMode` flag instructs the JIT compiler to to use highest opti

The best way to determine optimal values for your application is to test your application with different values.

### Architecture flags
#### Architecture flags

There are flags that are specific to the Arm architecture and indicate if a particular hardware feature is used. You can see all the flags by running:

Expand Down
Loading