Sistemes operatius & Linux vs Windows
Com funciona un SO per dins i per què Linux el supera tècnicament
1 Què és un sistema operatiu
Un sistema operatiu (SO) és el programari fonamental que actua d’intermediari entre el maquinari (CPU, RAM, disc) i les aplicacions de l’usuari. Sense ell, cap programa podria executar-se: el SO assigna recursos, gestiona errors i garanteix que diversos processos convisquin sense interferir-se.
Clica cada capa per veure més detalls
2 Components principals d’un SO
Kernel
Nucli del sistema. Gestiona tots els recursos en mode privilegiat. Pont entre hardware i software.
Gestor de processos
Crea, planifica i elimina processos. Assigna temps de CPU. Gestiona estats: actiu, bloquejat, zombie.
Gestor de memòria
Assigna RAM, gestiona paginació virtual, protegeix espais d’adreça i evita col·lisions entre processos.
Sistema de fitxers
Organitza dades al disc. Gestiona permisos, metadades, journaling i accés concurrent.
Pila de xarxa
Implementa TCP/IP, gestiona sockets i interfícies. A Linux: netfilter + eBPF per a filtrat avançat.
Controladors (drivers)
Codi que parla directament amb el hardware. A Linux, la majoria es carreguen com a mòduls dinàmics.
3 Kernel: monolític modular (Linux) vs híbrid (Windows)
🐧 Linux — kernel monolític modular
- Tot el codi del kernel (drivers, filesystem, xarxa) corre en l’espai de kernel (ring 0).
- Comunicació interna per crides directes a funció → mínim overhead.
- Drivers carregables com a mòduls (.ko) sense reiniciar.
- Actualitzable en calent (kpatch/livepatch) en moltes distribucions.
- Font: kernel.org — codi font obert i auditable.
🪟 Windows — kernel híbrid (NT Kernel)
- Combina elements de kernel monolític i microkernel.
- Serveis com el gestor de sessió i subsistemes s’executen en user mode (ring 3).
- Comunicació kernel↔serveis via LPC/ALPC → latència extra per context switch.
- Drivers en mode kernel: un driver buggy pot causar un BSOD (Blue Screen of Death).
- Font: MSDN Kernel docs
4 Gestió de processos
El kernel decideix quin procés s’executa en cada moment a través de l’scheduler. Linux usa el CFS (Completely Fair Scheduler); Windows usa una cua de prioritats fix de 32 nivells.
🐧 Linux — CFS scheduler
- Basat en un arbre red-black per temps d’execució virtual (vruntime).
- Garanteix equitat: cap procés pot monopolitzar la CPU indefinidament.
- Suport de cgroups per limitar recursos per grup/contenidor (Docker usa això).
- Latència configurable via
/proc/sys/kernel/sched_*. - Comanda:
top,htop,ps aux,perf.
🪟 Windows — Priority Queue
- 32 nivells de prioritat (0-31), on processos d’alta prioritat dominen.
- Pot causar priority inversion i starvation en càrregues mixtes.
- Processos en primer pla reben boost automàtic → rendiment inconsistent.
- Gestió limitada de recursos per contenidor (sense cgroups natius fins a WSL2).
- Eina: Task Manager, Resource Monitor, ProcMon (Sysinternals).
root 412 8.3 2.1 234512 86420 ? Ssl 09:12 1:04 /usr/bin/python3 app.py
www-data 1024 1.2 0.8 123456 33120 ? S 09:13 0:12 nginx: worker process
5 Gestió de memòria
🐧 Linux — gestió de memòria
- Pàgines de 4KB amb suport d’Huge Pages (2MB/1GB) per reducció de TLB misses.
- Algoritme LRU kswapd per decisió de swapping basada en pressió de memòria.
- OOM Killer configurable: tria quin procés eliminar en cas d’escassetat (veure
/proc/PID/oom_score). - Memòria cache de disc aggressiva (page cache) que Linux allibera quan les aplicacions ho necessiten.
- Consum en idle: ~80-200 MB (distros lleugeres).
🪟 Windows — gestió de memòria
- Pàgines de 4KB estàndard, Large Pages requereix permisos explícits (SeLockmemory).
- Superfetch/SysMain: precarrega en RAM el que «creu» que necessitaràs → consum base elevat.
- Swap via fitxer
pagefile.sysde mida dinàmica → fragmentació progressiva. - Processos del sistema en segon pla (antivirus, WMI, telemetria) consumeixen RAM constant.
- Consum en idle Windows 11: ~2.5-3.5 GB.
Mem: 15Gi 1.2Gi 9.8Gi 312Mi 4.7Gi 13.9Gi
Swap: 2.0Gi 0B 2.0Gi
6 Sistemes de fitxers
Linux suporta nativamente molts sistemes de fitxers avançats, mentre Windows es limita principalment a NTFS i exFAT/FAT32.
ext4 (Linux)
El més utilitzat a Linux. Journaling, extents, timestamps nanosegons, suport fins a 1 EiB.
EstableJournalingBtrfs (Linux)
Snapshots en temps real, RAID integrat, checksums per bloc, compressió transparent (zstd). Usat per defecte a Fedora.
SnapshotsRAID swChecksumsZFS (Linux via OpenZFS)
Checksums de 256-bit per cada bloc, deduplicació, compressió, RAID-Z. Dissenyat per a integritat de dades absolutament.
Integritat màx.DedupNTFS (Windows)
Journaling bàsic, ACLs, compressió limitada. No suporta snapshots natius ni checksums per bloc.
JournalingSense checksumsFAT32 / exFAT
Format universal per a USB i interoperabilitat. Sense journaling, sense permisos, mida màx. de fitxer 4 GB (FAT32).
Sense journalingSense permisosscan: scrub repaired 0B in 00:02:14 with 0 errors
config: NAME STATE READ WRITE CKSUM
tank ONLINE 0 0 0
raidz1 ONLINE 0 0 0
7 Benchmarks comparatius (dades reals)
Resultats representatius de benchmarks publicats per Phoronix Test Suite i altres fonts, en maquinari comparable de gamma mitjana/baixa.
Fonts: Phoronix Test Suite (phoronix.com/benchmark/), Linux Kernel Mailing List benchmarks, Microsoft Tech Community. Valors aproximats; els resultats exactes varien segons maquinari i configuració.
8 Per què Linux supera Windows en hardware antic
Consum de recursos mínim
Una instal·lació de Debian o Alpine Linux pot arrencar amb menys de 128 MB de RAM. Ideal per a PCs de 10+ anys amb 2-4 GB que Windows 11 no pot ni instal·lar.
Modularitat del kernel
Pots compilar el kernel sense mòduls innecessaris (sistema de fitxers que no uses, drivers d’hardware absent). Windows no permet aquesta adaptació: el kernel NT inclou tot sense excepcions.
Sistemes de fitxers avançats (Btrfs, ZFS)
Btrfs i ZFS ofereixen snapshots, checksums i RAID software sense programari de tercers. Windows depèn de solucions propietàries per a funcions equivalents (Storage Spaces, que és menys madur).
Llicència lliure i transparent
El kernel Linux és GPLv2: qualsevol pot auditar, modificar i redistribuir el codi. No hi ha serveis de telemetria obligatoris que consumeixin CPU/xarxa en segon pla com a Windows.
Rendiment de servidor i cloud
El 96% dels servidors web del món corren Linux (Netcraft 2024). AWS, Google Cloud i Azure usen kernels Linux per als seus hypervisors. La causa és tècnica: menys overhead, millor gestió de xarxa (io_uring, eBPF), millor escalabilitat.
Actualitzacions sense reinici (live patching)
Kpatch i livepatch permeten aplicar pegats de seguretat al kernel sense aturar el sistema. Crític en servidors de producció. Windows requereix reinici per a la majoria de pedaços del kernel.