Furor Teutonicus blog | over | volg | teuto | lyme | archief | doneer | todo
🕰️
  ⬩  
✍️ Evert Mouw
  ⬩  
⏱️ 3 min

zRAM maakt Linux en Android technisch superieur aan Windows

Jouw Android telefoon is eigenlijk een versie van Linux. Maar de Linux kernel draait ook in supercomputers, rekencentra, of gewone desktop PC’s. Linux is overal. Dus als de Linux kernel slimmer wordt, profiteren er een hoop mensen — ook de mensen met Android telefoons.

zRAM is de laatste toevoeging aan de Linux kernel. Voor noobs volgt nu een korte uitleg. Dat kan ik goed uitleggen, omdat ik zelf ook nog maar net boven het niveau van een noob zit op dit terrein 😉

Computerontwerp 101

Een computer, da’s eigenlijk een “rekenaar”. Dat ding doet berekeningen of opdrachten achter elkaar. Die haalt ie uit het zgn. (werk)geheugen of RAM. Dat geheugen wordt ook wel core memory genoemd. Veel telefoontjes hebben 512 MB geheugen, of soms zelfs het dubbele, 1 GB. Veel laptops en PC’s hebben 2 GB of soms wel 16 GB. Volop variatie dus.

Hoe meer core, hoe meer plaatjes en programma’s en ander spul je erin kwijt kunt. Daar kan de processor of CPU, de werkelijke “rekenaar”, dan mee aan de slag.

Daarnaast heb je nog zgn. “opslag”, bijvoorbeeld een USB stick of je harde schijf. Als je een programma wilt starten, of een bestand wilt bewerken, dan wordt dat in de regel eerst naar je core gekopieerd, en dan pas kan de CPU er iets mee doen.

Deze manier van werken wordt ook wel de Von Neumann architectuur genoemd.

Von Neumann Architecture

Swap of pagefiles

Als je geheugen (core, RAM) vol zit, kan er geen nieuw programma bij. Soms loopt je computer dan vast. Dat is niet handig…

Daar hebben we een tructje voor. Er is vast wel een deel van het gegeugen met wat inhoud welke niet vaak gebruikt wordt. We nemen dat deel, schrijven het tijdelijk weg naar de harde schijf, en hebben dan weer wat core beschikbaar. Als de tijdelijk elders opgeslagen core toch nodig is, wisselen we gewoon weer. Dat wisselen wordt ook wel swappen genoemd. In Linux heet het deel op de harde schijf dat daarvoor gebruikt is een swap partition, soms ook een swapfile. In Windows heet het de pagefile.

Het nadeel is dat het verd* langzaam is. Je harde schijf of zelfs je SSD is vele malen langzamer dan je RAM. Het is dus echt een noodoplossing. Niet voor niets kopen veel computerhobbyisten en -professionals vaak extra RAM voor hun computers. Dat swappen is een noodzakelijk kwaad dat zoveel mogelijk beperkt moet blijven. En als je een SSD hebt, dan gaat het wel wat sneller maar goed voor de levensduur van je SSD is het niet.

zRAM of CompCache

Moderne processors zijn snel, maar opslag (SSD, HDD) is nog steeds erg langzaam vergeleken met RAM. Het liefst zouden we de swap dus op een snelle plek opslaan… en waarom niet in het RAM?

Dat klinkt tegenstrijdig, tot je bedenkt dat veel data goed te comprimeren is. Comprimeren doe je als je een ZIP bestandje maakt of een afbeelding als JPG opslaat. Dubbele informatie wordt slim opgeslagen. Dus in plaats van “1 1 1 1 1 1” sla je gewoon “6 x 1” op, dat is korter.

Als je nu een deel van je core memory reserveert voor een gebied waar je alles comprimeert, dan kun je dus efficiënter die ruimte gebruiken zonder dat je terug hoeft te vallen op de langzame opslag. zRAM valt uiteen in twee delen: RAM staat voor core of geheugen, en z staat voor compressie (de z wordt daarvoor in de computerwereld vaak gebruikt). In zo’n zRAM gebied kun je een swapfile opslaan. En volgens de Gentoo Wiki is het nog behoorlijk robuust ook:

At one point during linking chromium, I saw the system using just over 5G of zram swap, while using about 1.2G of ram, about 100MB of hard disk swap. The desktop was still responsive 🙂

Dat is voor alle Linux installaties interessant. En zeker voor Android toestellen, die vaak maar een beperkte hoeveelheid RAM hebben. Windows heeft zoiets nog niet.

zRAM is al een hele poos in ontwikkeling en heette eerst CompCache. Meer informatie over zRAM:

Reacties

✉ Jules op 2013-12-25

OS X 10.9 heeft het ook (kijk bij compressed memory). Slim en simpel: http://www.apple.com/osx/advanced-technologies/


Deze blogpost werd in december 2022 overgezet van WordPress naar een methode gebaseerd op Markdown; het is mogelijk dat hierbij fouten of wijzigingen zijn ontstaan t.o.v. de originele blogpost.