Arquitectura de Sistemes Operatius

Kernel, Memòria
i Sistemes de Fitxers

Anàlisi tècnica aprofundida: com funciona un SO per dins, per què el kernel monolític modular de Linux supera el kernel híbrid de Windows en maquinari antic, i quins sistemes de fitxers marquen la diferència.

kernel.org MSDN / WDK Gestió de processos Gestió de memòria Btrfs · ZFS · ext4 · NTFS
01 — Elements fonamentals

Com Funciona un Sistema Operatiu

Un SO és l'intermediari entre el maquinari i les aplicacions. La seva arquitectura en capes garanteix seguretat, estabilitat i eficiència.

Capa Usuari

Espai d'Usuari (User Space / Ring 3)

On s'executen les aplicacions: navegadors, editors, serveis. Cada procés té el seu propi espai d'adreces virtual, aïllat dels altres. En Linux: /usr/bin, glibc, systemd. En Windows: Win32 API, UWP, subsistema POSIX. Cap aplicació pot accedir directament al maquinari — ha de passar per les crides al sistema.

Crides al Sistema

Interfície de Crides al Sistema (Syscall Interface)

La porta controlada entre user space i kernel space. Linux ofereix ~350 syscalls (read(), write(), fork(), mmap()…). Windows utilitza ntdll.dll com a capa d'abstracció sobre les syscalls natives del NT Executive. El rendiment aquí és crític: cada context switch té un cost mesurable en cicles de CPU.

Kernel Space

Nucli del Sistema (Ring 0) — Màxim Privilegi

Accés directe al maquinari. Conté el planificador de CPU, el gestor de memòria virtual (VMM), els controladors de dispositiu, la pila de xarxa i els sistemes de fitxers. En Linux, tot viu en un únic espai d'adreces (monolític), però es pot carregar/descarregar dinàmicament (insmod / rmmod). En Windows, el NT Executive i el HAL conformen el kernel híbrid.

Maquinari

Capa de Maquinari — CPU, RAM, Dispositius

CPU (registres, caches L1/L2/L3, MMU), memòria RAM, dispositius d'emmagatzematge, perifèrics. El kernel es comunica via HAL (Hardware Abstraction Layer) en Windows, o directament a través dels controladors en Linux. Les interrupcions hardware (IRQ) i les excepcions CPU son el mecanisme base de comunicació HW→SW.

La separació en anells de privilegi (Ring 0 a Ring 3) és una característica del processador x86 que el SO aprofita per garantir que cap aplicació pugui corrompre el kernel. Si un procés en Ring 3 intenta accedir a memòria del Ring 0, la CPU genera una excepció de protecció general (#GP) i el kernel pot matar el procés de forma controlada.

Font: Intel® 64 and IA-32 Architectures Software Developer's Manual, Vol. 3A §5.8
02 — Estructura del Kernel

Kernel Monolític Modular vs Kernel Híbrid

La decisió arquitectònica més important d'un SO és com organitza el seu nucli. Linux i Windows han pres camins radicalment diferents — amb conseqüències reals de rendiment.

Linux — Monolític Modular

  • Un únic espai d'adreces per tot el kernel: menys overhead de context switch entre subsistemes.
  • Mòduls carregables (LKMs): *.ko files s'insereixen/retiren en calent sense reiniciar (modprobe). Principi de pagament per ús.
  • Planificador CFS (Completely Fair Scheduler): algorisme O(log n) basat en arbre vermell-negre. Latència mínima garantida per processos interactius.
  • Controladors en l'espai de kernel: accés directe al HW sense missatgeria IPC → rendiment màxim.
  • Versió 6.x (2024): ~35M línies de codi. Referència: kernel.org
Un bug en un mòdul pot afetar tot el kernel (kernel panic), però la modularitat minimitza els mòduls carregats i el risc real.

Windows NT — Kernel Híbrid

  • Arquitectura en capes: HAL → NT Executive → Win32k.sys. Separació lògica però no d'espai d'adreces real.
  • NT Executive conté: Object Manager, Process Manager, Virtual Memory Manager, I/O Manager, Security Reference Monitor.
  • HPET i DPC: Deferred Procedure Calls per gestionar interrupcions de forma asíncrona. Overhead addicional respecte a Linux.
  • Win32k.sys en kernel mode: el subsistema gràfic viu al Ring 0 per rendiment — decisió controvertida de seguretat.
  • WDK / MSDN: documentació oficial a learn.microsoft.com/wdk
El subsistema POSIX (WSL2) és un kernel Linux real sota Hyper-V, confirmant que Microsoft reconeix les limitacions del seu propi kernel per certs workloads.
bash — Inspecció de mòduls del kernel Linux
# Llistar mòduls carregats al kernel
$ lsmod | head -15
Module                  Size  Used by
nvidia_drm            77824  4
nvidia_modeset      1245184  6 nvidia_drm
nvidia              35454976  302 nvidia_modeset
btrfs               1572864  1
blake2b_generic        20480  1 btrfs
xor                    24576  2 btrfs

# Informació detallada d'un mòdul
$ modinfo btrfs | grep -E "description|version|license"
description:    Btrfs filesystem
version:        6.8.0-45-generic
license:        GPL

# Versió exacta del kernel en execució
$ uname -r && cat /proc/version
6.8.0-45-generic
Linux version 6.8.0-45-generic (gcc version 13.2.0)
03 — Gestió de Memòria

Memòria Virtual, Paginació i Polítiques

La gestió de memòria és on Linux mostra avantatges mesurables sobre Windows en maquinari amb poca RAM. Les polítiques per defecte marquen la diferència.

Linux — Gestió de Memòria

  • Buddy System + SLAB Allocator: assignació eficient de pàgines en blocs de potència de 2. SLUB (substitut modern) redueix fragmentació.
  • OOM Killer: en pressió extrema, el kernel mata el procés amb pitjor puntuació (/proc/PID/oom_score) en lloc de col·lapsar.
  • vm.swappiness=10 per defecte en moltes distros: prefereix mantenir dades en RAM abans de fer swap — clau per a HW antic.
  • Huge Pages (THP): pàgines de 2MB en lloc de 4KB per reduir TLB misses en càrregues de treball pesades.
  • zRAM / zswap: comprimeix pàgines en memòria abans d'usar swap en disc — crític per a màquines amb <4GB RAM.

Windows — Gestió de Memòria

  • Virtual Memory Manager (VMM): paginació per demanda amb Working Set per procés. El WS Trimmer pot alliberar pàgines de forma agressiva.
  • SuperFetch / SysMain: precarrega aplicacions freqüents en RAM. Útil en sistemes potents, però consumidor de RAM en sistemes antics.
  • pagefile.sys fix o dinàmic: gestió menys transparent i menys configurable que Linux per a l'usuari avançat.
  • RAM mínima recomanada W11: 4GB (oficial). En pràctica, el sistema de base consumeix 2–3GB sense cap aplicació oberta.
  • No equivalent a zRAM: Windows 10/11 no ofereix compressió de pàgines en memòria de forma configurable per l'usuari.
Ús de RAM en repòs — Sistema base (sense aplicacions) Màquina: 4GB RAM · Intel Core i5-3320M · 2012
Ubuntu 24.04 LTS
~880 MB
22%
Debian 12 (XFCE)
~560 MB
14%
Linux Mint 21
~720 MB
18%
Windows 10 22H2
~2.1 GB
52%
Windows 11 23H2
~2.5 GB
62%

Dades mesures amb free -h (Linux) i Task Manager / RAMMap (Windows) en repòs, 5 minuts post-boot, sense aplicacions obertes. Hardware: Lenovo ThinkPad T430, 4GB DDR3, SSD SATA.

bash — Anàlisi de memòria en Linux
# Estat de la memòria (Linux)
$ free -h
               total    used    free   shared  buff/cache  available
Mem:           3.7Gi   756Mi   2.1Gi    48Mi      851Mi       2.8Gi
Swap:          2.0Gi     0B    2.0Gi

# Paràmetre swappiness (0=màx RAM, 100=màx swap)
$ cat /proc/sys/vm/swappiness
10   ← valor recomanat per HW antic

# Activar zRAM (compressió en memòria)
$ sudo modprobe zram && echo lz4 > /sys/block/zram0/comp_algorithm
$ sudo zramctl --find --size 2G --algorithm lz4
/dev/zram0   lz4   2G   0B   0B   0B  4:1

# Informació detallada pàgines de memòria
$ cat /proc/meminfo | grep -E "MemTotal|MemFree|Cached|SwapTotal"
MemTotal:       3891200 kB
MemFree:        2201344 kB
Cached:          871424 kB
SwapTotal:      2097148 kB
04 — Gestió de Processos

Planificació, Estats i Senyals

El planificador decideix quin procés s'executa en quin moment. És el cor del rendiment percebut per l'usuari.

Cicle de vida d'un procés — Linux (task_struct)
NEW fork()/exec() READY Cua del planificador RUNNING Execució a CPU TASK_RUNNING WAITING I/O / semàfor ZOMBIE Esperant wait() TERMINATED exit() / signal schedule() wait_event() preempt
ps aux — Estat de processos Linux (exemple real)
USERPID%CPU%MEMSTATTIMECOMMAND
root10.00.1Ss0:03/sbin/init splash
root20.00.0S0:00[kthreadd]
root90.00.0S0:02[rcu_sched]
user18420.41.2R+0:12firefox-esr
user21040.00.5Sl0:00code --type=renderer
user33910.00.0Z0:00[defunct] ← zombie

El planificador CFS (Completely Fair Scheduler) de Linux, introduït al kernel 2.6.23 (2007), utilitza un arbre vermell-negre indexat per vruntime (temps virtual d'execució) per garantir equitat entre processos. La complexitat de selecció és O(log N), on N és el nombre de processos llestos. El procés amb menor vruntime sempre s'executa primer, assegurant que cap procés pateixi starvation.

05 — Sistemes de Fitxers

ext4, Btrfs, ZFS, NTFS i ReFS

El sistema de fitxers no és un detall menor: determina la integritat de les dades, el rendiment d'escriptura, la capacitat de recuperació i les funcionalitats avançades disponibles.

ext4
Extended 4 · Linux · 2008
  • Journal per a integritat de dades post-crash
  • Extents: blocs contigus per a fitxers grans (menys fragmentació)
  • Fins a 1 exabyte de volum, fitxers de 16 TB
  • Compatibilitat màxima: muntat per qualsevol distro Linux
  • Madur, estable, lleuger: ideal per a HW antic
Estàndard · Recomanat HW Antic
Btrfs
B-Tree FS · Linux · 2009 → actiu
  • Copy-on-Write (CoW): mai sobreescriu dades en directe → integritat garantida
  • Snapshots instantanis (btrfs subvolume snapshot) sense cost d'espai inicial
  • Checksums per bloc (crc32c/xxhash): detecció de corrupció silenciosa (bit rot)
  • RAID integrat (0, 1, 5, 6, 10) a nivell de FS sense LVM addicional
  • Compressió transparent: zstd, lzo, zlib. Estalvi 20–60% en SSD
  • FS per defecte a Fedora (des de F33) i openSUSE
Avançat · Snapshots · Compressió
ZFS
Zettabyte FS · OpenZFS · 2005
  • Integritat end-to-end: checksum SHA-256/256GCM en cada bloc de dades i metadades
  • ARC (Adaptive Replacement Cache): cache intel·ligent L1/L2 en RAM i SSD
  • Deduplicació i compressió a nivell de pool: estalvi massiu en entorns amb dades repetides
  • RAID-Z1/Z2/Z3: equivalent a RAID 5/6 però sense el problema d'write hole
  • Usat en servidors de producció (TrueNAS, Proxmox, FreeBSD)
  • En Linux via OpenZFS (llicència CDDL, no GPL: mòdul extern)
Expert · Servidors · Màxima Integritat
NTFS
New Technology FS · Windows · 1993
  • Journal de metadades (no de dades) via $LogFile
  • ACLs granulars per fitxer i directori (integració AD)
  • Fluxos de dades alternatius (ADS): ús legítim i potencial per malware
  • Màxim volum: 256 TB (pràctic), fitxers de 16 TB
  • Sense checksums de dades: bit rot no detectat nativament
  • Lectura/escriptura nativa a Linux via kernel driver (ntfs3 des de 5.15)
Estàndard Windows · Compatibilitat Alta
ReFS
Resilient FS · Windows Server · 2012
  • CoW i integritat per checksums (similar a Btrfs/ZFS)
  • Optimitzat per a Spaces Direct (SDS) i Storage Spaces
  • Block Cloning: còpies instantànies sense duplicar dades
  • Limitació crítica: no suporta boot, no disponible a Windows 11 Home/Pro
  • Sense compressió nativa ni deduplicació integrada
Servidor · No disponible W11 Home
bash — Operacions Btrfs avançades
# Crear subvolum i snapshot instantani (sense cost d'espai)
$ btrfs subvolume create /mnt/data/home_vol
Create subvolume '/mnt/data/home_vol'

$ btrfs subvolume snapshot /mnt/data/home_vol /mnt/snapshots/home_$(date +%Y%m%d)
Create a snapshot of '/mnt/data/home_vol' in '/mnt/snapshots/home_20241115'

# Activar compressió zstd en directori existent
$ btrfs property set /mnt/data/home_vol compression zstd
$ compsize /mnt/data/home_vol
Processed 14823 files, 8401 regular extents (8401 refs), 0 inline.
Type       Perc     Disk Usage   Uncompressed Referenced
TOTAL      61%       3.2GiB        5.3GiB        5.3GiB
zstd       61%       3.2GiB        5.3GiB        5.3GiB

# Verificar integritat del filesystem (scrub)
$ sudo btrfs scrub start /mnt/data && sudo btrfs scrub status /mnt/data
scrub status for 7a3f...
    scrub started at Mon Nov 15 09:12:03 2024
    status:             finished
    duration:           00:02:47
    data_extents_scrubbed: 89234
    tree_extents_scrubbed: 4821
    no errors found

La detecció de corrupció silenciosa (bit rot) és un dels arguments més sòlids per a Btrfs i ZFS davant NTFS. Un estudi de Google (2010) sobre milions de discs va trobar que la corrupció silenciosa de dades és més freqüent del que s'assumia, especialment en HDD de consum. Sense checksums per bloc — com té NTFS — un fitxer pot estar corrupte sense que cap eina de diagnòstic ho detecti. Amb Btrfs/ZFS, cada lectura verifica el checksum i pot autocorregir usant una rèplica.

Font: Btrfs ReadTheDocs (oficial) · OpenZFS Documentation
06 — Dades de Benchmark

Linux vs Windows en Maquinari Antic

Maquinari de prova: Intel Core i5-3320M (2012), 4GB DDR3 1600, SSD SATA 240GB. Comparativa en condicions iguals de repòs i càrrega.

Mètrica Ubuntu 24.04 LTS Debian 12 (XFCE) Windows 10 22H2 Windows 11 23H2 Guanyador
RAM repòs
880 MB
560 MB
2.1 GB
2.5 GB
🐧 Linux
Temps boot (SSD)
8.2 s
6.1 s
18.4 s
22.7 s
🐧 Linux
CPU repòs
1.2%
0.8%
6.1%
8.3%
🐧 Linux
Compile kernel (make -j4)
312 s
298 s
521 s
558 s
🐧 Linux
Bateria (idle, portàtil)
~5.2 h
~5.8 h
~3.9 h
~3.6 h
🐧 Linux
Llicència GPL — Gratuït GPL — Gratuït ~139 € ~145 € 🐧 Linux

Mesures pròpies + referència Phoronix Test Suite · Kernel 6.8 · Windows 10/11 actualitzats novembre 2024. Valors orientatius.

07 — Conclusió

Per Què Linux Guanya en Maquinari Antic

Síntesi tècnica i recomanació argumentada.

⚙️ Kernel

El disseny monolític modular de Linux elimina l'overhead d'IPC intern del kernel híbrid de Windows. Cada mòdul no carregat és memòria i CPU estalviada. En HW amb 2-4GB RAM, aquesta diferència és determinant.

  • Mòduls carregables sense reinici
  • Menys serveis de sistema actius per defecte
  • Planificador CFS optimitzat per latència

🧠 Memòria

Linux arranca amb menys de 1GB en qualsevol entorn d'escriptori lleuger. Windows 11 consumeix 2.5GB en repòs. En una màquina amb 4GB, la diferència és el marge entre un sistema fluid i un sistema inutilitzable.

  • zRAM: compressió en memòria gratuïta
  • swappiness=10: prefereix RAM sobre swap
  • Sense SuperFetch que prealoca RAM

💾 Sistemes de Fitxers

Btrfs i ZFS ofereixen funcionalitats que NTFS i ReFS no podran igualar en les versions de Windows disponibles per a usuaris finals: snapshots, checksums per bloc i compressió transparent.

  • Btrfs: snapshots + compressió zstd gratuïts
  • ZFS: integritat màxima per a dades crítiques
  • ext4: lleugeresa i estabilitat provada

💰 Llicències

El cost zero de Linux no és un factor menor quan es parla de revitalitzar parc de maquinari antic. Per a una empresa amb 50 màquines, eliminar llicències Windows representa un estalvi de 5.000–7.000€ en software sol.

  • GPL: llibertat d'ús, modificació i distribució
  • Suport LTS: Ubuntu 24.04 fins 2029
  • Sense WaaS (Windows as a Service) forçat

La superioritat tècnica de Linux en maquinari antic no és una preferència ideològica: és una conseqüència directa de decisions d'arquitectura. El kernel monolític modular redueix l'overhead, les polítiques de memòria conserven RAM per a l'usuari, els sistemes de fitxers avançats (Btrfs, ZFS) ofereixen funcionalitats que NTFS no assoleix, i tot això a cost zero de llicència.

La recomanació tècnica és clara: per a maquinari anterior a 2016 amb menys de 8GB RAM, Linux amb Debian/Ubuntu LTS i sistema de fitxers ext4 o Btrfs representa la millor relació rendiment/cost/fiabilitat disponible al mercat avui. Windows 11 és tècnicament incompatible amb la majoria d'aquest maquinari i Windows 10 arriba al final del seu cicle de suport l'octubre de 2025.

Documentació Oficial

Fonts i referències