The biggest is that boot time would be much, much lower as we don't compile modules we don't need. We could compile commonly used hardware into the kernel rather than load it as a module, too.
Also, we can choose to compile features that are optimized for our hardware versus more-general features.
We can use the latest kernel (e.g. including the Completely Fair Scheduler in the upcoming 2.6.23).
If we want YAFFS support we would need to compile a custom kernel.
Read a book at http://www.kroah.com/lkn/.
Read a how-to at http://www.bitbenderforums.com/vb22/showthread.php?postid=296104#post296104.
* ASUS has yet to release their kernel sources. No - they are not in the giant 1.8GB zip file on their support site.
* Our ability to switch to a different kernel revision will depend on whether or not ASUS releases the sources to the specialty kernel modules required for wifi, wired ethernet and the special keys on the eeepc keyboard
* It might be worth turning on CONFIG_EMBEDDED. There's a limit to what you're going to do on a 900mhz machine anyway, and it allows us to turn off unnecessary kernel features.
* The same can be said for filesystems. We can probably dump at least JFS, XFS, reiser3, and the filesystems included for BSD compatibility. Since it's an embedded box, we can drop RAID support and enterprise volume management.
* 'twould be best to remember, when building the kernel, that any memory used therein is non-pageable. Applications can be paged out and reloaded from disk - but anything used in the kernel can't be used for anything else. Thin is in.