V-Nand 256Gb 1.4 Gbps
26 Ottobre 2019Come inserire nel codice HTML i caratteri speciali?
26 Ottobre 2019Innanzi tutto c’è da spiegare cos’è un sistema operativo e cos’è deputato a fare….
Un sistema operativo è il cuore del computer, il suo scopo e quello di rendere accessibili tutte le risorse Hardware,e di gestire le varie risorse. Esso è deputato a gestire i protocolli di rete, la gestione della memoria, la gestione degli accessi e tante altre cose.
UNA COSA FONDAMENTALE DA RICORDARE E QUESTA: OGNI PROGRAMMA SI INTERFACCIA CON IL SISTEMA OPERATIVO E SENZA DI ESSO IL PROGRAMMA NON E’ IN GRADO DI ESEGUIRE NESSUNA FUNZIONE.
Agli inizi i computer erano molto diversi da quello che conosciamo comunemente essi erano composti da valvole.
Non utilizzavano un sistema operativo vero e proprio, ma la loro programmazione era basata sull’utilizzo di schede perforate che a seconda della punzonatura aprivano e chiudevano circuiti per l’esecuzione di comandi
la programmazione era di tipo strutturato e…. UDITE UDITE SOLO ED ESCLUSIVAMENTE IN CODICE BINARIO, vuol dire due cose, la prima è che la programmazione era basata ESCLUSIVAMENTE SULLA COMBINAZIONE DI 0 E DI 1, e la seconda che l’esecuzione del programma era in realtà l’insieme di singoli comandi, la programmazione era di tipo strutturato, questa tipologia di programmazione la ritroviamo ancora adesso (Senza l’utilizzo delle schede perforate e soprattutto senza l’utilizzo del codice binario).all’interno delle finestre Terminale di Linux / Unix, nel mondo Microsoft sia con il “Vecchio” terminale sia con il più moderno terminale Power Shell. Ma questo sistema aveva moltissime pecche la maggiore di tutte era data dal fatto che mentre si caricava il programma la macchina non era accessibile. O si faceva una cosa o se ne faceva un altra.
Per quanto può sembrare strano era veramente cosi…
A metà degli anni 50 comparvero i primi computer a transistor, molto più affidabili rispetto ai precedenti (basti sapere che L’ENIAC nella prima versione bruciava per l’enorme calore prodotto 1 valvola ogni 2 minuti, esso era composto da 18.000 valvole, hanno calcolato che a fine carriera avesse bruciato 19.000 valvole, inoltre per il suo funzionamento consumava 150 kilowatt di potenza alla prima accensione si narra che per il consumo enorme mise al buio un intero quartiere, grande come una città di medie dimensioni) ed enormemente veloci (rispetto ai predecessori il primo computer che in realtà era un ibrido ovvero era un computer elettromeccanico ABC computer poteva eseguire 2/3 operazioni al secondo, mentre l’Eniac invece la strabiliante velocità di 30 operazioni al secondo.), era finalmente nata l’era dei transistor, ma come nei sistemi precedenti non si intravedeva l’idea di sistema operativo. Ma l’idea per sopperire al problema della mancanza d’accessibilità della macchina mentre si era in fase di caricamento e di stampa era semplicissima, (finalmente alla portata di molti ma naturalmente non di tutti) suddividere il lavoro su altre due macchine, 1 fase di caricamento 2 fase di elaborazione 3 fase di stampa Questa suddivisione prende il nome di processo Batch. Inoltre sempre in quegli anni nascevano i linguaggi di programmazione IL FORTRAN (IL PRINCIPE PER IL CALCOLO SCIENTIFICO) un linguaggio nato per descrivere e analizzare calcoli scientifici, tutt’ora utilizzatissimo in ambito universitario per i campi meteo astrofisici nucleari astronomici e in altri ambiti. Uno dei linguaggi più belli da leggere essenziali che ottimizzano in modo fantastico l’utilizzo di risorse macchina. E l’ASSEMBLY il linguaggio più potente in assoluto snello velocissimo ma non così semplice da apprendere, la sua potenza è data dal fatto che a differenza dei linguaggi futuri che si divideranno in due grosse branchie (linguaggi INTERPRETATI ovvero devono essere tradotti per fare in modo che si possano eseguire (tutte le volte che si lancia il programma), e linguaggi COMPILATI, in questo caso il programma scritto dovrà essere tradotto un unica volta e dalla traduzione scaturirà un programma direttamente eseguibile) e linguaggio macchina puro, significa che il programma dialoga “Direttamente” con le risorse Hardware della macchina, ma se da una parte la velocità è la sua forza, il rovescio della medaglia è dato dal fatto che doveva essere totalmente riscritto per ogni hardware differente.
Negli anni 60 IBM fece una proposta con il suo System 360 nasceva la multi-programmazione,ma come fu possibile?, per una geniale intuizione ovvero suddividere i compiti ovvero distinzione tra architettura hardware e implementazione. per la tecnica DMA (Direct Access Memory o memoria ad accesso diretto ancora alla base delle memorie DRAM). E lo Spool di stampa ovvero l’accodamento dei singoli processi di stampa. Nasceva in pratica l’antenato dei sistemi operativi moderni.
Nello stesso periodo l’università di Berkeley sviluppo un “vero” sistema operativo, nasceva UNIX, il concetto basilare che ha reso questo sistema operativo “IL SISTEMA OPERATIVO” era l’idea di time sharing (Condivisione del tempo), ma naturalmente Unix si affermò anche per altre unicità, i permessi sui file, l’utilizzo di moltissimi linguaggi non solo il Fortran e L’Assembly, ma anche il Cobol, il Pascal e tanti altri.
Perchè il Time sharing divenne ed è tutt’ora un principio cardine di tutti i sistemi operativi è facilmente intuibile, ogni computer non è mai utilizzato al 100% costantemente, quindi il suddividere i singoli processi ottimizzando il tempo macchina permette un utilizzo molto più efficiente dei sistemi.
Ma dai primi anni 70 inizia una vera rivoluzione fino ad allora vigeva la regola non scritta di Mainframe (unità centrale) e terminali stupidi (questi terminali potevano essere varie tipologie di periferiche di input solitamente telescriventi modificate.), Con L’avvento del Altair 8800 nasce l’idea “Embrionale” di personal computer, per capire l’Altair che aveva una capacità di calcolo inferiore alla peggiore calcolatrice che vi possa essere sul mercato odierno eppure era circa 1000 volte più veloce di un Eniac. Ma come fu possibile tutto questo?
Negli anni 70 inizio a diventare economico l’utilizzo dei microprocessori
un microprocessore è un insieme di circuiti composti da poche centinaia fino a milioni di transistor (come nella foto) all’interno del singolo chip, grazie alla miniaturizzazione.
Questa miniaturizzazione permise di combinare questi transistor per creare circuiti sempre più complessi ma che portarono benefici enormi, dallo sviluppo di coprocessori matematici (ovvero microprocessori che venivano chiamati in gioco quando vi erano calcoli complessi da eseguire, liberando il processore principale dal carico di lavoro) all’Alu (Aritmetich Logic Unit) e tanti altri circuiti aggiuntivi ma la miniaturizzazione ebbe anche altri meriti ovvero la riduzione dei consumi, la riduzione del calore prodotto e come ovvio la riduzione delle dimensioni.
Da essero nacquero svariati sistemi operativi, oltre a Unix dobbiamo rammentarci del meno famoso CPM 80, perchè dovremmo rammentarci del CPM 80 si chiederanno in molti?
Perchè grazie ad un personaggio famosissimo che ne acquisto i diritti e ne fece la portabilità sui processori Intel 8088 e 8086 ed integrandolo con altre funzioni partì la rivoluzione informatica che tutti noi conosciamo il sistema operativo venne rinominato in MS DOS (MICROSOFT SYSTEM DISK OPERATION SYSTEM) ebbene si il personaggio si chiama BILL GATES, ma il Dos è fondamentale perchè era il sistema adottato da IBM per il suo personal computer.
Naturalmente Bill non fu l’unico a creare la rivoluzione Informatica, non dobbiamo dimenticarci di Steve Jobs con la sua Apple, loro due per primi capirono che la standardizzazione dei sistemi permetteva la portabilità e la diffusione capillare di software sempre più potenti.
Steve Jobs aveva un acume commerciale invidiabile, fu lui, invitato alla Palo Alto Research di Rank Xerox ad intuire la potenzialità dell’interfaccia grafica e del mouse che erano stati progettati dai ricercatori Xerox. La fortuna di Apple, nacque dall’Ottusità di alcuni dirigenti Xerox che non comprendendone le potenzialità “Regalarono” il tutto a Steve..
Arriviamo agli 90 dove esattamente nel 1991 uno studente Finlandese di nome Linus Tordvals decisamente insoddisfatto del sistema Mimix che era una variante di Unix progettato dal suo docente di informatica, Andrew Tanenbaum il 25 agosto di quell’anno con un messaggio inviato sul newsgroup dedicato a Mimix lancio la sfida al mondo Microsoft ed Apple eccovi copia del messaggio:
Nasce Linux!!! cosa lo differenzia dagli altri 2 competitor?
Microsoft usa un sistema proprietario chiuso nella parte software, ma aperto sulla parte Hardware e questa mossa ha permesso il sorpasso di Microsoft nei confronti di Apple, chiunque poteva costruire il suo hardware e mediante dei driver poteva estendere le funzionalità del sistema operativo.
Apple fece una scelta diversa sia il Software sia l’Hardware erano e sono tutt’ora parzialmente chiusi, io non posso costruire hardware per aggiungere funzionalità al sistema O meglio posso costruire Hardware supplementare ma per poterlo commercializzarlo devo farlo validare da Apple e pagarne una cospiqua royalties su ogni pezzo venduto. E’ vero che sicuramente questa scelta rende il sistema decisamente molto più stabile, ma per contro non può avere la versatilità che cercano moltissimi professionisti. L’impossibilità di hardware specifici per determinate mansioni determina un arretramento nel mercato, Apple è diventato famosa come computer destinati alla grafica, ma l’elevato costo del prodotto, la scarsa scelta di hardware specifici gli ha fatto perdere una notevole fetta di mercato.
Linux o meglio Gnu/Linux nacque con l’idea Open Source, cosa significa? significa che chiunque è libero di modificare il sistema, i sorgenti sono aperti tutti possono studiare e apportare modifiche, ma ecco la cosa che lo rende veramente unico……. Vi è un unico obbligo CONDIVIDERE CON TUTTA LA COMMUNITA’ LE MODIFICHE APPORTATE PER PERMETTERE UNA CRESCITA DI TUTTI. Questo non significa che non esistano anche programmi commerciali per questo sistema. la differenza e che i software si differenziano non solo per le loro funzionalità, ma si differenziano anche per le licenze d’uso esistono tantissime varianti, è fondamentale leggerne e capirne le differenze.
Eccovene alcune:
È importante sgombrare il campo da un frequente equivoco riguardo il free software, dovuto all’omografia in lingua inglese dei concetti “gratuito” e “libero”, entrambi indicati con il termine “free”. La traduzione italiana di free software è quindi “software libero” , e non “software gratuito”
Quello che caratterizza il software libero è che chiunque ha il diritto di usare, copiare, studiare, modificare e distribuire (anche con le modifiche apportate), gratuitamente o a pagamento, il software. Questo concetto viene esplicitato con la definizione di quattro “libertà”:
Libertà 0 – Libertà di eseguire il programma, a qualunque scopo;
Libertà 1 – Libertà di studiare come funziona il programma e adattarlo alle proprie necessità
Libertà 2 – Libertà di distribuire copie del programma “originale”, in modo da aiutare i “vicini” (colleghi, amici, ecc.)
Libertà 3 – Libertà di migliorare il programma e rendere pubblici questi miglioramenti, in modo che ne possa beneficiare l’intera comunità.
Software Open Source
La licenza open source è molto simile a quella del free software (tanto da essere spesso confuse),
caratterizzandosi anche questa per la disponibilità del codice sorgente del software.
Ciononostante, la licenza open source è meno vincolante circa le libertà da concedere all’utente, che possono venire in qualche modo ridotte
(ad esempio vincolando lo scopo d’utilizzo del software).
Il termine copyleft è stato coniato in contrapposizione a copyright ,
va ad indicare un tipo di licenza relativa al software libero, che impone a chi effettua delle modifiche,
o comunque ri-distribuisce il software, di usare lo stesso tipo di licenza del software originale.
Lo scopo di questa licenza è garantire che i software liberi rimangano tali, e non vengano imposte restrizioni successive da parte di successivi sviluppatori.
Software libero non di tipo copyleft
Nel caso della licenza del software libero che non contenga clausole di tipo copyleft ,gli autori consentono agli utenti di modificare e di re-distribuire
il software, eventualmente anche con restrizioni aggiuntive,o comunque di usare il software come parte di programmi più complessi
da distribuire anche sotto licenza di software proprietario.Fanno parte di questa categoria tutti quei “frammenti di codice” ed algoritmi
di dominio pubblico per i quali non è prevista alcuna limitazione o vincolo nella finalità di utilizzo
Software di pubblico dominio
Public domain è un termine giuridico americano che sta ad indicare il fatto che il software (o più in generale qualsiasi opera dell’ingegno)
non è protetto da diritto d’autore.Il software di pubblico dominio è gratuito, ma non è detto che siano accessibili o disponibili i codici sorgenti.
Contrariamente al “ copylefted software ” non è detto che le copie, e soprattutto le versioni modificate, siano libere o di pubblico dominio,
in quanto gli sviluppatori possono usare questo tipo di software per sviluppare del software proprietario.
Software semi-libero
Con il termine software semi-libero ci si riferisce a software i cui autori garantiscono i diritti del software libero (l’uso, la copia, la modifica e la distribuzione)
solamente ad individui, per attività non commerciali, escludendo quindi le aziende che hanno invece l’obbligo di pagare per aver diritto di usare il programma.
Sono moltissimi i software la cui distribuzione è basata su questo tipo di licenza, tra i più noti possiamo ricordare PGP (Pretty Good Privacy).
Software proprietario
Il software proprietario è software che è utilizzabile, copiabile, modificabile e distribuibile solamente dietro autorizzazione dell’autore
(che solitamente concede quest’autorizzazione dietro un corrispettivo).È importante ricordare che solitamente l’autore non concede (salvo casi particolari)
la proprietà del programma all’acquirente: oggetto della vendita è il solo diritto di usare il programma , secondo modalità ben definite
(ad esempio su una specifica stazione di lavoro). Per questo motivo sono solitamente vietate anche attività di analisi del codice del programma
(come ad esempio il reverse engineering).
Freeware
Il freeware viene spesso confuso con il free software , ma è un concetto totalmente diverso. Sebbene sia applicato in contesti diversi,
il termine freeware va ad indicare il software disponibile gratuitamente . Ma al contrario del software libero, nel caso del freeware non è disponibile
il codice sorgente e non è consentito effettuare modifiche al programma. Ciononostante è possibile duplicare e ridistribuire gratuitamente il software
originale senza modifiche.
Adware
Nel caso dell’adware, la contropartita “pagata” dall’utente per l’uso del software non è monetaria ma consiste nell’accettare di visualizzare banner pubblicitari
o di ricevere informazioni commerciali. Questi banner e comunicazioni possono essere “generici” oppure possono essere scelti su misura del suo utente
in base al suo profilo che può essere definito esplicitamente dall’utente oppure ricostruito dall’attività che l’utente svolge con il suo computer
Shareware
La licenza shareware è caratterizzata dal fatto che l’utente ha la possibilità di provare il programma per un periodo limitato
(a volte anche con funzionalità limitate) prima di procedere all’acquisto.
Software commerciale
Con il termine software commerciale si indica il fatto che il programma è distribuito a pagamento.
È molto importante aver ben chiaro che software commerciale e software proprietario non sono sinonimi.
Il concetto di software proprietario identifica una certa tipologia di gestione della proprietà intellettuale del software, mentre software commerciale
indica la modalità di vendita/distribuzione del software
Views: 39