DSL использует для корневой файловой системы squashfs+unionfs и не грузит ее полностью в память (если не задать спец. ключ при запуске, что то вроде copy2ram). А память "улетает" так потому, что линукс все, к чему обращается, пытается закешировать; при малейшей потребности в физической памяти кеш уменьшается. Поэтому загрузка RAM ~90% - это штатная ситуация

Пересобрать ядро не так уж и сложно, сложнее rootfs сделать. Копать начинать нужно либо отсюда
http://www.linuxfromscratch.org/ либо отсюда
http://buildroot.uclibc.org/ Хотя buildroot - это просто набор скриптов для автоматизации сборки (причем, глючный

).
В общем, консольная отладочная версия с 2.6.21 ядром и uclibc занимает примерно 7мб на диске и 15мб в памяти (rootfs полностью грузится в память). И это включая многие ненужные в боевых условиях приложения, вроде mc. Да и не debug-версия ядра тоже будет меньше.