Skip to content

Commit 5390d77

Browse files
minor tweaks and copilot review edits
1 parent 7ff3bf3 commit 5390d77

4 files changed

Lines changed: 37 additions & 21 deletions

File tree

content/learning-paths/servers-and-cloud-computing/openjdk-pacbti-gcp/_index.md

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
---
2-
title: Test for PAC/BTI support within OpenJDK on Google Cloud C4A Arm-based VMs
2+
title: Verify OpenJDK PAC/BTI support on Google Cloud C4A VMs
33

4-
description: Learn how to test OpenJDK and verify PAC/BTI support using a Google Cloud C4A Arm-based VM.
4+
description: Learn how to verify PAC/BTI support in OpenJDK on a Google Cloud C4A Arm-based VM and interpret the JVM readiness result.
55

66
draft: true
77
cascade:
88
draft: true
99

10-
minutes_to_complete: 30
10+
minutes_to_complete: 30
1111

12-
who_is_this_for: This Learning Path is for developers who want to validate OpenJDK JVM PAC/BTI support on Google Cloud C4A Arm-based virtual machines.
12+
who_is_this_for: This Learning Path is for developers who want to validate OpenJDK PAC/BTI support on Google Cloud C4A Arm-based virtual machines.
1313

1414
learning_objectives:
15-
- Provision an Google Cloud C4A Arm-based virtual machine with SuSE Enterprise Server.
15+
- Provision a Google Cloud C4A Arm-based virtual machine with SUSE Linux Enterprise Server.
16+
- Install OpenJDK on the Arm-based VM.
1617
- Verify PAC/BTI readiness in the installed JVM runtime.
1718

1819
prerequisites:
@@ -62,3 +63,16 @@ weight: 1 # _index.md always has weight of 1 to order corr
6263
layout: "learningpathall" # All files under learning paths have this same wrapper
6364
learning_path_main_page: "yes" # This should be surfaced when looking for related content. Only set for _index.md of learning path content.
6465
---
66+
67+
## Verify OpenJDK PAC/BTI support on Google Cloud C4A VMs
68+
69+
In this Learning Path, you create a Google Cloud C4A Arm-based virtual machine, install OpenJDK on SUSE Linux Enterprise Server, and run a JVM probe that checks whether PAC and BTI are exposed to userspace. The result tells you whether the installed Java runtime can use these Armv9 security features on the VM.
70+
71+
## What you'll do
72+
73+
You will complete one task from start to finish:
74+
75+
1. Create a Google Cloud C4A virtual machine.
76+
2. Install OpenJDK on the VM.
77+
3. Run the PAC/BTI validation script inside the JVM.
78+
4. Interpret the final result as positive, negative, or inconclusive.

content/learning-paths/servers-and-cloud-computing/openjdk-pacbti-gcp/background.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ weight: 2
66
layout: "learningpathall"
77
---
88

9-
## Explore Google Axion C4A instances in Google Cloud
9+
## Explore Google Cloud C4A instances
1010

1111
Google Axion C4A is a family of Arm-based VMs built on Google's custom Axion processors, which use Arm Neoverse-V2 cores. These VMs deliver high performance with improved energy efficiency for modern cloud workloads such as CI/CD pipelines, microservices, media processing, and general-purpose applications.
1212

@@ -22,6 +22,6 @@ Armv9 Pointer Authentication (PAC) and Branch Target Identification (BTI) are se
2222

2323
## What you've learned and what's next
2424

25-
You now have the background on Azure Cobalt 100, OpenJDK, and Armv9 PAC/BTI features.
25+
You now have the background on Google Cloud C4A, OpenJDK, and Armv9 PAC/BTI features.
2626

27-
Next, you'll create an Arm-based Azure VM, install OpenJDK, and validate PAC/BTI readiness in the installed JVM.
27+
Next, you'll create an Arm-based Google Cloud VM, install OpenJDK, and validate PAC/BTI readiness in the installed JVM.

content/learning-paths/servers-and-cloud-computing/openjdk-pacbti-gcp/instance.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ To create a VM using the C4A instance type:
2525
- Set **Series** to **C4A**.
2626
- Select **c4a-standard-4** as the machine type.
2727

28-
![Google Cloud Console VM creation page with the C4A machine series selected and the c4a-standard-4 machine type highlighted alt-txt#center](images/gcp-vm.png "Creating a Google Axion C4A VM in the Google Cloud Console")
28+
![Google Cloud Console VM creation page showing the C4A series and c4a-standard-4 machine type selection. Use this screen to confirm you are creating an Arm-based C4A instance.#center](images/gcp-vm.png "Creating a Google Axion C4A VM in the Google Cloud Console")
2929

3030
- Under **OS and storage**, select **Change**, and then choose an Arm64-based operating system image.
3131
- For this Learning Path, select **SUSE Linux Enterprise Server**.
@@ -36,10 +36,12 @@ To create a VM using the C4A instance type:
3636

3737
After the instance starts, click **SSH** next to the VM in the instance list to open a browser-based terminal session.
3838

39-
![Google Cloud Console VM instances list with the SSH button highlighted for a running C4A instance alt-txt#center](images/gcp-ssh.png "Connecting to a running C4A VM using SSH")
39+
![Google Cloud Console VM instances list showing the SSH button for a running C4A instance. Use SSH to open a terminal session on the new VM.#center](images/gcp-ssh.png "Connecting to a running C4A VM using SSH")
4040

4141
A new browser window opens with a terminal connected to your VM.
4242

43-
![Browser-based terminal window showing a command prompt on a SUSE Linux VM running on Google Axion C4A alt-txt#center](images/gcp-shell.png "Terminal session connected to the VM")
43+
![Browser-based terminal window showing a command prompt on a SUSE Linux VM running on Google Axion C4A. Use this terminal to install OpenJDK and run the PAC/BTI validation script.#center](images/gcp-shell.png "Terminal session connected to the VM")
4444

45-
Next, install the OpenJDK JVM on your VM.
45+
## What you've learned and what's next
46+
47+
In this section, you created a Google Cloud C4A virtual machine and opened an SSH session to the VM. Next, you will install OpenJDK and prepare the PAC/BTI validation script. Next, install the OpenJDK JVM on your VM.

content/learning-paths/servers-and-cloud-computing/openjdk-pacbti-gcp/jvm-testing.md

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ weight: 4
66
layout: learningpathall
77
---
88

9-
### Install the default OpenJDK JVM
9+
## Install the default OpenJDK JVM
1010

1111
Install the default OpenJDK Java VM:
1212

@@ -29,11 +29,11 @@ OpenJDK Runtime Environment (build 17.0.13+11-suse-150400.3.48.2-aarch64)
2929
OpenJDK 64-Bit Server VM (build 17.0.13+11-suse-150400.3.48.2-aarch64, mixed mode, sharing)
3030
```
3131

32-
Next, download and run a script to confirm PAC/BTI readiness in the JVM you just built and installed.
32+
Next, download and run a script to confirm PAC/BTI readiness in the JVM you just installed.
3333

34-
### Setup the test script
34+
## Set up the test script
3535

36-
Copy and paste the following script into your C4A ssh session. Save this as file "test-pacbti.sh":
36+
Copy and paste the following script into your C4A SSH session. Save it as `test-pacbti.sh`:
3737

3838
```bash
3939
#!/usr/bin/env bash
@@ -76,11 +76,11 @@ Copy and paste the following script into your C4A ssh session. Save this as file
7676
# - OpenJDK 11+ for Java source-file mode, or javac available as fallback
7777
#
7878
# Usage:
79-
# chmod +x jvm-aarch64-pac-bti-test.sh
80-
# ./jvm-aarch64-pac-bti-test.sh
79+
# chmod +x test-pacbti.sh
80+
# ./test-pacbti.sh
8181
#
8282
# Optional:
83-
# JAVA=/path/to/java ./jvm-aarch64-pac-bti-test.sh
83+
# JAVA=/path/to/java ./test-pacbti.sh
8484

8585
set -u
8686

@@ -331,7 +331,7 @@ else
331331
fi
332332
```
333333

334-
### Run the test script
334+
## Run the test script
335335

336336
In your SSH session, run the test script to confirm PAC/BTI enablement:
337337

@@ -384,7 +384,7 @@ FINAL RESULT: POSITIVE
384384
Meaning : The JVM is executing on Linux/AArch64 with PAC and BTI exposed to userspace.
385385
```
386386

387-
### What you've learned
387+
## What you've learned and what's next
388388

389389
Most OpenJDK builds are distributed with PAC/BTI enabled but optionally used by default because they must remain compatible with older Arm platforms. When you need these protections, you can build and register your own JVM with branch protection support.
390390

0 commit comments

Comments
 (0)