The Linux kernel has to handle many different sources of data that should not be trusted: user space, network connections, and removable storage, to name a few. The kernel has to remain secure even if one of these sends garbled (or malicious) data.
Preventing your iPhone from running out of juice when you're on the go all day is a challenge. Here's what I do to make sure my phone continues to stay powered on.