2.2 El Sofware. Sistemes Operatius

    2.2.1. Què és el software?
    2.2.2. Què és un sistema operatiu?
    2.2.3. L’ordinador en funcionament. El procés de boot (arrencada):
                2.2.3.1. El POST (Power On Self Test).
                2. 2.3.2. Càrrega del nucli (kernel)
    2.2.4. Funcions del sistema operatiu.
                2.2.4.1. Interface amb l’usuari
                2.2.4.2. Sistema d’arxius. Què és un fitxer? Sectors del disc dur i FAT.
                2.2.4.3. Execució de processos.
                2.2.4.4  Control de perifèrics. Els drivers.
    2.2.5 Plataformes usuals

  
2.2.1. Què és el software?
L'hem descrit abans com el conjunt de programes que donen utilitat a l'ordinador.  A nivell real, és un conjunt d'instruccions digitals binàries, és a dir, "tires de 1s i 0s" que la CPU que els accepta és capaç d'interpretar com a "utilitza aquesta part dels meus circuits". Si diferents processadors entenen la mateixa instrucció per a fer el mateix, es diu que tenen el mateix llenguatge màquina

Els programes s'emmagetzemen dins fitxers informàtics, i es poden replicar, enviar per línies de comunicacions, etc, exactament igual que els fitxers de informació digital (números, lletres, imatges, audio, video) que vàrem estudiar el passat trimestre. Quan la CPU ha de tenir accés a un programa, s'ha de "traslladar" una còpia d'aquest programa des d'allí on estigui emmagatzemat (disc dur, CD, disc remot.. ) fins a la RAM. Això és el que es diu executar un programa.  La CPU trobarà les instruccions dins la RAM direcionant-les a través del bus d'adreces i llegint-les a través del bus de dades que hem explicat abans. Recordem també que, segons el disseny Von Neuman, dins la RAM poden allotjar-s'hi a la vegada,  en diferents posicions, diferents programes i diferents fitxers de dades digitals.

         
El llenguatge 8086 és el llenguatge màquina de la família de processadors Pentium. Aquesta imatge és el bolcat en pantalla d'un progrma executable. La finestra Offset:Hex mostra posicions de memòria RAM, i la Dissasemble mostra instruccions directament convertibles a 1s i 0s. El que estam veient és una llista d'instrucions dins la RAM de l'ordinador.

La creació de programes, la programació, és una feina especialitzada dins el món de la informàtica. Existeixen els llenguatges de programació, que permeten usar instruccions d'alt nivell, cada llenguatge té les seves. Llenguatges de programació n'hi ha molts: BASIC; Pascal, C, PHP, Visual BASIC, Java... Una vegada dissenyat un programa, s'executa un procés que es diu compilació, que consisteix en traduïr aquestes instruccions d'alt nivell a instruccions de llenguatge màquina.  El resultat es guarda dins un fitxer, i allò és el programa. Les extensions de fitxers de programa són .exe, .com, . dll, i algunes altres.
         
Exemple de programa en llenguatge Turbo Pascal for Windows

El següent diagrama resumeix com s'arriba des d'una idea inicial per a un programa fins a la seva creació i execució, i explica els elements que hi intervenen.



Segons per a què estiguin dissenyats, hi ha 2 tipus de programes:
         - Operatius. Es pot dir que "formen part de l'ordinador" i són necessaris per fer-lo funcionar.  Un ordinador amb hardware i sense software operatiu no està complet.
         - Aplicatius. Són els que realment proprocionen una utilitat a l'usuari. 

Segons com s'utiltitzen, hi ha 3 tipus de programes:
         - Interactius. Sempre estan pendents del que demani l'usuari, i han de respondre immediatament al que els demani. La majoria de programes que utiltizam són d'aquest estil. El software ofimàtic i els jocs, en són exemples.
         - Background. Treballen sense que l'usuari els hagi de prestar atenció, com per exemple un reproductor d'audio.
         - Batch o execució per lots (grups). Són background encadenats en un cert ordre. Són processos que es porten a terme sobretot en els centres de càlcul d'empresesque manegen molta informació emmagatzemada en BBDD. Exemple: a) Actualització massiva d'una BBDD de moviments comptables, b) Generació de rebuts, c) Impressió. 

Per a què un programa estigui disponible en un ordinador, ha d'estar instal·lat en aquest ordinador. Això siginifca que, en prinicipi, en el disc dur de l'ordinador s'hi ha fet una còpia del fitxer executable de programa. L'origen d'aquesta còpia pot ser  el CD de distribució del programa, o un grup d'arxius baixat d'internet. Normalment, hi ha un programa instal·lador, setup, que desempaqueta els arxius de programa, crea automàticament les carpetes necessàries, genera els accessos directes, i col·loca la icona d'accés directe a l'escriptori. 




2.2.2. Què és un sistema operatiu?
Un Sistema Operatiu (S.O.) és el conjunt de diferents programes que controlen l'ordinador. Complementa el hardware i és imprescindible per al seu funcionament.

Quan es configura un ordinador nou, o s'en vol reconfigurar completament un que ja estava en servei, deprés d'instal·lar el hardware necessari el primer que s'ha de fer és instal·lar-li el sistema operatiu. Normalment, això es fa posant l'equip en marxa, col·locant el CD o DVD que conté els arxius del sistema operatiu en la seva unitat de lectura del sistema,  i deixant que s'executi el procediment automàtic d'instal·lació, que copiarà tots els arxius de l'SO al disc dur principal del PC.  

Canviar el sistema operatiu a un equip és una feina tècnica reltivament senzilla, i amb això es pot aconseguir que un mateix ordinador obtengui un aspecte totalment diferent. De tota manera, no qualsevolhardware funciona amb qualsevol SO, hi ha configuracions hardware que requereixen sistemes amb prestacions determinades.
 
2.2.3. L’ordinador en funcionament. El procés de boot (arrencada)
El procediment d'arrencada de l'ordinador es diu procés de boot, és el procés que inicia el sistema operatiu quan l'usuari engega l'ordinador, i consta de dues passes:  

    2.2.3.1. El POST Quan l'ordinador es posa en marxa i la font d'alimentació comença a enviar corrent elèctric als diferents dispositius de l'ordinador, el primer que es fa és llegir un programa que es troba al xip ROM-BIOS de la placa base anomenat POST (Power On Self Test - AutoTest de Engegada). És la seqüència de comprovacions que es fan per a verifcar l'existència i correcta conexió dels dispositius essencials del sistema: la RAM, els discs durs, la targeta de vídeo... Apareixen una sèrie de missatges en pantalla que informen del resultat del test, i en cas d'error greu, es pot aturar el sistema. Per exemple, si es posa en marxa un equip que no té sistema operatiu instal·lat,  apareix un missatge que ho indica i el boot s'atura.



Procés de POST de la ROM-BIOS, i missatge d'eror "Non system disk"

    2. 2.3.2. Càrrega del kernel (nucli ) El kernel del sistema operatiu és la seva part essencial,  el programa que proveeix els serveis més bàsics del sistema. El darrer pas del POST consisteix en anar a buscar el kernel a un sector específic del disc dur prinipal del sistema, conegut com a boot sector, fer-ne una còpia a les primeres posicions de la RAM, i transferir el control a l'usuari. En aquest moment, l'ordinador ja està encès i preparat per a treballar.

Aquest esquema resumeix els dos passos del procediment de boot:


2.2.4. Funcions del sistema operatiu
       
Se'n poden especificar moltes, però bàsicament són 4:
        1 - Interface amb l'usuari
        2 - Sistema d'arxius
        3 - Execució de processos
        4 - Control de perifèrics

2.2.4.1. Interface amb l’usuari. La paraula "interface" literalment significa "entre cares", i en informàtica significa la conexió entre dos equips o dos punts. Un interface d'usuari és la conexió entre un dispositiu i l'usuari. Això significa que l'SO és, efectivament, qui "mostra" a l'usuari el hardware de l'ordinador, i li proporciona la manera de treballar.  L'usuari veu, per exemple, els arxius del disc dur perquè l'SO és qui els li mostra i li permet manipular-los.  L'SO també fa d'interface entre els programes que s'estan executant  i el hardware. Quan l'usuari utilitza, per exemple, el procés de textes, i vol accedir a les funcions de fitxer, qui realment les porta a terme és l'SO.  Els sistemes tipus Windows permeten "encarar" una o altre tasca activa, inclós el mateix sistema operatiu.

                                     
Existeixen dos tipus d'interface d'SO, els alfanumèrics i els iconogràfics.  Els primers només disposen de caràcters alfanumèrics per a mostrar a l'usuari l'estat de l'ordiandor, i responen a ordres concretes que s'han de teclejar. Els segons usen gràfics i pictogrames (icones) per a mostrar l'estat de l'ordinaro, i l'usuari es pot valer d'un dispositiu senyalador  per a executar funcions (el mouse).  Se'ls coneix també com a sistemes GUI (Graphic User Interface)

Estils d'interface de diferents sistemes operatius, MS-DOS 1.0 (alfanumèric), i Windows XP,  Mac OS X Snow Leopard, i Linux Ubuntu (gràfics)

* Avantatges i desavantatges de cadascun:

Els sistemes operatius alfanumèrics són els primers que varen existir. Requereixen que l'usuari tengui coneixements avançats sobre el maneig de l'ordinador, ha de conèixer les ordres disponibles i la seva sintaxi, però poden funcionar sobre màquines molt poc potents. Encara s'utilitzen en ordinadors molt especialitzats

Els sistemes GUI són més recents, i l'objectiu principal del seu disseny és que siguin molt més fàcils d'usar, la qual cosa ha posat el maneig d'ordinadors a l'abast de tothom. De fet, els GUI són tan eficaços en aquest sentit que ja s'incorporen en dispositius com les PDAs (Personal Digital Assistant, agendes electròniques), terminals de telefonia mòbil (Sistemes Android i i-phones de Mac Intosh) i fins i tot alguns electrodomèstics, i han impulsat la creació d'un nou tipus de perifèric: la pantalla tàctil.  El desavantatge que tenen és que requereixen que l'ordinador que tengui instal·lat un SO amb GUI tengui també una bona capacitat de tractar gràfics; és a dir, fa falta un hardware més potent dedicat a funcions operatives, no d'aplicació. Una altre desavantatge, algunes tasques de manteniment no es poden executar de forma gràfica. Per això, aquests sistemes encara tenen tots la possibilitat  d'executar ordres teclejades. En Windows XP, per exemple, es fa al menú Inicia/Executa..., i demanant l'ordre cmd se'ns obri la finestra de MS-DOS.



2.2.4.2. Sistema d’arxius. Què és un fitxer? El fitxer o arxiu és la unitat d'informació que emmagatzema les dades resultants d'utilitzar un programa d'aplicació (processament de textos, base de dades...). La superfície de lectura/escriptura del disc dur s'accedeix a través dels seus capçals de L/E, normalment més d'un disc superposat, i es subdivideix en sectors de grandària concreta definits en el procés de formatació, cada un amb identificat amb una adreça numèrica.  Un arxiu ocupa un número de sectors concret, segons la seva grandària, i l'SO manté una llista de noms d'arxius, indicant quin és el seu primer sector, i com s'encadenen fins a l'últim per a contenir l'arxiu complet. Aquesta llista pot tenir diferents noms segons com es gestioni i quin sigui l'SO que ho fa. Les dos més conegudes són FAT (File Allocation Table, Taula d'Ubicació d'Arxius) i NTFS (New Technology File System, Sistema de Fitxers de Nova tecnologia). El que l'SO ofereix a l'usuari és una manera fàcil de identificar i manejar els seus arxius.




        

2.2.4.3. Execució de processos. Executar un programa és traslladar-lo, copiar-lo o "carregar-lo" en memòria RAM i transferir-li el control. La transferència de control consisteix en posar les seves instruccions a disposició de la CPU, i fer que els perifèrics ara interactuin amb ell.  És a dir, que les entrades de teclat i mouse ara siguin acceptades pel programa.

Els documents que tracten els programes d'aplicació són espais de RAM que poden estar o no vinculats a un fitxer dels que l'SO té identificats.  Recordem que la convivència de dades i instruccions a la memòria principal és el fonament del disseny Von Neumann. 


2.2.4.4 Control de perifèrics. Drivers. Aquesta és una funció més "tècnica". Un driver o controlador és un petit programa que gestiona un element de hardware concret, sovint un perifèric. Es pot dir que el driver fa d'interface entre el perifèric i el sistema operatiu. Quan s'instal·la un nou perifèric en un equip, s'ha d'instal·lar també el seu driver.  El driver és un programa específic per perifèric i SO.

Existeix, per exemple:  el driver de la targeta de xarxa "Realtek RTL8168/8111 PCI-E Gigabit Ethernet NIC" per al sistema operatiu Windows XP. Si volem canviar el SO de XP a W7 del mateix equip, ens hem d'assegurar de que  tenim el driver per  a aquesta targeta per al sistema W7.

Els drivers instal·lats en un PC sempre es poden visualitzar, actualitzar i modificar. Sistemes com l'XP permeten per exemple, saber si undriver està mal configurat, mostrant  un símbol d'error. 

2. 2.5. Plataformes usuals Ja hem dit abans que canviar el sistema operatiu d'un ordinador personal és una feina prou fàcil si es disposa de tot el necessari: la font d'instal·lació del nou sistema (en CD/DVD o fitxers en un pen-drive), els drivers necessaris, i la possibilitat d'indicar a la BIOS que la pròxima arrencada hem d'instal·lar nou sistema, i no carregar el sistema que ja estigui instal·lat.

Amb això es pot aconseguir donar a un ordinador un aspecte totalment diferent: distint interface, distint sistema d'arxius, potser aprofitar millor algun component hardware, com per exemple una targeta gràfica. També hem dit, però, que no qualsevol hardware funciona amb qualsevol SO, i que hi ha configuracions hardware que requereixen sistemes amb prestacions determinades.

2.2.5.1. Intel, amb MS-DOS i família Windows. Intel és l'empresa multinacional que va fabricar el primer microprocesadors per a PC, i el seu primer SO va ser MS-DOS. Windows és l'evolució de MS-DOS cap a GUI, i n'hi ha hagut ja moltes versions: Windows 1.0, Windows 3.0, Windows 3.1,Windows 98, Windows 2000, Windows XP, Windows Vista, Windows 7.  El desenvolupament dels processadors Intel ha anat al pas dels sistmes operatius de Micro Soft: 8086, 286, 386, 486, Pentium...  Actualment, Intel + Windows és la configuració més usades per a PCs, tant portàtils com sobretaules.

2.2.5.1. Intel, amb Unix alfanumèrics i derivats GUI. Unix és un SO que neix  als anys 70 amb la idea de substituir als SOs d'alguns mainframes i millorar el seu rendiment. És el primer sistema que va plantejar la possibilitat de ser instal·lat sobre màquines diferents, de forma que l'interface d'usuari sempre fos semblant. L'MS-DOS original està inspirat en els primers sitemes Unix. Alguns sistemes Unix són comercials, com HP-UX, Solaris o AIX, però altres s'han dissenyat i promogut dins el món del freeware, amb vocació de projecte col·laboratiu i de distribució gratuïta. Varen plantejar el dilema entre sistemes propietaris (sistemes que es paguen a l'empresa que els dissenya i instal·la, i aquesta es fa responsable del seu bon funcionament) i el sistemes oberts (els sistemes es dissenyen entre gent que col·labora gratuitament, però cada usuari és responsable del seu equip). És per això que els sistemes Unix solen ser més barats, fins i tot gratuits, però només els utiltizen usuaris  un poc avançats. L'evolució dels sistems Unix cap als GUI ha originat sistemes com Linux, Mandriva, GNU i Ubuntu, sovint disponibles de forma gratuita a servidors Internet. Un dels problemes que presenten aquests sistemes és que, no sent comercials, no sempre hi ha disponible la mateixa diversitat de software que per a sistemes Windows.

2.2.5.2. Apple Mac Intosh (Motorola), amb SO Mac Intosh Motorola, és una empresa electrònica multinacional que, a més de circuits per a telefonia mòbil i comunicacions, també fabrica microprocesadors. Tenen un llenguatge màquina diferent als microprocessadors d'Intel, i són els que incorporen el equips Mac Intosh des dels anys 80. És per això que els Macs només poden usar el seu propi SO, el Mac OS X,  i necessiten el seu propi software.  Els sistemes Mac són els primers que varen incorporar GUI, i de fet els primers sistemes Windows varen ser una còpia funcional dels Mac (imitaven el seu aspecte i prestacions). L'evolució de la família de processadors 6800 ha anat també al mateix pas que la dels sistemes operatius de Mac, que tenen noms com Puma, Jaguar,Tiger i Leopard.

Tipus d'ordinador personal Marca de la CPU Model S.O.
PC Intel 8086, 286, 386, 486,
Pentium, Pentium II,
Pentium Dual Core i posteriors
* MS-DOS, i les diferents versions de Windows
* Unix i derivats GUI: Linux, Mandriva, GNU, Ubuntu. 
AMD Athlon
Cyrix PR200
Apple Mac Intosh Motorola 6800 i posteriors
* Mac OS X, diferents versions