abstraction: a concept or idea not associated with any specific instance
So in computer science, I think that abstraction deals with what something does, not with how it does it. So saying that all Cars can drive, without considering more specific details of the Car, is an abstraction. I don't know if that is any more helpful than the wikipedia article, though. Perhaps some others can add to the discussion.
>How would it relate to 'kernels as an abstraction layer for hardware'?
The kernel talks to the hardware so that applications don't have to consider every possible hardware configuration. It would really suck to require a different build of Microsoft Word because you bought a new monitor, ne?
>So how do kernels then run on different computers regardless of hardware?
There's no magic. The kernel is simply written to recognize and interface with supported hardware. The broader range of hardware supported, the more portable the kernel.
ermm .. Sorry for starting another thread. Didn't notice the replies to this one. The mail must have got lost somewhere in my inbox.
So what happens when the hardware configuration changes? Is this where drivers come in?