Software: cos’è, tipologie e differenze con hardware

macbook in primo piano

Ecco una guida completa ed esaustiva sul software. Andremo a parlare di come funziona, cos’è e tantissimo altro.

Che cos’è un software

Il software è un insieme di istruzioni, dati o programmi utilizzati per far funzionare un computer ed eseguire compiti specifici. In termini più semplici, il software spiega al computer come funzionare. È un termine generico utilizzato per indicare applicazioni, script e programmi che vengono eseguiti su dispositivi come PC, telefoni cellulari, tablet e altri dispositivi intelligenti. Il software si contrappone all’hardware, che è l’aspetto fisico di un computer che esegue il lavoro.

Senza software, la maggior parte dei computer sarebbe inutile. Ad esempio, un browser web è un’applicazione software che consente agli utenti di accedere a Internet. Senza il software del browser web, la lettura di questa pagina di Webopedia non sarebbe possibile. Un sistema operativo (OS) è un programma software che funge da interfaccia tra le altre applicazioni e l’hardware di un computer o di un dispositivo mobile. Il protocollo TCP/IP è integrato in tutti i principali sistemi operativi per consentire ai computer di comunicare su reti a lunga distanza. Senza il sistema operativo o i protocolli in esso incorporati, non sarebbe possibile accedere a un browser web.

La maggior parte del software è scritta in linguaggi di programmazione di alto livello, perché il linguaggio è più vicino al linguaggio umano naturale che al linguaggio macchina. Il linguaggio di alto livello viene poi tradotto in codice macchina di basso livello tramite un compilatore o un interprete per essere compreso dal computer. Il software può anche essere scritto in un linguaggio assembly di basso livello, ma è meno comune.

Storia del software

Il concetto di informatica risale a tempi antichi, con invenzioni come l’abaco. Tuttavia, queste invenzioni erano completamente hardware: il software richiede un processore di uso generale e una memoria di computer in cui possono essere memorizzati, avviati e interrotti insiemi riutilizzabili di routine e funzioni matematiche. Questo tipo di tecnologia è emerso abbastanza di recente nella storia.

Ada Lovelace scrisse il primo programma informatico conosciuto nel 1843 per l’Analytical Engine. La macchina analitica era stata progettata da Charles Babbage nel 1837 e rappresentava il concetto del primo computer meccanico generale. Il programma, tuttavia, rimase teorico, poiché la macchina analitica non fu mai costruita fisicamente. La prima teoria moderna del software fu proposta da Alan Turing nel suo saggio del 1935, “Numeri computabili con un’applicazione al problema della decisione” (Entscheidungsproblem).

La prima volta che un computer a programma memorizzato ha conservato un software nella memoria elettronica e lo ha eseguito con successo è stato il 21 giugno 1948. Lo scienziato informatico Tom Kilburn e il suo collega Freddie William costruirono uno dei primi computer, la Manchester Small-Scale Experimental Machine (SSEM) presso l’Università di Manchester in Inghilterra. La SSEM era programmata per eseguire calcoli matematici utilizzando istruzioni in codice macchina. Il software impiegava 52 minuti per calcolare correttamente il massimo divisore di due alla potenza di 18 (262.144).

Alla fine degli anni Cinquanta è nato il primo linguaggio di programmazione: Fortran. Seguirono presto altri linguaggi, tra cui il COBOL e il BASIC. Questi linguaggi permettevano ai programmi di essere specifici in modo astratto e non dipendevano dai dettagli dell’architettura hardware del computer. Questi linguaggi erano destinati principalmente a specificare i calcoli numerici.

Il software divenne popolare negli anni ’70 e ’80 con l’arrivo dei personal computer. Nel 1977 Apple rilasciò l’Apple II, un home computer a 8 bit e uno dei primi microcomputer di successo al mondo prodotti in serie. VisiCalc, il primo software di foglio elettronico per personal computer, fu rilasciato per l’Apple II nel 1979. Il software era scritto in un linguaggio assembly specializzato. Altre aziende, come IBM, svilupparono presto degli home computer. Il software per la produttività e il business dominò le prime fasi del personal computing. Tra le applicazioni software più diffuse in questo periodo vi sono AutoCAD, Microsoft Word e Microsoft Excel.

Un’altra importante innovazione nella storia dello sviluppo del software è stata l’emergere del software open-source negli anni Novanta. Il kernel Linux è stato rilasciato nel 1991 e l’interesse per il software open-source è salito alle stelle dopo la pubblicazione nel 1998 del codice sorgente del browser Netscape Navigator.

Software vs. hardware

Il software e l’hardware del computer hanno bisogno l’uno dell’altro: nessuno dei due può essere utilizzato da solo. Un libro fornisce un’utile analogia. Le pagine e l’inchiostro di un libro sono l’hardware. Le parole, le frasi, i paragrafi e il significato complessivo sono il software. Un computer senza software è come un libro pieno di pagine bianche. Un computer ha bisogno di un software per essere utile, proprio come le parole sono necessarie per dare un senso a un libro.

Anche se entrambi sono necessari, ci sono grandi differenze tra i due:

  • L’hardware è un dispositivo fisico, come una scheda madre, mentre il software è un insieme di codici che devono essere installati nel sistema.
  • L’hardware non può svolgere un compito senza il software. Allo stesso modo, il software non può svolgere un’attività senza l’hardware.
  • L’hardware si usura con il tempo, il software no.
  • L’hardware comprende solo il linguaggio a livello macchina. Il software riceve input in linguaggi leggibili dall’uomo e li trasforma in linguaggio macchina.
  • Il software può essere facilmente creato, modificato o cancellato, mentre la sostituzione dell’hardware richiede maggiori competenze ed è in genere più costosa.

Tabella confronto tra software e hardware

SoftwareHardware
DefinizioneRaccolta di istruzioni che consente all’utente di interagire con il computer.Dispositivi fisici necessari per memorizzare ed eseguire il software.
TipiSoftware di sistema, software di programmazione e software applicativoDispositivi di input, memorizzazione, elaborazione, controllo e uscita.
FunzioneFornisce le istruzioni all’hardwareEsegue il compito a livello di macchina
DifettiIl guasto del software è sistematico. Il software non ha un tasso di malfunzionamento crescente.Il guasto dell’hardware è casuale. L’hardware si guasta sempre più spesso all’ultimo stadio.
DurataIl software è durevole e non si usura, ma con il tempo possono sorgere bug nel software che possono essere corretti.L’hardware si usura con il tempo.
NaturaIl software è di natura logica.L’hardware è di natura fisica.
EsempiQuickBooks, Adobe Acrobat, Google Chrome, Microsoft Word, Microsoft Excel, Apple MapsCPU, disco rigido, RAM, tastiera, mouse, unità USB.

Quali sono i tipi di software esistono?

I due principali tipi di software per computer sono:

  • Software applicativo
  • Software di sistema

Altri due tipi di software per computer sono:

  • Software di programmazione
  • Software per driver


I software di programmazione e di driver sono spesso considerati come tipi di software di sistema, ma spiegheremo tutti e quattro i tipi separatamente.

Software applicativo

Il software applicativo è un software che aiuta l’utente finale a completare operazioni come fare ricerche, prendere appunti, impostare una sveglia, progettare grafici o tenere un registro dei conti. Il software applicativo si colloca al di sopra del software di sistema e si differenzia da quest’ultimo perché è progettato per l’uso finale ed è specifico nelle sue funzionalità. Questo tipo di software viene talvolta definito software non essenziale perché viene installato e gestito in base alle esigenze dell’utente. Qualsiasi applicazione su un telefono cellulare è un esempio di software applicativo.

I tipi di software applicativo includono:

  • Elaboratori di testi: Applicazioni utilizzate per la documentazione. Ne sono un esempio Microsoft Word, Google Docs e AppleWorks.
  • Software per fogli di calcolo: Software utilizzato per calcolare dati quantitativi. Esempi: Microsoft Excel, Google Sheets e Quattro Pro.
  • Software per database: Software utilizzato per creare e gestire un database per organizzare i dati. È noto anche come software di gestione dei database (DBMS). Ne sono un esempio MySQL, Clipper e FileMaker.
  • Software multimediale: Strumenti in grado di riprodurre, creare o registrare immagini, file audio o video. Sono utilizzati per l’editing video, l’animazione, la grafica e l’editing di immagini. Ne sono un esempio Adobe Photoshop e Picasa
  • Suite di applicazioni: Una raccolta di programmi correlati venduti come pacchetto. Microsoft Office è la suite di applicazioni più utilizzata.
  • Browser Internet: Software utilizzato per accedere e visualizzare i siti web. Ne sono un esempio Google Chrome e Internet Explorer.
  • Programmi di posta elettronica: Software utilizzato per l’invio di e-mail. Esempi sono Outlook e Gmail.

Software di sistema

Il software di sistema aiuta l’utente, l’hardware e il software applicativo a interagire e a funzionare reciprocamente. Il software di sistema funge da mediatore o strato intermedio tra l’utente e l’hardware. È essenziale per la gestione dell’intero sistema informatico: quando un computer viene acceso per la prima volta, è il software di sistema che viene inizialmente caricato in memoria. A differenza del software applicativo, il software di sistema non viene utilizzato dagli utenti finali. Viene invece eseguito in background su un dispositivo.

L’esempio più noto di software di sistema è il sistema operativo, che gestisce tutti gli altri programmi di un computer. Oltre al sistema operativo, altri esempi di software di sistema sono:

Sistema di input/output di base (BIOS): il firmware integrato che determina ciò che un computer può fare senza accedere ai programmi da un disco.
Boot: carica il sistema operativo nella memoria principale o RAM del computer.
Assemblatore: Prende le istruzioni di base e le converte in uno schema di bit che il processore può utilizzare per eseguire le operazioni di base.
Driver di periferica: Controlla un particolare tipo di dispositivo collegato al computer, come una tastiera o un mouse.


Software di programmazione


Classificato come un tipo di software di sistema, il software di programmazione non viene utilizzato dall’utente finale. Viene utilizzato dai programmatori che scrivono il codice. Il software di programmazione è un programma utilizzato per scrivere, sviluppare, testare ed eseguire il debug di altri software, compresi quelli applicativi e di sistema. Questi programmi servono come una sorta di traduttore. Prendono linguaggi di programmazione come Python o C++ e li traducono in qualcosa di comprensibile per un computer, noto come codice in linguaggio macchina. Oltre a semplificare il codice, questo programma è anche in grado di:

  • Assegna la memorizzazione dei dati
  • Fornisce il codice sorgente e i dettagli del programma
  • Offre rapporti diagnostici
  • Recepisce gli errori di sistema durante l’esecuzione

Software driver

Classificato anche come un tipo di software di sistema, il software driver gestisce e controlla i dispositivi e le periferiche collegate a un computer, consentendo a un dispositivo di eseguire il compito designato. I dispositivi hardware che necessitano di un driver per connettersi al sistema includono display, schede audio, stampanti, mouse e dischi rigidi.

Poiché esistono numerosi tipi di dispositivi, i driver consentono ai sistemi software di comunicare attraverso un linguaggio standardizzato. In genere un sistema operativo è dotato di driver incorporati per mouse, tastiera e stampante, per cui non è necessaria l’installazione da parte di terzi. Per i dispositivi avanzati, potrebbe essere necessario installare il driver esternamente. Se si utilizzano più sistemi operativi, come Linux, Windows o Mac, è necessario mantenere driver separati per ciascuno di essi. Esempi di driver sono:

  • Driver del BIOS
  • Driver del display
  • Driver della scheda madre
  • Driver ROM
  • Driver USB
  • Driver VGA

I driver dei dispositivi possono essere eseguiti in modalità kernel o in modalità utente. L’esecuzione di un driver in modalità utente migliora la stabilità, poiché un driver scritto male in modalità utente non può mandare in crash il sistema sovrascrivendo la memoria del kernel. Al contrario, la modalità kernel è preferibile per le reti a bassa latenza.

Fornitori di software più diffusi

I fornitori di software forniscono servizi in una delle quattro categorie: servizi di programmazione, servizi di sistema, open source e SaaS. I fornitori generano ricavi dalle licenze software, dai servizi di manutenzione, dai canoni di abbonamento e dai canoni di assistenza. Al 2020, le maggiori aziende di software per fatturato sono:

  • Microsoft
  • Oracle
  • SAP
  • Salesforce
  • Adobe

Contenuto ispirato a https://www.webopedia.com/definitions/software/