La scienza che si occupa dell’ordinamento, del trattamento e della trasmissione delle informazioni per mezzo dell’elaborazione elettronica, la quale rende possibile gestire e organizzare le ingenti masse di dati prodotte dal moderno sviluppo sociale, scientifico e tecnologico.
Un sistema operativo (abbreviato in SO, in inglese OS), in informatica, è un software di base, detto anche piattaforma operativa (composto normalmente da più sottosistemi o componenti software: kernel, scheduler, file system, gestore della memoria, gestore delle periferiche, interfaccia utente e spooler di stampa), che gestisce le risorse hardware e software della macchina, fornendo servizi di base ai software applicativi; tra i sistemi operativi per computer desktop si citano Microsoft Windows, MacOS, le distribuzioni Linux, sistemi Unix-like, BSD e Chrome OS, mentre per i dispositivi mobili, quali smartphone e tablet, vi sono iOS, Android, HarmonyOS, Windows Phone, Sailfish OS, Symbian OS e KaiOS. Per il mondo server abbiamo Windows Server, IBM i, varie distribuzioni specifiche Linux, MacOS Server.
Storia dei sistemi operativi.
La storia dei sistemi operativi descrive l’evoluzione durante tutto il periodo di sviluppo dei Computer o calcolatori elettronici. Essa si sviluppa parallela a fianco della storia del computer e, più in generale, della storia dell’informatica. In un periodo delimitabile tra il 1945 e il 1955 gli elaboratori elettronici erano ammassi di valvole termoioniche, occupavano intere stanze, erano lentissimi e così costosi che potevano permetterseli soltanto grossi centri di calcolo o Università o organizzazioni dotate finanziariamente. A partire dagli anni 1960 con lo sviluppo dei primi mainframe si resero necessari software per l’utilizzo che consentissero l’interfacciamento degli utenti con tali macchine, l’evoluzione si accelerò a partire dagli anni 1970, soprattutto con l’avvento degli home computer e dei personal computer.
Linguaggi di programmazione:
Ne esistono centinaia, elenchiamo solo 10 tra i più usati in Italia.
conoscere i linguaggi di programmazione più richiesti in Italia ti permette di avere una strada spianata verso un lavoro sicuro.
Con questo elenco infatti sai subito quali sono i linguaggi di programmazione più richiesti dalle aziende italiane:
In altre parole, sai subito come avere un lavoro assicurato, e una carriera di successo – molti di questi infatti sono anche i linguaggi di programmazione più pagati
Ogni linguaggio di programmazione ha delle caratteristiche specifiche, che lo rendono perfetto per risolvere determinate situazioni, ma inadatto per altre.
Insomma, non esiste un linguaggio che possa essere il migliore, sempre, in ogni occasione. Ecco perché sarebbe perfetto conoscerli tutti, questi linguaggi 😉
Ma non perdiamo altro tempo, e passiamo subito a vedere i linguaggi di programmazione più richiesti!
#10 – Ruby
linguaggio di programmazione Ruby
Ruby è un linguaggio di programmazione open-source, focalizzato su semplicità e produttività. La sintassi di Ruby è semplice ed elegante: questo lo rende un linguaggio facile da scrivere e con una lettura naturale.
La popolarità di Ruby è dovuta anche al suo framework più diffuso, Ruby on Rails. Grazie a questo framework, sono stati realizzati web app e servizi web molto diffusi, come Twich, Zendesk, GitHub, Square, SoundCloud.
#9 – TypeScript
linguaggio di programmazione TypeScript
TypeScript è un linguaggio di programmazione open source sviluppato da Microsoft, e si tratta sostanzialmente di una versione estesa di JavaScript.
TypeScript è un superset di JavaScript: la sua forza è che qualsiasi programma scritto in JS è anche compatibile con la sintassi e la semantica TypeScript, senza alcuna modifica.
Con TypeScript si sviluppano applicazioni di grandi dimensioni, che vengono poi ricompilate in JavaScript per essere interpretate da browser o app.
#8 – Swift
linguaggio di programmazione Swift
Swift è un linguaggio di programmazione orientato agli oggetti. Il linguaggio Swift è stato sviluppato da Apple, ed è diretto ai programmatori dei sistemi Apple, nelle sue diverse versioni (macOS, iOS, watchOS…).
Versatile e potente, Swift è pensato per coesistere con il linguaggio Objective-C, altro linguaggio usato precendentemente in casa Apple. Uno dei maggiori punti di forza di Swift è la grande ottimizzazione, che permette di creare software estremamente veloci.
#7 – Go
linguaggio di programmazione GO
Go è un linguaggio di programmazione sviluppato da Google, supportato sia da Google che dalla comunità di sviluppatori indipendenti visto che si tratta di un progetto open-source. È un linguaggio semplice da scrivere (semplice come Python) e al tempo stesso molto efficiente (efficiente come C++).
Alcune delle caratteristiche principali di Go sono il grande supporto dato alla programmazione concorrente, l’ottimizzazione dei tempi di compilazione anche per hardware modesti, e la presenza di un buon numero di strumenti di sviluppo integrati.
#6 – C/C++
linguaggio di programmazione C++
C e C++ sono linguaggi di programmazione storici: sviluppati negli anni 70, sono tra i linguaggi più utilizzati della storia dell’informatica.
Proprio la loro diffusione li rende imprescindibili. C e C++ sono ancora oggi i linguaggi alla base di molti sistemi operativi, browser e videogiochi.
Non solo:
La richiesta di programmatori C e C++ è in continuo aumento, soprattutto grazie allo sviluppo dell’IoT. Buona parte dei chip presenti dentri gli smart devices, infatti, è programmata in C o in C++, che forniscono prestazioni ottima
Gli attuali sistemi operativi per PC sono Microsoft Windows, Unix, GNU/Linux, Mac OS, Solaris, Google Chrome OS, Debian, Ubuntu, Mandriva, Sabayon, Fedora e Reactos. Tra tutti i sistemi operativi per PC, i più conosciuti sono Windows, GNU/Linux e Mac OS.
Descrizione
L’hardware è il primo livello di un elaboratore elettronico. Esso dialoga con il sistema operativo. Questo, a sua volta, interagisce con le applicazioni – con le quali – interagisce l’utente finale.
Schema a blocchi di esecuzione di un’applicazione fino all’hardware passando per il sistema operativo
Un sistema operativo è un insieme di software che fornisce all’utente una serie di comandi e servizi per usufruire al meglio della potenza di calcolo di un qualsivoglia elaboratore elettronico, spaziando dal più piccolo dei palmari al più potente tra i mainframe. I sistemi operativi nascondono tutti i dettagli tecnici legati allo specifico hardware e architettura rappresentando le informazioni ad un alto livello, meglio comprensibile dall’uomo.
Esso garantisce l’operatività di base di un calcolatore, coordinando e gestendo le risorse hardware di processamento (processore) e memorizzazione (memoria primaria), le periferiche, le risorse/attività software (processi) e facendo da interfaccia con l’utente, senza il quale quindi non sarebbe possibile l’utilizzo del computer stesso e dei programmi/software specifici, come applicazioni o librerie software.
È dunque un componente essenziale del sistema di elaborazione che funge da interfaccia tra l’utente e la macchina ed inoltre è una base alla quale si appoggiano gli altri software, che dunque dovranno essere progettati e realizzati in modo da essere riconosciuti e supportati da quel particolare sistema operativo. Assieme al processore, con cui spesso è strettamente legato, costituisce la cosiddetta piattaforma del sistema di elaborazione. In generale un sistema operativo può essere:
monoutente, se un solo utente per volta può accedere alle risorse dell’elaboratore;
multiutente, se più utenti possono accedere alle risorse dell’elaboratore che a sua volta può essere:
seriale, sequenzialmente uno per volta;
parallelo, ciascuno parallelamente agli altri;
monotasking, se in grado di eseguire un solo compito o task (processo) alla volta:
multitasking o multithreading, se in grado di svolgere più compiti o sottocompiti parallelamente attraverso una certa politica di scheduling (es. timesharing).
portabile o meno su differenti architetture hardware di processori.
Funzioni principali
Secondo una definizione più rigorosa, il sistema operativo è un insieme di funzioni e strutture dati responsabile:
del controllo e della gestione delle risorse di sistema (CPU e Memoria primaria) e delle componenti hardware che costituiscono il computer (processi di Input/Output da e verso le periferiche collegate al sistema)
dell’esecuzione dei programmi (definiti entità passive) dai quali si ricavano i processi (detti entità attive), che vengono eseguiti, assegnandogli le necessarie risorse per l’avanzamento dei processi stessi.[1].
Se il sistema di elaborazione prevede la possibilità di memorizzazione aggiuntiva dei dati su memoria di massa, come accade nei computer general purpose, esso ha anche il compito di:
gestire l’archiviazione e l’accesso ai file. I programmi possono gestire l’archiviazione dei dati su memoria di massa (ottenendo strutture complesse, come una base di dati), servendosi delle procedure messe a disposizione del sistema operativo. La componente del SO che si occupa di tutto ciò viene chiamata file system.
Infine, se è prevista interazione con l’utente, viene solitamente utilizzata allo scopo un’interfaccia software (grafica o testuale) per accedere alle risorse hardware (dischi, memoria, I/O in generale) del sistema. D’altra parte, un sistema operativo può essere utilizzato anche su una macchina che non preveda interazione diretta con un essere umano (per un esempio, vedi smart card o determinati sistemi embedded) spesso dunque più leggero e semplificato. Solitamente un sistema operativo installato su computer fornisce anche degli applicativi di base per svolgere elaborazioni di diverso tipo.
Sebbene molte delle funzionalità sopraddette non siano spesso immediatamente visibili/percepibili dall’utente, l’importanza del sistema operativo di un calcolatore è cruciale: oltre alla necessità di gestione delle funzionalità di base sopraddette, al di là delle prestazioni massime offerte dall’hardware dell’elaboratore stesso, il sistema operativo determina di fatto efficienza e buona parte delle prestazioni effettive di funzionamento dell’intero sistema ad esempio in termini di latenze di processamento, stabilità, interruzioni o crash di sistema.