Un sistema operativo (OS) è il programma che, dopo essere stato inizialmente caricato nel computer da un programma di avvio, gestisce tutti gli altri programmi applicativi in un computer. I programmi applicativi fanno uso del sistema operativo effettuando richieste di servizi tramite un'API (Application Program Interface) definita. Inoltre, gli utenti possono interagire direttamente con il sistema operativo tramite un'interfaccia utente, come un'interfaccia della riga di comando (CLI) o un'interfaccia grafica (GUI).
Perché utilizzare un sistema operativo?
Un sistema operativo apporta potenti vantaggi al software per computer e allo sviluppo di software. Senza un sistema operativo, ogni applicazione dovrebbe includere la propria interfaccia utente, nonché il codice completo necessario per gestire tutte le funzionalità di basso livello del computer sottostante, come l'archiviazione su disco, le interfacce di rete e così via. Considerando la vasta gamma di hardware sottostante disponibile, ciò aumenterebbe notevolmente le dimensioni di ogni applicazione e renderebbe impraticabile lo sviluppo del software.
Invece, molte attività comuni, come l'invio di un pacchetto di rete o la visualizzazione di testo su un dispositivo di output standard, come un display, possono essere trasferite al software di sistema che funge da intermediario tra le applicazioni e l'hardware. Il software di sistema fornisce un modo coerente e ripetibile per le applicazioni di interagire con l'hardware senza che le applicazioni debbano conoscere alcun dettaglio sull'hardware.
Finché ogni applicazione accede alle stesse risorse e servizi nello stesso modo, quel software di sistema - il sistema operativo - può supportare quasi un numero qualsiasi di applicazioni. Ciò riduce notevolmente la quantità di tempo e la codifica necessari per sviluppare ed eseguire il debug di un'applicazione, garantendo al contempo che gli utenti possano controllare, configurare e gestire l'hardware del sistema tramite un'interfaccia comune e ben comprensibile.
Questo articolo fa parte di
Guida completa alla gestione unificata degli endpoint
- Che include anche:
- Come implementare correttamente MDM per BYOD
- Scopri in che modo UEM, EMM e MDM differiscono l'uno dall'altro
- 5 fornitori di software di gestione Mac emergenti da conoscere
Scaricare1
Scarica subito l'intera guida GRATUITAMENTE!
Una volta installato, il sistema operativo si basa su una vasta libreria di driver di dispositivo per adattare i servizi del sistema operativo all'ambiente hardware specifico. Pertanto, ogni applicazione può effettuare una chiamata comune a un dispositivo di archiviazione, ma il sistema operativo riceve quella chiamata e utilizza il driver corrispondente per tradurre la chiamata in azioni (comandi) necessarie per l'hardware sottostante su quel computer specifico. Oggi, il sistema operativo fornisce una piattaforma completa che identifica, configura e gestisce una vasta gamma di hardware, inclusi i processori; dispositivi di memoria e gestione della memoria; chipset; Conservazione; networking; porta di comunicazione, come Video Graphics Array (VGA), High-Definition Multimedia Interface (HDMI) e Universal Serial Bus (USB); e interfacce di sottosistema, come Peripheral Component Interconnect Express (PCIe).
Funzioni di un sistema operativo
Un sistema operativo fornisce tre funzionalità essenziali: offre un'interfaccia utente tramite una CLI o una GUI; lancia e gestisce l'esecuzione dell'applicazione; e identifica ed espone le risorse hardware del sistema a tali applicazioni, in genere tramite un'API standardizzata.
UI. Ogni sistema operativo richiede un'interfaccia utente, che consente agli utenti e agli amministratori di interagire con il sistema operativo per impostare, configurare e persino risolvere i problemi del sistema operativo e dell'hardware sottostante. Sono disponibili due tipi principali di interfaccia utente: CLI e GUI.
L'architettura di un sistema operativo
La CLI, o finestra in modalità terminale, fornisce un'interfaccia basata su testo in cui gli utenti fanno affidamento sulla tastiera tradizionale per immettere comandi, parametri e argomenti specifici relativi a attività specifiche. La GUI, o desktop, fornisce un'interfaccia visiva basata su icone e simboli in cui gli utenti fanno affidamento sui gesti forniti dai dispositivi dell'interfaccia umana, come touchpad, touchscreen e mouse.
La GUI viene utilizzata più frequentemente da utenti occasionali o finali interessati principalmente alla manipolazione di file e applicazioni, ad esempio facendo doppio clic sull'icona di un file per aprire il file nella sua applicazione predefinita. La CLI rimane popolare tra gli utenti avanzati e gli amministratori di sistema che devono gestire una serie di comandi altamente granulari e ripetitivi su base regolare, come la creazione e l'esecuzione di script per configurare nuovi personal computer (PC) per i dipendenti.
Gestione delle candidature. Un sistema operativo gestisce l'avvio e la gestione di ogni applicazione. Questo in genere supporta una serie di comportamenti, inclusa la condivisione del tempo di più processi o thread, in modo che varie attività possano condividere il tempo dei processori disponibili; gestire le interruzioni che le applicazioni producono per ottenere l'attenzione immediata di un processore, assicurandosi che ci sia memoria sufficiente per eseguire l'applicazione ei dati corrispondenti senza interferire con altri processi; eseguire la gestione degli errori che può rimuovere con grazia i processi di un'applicazione; ed eseguire la gestione della memoria senza interrompere altre applicazioni o il sistema operativo.
Un sistema operativo può anche supportare le API che consentono alle applicazioni di utilizzare le funzioni del sistema operativo e dell'hardware senza la necessità di sapere nulla sullo stato del sistema operativo o dell'hardware di basso livello. Ad esempio, un'API di Windows può consentire a un programma di ottenere input da una tastiera o da un mouse; creare elementi GUI, come finestre di dialogo e pulsanti; leggere e scrivere file su un dispositivo di archiviazione; e altro ancora. Le applicazioni sono quasi sempre personalizzate per utilizzare il sistema operativo su cui l'applicazione intende essere eseguita.
Inoltre, un sistema operativo può eseguire i seguenti servizi per le applicazioni:
- In un sistema operativo multitasking, in cui più programmi possono essere eseguiti contemporaneamente, il sistema operativo determina quali applicazioni devono essere eseguite in quale ordine e quanto tempo dovrebbe essere concesso per ciascuna applicazione prima di dare una svolta a un'altra applicazione.
- Gestisce input / output (I / O) da e verso dispositivi hardware collegati, come dischi rigidi, stampanti e porte di accesso remoto.
- Invia messaggi a ciascuna applicazione o utente interattivo, oa un operatore di sistema, sullo stato di funzionamento e su eventuali errori che potrebbero essersi verificati.
- Può scaricare la gestione dei lavori batch, ad esempio la stampa, in modo che l'applicazione di avvio venga liberata da questo lavoro.
- Sui computer che possono fornire l'elaborazione parallela, un sistema operativo può gestire come dividere il programma in modo che venga eseguito su più di un processore alla volta.
Tutte le principali piattaforme di computer (hardware e software) richiedono, e talvolta includono, un sistema operativo e i sistemi operativi devono essere sviluppati con caratteristiche diverse per soddisfare le esigenze specifiche di vari fattori di forma.
Gestione dei dispositivi. Un sistema operativo è responsabile dell'identificazione, configurazione e fornitura di applicazioni con accesso comune ai dispositivi hardware del computer sottostante. Quando il sistema operativo riconosce e identifica l'hardware, il sistema operativo installerà i driver di dispositivo corrispondenti che consentono al sistema operativo e alle applicazioni in esecuzione sul sistema operativo di utilizzare i dispositivi senza alcuna conoscenza specifica dell'hardware o dei dispositivi.
Un sistema operativo è responsabile dell'identificazione della stampante corretta e dell'installazione dei driver della stampante appropriati in modo che un'applicazione debba solo effettuare chiamate alla stampante senza dover utilizzare codici o comandi specifici per quella stampante: questo è il lavoro del sistema operativo. La situazione è simile per altri dispositivi, come le porte USB; porte di rete; dispositivi grafici, come le unità di elaborazione grafica (GPU); chipset della scheda madre; e dispositivi di archiviazione, come adattatori disco Serial-Attached SCSI (SAS) e dischi formattati con un file system adatto.
Il sistema operativo identifica e configura i dispositivi fisici e logici per il servizio e in genere li registra in una struttura standardizzata, come il registro di Windows. I produttori di dispositivi aggiornano e aggiornano periodicamente i driver e il sistema operativo dovrebbe aggiornarli per garantire le migliori prestazioni e sicurezza del dispositivo. Quando i dispositivi vengono sostituiti, il sistema operativo installa e configura anche nuovi driver.
Tipi di sistemi operativi ed esempi
Sebbene i ruoli fondamentali di un sistema operativo siano onnipresenti, esistono innumerevoli sistemi operativi che soddisfano un'ampia gamma di esigenze hardware e degli utenti.
Sistema operativo generico. Un sistema operativo generico rappresenta una serie di sistemi operativi destinati a eseguire una moltitudine di applicazioni su un'ampia selezione di hardware, consentendo a un utente di eseguire una o più applicazioni o attività contemporaneamente. Un sistema operativo generico può essere installato su molti diversi modelli di desktop e laptop ed eseguire applicazioni dai sistemi di contabilità ai database, dai browser Web ai giochi. I sistemi operativi generici si concentrano in genere sulla gestione dei processi (thread) e dell'hardware per garantire che le applicazioni possano condividere in modo affidabile l'ampia gamma di hardware di elaborazione presente.
I sistemi operativi desktop comuni includono quanto segue:
- Windows è il sistema operativo di punta di Microsoft, lo standard de facto per i computer domestici e aziendali. Introdotto nel 1985, il sistema operativo basato su GUI è stato rilasciato in molte versioni da allora. L'intuitivo Windows 95 è stato in gran parte responsabile del rapido sviluppo del personal computing.
- Mac OS è il sistema operativo per la linea di PC e workstation Macintosh di Apple.
- Unix è un sistema operativo multiutente progettato per flessibilità e adattabilità. Sviluppato originariamente negli anni '1970, Unix è stato uno dei primi sistemi operativi ad essere scritto in linguaggio C.
- Linux è un sistema operativo simile a Unix progettato per fornire agli utenti di PC un'alternativa gratuita oa basso costo. Linux ha la reputazione di un sistema efficiente e dalle prestazioni veloci.
Sistema operativo mobile. I sistemi operativi mobili sono progettati per soddisfare le esigenze specifiche del mobile computing e dei dispositivi incentrati sulla comunicazione, come smartphone e tablet. I dispositivi mobili in genere offrono risorse di elaborazione limitate rispetto ai PC tradizionali e il sistema operativo deve essere ridimensionato in termini di dimensioni e complessità al fine di ridurre al minimo il proprio utilizzo delle risorse, garantendo nel contempo risorse adeguate per una o più applicazioni in esecuzione sul dispositivo. I sistemi operativi mobili tendono a enfatizzare prestazioni efficienti, reattività dell'utente e grande attenzione alle attività di gestione dei dati, come il supporto dello streaming multimediale. Apple iOS e Google Android sono esempi di sistemi operativi mobili.
Sistema operativo integrato. Non tutti i dispositivi informatici sono di uso generale. Un vasto assortimento di dispositivi dedicati, tra cui assistenti digitali domestici, sportelli automatici (ATM), sistemi per aeroplani, terminali per punti vendita al dettaglio (POS) e dispositivi Internet of things (IoT), include computer che richiedono un sistema operativo. La differenza principale è che il dispositivo di elaborazione associato fa solo una cosa importante, quindi il sistema operativo è molto ridotto e dedicato sia alle prestazioni che alla resilienza. Il sistema operativo dovrebbe funzionare rapidamente, non andare in crash e gestire tutti gli errori con garbo per continuare a funzionare in tutte le circostanze. Nella maggior parte dei casi, il sistema operativo viene fornito su un chip incorporato nel dispositivo effettivo. Un dispositivo medico utilizzato nelle apparecchiature di supporto vitale di un paziente, ad esempio, impiegherà un sistema operativo integrato che deve funzionare in modo affidabile per mantenere in vita il paziente. Embedded Linux è un esempio di un sistema operativo integrato.
Sistema operativo di rete. Un sistema operativo di rete (NOS) è un altro sistema operativo specializzato destinato a facilitare la comunicazione tra dispositivi che operano su una rete locale (LAN). Un NOS fornisce lo stack di comunicazione necessario per comprendere i protocolli di rete al fine di creare, scambiare e scomporre i pacchetti di rete. Oggi, il concetto di un NOS specializzato è in gran parte obsoleto perché altri tipi di SO gestiscono in gran parte la comunicazione di rete. Windows 10 e Windows Server 2019, ad esempio, includere funzionalità di rete complete. Il concetto di un NOS è ancora utilizzato per alcuni dispositivi di rete, come router, switch e firewall, e i produttori possono impiegare NOS proprietari, tra cui Cisco Internetwork Operating System (IOS), RouterOS e ZyNOS.
Sistema operativo in tempo reale. Quando un dispositivo informatico deve interagire con il mondo reale entro vincoli di tempo costanti e ripetibili, il produttore del dispositivo può scegliere di utilizzare un sistema operativo in tempo reale (RTOS). Ad esempio, un sistema di controllo industriale può dirigere le operazioni di una fabbrica in espansione o di una centrale elettrica. Tale struttura produrrà segnali da una miriade di sensori e invierà anche segnali per azionare valvole, attuatori, motori e innumerevoli altri dispositivi. In queste situazioni, il sistema di controllo industriale deve rispondere rapidamente e in modo prevedibile alle mutevoli condizioni del mondo reale, altrimenti potrebbero verificarsi disastri. Un RTOS deve funzionare senza buffering, latenze di elaborazione e altri ritardi, che sono perfettamente accettabili in altri tipi di sistemi operativi. Due esempi di RTOS includono FreeRTOS e VxWorks.
Le differenze tra i tipi di sistema operativo non sono assolute e alcuni sistemi operativi possono condividere caratteristiche di altri. Ad esempio, i sistemi operativi generici includono abitualmente le funzionalità di rete che si trovano in un NOS tradizionale. Allo stesso modo, un sistema operativo incorporato include comunemente gli attributi di un RTOS, mentre un sistema operativo mobile può ancora in genere eseguire numerose app contemporaneamente come altri sistemi operativi generici.