marty.pop
Ominide
13 min. di lettura
Vota 3 / 5

Concetti Chiave

  • Unix è stato sviluppato nel 1969 per eseguire programmi avanzati, non per uso domestico, e inizialmente non aveva bisogno di un'interfaccia grafica.
  • La multiutenza in Unix permette a più utenti di interagire contemporaneamente, con un sistema di gestione dei diritti simile a quello di Windows, ma con l'utente root che ha privilegi amministrativi completi.
  • Unix supporta la multiprogrammazione e il multitasking, consentendo l'esecuzione simultanea di più processi, e include strumenti avanzati per monitorare questi processi, simili al Task Manager di Windows.
  • La gestione della memoria virtuale in Unix utilizza la paginazione e segmentazione, permettendo di allocare risorse oltre la memoria fisica disponibile, utilizzando lo spazio su disco come swap.
  • Unix è portabile grazie all'uso del linguaggio C, rendendolo compatibile con diverse architetture hardware, e offre un sistema aperto che consente modifiche personalizzate per adattarsi a specifiche esigenze aziendali.

Parlando di Unix o parlando di linux ci viene in mente una schermata nera e delle scritte bianche come il DOS. Ci dice DOS perché noi siamo abituati ad utilizzare il computer sotto un interfaccia grafica che ci permette di interagire tramite delle funzionalità specifiche fornite dal mouse e dalla tastiera con delle risorse del nostro sistema. Il computer deve fornirci un utilità e noi per far ciò gli impartiamo dei comandi utilizzando delle piattaforme semplificate che sono mouse e tastiera.


Il primo sistema operativo che può definirsi a tutti gli effetti come Unix fu sviluppato nel 69 per poter eseguire un programma chiamato Space-Travel che simulava i movimenti del sole e dei pianeti, così come i movimenti di una navicella spaziale che poteva atterrare in diversi luoghi.
Da questo cenno storico si deduce che il sistema operativo per computer inizialmente non è nato per utilizzarlo a livello domestico ma è nato per prendere dei concetti particolari abbastanza avanzati da poter far elaborare direttamente al calcolatore. Inizialmente non si pensava neanche che fosse necessaria un interfaccia grafica perché venivano impartiti questi comandi a questa macchina che aveva questa capacità elaborativa e la capacità elaborativa di questi applicativi era eseguita appunto dal calcolatore stesso che in questo caso è Unix.

Le caratteristiche principali di Unix sono le seguenti:
• Multiutente: più utenti possono interagire contemporaneamente ovvero da terminali diversi tramite un pannello di connessione, gli utenti possono attuare la propria funzione di elaborazione direttamente sul computer.
Su windows la multiutenza è presente in parte perché con l’interfaccia grafica di windows si può utilizzare la multiutenza contemporaneamente fino a due postazioni contemporaneamente e quindi anche in ambito casalingo è un po’ limitato, mentre in ambito enterprise (a livello aziendale) anche windows si è mosso per poter fornire delle funzionalità alla multiutenza. Sono forme di multiutenza indirette perché windows divide la funzionalità di multiutenza in due parti: modalità diretta e indiretta. È indiretta quando fornisce un servizio che fa riferimento alla parte di un server che potrebbe essere un server windows che fornisce funzionalità di file server (la cartella scambio di scuola), il poter accedere ad un server windows che fa la file server, significa che noi stiamo usando la sua funzionalità in maniera indiretta di multiutenza, perché tramite le nostre credenziali, stiamo agendo comunque sulla sua capacità elaborativa. Quando invece si fa riferimento a lavorare direttamente sull’interfaccia grafica di windows, con alcune particolarità, windows da la possibilità di lavorare contemporaneamente, visualizzando la solita interfaccia grafica a utenti infiniti tanti quante sono le caratteristiche hardware. Le caratteristiche hardware devono essere sufficienti per poter far funzionare la multiutenza. Il solito desktop con le solite icone di windows e con i soliti programmi, utilizzando una piattaforma server multiutenza windows, la possono visualizzare tutte le persone, tanto quanto sono sufficienti le caratteristiche hardware della macchina. (TERMINAL SERVER)
Bisogna fare una distinzione tra Unix e Linux perché sono due cose completamente diverse perché linux fa riferimento a delle fondamenta che sono state date da Unix ma è stato completamente riscritto ma il concetto logico è quello di Unix. All’interno del sistema ogni utente è individuato univocamente da un nome logico che è lo username, inoltre gli utenti sono suddivisi in gruppi, ciascuno individuabile attraverso il suo nome (Group name). La multiutenza serve anche per poter assegnare dei diritti particolari alle utenze e quindi agli username. Dovendo gestire un’azienda di medie grosse dimensioni, come il Capitini, non può tutte le volte andare tutte le volte su un sistema multiutenza a definire tutti i diritti per ogni utente e quindi fa riferimento a dei gruppi che racchiudono a sua volta gli username. Questa è una gestione dell’utenza che poi windows ha copiato. In ogni sistema è definito l’utente root che rappresenta l’amministratore del sistema e che in generale non ha alcuna limitazione all’accesso delle risorse del sistema stesso. Multiutenza va bene, possibilità che tutti gli utenti possono accedere alle funzionalità del sistema va bene, utente che può amministrare la macchina o Unix che linux, è sempre l’utente root. L’amministratore del sistema che in windows si chiama administrator, in Unix e in linux ha i superpoteri perché riesce ad amministrare le risorse quali ad esempio l’istallazione o la disinstallazione di alcuni servizi o di programmi e la creazione di altri utenti, e può delegare i principi di amministrazione ad altri utenti. Linux funziona tutto a file di configurazione mentre su windows c’è una struttura diversa perché ci sono le chiavi di registro come le DLL che includono determinati diritti che hanno determinate specifiche per l’utilizzo di alcuni servizi e l’avvio di alcuni programmi. Su linux questo concetto è molto più semplificato e più stabile rispetto ad altre piattaforme. Esiste un file di configurazione per tutto, per ogni programma, per ogni servizio. L’utente root che è un superadmin, per poter delegare altri utenti ad accedere al sistema e per poter accedere ad esempio alla disinstallazione di un programma, vengono inseriti gli username o addirittura i Group name all’interno di questo file di configurazione. Una volta che questi gruppi e queste persone sono inseriti in questo file di configurazione, tramite l’esecuzione di un comando e quindi tramite il richiamo di un istruzione ad esempio il comando sudo (super user do) che vuol dire fare il super user richiamando quel determinato comando se sono inserito in quel file di configurazione. Quindi se il mio nome è inserito in quel file di configurazione, con il comando sudo posso diventare root e fare tutti i miei lavori mentre se non sono inserito nel file di configurazione, non posso fare niente.

• Multiprogrammato, multitasking: il suo nucleo può supportare la contemporanea esecuzione di più processi gestiti a divisione di tempo attraverso la schedulazione dei processi che si ripropongono oltre che su windows che è multitasking, anche su unix e di conseguenza anche su linux.
Il task nello specifico è il processo che viene eseguito da un sistema operativo. Facendo riferimento a windows, abbiamo il task manager attraverso il quale possiamo vedere quale processo è in esecuzione con quanta CPU stanno lavorando, partendo da quello che ne sta occupando di più, fino a quello che non sta facendo praticamente niente e quanta memoria RAM che sta utilizzando all’interno del sistema stesso. Questo “task manager” non ce l’ha solo windows ma ce l’ha anche linux con la solita schermata richiamata con il comando “top” che fa vedere le solite cose anche se ci sono molti più dettagli che ci sono anche su windows ma essere un po’ più tecnico, ci fa vedere delle notizie in più. Ci fa vedere qual è l’utente che sta eseguendo il processo in questo momento, e il soggetto che esegue i processi non è per forza una persona fisica ma è anche qualche applicativo a volte che la può eseguire.

• Gestione della memoria virtuale: quando si parla di gestione della memoria virtuale, vuol dire che la memoria fisica viene suddivisa virtualmente ai processi e agli utenti che ne hanno necessità e allo stesso modo, il sistema di gestione della memoria in unix si basa sulla paginazione e segmentazione. Queste caratteristiche consentono ad ogni processo di indirizzare un area di memoria di dimensioni nettamente superiori a quella della memoria centrale effettivamente disponibile, ciò vuol dire che include anche una gestione della memoria che fa riferimento alla virtualizzazione della stessa e quindi all’allocazione delle risorse disponibili sulla memoria effettivamente esistente e qualora non fosse disponibile, riserva una porzione dell’hard disk per essere utilizzata come swap. Quindi la sua gestione intrinseca della memoria, contempla anche questo tipo di opzione.

• Portabilità: unix è un linguaggio portabile e vuol dire che grazie all’utilizzo del linguaggio C, nella realizzazione del sistema esso gode di un’elevata portabilità ed è oggi disponibile su una vasta gamma di architetture. I sistemi operativi sono tantissimi, prima chiunque scriveva un sistema operativo per la sua macchina e unix ha superato questo scoglio perché se fino a ieri prendevano un pezzo di ferro e ci istallavano un sistema operativo, dall’avvento di unix e grazie all’utilizzo dell’architettura che viene interpretata dal linguaggio C, il sistema operativo è diventato portabile perché riesco a istallarlo su piattaforme diverse che fanno riferimento ad architetture diverse.

• Aperto: bisogna fare una distinzione tra windows e la parte di unix. Le caratteristiche di unix si sono uniformate allo standard posix che è quello che permette di uniformare il modo con cui veniva costruito il sistema operativo. Unix realizza alcuni dei più diffusi servizi e protocolli di comunicazione della rete internet rendendo disponibile la facile integrazione dei sistemi unix all’interno della rete.
Aperto significa che come è fatto quel sistema operativo, io se voglio andare a modificare qualsiasi cosa ad esempio voglio che quando attacco al mio computer l’USB del mouse, voglio che mi faccia determinate cose, io posso dirglielo. Questa diventa una libertà utile quando si arriva a parlare delle architetture open source. Nello standard aperto si può senza problemi agire sulle risorse non degli applicativi che stanno sopra il sistema operativo ma proprio sul sistema operativo e quindi gli si può andare a dire come interpretare l’elaborazione dei processi e come interpretare l’allocazione della memoria. Dunque non sono costretto a utilizzare la metodologia dell’allocazione della memoria che è stata prevista da chi ha scritto windows ma posso tranquillamente se per quella particolare applicazione della mia azienda, dell’azienda della quale sto implementando il sistema informatico, ho bisogno di gestire in maniera diversa l’allocazione della memoria RAM per quel particolare applicativo, lo posso fare.

In questa macrosequenza temporale, c’è l’evoluzione di tutte le piattaforme che si sono appoggiate a questo tipo di caratteristiche. In questa sequenza temporale si parte con unix, si arriva a fare riferimento a BSD che attualmente in produzione e anche istallato su tantissimi sistemi di storage, ci sono delle macchine apposite che fanno semplicemente da aggregatori di dischi. Andando più avanti troviamo GNU che si evolve facendo nascere Linux subito dopo gli anni 90 e poi ci sono tanti sistemi operativi che sono rimasti anche proprietari ma che si basano sempre su questo tipo di caratteristiche che è stato dato da unix.
Al giorno d’oggi troviamo freeBSD per quanto riguarda gli storage, windows, MacOSX, GNU/Linux, Unixware, HP, IBM, AX.

Domande da interrogazione

  1. Qual è l'origine del sistema operativo Unix?
  2. Unix è stato sviluppato nel 1969 per eseguire un programma chiamato Space-Travel, che simulava i movimenti del sole, dei pianeti e di una navicella spaziale.

  3. Quali sono le principali caratteristiche di Unix?
  4. Unix è multiutente, multiprogrammato, multitasking, gestisce la memoria virtuale, è portabile e aperto, consentendo una facile integrazione e personalizzazione.

  5. In che modo Unix e Linux sono collegati?
  6. Linux si basa sulle fondamenta di Unix ma è stato completamente riscritto, mantenendo il concetto logico di Unix.

  7. Come funziona la multiutenza in Unix rispetto a Windows?
  8. Unix permette a più utenti di interagire contemporaneamente, mentre Windows offre una multiutenza limitata a livello domestico e più avanzata a livello aziendale.

  9. Cosa significa che Unix è un sistema operativo "aperto"?
  10. Significa che gli utenti possono modificare il sistema operativo stesso, adattandolo alle proprie esigenze, a differenza di sistemi chiusi come Windows.

Domande e risposte

Hai bisogno di aiuto?
Chiedi alla community