Un sistema operatiu no és una categoria única: el microprogramari que governa una estació meteorològica i el nucli Linux d'un servidor de centre de dades resolen el mateix problema de fons, però amb prioritats oposades i amb una diferència de mida de quatre ordres de magnitud. En aquesta lliçó aprendràs a classificar sistemes operatius per criteris independents —mode de processament, nombre d'usuaris i de tasques, àmbit d'ús i model de llicència— i, sobretot, a fer servir aquesta classificació per a allò que de debò serveix: triar. Al final aplicarem el criteri a les tres peces de la infraestructura de Meteora i veuràs que la resposta correcta és diferent en cada cas.
Contingut
- Per què classificar: els criteris no són excloents
- Classificació per mode de processament
- Classificació per nombre d'usuaris i de tasques
- Classificació per àmbit d'ús
- Classificació per llicència i model de desenvolupament
- Taula comparativa i criteris de tria
- Cas aplicat: què tria Meteora per a cada peça
Per què classificar: els criteris no són excloents
El primer error quan s'estudia aquest tema és tractar la classificació com una llista de calaixos on cada sistema cau en un de sol. No funciona així. Els criteris són dimensions independents, i qualsevol sistema real ocupa una posició en totes alhora.
Prenguem Linux a meteo-01:
- Per mode de processament: interactiu/temps compartit, encara que també executa feines per lots durant la nit.
- Per usuaris: multiusuari.
- Per tasques: multitasca apropiativa.
- Per àmbit: de servidor, encara que el mateix nucli es fa servir en escriptori, en mòbils i en sistemes encastats.
- Per llicència: lliure (GPL v2).
El mateix nucli Linux, amb una altra configuració i altres eines al voltant, pot ser un sistema encastat monousuari de 8 MB. Per això la classificació útil no descriu «què és» un sistema, sinó quines prioritats té i per a què està afinat.
Classificació per mode de processament
Aquest criteri respon a: com arriben les feines al sistema i què s'optimitza en atendre-les?
Sistemes per lots (batch)
Les feines s'acumulen i s'executen sense interacció amb l'usuari. El que s'optimitza és la productivitat (throughput): feines completades per hora. Que una feina concreta trigui més tant és si en conjunt se'n processen més.
Sonen antics, però són més vius que mai: la facturació mensual d'un banc, el reentrenament nocturn d'un model, la generació d'informes o el mateix càlcul de mitjanes diàries de Meteora són processament per lots. El que va canviar és l'embolcall: avui es diuen jobs, cron, pipelines o batch workloads.
Explicació del bloc, que és una feina per lots de manual:
30 2 * * *són els cinc camps decron: minut 30, hora 2, qualsevol dia del mes, qualsevol mes, qualsevol dia de la setmana. És a dir, cada dia a les 02:30.meteoraés l'usuari amb què s'executa. Mai no es fa servirrootper a això: si el programa té una fallada, el dany queda limitat al que pot tocarmeteora.- La resta és el programa i els seus arguments.
- No hi ha ningú mirant: la feina s'executa, escriu la seva sortida i acaba. Si falla, ho sabrem pels registres. Aquesta absència d'interactivitat és exactament el que defineix el mode per lots.
Sistemes interactius o de temps compartit
El sistema atén usuaris (o clients) que esperen una resposta. El que s'optimitza no és la productivitat total sinó el temps de resposta i la seva previsibilitat.
La conseqüència tècnica és que el planificador ha d'afavorir els processos que fan molta entrada/sortida i poc càlcul, perquè solen ser els interactius. Quan a meteo-01 conviuen agregador (molta CPU) i meteo-api (molta espera de xarxa), el planificador dona preferència al segon precisament per això. Ho estudiaràs a Planificació de la CPU.
Sistemes de temps real
Aquí el que importa no és anar de pressa sinó complir terminis. Un sistema de temps real garanteix que una tasca es completa abans d'un instant límit (deadline). La distinció clau:
| Temps real dur (hard) | Temps real tou (soft) | |
|---|---|---|
| Conseqüència d'incomplir el termini | Fallada del sistema, possible dany físic | Degradació de qualitat |
| Exemples | Coixí de seguretat, control de vol, marcapassos, robot industrial | Videotrucada, reproducció de vídeo, àudio digital |
| Garantia exigida | Matemàticament demostrable | Estadística («el 99,9 % de les vegades») |
| Planificador típic | Prioritats fixes o EDF, sense heurístiques | Prioritats amb ajustos |
Una idea contraintuïtiva però fonamental: un sistema de temps real no és un sistema ràpid, és un sistema predictible. Un RTOS sol tenir un rendiment mitjà pitjor que Linux, perquè renuncia a optimitzacions (memòries cau agressives, planificadors adaptatius) el comportament de les quals en el pitjor cas no es pot acotar. Prefereix ser sempre igual de lent que no pas ser normalment molt ràpid i de vegades imprevisible.
Pots comprovar a meteo-01 que Linux ofereix polítiques de planificació de temps real tou:
SCHED_OTHER min/max priority : 0/0 SCHED_FIFO min/max priority : 1/99 SCHED_RR min/max priority : 1/99 SCHED_BATCH min/max priority : 0/0 SCHED_IDLE min/max priority : 0/0 SCHED_DEADLINE min/max priority : 0/0
Què significa aquesta sortida:
chrtconsulta i modifica les polítiques de planificació en temps real. L'opció-mmostra els rangs de prioritat disponibles.SCHED_OTHERés la política normal, la que fan serviringestor,agregadorimeteo-api. No té prioritats de temps real (rang 0/0).SCHED_FIFOiSCHED_RRsón polítiques de temps real tou amb 99 nivells de prioritat. Un procésSCHED_FIFOs'executa fins que es bloqueja o cedeix voluntàriament: pot monopolitzar un nucli.SCHED_DEADLINEpermet declarar un termini explícit, i el nucli comprova que el conjunt de tasques sigui admissible.
Fins i tot amb aquestes polítiques, Linux estàndard no és un sistema de temps real dur: no garanteix una cota màxima de latència en tots els casos. Per a això existeixen sistemes com QNX, VxWorks, FreeRTOS o Zephyr, o pedaços com PREEMPT_RT. El tema complet és a Sistemes Operatius Mòbils i de Temps Real.
Classificació per nombre d'usuaris i de tasques
Són dues dimensions diferents que sovint es confonen.
Monousuari i multiusuari
Un sistema multiusuari manté identitats separades amb recursos i permisos propis, i garanteix que un usuari no accedeix a allò que és d'un altre. No requereix que hi hagi diverses persones connectades alhora: meteo-01 és multiusuari encara que ningú no hi iniciï sessió, perquè cada servei corre amb una identitat diferent.
De fet, aquest és l'ús més important avui del model multiusuari: no separar persones, sinó separar serveis.
USER COMMAND meteora agregador meteora ingestor meteora meteo-api root sshd root systemd systemd+ systemd-resolved www-data nginx
Interpretació:
- Els tres processos de Meteora corren com a
meteora, no com aroot. Si un atacant comprometmeteo-api, només obté els permisos demeteora: pot llegir/var/lib/meteora/, però no modificar el sistema. nginxcorre com awww-data, una altra identitat diferent, amb els seus propis permisos.systemd-resolvedfa servir una identitat dedicada del sistema.- Només allò estrictament necessari (
systemd,sshd) corre com aroot.
Això és el principi de privilegi mínim aplicat mitjançant el model multiusuari, i el desenvoluparem a Principis de Protecció i Control d'Accés.
Monotasca i multitasca
Un sistema monotasca executa un programa cada vegada (MS-DOS, el microprogramari més simple d'un microcontrolador). Un sistema multitasca en manté diversos en execució concurrent. I dins la multitasca hi ha una distinció decisiva:
| Multitasca cooperativa | Multitasca apropiativa (preemptive) | |
|---|---|---|
| Qui cedeix la CPU | El programa mateix, voluntàriament | El sistema operatiu, mitjançant interrupció de rellotge |
| Si un programa entra en bucle infinit | Es penja tota la màquina | Només se'n veu afectat aquell procés |
| Requereix maquinari amb temporitzador | No | Sí |
| Exemples | Windows 3.x, Mac OS clàssic | Linux, Windows NT i posteriors, macOS, Android |
La història ja va dictar sentència sobre això: tots els sistemes de propòsit general són avui apropiatius, perquè un sistema no pot dependre de la bona voluntat dels programes que executa. Si agregador entrés en un bucle infinit en un sistema cooperatiu, meteo-01 deixaria de respondre del tot i s'hauria de reiniciar físicament.
Classificació per àmbit d'ús
Aquest criteri és el més útil a la pràctica, perquè descriu per a què està afinat el sistema.
| Àmbit | Prioritat principal | Interfície habitual | Exemples | Recursos típics |
|---|---|---|---|---|
| Escriptori | Latència percebuda i facilitat d'ús | GUI | Windows 11, macOS, Ubuntu Desktop | 8-32 GB RAM |
| Servidor | Estabilitat, rendiment sostingut, seguretat | Línia de comandes, remota | Debian, RHEL, Windows Server | 8 GB - 1 TB RAM |
| Encastat | Consum, mida, arrencada, fiabilitat | Cap o mínima | FreeRTOS, Zephyr, Yocto Linux | 64 KB - 512 MB RAM |
| Mòbil | Bateria, aïllament d'apps, tàctil | GUI tàctil | Android, iOS | 4-16 GB RAM |
| Distribuït | Transparència d'ubicació, tolerància a fallades | API i orquestrador | Plan 9, capes tipus Kubernetes | Moltes màquines |
| De xarxa | Servir recursos compartits | Administració remota | NetWare (històric), NAS actuals | Variable |
Val la pena aturar-se en tres:
- Servidor. No porta interfície gràfica, prioritza el rendiment sostingut sobre la latència d'un clic, i admet cicles d'actualització llargs i predictibles. Una distribució de servidor com Debian estable o RHEL ofereix suport de 5 a 10 anys sense canvis incompatibles, cosa que és exactament el contrari del que vol un usuari d'escriptori.
- Encastat. El sistema viu dins d'un aparell que no es percep com un ordinador. Els requisits canvien radicalment: arrencada en mil·lisegons, funcionament durant anys sense reiniciar, consum de microampers en repòs i sovint absència total de disc i de gestió de memòria virtual.
- Distribuït. Un sistema operatiu distribuït genuí presenta diverses màquines com si fossin una de sola. És una idea acadèmicament bonica que amb prou feines es fa servir en la seva forma pura; a la pràctica el que es fa és posar una capa d'orquestració sobre sistemes operatius normals. Ho veuràs a El Sistema Operatiu al Núvol.
Classificació per llicència i model de desenvolupament
| Propietari | Lliure / codi obert | |
|---|---|---|
| Accés al codi | No, o molt restringit | Sí, complet |
| Cost de llicència | Per màquina, nucli o usuari | Zero (es paga suport si es vol) |
| Qui corregeix una fallada | Només el fabricant | Qualsevol, encara que a la pràctica la comunitat |
| Auditoria de seguretat | Confiança en el fabricant | Verificable per tercers |
| Risc de dependència | Alt (vendor lock-in) | Baix |
| Suport | Contractual, amb garanties | Comunitari, o comercial contractat |
| Exemples | Windows, macOS, VxWorks, QNX | Linux, FreeBSD, OpenBSD, Zephyr, FreeRTOS |
Dues precisions que gairebé sempre es passen per alt:
- Lliure no vol dir gratuït en el sentit rellevant. Red Hat Enterprise Linux és programari lliure i costa diners: el que es paga no és la llicència sinó el suport, la certificació i les actualitzacions garantides. Per a una empresa, aquesta diferència importa més que el preu.
- Dins el programari lliure hi ha dues famílies de llicència. Les copyleft (GPL, la del nucli Linux) obliguen que les obres derivades es distribueixin també com a lliures. Les permissives (BSD, MIT, Apache) permeten crear derivats propietaris; per això parts de FreeBSD són dins de macOS i de la consola PlayStation.
Taula comparativa i criteris de tria
Ho reunim tot en una taula de decisió. Les columnes són les preguntes que de debò es fan a l'hora de triar un sistema:
| Necessitat | Tipus adequat | Exemple concret | Criteri decisiu |
|---|---|---|---|
| Servir peticions 24/7 amb actualitzacions predictibles | Servidor, multiusuari, multitasca apropiativa, lliure | Debian estable, RHEL | Estabilitat i suport a llarg termini |
| Llegir un sensor cada segon amb 64 KB de RAM | Encastat, temps real dur, monotasca o multitasca mínima | FreeRTOS, Zephyr | Determinisme i petjada de memòria |
| Aplicació de consulta per a mòbils | Mòbil, multitasca, aïllament per app | Android, iOS | Ecosistema i gestió de bateria |
| Lloc de treball amb ofimàtica i disseny | Escriptori, monousuari a la pràctica | Windows, macOS, Ubuntu | Compatibilitat d'aplicacions |
| Processar lots nocturns de milions de registres | Servidor amb planificació orientada a la productivitat | Linux amb SCHED_BATCH, sistemes de cues |
Throughput per damunt de latència |
| Controlar un braç robòtic industrial | Temps real dur, encastat | QNX, VxWorks, Linux amb PREEMPT_RT | Latència màxima garantida |
| Tallafocs o passarel·la de xarxa | Servidor mínim, enfortit | OpenBSD, Linux minimalista | Superfície d'atac reduïda |
I l'ordre en què convé fer-se les preguntes:
- Hi ha terminis que incomplir sigui inacceptable? Si és que sí, temps real dur; la resta de criteris passen a segon pla.
- Quants recursos hi ha? Amb kilobytes de RAM, un sistema de propòsit general queda descartat.
- Qui l'operarà i com? Un equip que administra per SSH no necessita entorn gràfic.
- Quant ha de durar el desplegament sense tocar-lo? Determina si necessites una versió amb suport estès.
- Quin ecosistema necessites? De vegades la decisió la imposa una biblioteca o un client que només existeix per a un sistema.
- Quin risc de dependència del proveïdor acceptes?
Cas aplicat: què tria Meteora per a cada peça
Meteora ha de decidir tres sistemes operatius diferents. Vegem-ne el raonament complet.
El servidor meteo-01
Tria: Linux de servidor, distribució estable (Debian stable o RHEL).
| Criteri | Valor requerit | Conseqüència |
|---|---|---|
| Terminis durs | No n'hi ha. Si una petició triga 300 ms en comptes de 100 ms, no passa res greu | Descarta la necessitat d'un RTOS |
| Usuaris | Diversos serveis amb identitats separades | Exigeix multiusuari |
| Tasques | ingestor, agregador i meteo-api concurrents |
Exigeix multitasca apropiativa |
| Interfície | Administració remota per SSH | No instal·lar entorn gràfic: menys RAM i menys superfície d'atac |
| Estabilitat | Ha de funcionar mesos sense tocar-lo | Distribució amb cicle de suport llarg, no una rolling release |
| Llicència | Sense cost per nucli, auditable | Programari lliure |
Un matís important: triar «Linux» no tanca la decisió, cal triar distribució. Una distribució d'actualització contínua com Arch donaria programari més modern, però els canvis freqüents són un risc en producció. Meteora prefereix versions més antigues però amb pedaços de seguretat garantits durant anys.
Les estacions meteorològiques
Tria: sistema de temps real encastat, tipus FreeRTOS o Zephyr, sobre un microcontrolador.
El raonament canvia del tot:
- Recursos: un microcontrolador típic té 64-256 KB de RAM i no té disc. Linux, fins i tot en versió reduïda, necessita com a mínim uns quants megabytes i una MMU. Queda descartat per mida.
- Energia: l'estació funciona amb bateria i panell solar. El sistema ha de passar la major part del temps adormit i despertar-se només per mesurar i transmetre. Un RTOS ofereix control fi sobre els modes de baix consum.
- Determinisme: el mostreig del sensor s'ha de fer a intervals regulars. No és temps real dur en el sentit de «mor algú si falla», però sí que requereix previsibilitat: una lectura desplaçada 300 ms corromp la sèrie temporal.
- Fiabilitat sense manteniment: l'estació pot ser en una muntanya, inaccessible durant mesos. S'ha de recuperar sola de qualsevol fallada (temporitzador de vigilància o watchdog) i no ha de tenir fuites de memòria acumulatives.
- Sense interfície: no hi ha pantalla ni teclat. Tota la interacció és per ràdio.
Una excepció raonable: si una estació hagués de fer processament local pesant (per exemple, anàlisi d'imatge d'una càmera), la tria canviaria a un Linux encastat construït amb Yocto o Buildroot sobre un SoC més potent. El criteri de recursos mana sobre la resta.
L'app mòbil de consulta
Tria: Android i iOS, és a dir, cap tria real.
Aquí l'anàlisi tècnica és gairebé irrellevant perquè la decisió la imposa el mercat: els clients ja tenen el dispositiu i el sistema. El que és interessant és entendre què aporta aquest sistema a l'app de Meteora:
- Aïllament per aplicació: cada app s'executa amb el seu propi identificador d'usuari i només pot accedir al seu directori privat. És el model multiusuari clàssic reutilitzat per separar aplicacions en comptes de persones.
- Permisos explícits: accedir a la ubicació per mostrar l'estació més propera requereix consentiment de l'usuari, gestionat pel sistema.
- Gestió agressiva d'energia: el sistema pot suspendre o matar l'app en segon pla. Meteora no pot pressuposar que la seva app continuï viva; ha de fer servir els mecanismes de notificació del sistema en comptes de sondejar cada minut.
- Cicle de vida controlat pel sistema: l'app no decideix quan acaba.
La conclusió d'aquest cas és la més valuosa de la lliçó: la mateixa empresa, amb el mateix producte, necessita tres sistemes operatius de tipus completament diferents, i la raó no és el gust de ningú sinó les restriccions de cada entorn.
Errors Habituals i Consells
- Tractar els criteris com a excloents. «Linux és multiusuari o multitasca?» és una pregunta mal plantejada: és totes dues coses, perquè són dimensions diferents.
- Creure que temps real vol dir ràpid. Vol dir predictible. Un RTOS sol tenir pitjor rendiment mitjà que Linux; el que garanteix és el pitjor cas.
- Pensar que multiusuari implica diverses persones. L'ús dominant avui és separar serveis, no persones.
meteo-01aprofita el model multiusuari encara que només l'administri una persona. - Triar el sistema per familiaritat i no per requisits. Instal·lar Ubuntu Desktop en un servidor perquè «és el que conec» hi afegeix centenars de paquets innecessaris, consum de memòria i superfície d'atac.
- Oblidar que «Linux» no és una decisió completa. Triar entre Debian, Alpine, RHEL o una imatge construïda amb Yocto canvia més coses a la pràctica que triar entre Linux i FreeBSD.
- Consell: quan hagis de justificar una tria, escriu primer els requisits no funcionals (latència, disponibilitat, memòria, vida útil, qui l'opera) i només després mira quins sistemes els compleixen. A l'inrevés sempre s'acaba justificant l'opció que ja s'havia decidit.
Exercicis
Exercici 1
Classifica cada sistema en les quatre dimensions vistes (mode de processament, usuaris, tasques, àmbit i llicència). Si alguna dimensió no s'hi aplica o és ambigua, explica per què:
- El microprogramari d'un microones.
- Android en un telèfon.
- Debian a
meteo-01. - MS-DOS el 1985.
Exercici 2
Meteora vol afegir un sistema d'alerta primerenca: si una estació detecta una caiguda de pressió superior a 5 hPa en 10 minuts, ha d'emetre un avís. Es plantegen dos dissenys:
- (A) L'estació detecta la condició localment i transmet una alerta prioritària.
- (B) L'estació transmet tot normalment i
agregadorameteo-01detecta la condició.
Analitza quin tipus de sistema operatiu requereix cada disseny i quins compromisos implica cadascun en termes de latència, consum d'energia, fiabilitat i complexitat.
Exercici 3
Un company proposa instal·lar a meteo-01 una distribució d'actualització contínua (rolling release) «per tenir sempre l'última cosa i no quedar-nos enrere en seguretat». Escriu una resposta raonada amb almenys quatre arguments, assenyalant també en quin cas la seva proposta sí que seria la correcta.
Solucions
Solució 1
1. Microprogramari d'un microones
- Mode de processament: temps real tou. Ha de reaccionar al teclat i al temporitzador amb terminis, però un retard de 100 ms no causa cap dany. Alguns aspectes de seguretat (tallar el magnetró en obrir la porta) es resolen normalment en maquinari, no en programari.
- Usuaris: monousuari, o més aviat «sense concepte d'usuari»: no hi ha identitats ni permisos.
- Tasques: monotasca o multitasca molt simple amb un bucle d'esdeveniments.
- Àmbit: encastat.
- Llicència: propietària gairebé sempre, encara que pot fer servir un nucli lliure com FreeRTOS per sota.
2. Android en un telèfon
- Mode: interactiu, amb components de temps real tou (àudio, vídeo).
- Usuaris: multiusuari en la seva implementació (cada app té el seu UID) encara que monousuari de cara a la persona en la majoria de dispositius. És l'exemple perfecte que la dimensió «usuaris» es fa servir avui per aïllar programari, no persones.
- Tasques: multitasca apropiativa, amb la particularitat que el sistema pot matar apps en segon pla per estalviar bateria.
- Àmbit: mòbil.
- Llicència: mixta. El nucli Linux és GPL, la resta d'AOSP és Apache 2.0 (lliure), però les capes de Google (Play Services) són propietàries. Un bon exemple que la dimensió de llicència poques vegades és binària.
3. Debian a meteo-01
- Mode: interactiu/temps compartit, amb feines per lots nocturnes. No és temps real.
- Usuaris: multiusuari.
- Tasques: multitasca apropiativa.
- Àmbit: servidor.
- Llicència: lliure, majoritàriament GPL.
4. MS-DOS el 1985
- Mode: interactiu, en el sentit limitat que responia a un usuari en un terminal.
- Usuaris: monousuari, sense cap concepte d'identitat ni de permisos.
- Tasques: monotasca. Hi havia trucs (els programes TSR, residents a la memòria) que simulaven concurrència, però sense apropiació ni protecció.
- Àmbit: escriptori/personal.
- Llicència: propietària.
Solució 2
Disseny A: detecció a l'estació
- Sistema requerit: el mateix RTOS encastat, però amb més lògica. Cal mantenir una finestra lliscant de les últimes lectures a la RAM, cosa que consumeix memòria (10 minuts a una lectura per minut són 10 valors de pressió, uns 40 bytes: perfectament assumible fins i tot en 64 KB).
- Latència: excel·lent. L'alerta s'emet en el mateix instant de la detecció, sense dependre de la xarxa ni del cicle d'agregació. Si el cicle normal de transmissió és de 15 minuts, això estalvia fins a 15 minuts de retard.
- Energia: pitjor en dos sentits. Cal despertar el microcontrolador per avaluar la condició a cada lectura (encara que el càlcul és trivial i costa microsegons) i, sobretot, cal activar la ràdio fora del cicle previst, que és el que de debò consumeix.
- Fiabilitat: millor davant de fallades de xarxa o del servidor, perquè la detecció no depèn que la lectura hi arribi. Pitjor davant de fallades del sensor mateix: una estació amb un sensor defectuós pot generar falses alertes sense que ningú les contrasti.
- Complexitat: alta a mitjà termini. Canviar el llindar de 5 hPa a 4 hPa exigeix actualitzar el microprogramari de centenars d'estacions desplegades al camp, cosa que requereix un mecanisme d'actualització remota fiable, que és de les coses més delicades d'un sistema encastat.
Disseny B: detecció al servidor
- Sistema requerit: cap de nou. L'estació continua sent ximple i
agregadora Linux se n'encarrega. - Latència: pitjor. Depèn del cicle de transmissió més el cicle d'agregació. Si
agregadorprocessa cada 5 minuts i l'estació transmet cada 15, el retard pot arribar als 20 minuts. - Energia: sense canvis, cosa que és un avantatge considerable.
- Fiabilitat: pitjor davant de talls de xarxa, però millor en detecció d'anomalies, perquè el servidor pot contrastar amb estacions veïnes i descartar una caiguda de pressió que només veu una estació com a probable fallada de sensor.
- Complexitat: molt menor. Canviar el llindar és modificar
/etc/meteora/meteora.confi reiniciar un servei.
Recomanació raonada: començar per B, perquè és reversible i barat, i passar a A (o a un disseny híbrid: detecció local amb llindar conservador més confirmació al servidor) només si es demostra que la latència de 20 minuts té un cost real per als clients. És el principi general de no portar lògica a la vora de la xarxa abans que un requisit ho exigeixi.
Solució 3
Arguments contra la proposta:
- Seguretat no equival a última versió. Una distribució estable com Debian aplica backports dels pedaços de seguretat sobre versions antigues. Reps la correcció sense rebre els canvis de comportament. La premissa que «no actualitzar la versió = estar insegur» és falsa.
- Cada actualització és un risc d'indisponibilitat. En una rolling release, centenars de paquets canvien cada setmana, incloses biblioteques de les quals depenen
ingestor,agregadorimeteo-api. Un canvi incompatible en una biblioteca pot tombar el servei en un moment no triat. - Els canvis no són atòmics ni reversibles fàcilment. Tornar enrere en una rolling release és notòriament difícil, mentre que una distribució estable ofereix un camí d'actualització provat entre versions concretes.
- El cost operatiu es multiplica. Actualitzar contínuament exigeix provar contínuament. Meteora hauria de mantenir un entorn de proves equivalent i validar cada setmana, quan el seu valor són les dades meteorològiques, no administrar el sistema.
- La superfície de canvi no aporta valor al negoci. Tenir una versió més recent d'una biblioteca gràfica en un servidor sense entorn gràfic no aporta res.
Quan sí que tindria raó el company:
- Si el servei depengués d'una funcionalitat molt recent del nucli o d'una biblioteca (per exemple, un driver per a maquinari nou o una funció de xarxa no disponible a la versió estable).
- En un entorn de desenvolupament local, on una fallada no afecta els clients i convé detectar aviat incompatibilitats futures.
- Si l'aplicació es desplegués en contenidors amb imatges immutables, on el sistema base de l'amfitrió importa menys i les actualitzacions són reversibles: n'hi ha prou de tornar a desplegar la imatge anterior. Això ho veuràs a Contenidors: Namespaces i cgroups.
Conclusió
Els sistemes operatius es classifiquen en dimensions independents i simultànies: mode de processament (lots, interactiu, temps real dur o tou), nombre d'usuaris i de tasques, àmbit d'ús (escriptori, servidor, encastat, mòbil, distribuït, de xarxa) i model de llicència. Un sistema real ocupa una posició en totes alhora, i la classificació només és útil si es fa servir per triar amb criteri, posant primer els requisits no funcionals i després els candidats.
El cas de Meteora deixa la idea central: una mateixa empresa necessita un Linux de servidor estable per a meteo-01, un RTOS encastat de kilobytes per a les seves estacions i els sistemes mòbils que imposa el mercat per a la seva app. Les restriccions de cada entorn —determinisme, memòria, energia, ecosistema— manen sobre qualsevol preferència.
Però fixa't que, per sota d'aquesta diversitat, tots fan el mateix: gestionen processos, memòria, emmagatzematge, dispositius, xarxa i seguretat, i ofereixen alguna interfície. Canvien les prioritats i l'escala, no les funcions. A la lliçó següent, Funcions Principals d'un Sistema Operatiu, recorrerem aquestes funcions una a una: són el mapa de la resta del curs i les seguirem a través del cicle de vida complet d'una petició HTTP a meteo-api.
Fonaments de Sistemes Operatius
Mòdul 1: Introducció als Sistemes Operatius
- Conceptes Bàsics de Sistemes Operatius
- Història i Evolució dels Sistemes Operatius
- Tipus de Sistemes Operatius
- Funcions Principals d'un Sistema Operatiu
- Arquitectura del Nucli: Monolític, Microkernel i Híbrid
- Mode Usuari, Mode Nucli i Crides al Sistema
Mòdul 2: Gestió de Recursos
- Gestió de Processos
- Planificació de la CPU
- Gestió de Memòria
- Memòria Virtual i Paginació
- Gestió d'Emmagatzematge
- Gestió de Dispositius
- Controladors, Interrupcions i Operacions d'E/S
Mòdul 3: Concurrència
- Conceptes de Concurrència
- Fils i Processos
- Comunicació entre Processos (IPC)
- Sincronització i Exclusió Mútua
- Problemes Clàssics de Concurrència
- Interbloquejos: Prevenció, Detecció i Recuperació
Mòdul 4: Estructures de Fitxers
- Sistemes de Fitxers
- Estructures de Directoris
- Particions, Muntatge i Sistema de Fitxers Virtual
- Gestió de Fitxers
- Assignació d'Espai, Journaling i Integritat
- Seguretat i Permisos de Fitxers
Mòdul 5: Protecció i Seguretat del Sistema
- Principis de Protecció i Control d'Accés
- Usuaris, Autenticació i Escalada de Privilegis
- Amenaces Habituals i Enfortiment del Sistema
- Auditoria, Registres i Resposta a Incidents
Mòdul 6: Virtualització i Contenidors
- Virtualització: Hipervisors i Màquines Virtuals
- Contenidors: Namespaces i cgroups
- El Sistema Operatiu al Núvol
- Sistemes Operatius Mòbils i de Temps Real
