Впечатляет. И вроде правильно
Но виджет всё равно врёт.
...
А он пишет, что в мибибайтах (см. аттач)
А индикатор, вообще зашкаливает, а занятая память у него совсем ничего. И как свободную, её тоже не посчитаешь
По виджету это надо спрашивать у кде-ников: откуда они взяли этот объём.
Моя логика проста как три копейки:
Ядро сообщает о свободной памяти, занятой под буферы и кеш. Последние два можно почти полностью сбросить освободив больше памяти.
Если сплюсовать свободную, буферы и кеш, в остатке, после вычитания из общей, получится то, что отбражает free за вычетом буферов и кеша, т.е. то что считается занятой памятью, освободить которую можно только выгрузив из памяти какую-то программу.
Оперируем только теми числами, которые сообщило ядро, а финальный результат сравниваем с тем, о котором сообщил free, - и что характерно, результат совпадает :
$ grep '^Mem[T,F]\|^Buff\|^Cach' /proc/meminfo ; free -k
MemTotal: 8209436 kB
MemFree: 7044512 kB
Buffers: 54716 kB
Cached: 375140 kB
total used free shared buffers cached
Mem: 8209436 1164924 7044512 0 54716 375140
-/+ buffers/cache: 735068 7474368
Swap: 0 0 0
$ bc -l
8209436-(7044512+54716+375140)
735068
quit