Possibly because the version stored on disk is heavily compressed (the keyword squashfs comes to mind), and its expanded to its full form when its in memory?
besides uncompressing itself, there will be other info that is needed at runtime that requires dynamic memory allocation beyond the size of the kernel itself, like hardware/memory maps, framebuffers, filesystem/networking stuff, caches etc.
How does it actually need 20mb of RAM if the system fits into 1.44mb?
Ok, a bit of an academic question, but still
Possibly because the version stored on disk is heavily compressed (the keyword squashfs comes to mind), and its expanded to its full form when its in memory?
besides uncompressing itself, there will be other info that is needed at runtime that requires dynamic memory allocation beyond the size of the kernel itself, like hardware/memory maps, framebuffers, filesystem/networking stuff, caches etc.