Cos’è un server software e quali sono le principali differenze tra un server software e un server hardware?

Il termine "server" è, sfortunatamente, usato per un sacco di cose diverse nel mondo dell'informatica.

In un contesto software, un "server" è qualsiasi applicazione che viene eseguita per la maggior parte o per tutto il tempo ed è pronta a rispondere alle domande o ad eseguire operazioni per conto di qualche altra applicazione o processo. L'applicazione che fa le domande o richiede le operazioni è il "client". Una moderna installazione di Windows ha centinaia di server persistenti (chiamati "servizi" nel linguaggio di quel sistema operativo) e molte applicazioni (Office, per esempio) lanceranno anche server temporanei come parte dell'esecuzione per eseguire varie funzioni all'interno dell'applicazione.

In un contesto hardware, un "server" è l'hardware del computer che è stato progettato allo scopo di ospitare grandi applicazioni a lungo termine con un alto grado di affidabilità e durata. Tipicamente l'hardware di classe server supporterà più processori e più memoria rispetto all'hardware di classe desktop o workstation, avrà alimentatori ridondanti e sistemi di raffreddamento ridondanti, e può avere la capacità di supportare più dischi rigidi, interfacce di rete e altre opzioni di IO rispetto a quelle che si trovano tipicamente sull'hardware di classe desktop o workstation. I componenti hardware (alimentatori, ventole, dischi rigidi, memoria, a volte anche processori) possono essere rimossi e sostituiti senza spegnere la macchina o richiedere il riavvio del sistema operativo. I server hanno tipicamente capacità video molto limitate (anche se alcuni hanno "GPU headless" per supportare il calcolo basato su GPU) e di solito non hanno alcuna capacità audio, solo una piccola cosa che può fare bip. L'hardware di classe server è stato progettato per funzionare continuamente per anni in ambienti a temperatura controllata. Architettonicamente, l'hardware di classe server non è così dissimile dall'hardware di classe workstation; è solo progettato per un diverso livello di prestazioni.