Sistema operatiu
De Viquipèdia
| Sistemes operatius |
| BSD |
| FreeBSD - NetBSD |
| OpenBSD - DragonFly BSD |
| PC-BSD |
| GNU/Linux (Llista) |
| Debian - Fedora |
| Gentoo - Mandriva |
| Red Hat - Slackware |
| SuSE - Ubuntu |
| Mac OS |
| System 6 - System 7 |
| Mac OS 8 - Mac OS 9 |
| Mac OS X -.0 -.1 -.2 -.3 -.4 -.5 -.6 |
| MS-DOS |
| DOS 3.3 - DOS 5 - DOS 6 |
| QDOS - DR-DOS - PC-DOS - CP/M |
| Microsoft Windows |
| 3.x - 95 - 98 - Me |
| NT - 2000 - XP - 2003 - XP 64 |
| Vista - 7 - Live - Mobile |
| Altres |
| AmigaOS - BeOS - Haiku OS |
| OS/2 - QNX |
| Palm OS |
| Solaris - UNIX |
| MVS - OS/400 - VMS |
| ReactOS |
El sistema operatiu és el programari responsable de gestionar els recursos en un terminal (ja sigui un ordinador personal, un telèfon mòbil, etc.). El sistema operatiu actua com a amfitrió dels diversos programes d'aplicació que normalment corren sobre una màquina. Una de les principals funcions és gestionar els detalls de l'operació del maquinari, de manera que els diversos programes no se n'hagin d'ocupar, alleugerint i fent més fàcil així el procés de programació d'aquestes aplicacions.
La gran majoria d'ordinadors, des de telèfons mòbil, ordinadors personals, videoconsoles fins a supercomputadors, usen algun tipus de sistema operatiu.
Els sistemes operatius ofereixen diversos serveis als programes d'aplicació i als usuaris. Les aplicacions poden accedir a aquests serveis a traves d'APIs (application programming interfaces o interfície de programació d'aplicacions) o a través de crides de sistema. En sistemes mòbils i d'escriptori, la GUI (interfície gràfica d'usuari) acostuma a formar part del sistema operatiu, mentre que en sistemes més grans i multiusuari, la GUI s'implementa com un programa apart del sistema operatiu.
Alguns dels sistemes operatius més comuns són Microsoft Windows, GNU/Linux, Mac OS X i Solaris. Microsoft Windows és el que té amb diferència més quota de mercat en els segments d'ordinadors de sobretaula i portàtils, mentre que els segment de servidors i sistemes encastats estan dividits en diversos sistemes operatius. Per la llista completa de sistemes operatius vegeu llista de sistemes operatius.
Taula de continguts |
[edita] Història dels sistemes operatius
[edita] Tecnologies
Un sistema operatiu és un conjunt de tecnologies que permeten a l'ordinador fer certes funcions. Aquestes tecnologies poden o no ser en tot sistema operatiu, i normalment hi ha diferències en com són implementades. Tot i això, la majoria de sistemes operatius moderns provenen d'uns mateixos orígens, i per tant són bàsicament similars.
[edita] Execució de programes
L'execució d'un programa implica la creació d'un procés per part del sistema operatiu. El kernel crea un procés assignant memòria al procés, carregant el codi del programa des del disc o un altre lloc de la memòria al nou espai que s'ha reservat pel procés, i començant a executar-lo.
[edita] Interrupcions
Les interrupcions són centrals als sistemes operatius, en tant que permeten al sistema operatiu tractar les diferents activitats que tant els programes en execució com el món extern generen. La programació basada en interrupcions és la forma més bàsica de compartició de temps, sent directament suportada per la majoria de CPUs. Les interrupcions proporcionen a l'ordinador una manera automàtica d'executar un codi específic en resposta a certs esdeveniments (events). Fins i tot els ordinadors més bàsics suporten les interrupcions, i permeten al programador especificar un codi que serà executat quan l'esdeveniment tingui lloc.
Quan es rep una interrupció, el hardware de l'ordinador automàticament suspèn el programa que s'estigués executant guardant (amb un instrucciópush) el seu estat a la pila, i els seus registres i comptador de programa també són desats. Això seria anàleg a deixar un punt de llibre al llibre quan algú és interromput per una trucada. Aquesta tasca no requereix cap sistema operatiu, però sí que la interrupció sigui configurada prèviament.
En els sistemes operatius moderns, les interrupcions les gestiona el nucli del sistema operatiu.
[edita] Mode protegit i mode supervisor
Les CPUs modernes suporten dos modes d'operació, el mode protegit i mode supervisor, cosa que permet que certes funcions de la CPU només les controli el sistema operatiu. Algunes d'aquestes funcions especials són l'adreçament de la memòria virtual, o limitar l'accés a hardware segons determini el programa que s'executi en mode de supervisor. Aquests modes són essencials per suportar completament els sistemes operatius multiusuari (com ara els sistemes UNIX).
Quan un ordinador s'engega, automàticament funciona en mode supervisor. Els primers programes que s'hi executen: la BIOS, el bootloader, i el sistema operatiu, tenen accés il·limitat al hardware. Però quan el sistema operatiu passa el control als altres programes, pot posar la CPU en mode protegit.
[edita] Gestió de la memòria
Entre d'altres coses, un sistema operatiu multitasca és responsable de gestionar tota la memòria del sistema que els programes fan servir. Això assegura que un programa no interfereix amb memòria ja usada per un altre programa. Com que molts programes s'executen a la vegada, cada un ha de tenir accés independent a la memòria.
La gestió de memòria cooperativa, usada per molts sistemes operatius inicials, assumeix que tots els programes fan un ús voluntari del gestor de memòria del nucli, i no excedeixen la memòria que tenen assignada. Aquest tipus de gestió de memòria ja no es veu avui en dia, ja que els programes usualment tenen bugs que poden fer que excedeixin la memòria que els correspon. En aquest sistema, si un programa falla, pot afectar o sobreescriure la memòria d'altres programes. Programes maliciosos, o els mateixos virus, poden alterar intencionadament la memòria d'altres processos o del mateix sistema operatiu en si mateix. Només és necessari un programa incorrecte per penjar el sistema.
La protecció de memòria permet al nucli limitar l'accés d'un procés a la memòria del sistema. Existeixen diversos mètodes de protecció de memòria, incloent la segmentació i la paginació. Tots els mètodes requereixen algun tipus de suport en el hardware (com ara la 80286 MMU), que no existeix en tots els computadors.
Tant en mode de segmentació com de paginació, certs registres en mode protegit indiquen a la CPU quines adreces de memòria pot permetre accedir a un procés en execució. Els intents d'accedir a altres adreces provocarà una interrupció que farà que la CPU re-entri en mode supervisor, posant el nucli al càrrec. Això s'anomena violació de segment (segment violation o Seg-V), i com que normalment és un símptoma de mal comportament, el nucli normalment acabarà el programa ofensiu, i notificarà l'error.
[edita] Memòria virtual
La memòria virtual és un sistema de gestió de la memòria dels ordinadors que ofereix als programes la impressió que la memòria que fan servir té adreçes continuades, mentre que en realitat la memòria pots estar físicament fragmentada o fins i tot sobrepassar la memòria física i desar-se en emmagatzemament secundari (normalment disc dur). Els sistemes que usen aquesta tècnica fan més fàcil la programació de grans aplicacions i permeten un ús més eficient de la memòria real (p. ex. la memòria RAM).
Si un programa intenta accedir a memòra que no està dins el rang actual de memòria accessible, però tot i això li ha estat assignada, el kernel l'interromprà de la mateixa manera que faria si un programa intentés excedir la memòria que li ha estat assignada. Sota Unix, aquest interrupció es coneix com page fault o fallada de pàgina.
En els sistemes operatius moderns, aquella memòria d'aplicació que és accedida menys freqüentment es pot emmagatzemar temporalment a disc o altres medis per alliberar espai per a altres programes. Això s'anomena swapping (intercanvi), ja que una mateixa àrea de memòria pot ser usada per múltiples programes, i el contingut d'aquesta memòria pot ser intercanviat sota demanda.
[edita] Multitasca
La multitasca es refereix al fet que múltiples processos independents corrin en el mateix ordinador, donant l'aparença que les tasques s'executen al mateix temps. Com que la majoria d'ordinadors poden fer com a màxim una o dues tasques a la vegada, l'objectiu s'aconsegueix compartint el temps del processador, de manera que cada programa usa un percentatge del temps de l'ordinador per executar-se.
També cal controlar que cap procés es quedi sense execució i o que monopolitzi el processador.
[edita] Drivers
Un controlador (driver en anglès) és un tipus de programari dissenyat específicament per permetre la interacció entre els dispositius de hardware. Típicament es tracta d'una interfície per comunicar-se amb el dispositiu, ja sigui mitjançant un bus específic o un subsistema de comunicacions al que l'ordinador estigui connectat. S'envien comandes al dispositiu o se'n reben dades. Es tracta d'un software especialitzat en un hardware i també especialitzat en un sistema operatiu, que així mateix, normalment incorpora gestió d'interrupcions per a esdeveniments asíncrons i depenents del temps que el dispositiu pugui ocasionar.
El resultat final és que permet a qualsevol aplicació o al mateix sistema operatiu d'interactuar amb el dispositiu d'una forma transparent.
[edita] Sistema de fitxers
Els ordinadors emmagatzemen les dades en discs usant fitxers, que estan estructurats de maneres específiques per tal de proporcionar un accés ràpid, una alta fiabilitat, i un bon ús de l'espai disponible en el disc. La manera com els fitxers són emmagatzemats a disc s'anomena sistema de fitxers, i permet als fitxers tenir noms i atributs. També permet desar-los en una jerarquia de directoris o carpetes organitzades en forma d'arbre de directoris.
Els primers sistemes operatius només suportaven un únic tipus de disc i un únic tipus de sistema de fitxers. També eren limitats en la seva capacitat, velocitat, i en els noms dels fitxers i estructures de directori que podien usar. Aquestes limitacions sovint reflectien limitacions en el sistema operatiu pels que eren dissenyats, fent molt difícil per a un sistema operatiu suportar més d'un sistema de fitxers.
[edita] Seguretat
Que un ordinador sigui segur depèn de què varies tecnologies funcionin correctament. Un sistema operatiu modern proporciona accés a diversos recursos, que són accessibles tan des del programari que corre en el sistema, com en els dispositius externs a través del kernel.
El sistema operatiu ha de ser capaç de distingir entre les peticions de processament que han de ser acceptades i les que han de ser denegades. Mentre alguns sistemes simplement distingeixen entre el nivell "privilegiat" i el nivell "no-privilegiat", la majoria de sistemes tenen maneres de sol·licitar la identitat, com un nom d'usuari. Per establir aquesta identitat s'esdevé un procés d'autenticació. Sovint s'ha d'introduir un nom d'usuari, junt amb la corresponent contrasenya. També es poden usar altres mètodes d'autenticació, com ara targetes magnètiques o dades biomètriques. En alguns casos, sobretot en connexions des de la xarxa, els recursos són accessibles sense cap mena d'autenticació (com ara llegir un fitxer sobre una carpeta compartida). Molt relacionat amb l'autenticació és el procés d'autorització: l'accés als serveis i recursos sol·licitats per part de l'usuari una vegada s'ha autenticat va lligat amb l'usuari al qual pertany o als grups d'usuari al que l'usuari pertany.
[edita] Proporciona interfície
Proporcionen una interfície d'usuari (de text o gràfica), que permeten a l'usuari comunicar-se amb l'ordinador, i una interfície d'aplicacions (API) que permeten al programari comunicar-se amb el sistema operatiu o amb el maquinari. Exemples són una shell, el Gnome, o KDE.
[edita] Classificacions dels sistemes operatius
A continuació s'exposen alguns dels criteris que de vegades s'empren per classificar els diferents sistemes operatius.
[edita] Per nombre d'usuaris
- Monousuari: Sistemes operatius que només permeten treballar amb un usuari. En aquesta categoria podem diferenciar 2 tipus:
- Sistema monousuari estricte: Quan el sistema operatiu no treballa amb el concepte d'usuari. Podríem dir que només existeix un usuari per defecte. Un exemple de sistema operatiu monousuari és DOS.
- Sistema monousuari en mode laxe': Per exemple, totes les versions de Windows (Windows 9x, ME, NT, XP, Vista...) permeten diferents usuaris però no de forma concurrent (excepte que disposin d'un Terminal Server)
- Multiusuari: Sistemes operatius que permeten treballar amb múltiples usuaris a l'hora. Per exemple, Unix/GNU/Linux o les versions de servidor de Windows.
[edita] Per nombre de processos concurrents
- Monoprogramació: només es pot executar un procés i la resta han d'esperar a que aquest procés acabi.
- Multiprogramació o multitasca: es poden executar diferents processos al mateix temps. Cal destacar que en un instant concret de temps només poden haver-hi més d'un procés executant-se al mateix temps si tenim més d'un processador (multiprocés). Aquí caldria destacar els Sistemes Operatius que disposen de planificació expulsiva i els que no (l'exemple és DOS que permetia a un procés monopolitzar l'ús de la CPU sense que el sistema el pugues expulsar de la CPU)
[edita] Per nombre de processadors
- Monoprocés: Només permeten treballar amb un microprocessador simultàniament. Un exemple de sistema operatiu monoprocessador és Windows 9x
- Multiprocés: Poden treballar amb multiples microprocessadors al mateix temps. Exemples de sistemes operatius multiprocés són Unix/GNU/Linux, Sun/OS i Windows NT/2000.
[edita] Segons la planificació dels processos
Tenim dues possibles classificacions:
Amb Restricció de temps
- Sistemes operatius de temps real: Dedicats a aplicacions de temps real són sistemes operatius molt específics per a àmbits industrials o militar.
- Sistemes interactius: Són els "habituals" on la màquina interacciona amb les entrades i sortida del sistema sense necessitats de processament en temps real.
Sense restriccions de temps:
- Processaments per lots (batch): Sistema molt utilitzat en els primers sistemes. Aquest sistemes s'utilitzaven per raons tecnològiques (les CPU eren molt més ràpides que els sistemes d'E/S i el millor sistema era processar per lots per tal d'aprofitar al màxim l'ús de la CPU)
[edita] Vegeu també
[edita] Enllaços externs