

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Aggiornamento del kernel Linux su AL2023
<a name="kernel-update"></a>

**Topics**
+ [Versioni del kernel Linux su AL2023](#al2023-kernels)
+ [AL2023 Aggiornamento a una versione più recente del kernel](#kernelup)
+ [AL2023 kernels - Domande frequenti](#al2023-kernel-faq)

## Versioni del kernel Linux su AL2023
<a name="al2023-kernels"></a>

AL2023 include regolarmente nuove versioni del kernel basate sulle versioni Long-Term Support (LTS) del kernel Linux.

AL2023 è stato originariamente rilasciato nel marzo 2023 con kernel 6.1.

Nell'aprile 2025, è AL2023 stato aggiunto il supporto per il kernel Linux 6.12. Questo kernel ha aggiunto nuove funzionalità tra cui la pianificazione EEVDF, il I/O supporto passthrough FUSE, una nuova API Futex e miglioramenti in eBPF. Kernel 6.12 consente inoltre a un programma userspace di proteggersi in fase di esecuzione utilizzando stack shadow dello spazio utente e sigillando la memoria.

Nel marzo 2026, è stato aggiunto il supporto per il kernel Linux 6.18 AL2023 . Il kernel 6.18 aggiornato apporta ulteriori miglioramenti nel supporto del processore, nella virtualizzazione, nella sicurezza e nelle prestazioni. Le caratteristiche più importanti includono funzionalità IOMMU migliorate su tutte le architetture e Attack Vector Controls per la gestione delle mitigazioni delle vulnerabilità della CPU. I miglioramenti delle prestazioni derivano dalle ottimizzazioni della crittografia con operazioni FSCRYPT più veloci, dai miglioramenti della gestione della memoria e dall'introduzione di Sheaves come nuovo livello di caching basato su array opt-in per CPU. 

## AL2023 Aggiornamento a una versione più recente del kernel
<a name="kernelup"></a>

A partire da giugno 2026, AL2023 aggiornerà il kernel predefinito ogni anno. Il [`al2023-ami-kernel-default`](ec2.md#launch-via-aws-cli)set AMIs verrà aggiornato all'ultima versione del kernel LTS, in modo che le istanze appena lanciate presentino automaticamente la nuova versione del kernel: questo è il modo più semplice per rimanere aggiornati sulle ultime correzioni di sicurezza e sui miglioramenti delle prestazioni.

Se preferisci scegliere una versione del kernel specifica, puoi eseguire AL2023 con kernel 6.12 o 6.18 selezionando un'AMI con il kernel desiderato preinstallato o aggiornando un'istanza AL2023 EC2 esistente.

### Esecuzione di un' AL2023 AMI con una versione del kernel specifica
<a name="kernelup-ami"></a>

Puoi scegliere di eseguire un' AL2023 AMI con un kernel specifico preinstallato tramite la console AWS o interrogando SSM per parametri specifici. Le chiavi SSM con cui eseguire la query iniziano seguite da una delle `/aws/service/ami-amazon-linux-latest/`

#### Per il kernel 6.12
<a name="kernel6.12-ami"></a>
+ `al2023-ami-kernel-6.12-arm64` per l'architettura arm64
+ `al2023-ami-minimal-kernel-6.12-arm64` per l'architettura arm64 (AMI minima)
+ `al2023-ami-kernel-6.12-x86_64` per l'architettura x86\$164
+ `al2023-ami-minimal-kernel-6.12-x86_64` per l'architettura x86\$164 (AMI minima)

#### Per il kernel 6.18
<a name="kernel6.18-ami"></a>
+ `al2023-ami-kernel-6.18-arm64` per l'architettura arm64
+ `al2023-ami-minimal-kernel-6.18-arm64` per l'architettura arm64 (AMI minima)
+ `al2023-ami-kernel-6.18-x86_64` per l'architettura x86\$164
+ `al2023-ami-minimal-kernel-6.18-x86_64` per l'architettura x86\$164 (AMI minima)

[Avvio tramite il parametro SSM e AL2023 AWS CLI](ec2.md#launch-via-aws-cli)Per i dettagli sulla selezione, vedere. AL2023 AMIs

### Aggiornamento di un' AL2023 istanza a un kernel più recente
<a name="kernel-ipu"></a>

È possibile aggiornare sul posto un' AL2023 istanza in esecuzione al kernel 6.12 o 6.18 con i seguenti passaggi:

1. Rileva il kernel corrente e imposta la versione di destinazione:

   ```
   # Automatically detect current kernel version BEFORE upgrade
   $ CURRENT_KERNEL=$(uname -r)
   $ SOURCE_VERSION=""
   
   $ if [[ $CURRENT_KERNEL == *"6.12"* ]]; then
       SOURCE_VERSION="6.12"
   else
       SOURCE_VERSION=""
   fi
   
   # Save the source version to a persistent location for use after reboot
   $ echo "${SOURCE_VERSION}" | sudo tee /var/lib/source_kernel_version > /dev/null
   ```

   ```
   # Set your target version (change this to your desired kernel: 6.12 or 6.18)
   $ TARGET_VERSION="6.12"
   ```

   ```
   $ echo "Current kernel: ${SOURCE_VERSION:-6.1}"
   $ echo "Upgrading to kernel ${TARGET_VERSION}"
   ```

1. Installa il pacchetto kernel di destinazione:

   ```
   $ sudo dnf install -y kernel${TARGET_VERSION}
   ```

1. Scarica l'ultima versione del pacchetto kernel di destinazione:

   ```
   $ version=$(rpm -q --qf '%{version}-%{release}.%{arch}\n' kernel${TARGET_VERSION} | sort -V | tail -1) 
   ```

1. Rendi il nuovo kernel il tuo kernel predefinito:

   ```
   $ sudo grubby --set-default "/boot/vmlinuz-$version" 
   ```

1. Riavvia il sistema:

   ```
   $ sudo reboot 
   ```

1. Disinstalla il kernel precedente:

   ```
   # Read the source kernel version from the saved file
   $ SOURCE_VERSION=$(sudo cat /var/lib/source_kernel_version)
   
   # Uninstall the source kernel
   $ sudo dnf remove -y kernel${SOURCE_VERSION}
   ```

1. Sostituisci i pacchetti kernel aggiuntivi con i loro equivalenti del kernel di destinazione:

   ```
   # Set your target version (change this to your desired kernel: 6.12 or 6.18)
   $ TARGET_VERSION="6.12"
   ```

   ```
   $ declare -A pkgs
   $ pkgs=(
   [bpftool${SOURCE_VERSION}]=bpftool${TARGET_VERSION}
   [kernel${SOURCE_VERSION}-debuginfo]=kernel${TARGET_VERSION}-debuginfo
   [kernel${SOURCE_VERSION}-debuginfo-common]=kernel${TARGET_VERSION}-debuginfo-common
   [kernel${SOURCE_VERSION}-headers]=kernel${TARGET_VERSION}-headers
   [kernel${SOURCE_VERSION}-libbpf]=kernel${TARGET_VERSION}-libbpf
   [kernel${SOURCE_VERSION}-libbpf-devel]=kernel${TARGET_VERSION}-libbpf-devel
   [kernel${SOURCE_VERSION}-libbpf-static]=kernel${TARGET_VERSION}-libbpf-static
   [kernel${SOURCE_VERSION}-modules-extra-common]=kernel${TARGET_VERSION}-modules-extra-common
   [kernel${SOURCE_VERSION}-tools]=kernel${TARGET_VERSION}-tools
   [kernel${SOURCE_VERSION}-tools-devel]=kernel${TARGET_VERSION}-tools-devel
   [perf${SOURCE_VERSION}]=perf${TARGET_VERSION}
   [python3-perf${SOURCE_VERSION}]=python3-perf${TARGET_VERSION}
   )
   $ for pkg in "${!pkgs[@]}"; do 
     rpm -q $pkg && sudo dnf -y swap $pkg "${pkgs["$pkg"]}" ;
   done
   ```

1. (Opzionale) Disinstalla kernel-devel per la versione precedente del kernel:

   ```
   $ rpm -q kernel${SOURCE_VERSION}-devel && sudo dnf remove -y kernel${SOURCE_VERSION}-devel 
   ```

### Eseguire il downgrade a una versione precedente del kernel
<a name="kernel-downgrade"></a>

Se in qualsiasi momento hai bisogno di tornare a una versione precedente del kernel, usa i seguenti passaggi:

1. Rileva il kernel corrente e imposta la versione di destinazione:

   ```
   # Automatically detect current kernel version BEFORE downgrade
   $ CURRENT_KERNEL=$(uname -r)
   $ SOURCE_VERSION=""
   
   $ if [[ $CURRENT_KERNEL == *"6.12"* ]]; then
       SOURCE_VERSION="6.12"
   elif [[ $CURRENT_KERNEL == *"6.18"* ]]; then
       SOURCE_VERSION="6.18"
   fi
   
   # Save the source version to a persistent location for use after reboot
   $ echo "${SOURCE_VERSION}" | sudo tee /var/lib/source_kernel_version > /dev/null
   ```

   ```
   # Set your target version (change this to your desired kernel)
   # Use "" for kernel 6.1, "6.12" for kernel 6.12
   $ TARGET_VERSION=""
   ```

   ```
   $ echo "Downgrading from kernel ${SOURCE_VERSION:-6.1} to kernel ${TARGET_VERSION:-6.1}"
   ```

1. Sostituisci i pacchetti kernel aggiuntivi con i loro equivalenti del kernel di destinazione:

   ```
   $ declare -A pkgs
   $ pkgs=(
   [bpftool${TARGET_VERSION}]=bpftool${SOURCE_VERSION}
   [kernel${TARGET_VERSION}-debuginfo]=kernel${SOURCE_VERSION}-debuginfo
   [kernel${TARGET_VERSION}-debuginfo-common]=kernel${SOURCE_VERSION}-debuginfo-common
   [kernel${TARGET_VERSION}-headers]=kernel${SOURCE_VERSION}-headers
   [kernel${TARGET_VERSION}-libbpf]=kernel${SOURCE_VERSION}-libbpf
   [kernel${TARGET_VERSION}-libbpf-devel]=kernel${SOURCE_VERSION}-libbpf-devel
   [kernel${TARGET_VERSION}-libbpf-static]=kernel${SOURCE_VERSION}-libbpf-static
   [kernel${TARGET_VERSION}-modules-extra-common]=kernel${SOURCE_VERSION}-modules-extra-common
   [kernel${TARGET_VERSION}-tools]=kernel${SOURCE_VERSION}-tools
   [kernel${TARGET_VERSION}-tools-devel]=kernel${SOURCE_VERSION}-tools-devel
   [perf${TARGET_VERSION}]=perf${SOURCE_VERSION}
   [python3-perf${TARGET_VERSION}]=python3-perf${SOURCE_VERSION}
   )
   $ for pkg in "${!pkgs[@]}"; do 
     rpm -q "${pkgs["$pkg"]}" && sudo dnf -y swap "${pkgs["$pkg"]}" $pkg ;
   done
   ```

1. Installa il pacchetto kernel di destinazione:

   ```
   $ sudo dnf install -y kernel${TARGET_VERSION}
   ```

1. Scarica l'ultima versione del pacchetto kernel di destinazione:

   ```
   $ version=$(rpm -q --qf '%{version}-%{release}.%{arch}\n' kernel${TARGET_VERSION} | sort -V | tail -1) 
   ```

1. Rendi il kernel di destinazione il tuo kernel predefinito:

   ```
   $ sudo grubby --set-default "/boot/vmlinuz-$version" 
   ```

1. Riavvia il sistema:

   ```
   $ sudo reboot 
   ```

1. Disinstalla il kernel sorgente:

   ```
   # Read the source kernel version from the saved file
   $ SOURCE_VERSION=$(sudo cat /var/lib/source_kernel_version)
   
   # Uninstall the source kernel
   $ sudo dnf remove -y kernel${SOURCE_VERSION}
   ```

## AL2023 kernels - Domande frequenti
<a name="al2023-kernel-faq"></a>

### 1. Devo riavviare il sistema dopo un aggiornamento del kernel?
<a name="w2aac37c19b9b3"></a>

Ogni modifica al kernel in esecuzione richiede un riavvio.

### 2. Come faccio a mantenere i kernel up-to-date su più istanze?
<a name="w2aac37c19b9b5"></a>

Amazon Linux non fornisce strutture per gestire flotte di istanze. Ti consigliamo di applicare patch a flotte di grandi dimensioni utilizzando strumenti come [AWS Systems Manager](https://aws.amazon.com/systems-manager/).

### 3. Come posso verificare quale versione del kernel sto utilizzando in questo momento?
<a name="w2aac37c19b9b7"></a>

Esegui questo comando sulla tua AL2023 istanza:

```
$ uname -r 
```

### 4. Quale kernel mi AL2023 consiglia di usare?
<a name="w2aac37c19b9b9"></a>

Si consiglia di eseguire l'aggiornamento all'ultimo AL2023 kernel 6.18 mentre tutti gli altri AL2023 kernel sono ancora supportati. Si consiglia ai clienti di testare i propri carichi di lavoro prima dell'aggiornamento.

### 5. Le mie applicazioni esistenti funzioneranno con qualsiasi AL2023 kernel?
<a name="w2aac37c19b9c11"></a>

AL2023 supporta un kernel più recente (6.12 o 6.18) allo stesso modo del kernel 6.1. Le applicazioni funzioneranno e i miglioramenti avverranno sotto il cofano. I clienti devono in ogni caso testare i propri carichi di lavoro specifici prima di passare a un kernel più recente.

### 6. Come posso installare gli header del kernel, i pacchetti di sviluppo e i moduli aggiuntivi per il kernel 6.12 o 6.18?
<a name="w2aac37c19b9c13"></a>

Per favore esegui:

```
$ version=$(uname -r | grep -oP '^\d+\.\d+')
$ sudo dnf install -y kernel${version}-modules-extra-$(uname -r) kernel${version}-headers-$(uname -r) kernel${version}-devel-$(uname -r)
```

### 7. Per quanto tempo saranno supportati i kernel 6.12 e 6.18?
<a name="w2aac37c19b9c15"></a>

I kernel 6.12 e 6.18 saranno supportati fino alla fine del ciclo di vita prevista di Amazon Linux 2023, ovvero il 30 giugno 2029.