Visualizzazione post con etichetta introduzione. Mostra tutti i post
Visualizzazione post con etichetta introduzione. Mostra tutti i post

giovedì 4 settembre 2025

Git: Introduzione

Quando più persone collaborano a un progetto software, è fondamentale disporre di un sistema che consenta di registrare tutte le modifiche in modo chiaro e tracciabile. Un sistema di controllo di versione non si limita a conservare la cronologia del codice: permette a ogni sviluppatore di accedere all’intero progetto, di conoscere l’evoluzione del lavoro dei colleghi, di sperimentare soluzioni alternative e di verificarne l’interazione con i propri contributi.

Negli anni sono stati adottati diversi strumenti con questo obiettivo – dal Concurrent Versions System (CVS) ad Apache Subversion (SVN), fino a Microsoft Visual SourceSafe (VSS). Tuttavia, nell’ultimo decennio si è affermato un nuovo protagonista: Git, che oggi rappresenta lo standard de facto nella gestione del codice sorgente.

In questa serie di articoli dedicata a Git cercherò di offrire una panoramica completa: dalle sue caratteristiche fondamentali alle pratiche avanzate, dagli scenari di collaborazione quotidiana alle strategie di branching e integrazione continua. L’obiettivo è fornire non solo nozioni tecniche, ma anche spunti pratici e metodologici per sfruttare al meglio uno strumento che ha trasformato il modo di sviluppare software.

git logo


Cos'è Git?

Git è un sistema di controllo versione (VCS), o più precisamente, un sistema di controllo versione distribuito (DVCS). La sua funzione principale è registrare le modifiche apportate a un file o a un insieme di file nel tempo, consentendo di richiamare versioni specifiche in un secondo momento. Nel mondo della programmazione, dove la collaborazione è essenziale, Git consente agli sviluppatori di scrivere, testare e iterare il codice in tandem con altri membri del team, mantenendo modifiche organizzate e tracciabili ed evitando la perdita di lavoro. Altri VCS noti sono Fossil, Mercurial e Subversion.

Origine e Scopo 

Git è nato dalla necessità di Linus Torvalds, il capo sviluppatore di Linux, di un nuovo sistema di gestione delle versioni per lo sviluppo del kernel Linux. Precedentemente, la comunità degli sviluppatori utilizzava il programma proprietario BitKeeper, ma un cambio di licenza rese necessario un passaggio ad un nuovo sistema. Nessun programma open source disponibile all'epoca soddisfaceva i suoi elevati standard, così Torvalds creò il framework di base per Git in sole due settimane. Ironia della sorte, il nome "Git" sta per "stupido" o "idiota", e la pagina di aiuto man git si riferisce ad esso come allo "stupid content tracker". Tuttavia, questa definizione si è rivelata un eufemismo, dato che Git ha rivoluzionato il mondo del software, tanto che alcuni ne valutano l'importanza quanto quella di Linux.

Caratteristiche Principali

Controllo di Versione Distribuito (DVCS): A differenza di molti altri programmi di controllo versione, Git è stato progettato con organizzazioni decentralizzate in mente. Non si basa su un singolo server centrale per operare su un progetto, permettendo a ogni membro del team di lavorare indipendentemente su una copia locale del progetto principale: ogni sviluppatore ha una copia locale completa del progetto, con tutta la sua storia, il che permette di lavorare offline

Snapshot e Commit: Ogni volta che si desidera salvare delle modifiche, Git acquisisce un "istantanea" (snapshot) dello stato attuale del progetto. Questi snapshot sono chiamati commit. Idealmente, ogni commit dovrebbe rappresentare una singola modifica concettuale.

Efficienza e Velocità: Git è estremamente veloce ed efficiente, anche con progetti di grandi dimensioni come il kernel Linux, che ha quasi un milione di commit e oltre 700 release taggate.

Sistema di Branching Potente: Una delle caratteristiche più apprezzate di Git è il suo incredibile sistema di branching, che facilita lo sviluppo non lineare.

Git vs. GitHub/GitLab e Interfacce Utente

È importante distinguere tra "Git" (il sistema di controllo versione nella sua interezza, inclusi concetti e idee) e git (il comando per utilizzare queste funzioni). Git è uno strumento autonomo che può essere utilizzato senza repository centrali. Le piattaforme esterne, come GitHub, GitLab, Azure Repos, Bitbucket, Gitea, e Gitolite, sono servizi di hosting che facilitano la collaborazione, fungono da backup aggiuntivi e offrono funzioni extra come la gestione di problemi (issue tracking), la documentazione (wiki) e l'automazione dei test. Anche il kernel Linux è ora su GitHub.

Esistono vari modi per interagire con Git:

  • Riga di Comando (CLI): Le fonti sottolineano che la riga di comando è l'unico luogo dove è possibile eseguire tutti i comandi Git, poiché la maggior parte delle interfacce grafiche (GUI) implementa solo un sottoinsieme parziale delle funzionalità di Git per semplicità.
  • Interfacce Utente Grafiche (GUI) e IDE: Molti IDE popolari (come Microsoft Visual Studio, Xcode, IntelliJ IDEA, Android Studio) e editor (Atom, Sublime Text, Visual Studio Code) offrono comandi di menu per eseguire operazioni Git elementari.


Complessità e Apprendimento

Nonostante la sua potenza, Git è stato chiaramente progettato da professionisti per professionisti e non è facile da usare. I principianti possono incontrare messaggi di errore incomprensibili e trovarsi in difficoltà. Una buona comprensione di come funziona Git internamente è fondamentale per acquisire la fiducia necessaria a risolvere problemi come i conflitti di merge. Investire tempo per imparare Git sistematicamente è un'abilità fondamentale a lungo termine per ogni sviluppatore.


Concetti Fondamentali di Git

Comprendere la terminologia è il primo passo per padroneggiare Git.

- Repository
Un repository (o "magazzino") è la collezione di tutti i file che compongono un progetto, inclusi tutte le versioni precedenti e i rami di sviluppo. Quando si salva una modifica, Git ne fa una "istantanea" (snapshot). Un repository Git viene inizializzato all'interno della cartella che si desidera controllare in versione. Il repository può essere locale o remoto:
  • Repository Locale: La copia completa del repository sul computer di un utente.
  • Repository Remoto: Un repository esterno, spesso ospitato su piattaforme come GitHub o GitLab, utilizzato per la sincronizzazione e la collaborazione. Il repository origin è quello esterno da cui il progetto è stato originariamente clonato o configurato come predefinito.

- Directory .git:
È una cartella nascosta che contiene tutti i file necessari a Git per funzionare, come la configurazione del repository, i ganci (hooks), gli oggetti Git (commits, BLOBs, trees, tags) e i riferimenti. Copiare questa directory altrove è sufficiente per fare un backup o clonare il repository.


- Commit
Un commit è un'istantanea permanente delle modifiche apportate al progetto. Contiene i metadati della modifica (data, autore, messaggio, firma) e puntatori a un oggetto "tree" (che elenca i file versionati) e al commit precedente (il suo "genitore"). Una sequenza di commit forma la storia del repository. All'interno dei Commit è possibile inserire dei messaggi. 

I Messaggi di Commit dovrebbero essere concisi (prima riga preferibilmente <50 caratteri) e descrivere chiaramente le modifiche. La seconda riga può rimanere vuota, e dalla terza in poi possono seguire maggiori dettagli. Possono includere riferimenti a problemi (issues) e pull request.


- Staging Area (o Index)
È un'area temporanea dove si preparano i file per il prossimo commit. Le modifiche vengono prima aggiunte qui tramite git add prima di essere salvate in un commit. Internamente, Git gestisce l'area di staging tramite il file .git/index in formato binario.


-BLOB (Binary Large Object)
Contiene il contenuto effettivo dei file versionati. Ogni versione di un file ha un BLOB corrispondente.


- Tree Object:
Rappresenta la struttura delle directory in un dato momento. Contiene puntatori a BLOB (per i file) e ad altri Tree Object (per le sottocartelle).


- References (Refs)
Sono piccoli file che puntano a specifici oggetti Git, il più delle volte a un commit. Esempi includono riferimenti ai commit più recenti dei rami locali e remoti (.git/refs/heads e .git/refs/remotes), e ai commit etichettati (.git/refs/tags).

  • HEAD: Un riferimento speciale che punta al commit corrente del ramo attivo. Può essere "staccato" (detached HEAD) se si controlla direttamente un commit invece di un ramo.
  • Reflog: Un log locale delle azioni Git che modificano il HEAD o il capo di un ramo nel repository locale. È utile per recuperare commit persi.
  • Range Syntax: Permette di specificare intervalli di commit usando notazioni come rev1..rev2 o rev1...rev2.


Branches (Rami)
Rappresentano linee di sviluppo indipendenti. In Git, un ramo è semplicemente un puntatore al commit più recente di quella linea di sviluppo. I rami sono facili e veloci da creare e unire, ed è una delle caratteristiche distintive di Git.
  • Ramo main (precedentemente master): Il ramo predefinito e principale di un nuovo repository. La denominazione è cambiata da master a main intorno al 2020 per evitare termini controversi.
  • Tracking Branches: Rami locali che sono configurati per seguire un ramo su un repository remoto.
  • Flussi di Lavoro con i Rami: I rami sono fondamentali per la collaborazione. Flussi di lavoro comuni includono lo sviluppo di funzionalità su rami separati (feature branches) che vengono poi integrati nel ramo principale.

Tags (Etichette):
Servono per etichettare commit particolarmente importanti, spesso per contrassegnare versioni di rilascio del software (es. v1.0.0). Esistono tag semplici (leggeri) e tag annotati, che includono metadati aggiuntivi.





domenica 19 febbraio 2023

Windows Server 2022: Introduzione

Windows Server 2022 è un sistema operativo per server rilasciato da Microsoft il 1º settembre 2021. Il sistema operativo fa parte della famiglia Windows NT ed è il successore di Windows Server 2019. Microsoft, nel corso degli anni, continua a migliorare il suo sistema operativo per server. Sebbene Windows Server 2022 non introduca cambiamenti radicali, offre alcune nuove funzionalità, tra cui miglioramenti alla sicurezza, ai servizi e all'amministrazione del sistema. In particolare tra le nuove funzionalità presenti troviamo:

Secured-core server (server protetto)
Questi sistemi richiedono alcune specifiche hardware, come ad esempio un modulo TPM 2.0, per utilizzare funzioni di sicurezza avanzate . Il modulo TPM (Trusted Platform Module) 2.0 può essere utilizzato per vari scopi tra cui l'archiviazione sicura delle chiavi e una migliore protezione all'avvio da parte di BitLocker. Microsoft offre anche maggiori protezioni contro gli attacchi a livello di firmware e la sicurezza basata sulla virtualizzazione (VBS).

Richieste di risoluzione dei nomi DNS crittografate con DoH
Le richieste DNS possono ora essere effettuate tramite Hypertext Transfer Protocol Secure (HTTPS), utilizzando un canale canale crittografato. Questa nuova funzionalità è denominata DNS-over-HTTPS (DoH).

Sicurezza del livello di trasporto (HTTPS e TLS)
In Windows Server 2022, sia HTTPS che TLS 1.3 sono abilitati per impostazione predefinita e consentono una migliore protezione della connessione di rete.

Sicurezza del Server Message Block (SMB)
Windows Server 2022 apporta diversi miglioramenti alla sicurezza del Server Message Block (SMB). SMB può ora essere utilizzato tramite il protocollo QUIC anziché il Transmission Control Protocol (TCP) consentendo, in questo modo, di sfruttare la crittografia TLS 1.3. SMB Direct supporta la crittografia con un impatto minimo sulle prestazioni inoltre il traffico tra cluster di storage in Storage Spaces Direct può ora essere crittografato.

Funzionalità ibride di Azure
Nel nuovo sistema operativo è disponibile Azure Arc, che fornisce una gestione centralizzata dei server, e Azure Automanage Hotpatch, che consente aggiornamenti senza riavvio. 

Windows Admin Center
Tra i miglioramenti apportati a Windows Admin Center troviamo l'aggiunta del supporto alle nuove funzionalità dei server secured-core.

Supporto migliorato per i Windows Container
Le dimensioni delle immagini dei container sono state notevolmente ridotte ed è stato aggiunto un maggiore supporto per Kubernetes (il sistema open-source di orchestrazione e gestione di container).

Prestazioni di rete
Le prestazioni del protocollo TCP e del protocollo UDP (User Datagram Protocol) sono state migliorate.

Microsoft Edge
Microsoft Edge ha sostituito Internet Explorer come browser predefinito in Windows Server 2022.

Miglioramenti nell'archiviazione
Grazie a miglioramenti apportati al Storage Migration Service, la migrazione dei dati è stata semplificata.
Storage Spaces Direct presenta 2 grandi novità:
    1. La velocità di riparazione dello storage regolabile dall'utente che consente agli utenti di specificare quante risorse allocare per la riparazione dei dati o per soddisfare le esigenze di storage attivo.
    2. La disponibilità della cache del bus di archiviazione sui sistemi non clusterizzati che consente di creare uno storage a livelli su un server stand-alone.


Versioni di Windows Server 2022

Windows Server 2022 è disponibile solo come sistema operativo a 64 bit (non esiste una versione a 32 bit) e viene distribuito in 3 versioni: Essentials, Standard, e Datacenter (è presente anche un'ulteriore versione Datacenter: Azure Edition). 

Essentials
La versione Essentials è ideale per le piccole organizzazioni (con un numero di utenti non superiore a 50). Rappresenta una soluzione economica e offre funzionalità di base sufficienti per svolgere la maggior parte dei lavori. Le caratteristiche dell'edizione Essentials sono:
    • Supporta fino a due core di CPU
    • Supporta un massimo di 64 GB di RAM (memoria ad accesso casuale)

Standard
L'edizione Standard è ideale per ambienti fisici o poco virtualizzati. Le caratteristiche dell'edizione Standard includono:
    • Fino a due contenitori Hyper-V e un numero illimitato di container Windows Server
    • Supporto HGS e Nano Server
    • Storage Replica (con alcune limitazioni)

Datacenter
L'edizione Datacenter ha le stesse caratteristiche dell'edizione Standard e alcune caratteristiche aggiuntive che la rendono ideale per le organizzazioni con molte esigenze di virtualizzazione, con la necessità di utilizzare la tecnologia software-defined networking (SDN) o che necessitano di opzioni di storage avanzate. Alcune di queste caratteristiche sono le seguenti: 
    • Container Hyper-V e container Windows illimitati
    • Macchine virtuali Hyper-V illimitate e supporto per macchine virtuali schermate
    • Storage Replica (illimitato) e Storage Spaces Direct
    • Supporto alla tecnologia software-defined networking (SDN)
    • Controller di rete
    • Supporto Host Guardian Hyper-V
Esiste anche una versione specializzata di Windows Server Datacenter denominata Azure Edition. Windows Server 2022 Datacenter: Azure Edition offre maggiore integrazione con il cloud Microsoft Azure. Tale versione è disponibile solo attraverso Microsoft Azure (installandola come macchina virtuale in Azure) e non è possibile installarla sui propri sistemi on-premises né eseguirla sui propri hypervisor.
Le nuove funzionalità includono le seguenti:
    • Azure Extended Network
    • Hotpatching
    • SMB over QUIC
    • Supporto per macchine virtuali schermate


Nelle seguenti tabelle vengono evidenziate le differenze in termini di funzionalità, ruoli e limiti, tra la versione Standard e quella Datacenter.
Funzionalità generali Standard Datacenter Datacenter: Azure Edition
Rete estesa di Azure
No
No
Con patch a caldo
No
No
SMB su QUIC
No
No
Rete software-defined
No
Replica archiviazione

(1 in collaborazione e 1 gruppo di risorse con un volume singolo da 2 TB)
Sì, illimitato
Sì, illimitato
Spazi di archiviazione diretta
No
Attivazione ereditata
Come guest se ospitato in Datacenter Può essere un host o un guest Può essere un host o un guest


Blocchi e limiti, Ruoli e funzionalità Standard Datacenter
Utilizzabile come guest di virtualizzazione

due macchine virtuali,
più un host Hyper-V per licenza

macchine virtuali illimitate,
più un host Hyper-V per licenza
Ruolo di Controller di rete
No
Supporto Sorveglianza host Hyper-V
No


Per maggiori dettagli sulle differenze tra le versioni è possibile consultare l'apposita pagina dal sito Microsoft.


Windows Server 2022 User Experiences

Windows Server 2022 offre due esperienze utente tra cui scegliere: Desktop Experience e Server Core. Quale utilizzare dipenderà dal carico di lavoro che si desidera supportare e dai requisiti organizzativi. La decisione su quale User Experience installare va valutata con attenzione: a partire da Windows Server 2016 non è più possibile passare da Server Core a Server con Desktop Experience (o viceversa) in maniera indolore ma è necessario reinstallare il sistema.

Desktop Experience
Desktop Experience è l'interfaccia grafica standard (GUI) utilizzata nelle versioni precedenti dei sistemi operativi Windows Server. Consente di interagire con il sistema tramite pulsanti e menu piuttosto che tramite la riga di comando. La GUI (Graphical User Interface) dei sistemi operativi server di Microsoft si rifà a quello delle versioni client: Windows Server 2008 R2 si rifà al look di Windows 7 mentre in Windows Server 2012 l'utente ritrova lo stesso feeling presente in Windows 8. Nelle versioni Windows Server 2016, Windows Server 2019 e Windows Server 2022 invece, troviamo lo stesso aspetto di Windows 10. La Desktop Experience facilita l'amministrazione del server anche agli amministratori di sistema principianti.
Desktop Experience
FIG 1 - Desktop Experience

Server Core
Server Core offre un'interfaccia molto più spartana quando ci si collega alla console. Si viene accolti da una finestra di comando dall'aspetto familiare in cui viene richiesto il nome utente e la password. Dopo aver effettuato l'accesso, viene presentata la finestra sconfig. Quando si sceglie di passare alla riga di comando da sconfig, viene visualizzata una finestra PowerShell con cui interagire. La configurazione iniziale viene eseguita con l'utilità sconfig, anche se può essere eseguita tramite uno script PowerShell o una Desired State Configuration (DSC) di PowerShell
Server Core, sconfig
FIG 2 - Server Core, sconfig

Nano
Non è disponibile attraverso il normale programma di installazione sul disco, ma è necessario scaricare l'immagine del contenitore da Microsoft. Nano offre un'interfaccia ancora più semplice e una console molto più limitata, denominata Recovery Console. Ha un ingombro molto più ridotto, sia in termini di disco che di CPU, rispetto a Desktop Experience o Server Core ed è ideale per l'esecuzione di applicazioni .NET Core. Poiché l'ingombro complessivo è minore, anche la superficie di attacco è ridotta. 
Nano è disponibile solo come immagine del sistema operativo di base per container e può essere eseguito solo come container su un host container, non può essere gestito tramite Criteri di gruppo e per la gestione su vasta scala è necessario utilizzare PowerShell DSC. É possibile eseguire il download delle immagini del server Nano dal registro dei container di Microsoft su DockerHub con il seguente comando:
docker pull mcr.microsoft.com/windows/nanoserver
Sul sito https://hub.docker.com/_/microsoft-windows-nanoserver sono presenti ulteriori informazioni sulle immagini del container Nano Server disponibili.


Prerequisiti

Microsoft pubblica i prerequisiti per ciascuno dei suoi sistemi operativi. Una delle cose fondamentali prima di avviare l'installazione è quella di assicurarsi che tutti i prerequisiti di Windows Server 2022 siano soddisfatti. Alcuni dei requisiti hardware sono indipendenti dall'edizione di Windows Server che si intende installare altri requisiti hardware variano a seconda che si installi Server con Desktop Experience o Server Core. Per la maggior parte, non ci sono molte differenze tra i requisiti minimi di Server Core e quelli di Server con Desktop Experience ad eccezione della quantità di memoria ad accesso casuale (RAM). Il requisito minimo per l'installazione di Server Core è 512 MB di RAM, mentre per Server con Desktop Experience sono necessari almeno 2 GB di RAM. I prerequisiti descritti di seguito sono quelli minimi. Per le specifiche hardware più adatte alle proprie esigenze va tenuto conto del carico di lavoro che si andrà ad eseguire.

CPU
I requisiti della CPU per Windows Server 2022 sono facilmente soddisfatti dalla maggior parte dei processori moderni:
  • Processore da 1,4 GHz a 64 bit
    Considerando che il sistema operativo è un sistema x64, è logico che anche il processore debba avere un'architettura a 64 bit. Il requisito dei 1,4 GHz viene soddisfatto anche dai processori più economici e di fascia bassa.
  • Supporto No Execute (NX)
    Quando il bit NX è abilitato su determinate aree di memoria, il processore non esegue nulla in quello spazio di memoria, il che fornisce una protezione contro il malware. Le aree protette dal bit NX contengono solitamente elementi quali istruzioni del processore o dati. Intel si riferisce a questa tecnologia come XD (abbreviazione di Execute Disable) mentre i processori AMD la chiamano Enhanced Virus Protection (EVP).
  • Supporto alla prevenzione dell'esecuzione dei dati (DEP, Data Execution Prevention)
    La tecnologia DEP fornisce una protezione aggiuntiva contro il malware che può prendere di mira le posizioni di memoria.
  • Supporto CMPXCHG16b, LAHF/SAHF e PrefetchW
    Queste impostazioni sono specifiche del processore (sono stati pubblicati diversi whitepaper su tali specifiche). CMPXCHG16b è un set di istruzioni supportato dalla maggior parte dei moderni processori x86_64. Load AH from Flags (LAHF)/Store AH into Flags (SAHF) vengono utilizzati per il supporto alla virtualizzazione. PrefetchW migliora le prestazioni quando si utilizzano processori AMD. 
  • Supporto alla traduzione degli indirizzi di secondo livello (Extended Page Table [EPT] o Nested Page Table [NPT])
    Questa funzione è particolarmente importante se si prevede di eseguire Hyper-V. Migliora le prestazioni delle macchine virtuali sul sistema e toglie un po' di pressione all'hypervisor migliorandone le prestazioni.

RAM (Random Access Memory)
La memoria ad accesso casuale (RAM) viene utilizzata dal server per memorizzare le cose a cui è necessario accedere subito e quelle a cui potrebbe essere necessario accedere nel prossimo futuro. La RAM è molto più veloce della memoria persistente, quindi un server con molta RAM avrà prestazioni migliori. La RAM deve essere di tipo ECC (Error Correcting Code). La memoria di tipo ECC è in grado di correggere gli errori di un singolo bit (ad esempio, se un'interferenza elettrica inverte un bit in errore, l'uso del bit di parità può garantire la correzione dei dati in memoria). Come indicato precedentemente, la quantità minima di RAM consigliata varia a seconda della versione di Windows Server 2022 che si intende installare: Server Core richiede un minimo di 512 MB di RAM, mentre Server con Desktop Experience richiede un minimo di 2 GB di RAM

Disco
Per l'installazione di Windows Server 2022 sono necessari almeno 32 GB di spazio sul disco rigido. Questo è lo spazio minimo indispensabile per l'installazione del sistema operativo. Se si dispone solo di 32 GB, non sarà possibile installare nient'altro. Visto il costo per GB dei moderni Hard Disk, anche questo prerequisito non rappresenta una grossa limitazione tuttavia, se lo spazio di archiviazione a disposizione è limitato, è possibile pensare all'installazione di Windows Server Core che richiede 4 GB in meno rispetto a Windows Server con Desktop Experience.

Adattatore di rete
L'adattatore di rete, detto anche scheda di interfaccia di rete (NIC), consente al server di connettersi alla rete e comunicare. Per Windows Server 2022, la scheda di rete deve supportare almeno una rete Ethernet gigabit.  L'adattatore di rete deve supportare il Pre-boot Execution Environment (PXE), un metodo per eseguire il boot di un computer utilizzando una connessione di rete ethernet ed il supporto di un server, senza bisogno di una unità di memoria di massa. È quello che la maggior parte delle organizzazioni usa oggi per eseguire l'immagine dei sistemi da un server di imaging centrale come Windows Deployment Services o System Center Configuration Manager.

Firmware UEFI
L'interfaccia UEFI (Unified Extensible Firmware Interface) ha ormai sostituito il tradizionale Basic Input-Output System (BIOS). Per l'avvio protetto è richiesto un firmware basato su UEFI 2.3.1c.

TPM (Trusted Platform Module) 2.0
La maggior parte delle schede madri è oggi dotata di un chip TPM (Trusted Platform Module) 2.0. Se si intende eseguire la crittografia del disco con BitLocker, questo è un elemento indispensabile.

Monitor
È ovvio che durante l'installazione del sistema operativo è necessario poter vedere cosa succede sul server. Windows Server 2022 richiede una connessione Super Video Graphics Array (SVGA) con una risoluzione minima di 1024 x 768. È possibile ottenere questo risultato collegando un monitor fisico al server o visualizzando il flusso video attraverso un KVM (Keyboard, Video, Mouse).
Le KVM consentono di utilizzare una tastiera, un monitor (video, nell'acronimo inglese) e un mouse per amministrare più server. Le KVM più vecchie richiedevano la presenza fisica sul posto per utilizzare la tastiera, il monitor e il mouse. Le moderne KVM consentono di amministrare i server in remoto tramite un servizio Web e forniscono funzionalità simili a quelle che si otterrebbero collegando fisicamente una tastiera, un monitor e un mouse al server.

Tastiera e mouse
È possibile collegare una tastiera e un mouse direttamente al server durante l'imaging oppure presentarli al sistema tramite un KVM. In ogni caso, è necessario disporre di una tastiera e di un mouse di qualche tipo per interagire con il sistema.


Preparazione supporto di installazione

Una volta recuperata l'immagine ISO di Windows Server 2022 bisogna procedere alla creazione del supporto per l'installazione su una macchina fisica. Se si dispone di un masterizzatore (e di un lettore DVD sul server) è possibile masterizzare l'immagine su un supporto DVD cliccando sul file ISO con il tasto destro del mouse e selezionando Masterizza immagine disco o utilizzando, in alternativa, uno dei tanti programmi di masterizzazione come ad es. Nero Burning Rom, ImgBurn, CDBurnerXP, ecc. 
Per installare Windows Server 2022 mediante unità di memoria di massa collegata alla porta USB del server è possibile utilizzare appositi tool come Rufus, Balena Etcher o Ventoy per creare una pendrive bootable con l'immagine ISO del sistema operativo. 
Se il server da installare farà parte di un'infrastruttura già esistente, l'installazione probabilmente potrà essere avviata tramite rete utilizzando Windows Deployment Services o System Center Configuration Manager
Se si tratta di un server stand-alone da aggiornare, allora l'immagine ISO può essere montata direttamente all'interno del sistema operativo obsoleto e avviare manualmente il setup di Windows Server 2022. In questo caso, oltre a verificare se la versione di Windows server presente sulla macchina sia aggiornabile a Windows Server 2022, è necessario assicurarsi che eventuali software installati siano compatibili con la nuova versione del sistema operativo server.

Prima di partire con l'installazione assicurarsi di disporre di tutti i driver relativi all'hardware su cui si andrà ad installare il sistema operativo Windows Server.