Big Brother прав. Линукс сожрёт всё, что найдёт.
И это правильно. Фишка в том, что продолжение «и ещё попросит» к нему слабо применимо.
В настоящее время сижу с нетбука с 512 памяти. Думаю, что если бы его SSD не тормозил ТАК на запись, то было бы вообще комфортно. С другой стороны, перед глазами машинка с четырьмя гигами (никаких иксов, жрущих память браузеров и жабер-клиентов), в которой конечно запущены одновременно никогда не меньше полутора тысяч процессов, но всё же ЧЕТЫРЕ гига! И они зохаваны!
Смысл этого вот какой: система стремится работать быстрее. Для этого она ненужную процессам память отдаёт под кэш страниц и файловых систем. А нужную, но не очень (например, страницы, занятые какими-нибудь getty на виртуальных консолях) она освобождает до особого распоряжения, выбрасывая сегменты кода вообще (их всегда можно почитать из испольняемого файла), а сегменты данных — в своп. Освобождённая таким образом память идёт в использование в качестве кэша страниц и файловых систем/блочных устройств.
Посмотрите на систему с помощью top — увидите, сколько памяти находится в буферах и кэше.
Кстати, на поведение системы виртуальной памяти в линуксе можно влиять через sysctl vm.swappiness, устанавливая его в значение от нуля до ста (по умолчанию 60, что соответствует поведению ядра 2.4, в котором эта штука не регулировалась). Этот параметр управляет «свопливостью» системы, и чем он больше, тем больше ядро стремится засунуть ВСЁ в своп, увеличивая кэши и буфера. И наоборот, при уменьшении до нуля своп будет использоваться только при крайней необходимости (или совсем не будет? не помню), то есть когда или свопить — или вызывать уже OOM Killer, фэйлить malloc()'и и вообще паниковать.
Кому интересно — можно погуглить на тему «Linux VM subsystem» или почитать содержимое каталога Documentation в дереве исходников ядра.