512 mb са доста ram и е трудно да ги заемеш изцяло с
програми. по принцип кернелът ползва цялата неалокирана
памет (т.е. такава, която не е присъединена към адресното
пространство на някоя програма) за дискови буфери.
процеса на алокация е динамичен - колкото повече памет
заемат програмите, толкова по-малки стават буферите.
в някакъв момент се достига до минималния допустим
размер на буферите и тогава кернелът започва да яде
от виртуалната памет. обаче във всеки от междинните
моменти free (или cat /proc/memstat ако предпочиташ)
твърди, че цялата налична памет е изконсумирана.
единствения момент, когато това не е така, е след boot,
преди кернелът да е извършил достатъчно i/o операции,
за да напълни буферите.
накратко казано, отговорът на твоя въпрос е: вероятно си
гледал статистиката на двата кернела в различен момент
след boot-ването.
определено има доста опции за конфигуриране на паметта,
но те не са достъпни от make menuconfig. за някой неща
се изисква бърникане по хедърите, за други - писане в
разни /proc файлове. добра отправна точка за научаване
на повече подробности около тези бъзикни е страницата:
http://linuxperf.nl.linux.org/