# Història dels sistemes operatius

La història dels sistemes operatius ha estat sempre molt lligada a l'evolució de les computadores, ja que essencialment aquests han evolucionat per adaptar-se a les millores del maquinari. Cal destacar que les millores en informàtica estan molt lligades a l'evolució d'altres especialitats com per exemple l'electrònica.
És bastant habitual parlar de generacions en la història de la informàtica. És important però destacar que hi ha diferents fonts que no es posen d'acord sobre el nombre de generacions, ni sobre les fronteres (dates) entre generacions i ni tan sols sobre els "inventors" ni sobre "les primeres màquines". Sovint la visió històrica varia segons el punt de vista social (occidental, orientat) o segons qüestions polítiques.

## La 1a generació: Els primers sistemes computadors

Els principis de la informàtica venen marcats pel fet que només existia el maquinari i que encara no s'utilitzaven els transistors.. La tecnologia utilitzada eren les vàlvules de buit o vàlvules termoiòniques. La seva mida obligava a fer unes màquines molt grans.
L'àmbit d'ús d'aquest primers computadors era el militar i la seva funció era realitzar càlculs matemàtics com per exemple el càlcul de trajectòries balístiques.
Els dispositius que s'utilitzaven eren cintes de paper i targetes perforades.
Els programes s'escrivien en llenguatge màquina i no existia el concepte de llenguatge de programació. Cada màquina tenia el seu propi llenguatge i sovint les màquines es programaven cablejant el maquinari. El procés de programació de les màquines era complex i poc productiu.
En aquesta època es considera que no hi havia el concepte de sistema operatiu i l'usuari interaccionava directament amb la màquina.

## La 2a generació: L'aparició del transistor

A mitjans de la dècada dels 1950 va aparèixer el transistor i va permetre construir computadors molt més fiables, petits i ràpids (els càlculs es duien a terme en l'ordre dels microsegons o el que és mateix els processadors amb prou feines arribaven a velocitats d'un MHz). Això va permetre que es poguessin fabricar computadors amb la idea de vendre'ls. Degut a l'alt preu dels primers computadors els primers usuaris van ser les grans corporacions i les institucions com l'exèrcit, les universitats i els governs.
Pel que fa als dispositius cal destacar l'aparició dels primers perifèrics:
* Dispositius d'E/S: lectors de targetes perforades i impressores
* Dispositius d'emmagatzematge: Unitats de dics i cintes magnètiques.
Vistes les millores a nivell de maquinari, es va fer necessari desenvolupar els primers programes que permetessin rendibilitzar l'ús d'aquestes noves tecnologies. Van aparèixer els primers llenguatges de programació (FORTRAN, Pascal, Cobol…) i els primers programes per al desenvolupament d'aplicacions (carregadors, muntadors, compiladors, llibreries de funcions matemàtiques i rutines per al controls de dispositius d'E/S).
Aquests primers sistemes ja utilitzaven doncs les passes habituals del desenvolupament d'aplicacions amb llenguatges compilats (creació del codi font. compilació, execució i depuració). Aquests elements de programari normalment no es consideren part del Sistema Operatiu però si que podem considerar un sistema operatiu molt rudimentari el conjunt de rutines per treballar amb els dispositius d'entrada i sortida juntament amb les aplicacions que permetien carregar els programes a l'ordinador.
El principal problema d'aquesta època era la diferència de velocitat entre la CPU i els dispositius d'E/S. La baixa velocitat dels perifèrics feia que no es fes rendible l'ús de la CPU (el processador estava molt de temps parat esperant rebre dades dels dispositius). Per aquesta raó es van implementar diferents tècniques com el processament per lots, el processament fora de línia, la gestió de cues i els sistemes de memòria intermèdia (buffers).

## La 3a generació: L'aparició dels circuits integrats

Aquesta generació sorgeix a mitjans dels anys 1960 i es basa en l'aparició d'una nova tecnologia electrònica: els circuits integrats. Els circuits integrats permeten desenvolupar màquines més ràpides i molt més petites. També cal destacar l'abaratiment de costos que va permetre que els ordinadors es comencessin a utilitzar en empreses mitjanament grans i l'aparició d'un sector informàtic comercial.
Respecte als dispositius la diferència més destacada és la millor eficiència i velocitat i l'aparició del terminals remots que permetien accedir a bancs de dades remotes.
Pel que fa al programari cal destacar:
* L'aparició dels primers llenguatges de programació universals pensats per tal de poder ser utilitzats en diferents sistemes de maquinari. S'estandarditzen els llenguatges de programació ja existents i n'apareixen d'altres com el Basic o el Pascal.
* L'aparició de la multiprogramació i la programació concurrent. Fins ara tots els programes s'executaven de forma seqüencial. Amb l'aparició de la multiprogramació apareix el concepte de compartició de temps de CPU (sistemes de temps compartit vs els sistemes de temps real). Aquest sistema permet fer un ús més eficient de la CPU, ja que aquesta pot continuar treballant amb altres processos mentrestant un altre procés resta a l'espera dels resultats d'una operació d'E/S.

## La 4a generació: Integració de circuits a gran escala

El gran canvi d'aquesta generació és la introducció de la integració a gran escala de circuits integrats (LSI/VLSI) que va permetre reduir els costos fins al punt d'obrir el mercat de la informàtica als usuaris domèstics. També cal destacar els constants increments de velocitat marcats per la famosa Llei de Moore que ens han dut dels primers sistemes treballant amb velocitats de desenes de MHz fins als sistemes actuals que treballen a velocitats de GHz.
A nivell de dispositius cal destacar l'aparició de dispositius que permetien les comunicacions entre ordinadors apareixen així les primeres xarxes que ens han dut a les actuals xarxes LAN i xarxes WAN (Internet) i a l'aparició dels sistemes operatius amb capacitat per treballar amb xarxa. Apareixen els primers sistemes distribuïts que permeten la compartició de recursos entre màquines remotes.
També apareix el concepte de sistema operatiu en temps real, molt utilitzat en entorns industrials. Aquests sistemes operatius estan més enfocats a obtenir temps de resposta ràpids amb independència de l'ús efectiu que es faci dels dispositius i dels recursos.