That appears to be two different questions (regarding Linux Kernel, and embedded systems). While Linux can and is used in embedded systems, there is a large range of embedded applications and platforms for which it is entirely unsuitable or impossible to deploy. (including the Arduino and PIC suggestions already given).
If you are considering embedded Linux, you first need a target platform with sufficient resources to run it; that will typically be an ARM based device with an MMU (ARM9, 11, XScale or Cortex A*n*). You can use an ARM7 or similar MMU'less microcontroller (with sufficient memory resources) with uCLinux (micro-controller Linux), but not having MMU support kind of misses the point and much of the benefit of using Linux in the first instance.
My advice is that you clearly separate these two requirements, while Linux may seem inexpensive (or even free), the hardware required to run it is not. It will need at least 4Mb of RAM and similar non-volatile storage just to start, while using a simpler RTOS kernel and third-party libraries, you could get real-time priority based pre-emptive scheduling, IPC, an SD card based filesystem, networking and USB support in less than 50kb! Using Linux it may also shield you from exposure to the fundamentals of embedded systems that you would do well to learn.
A target platform based on an ARM Cortex-M3 or M4 would provide a good balance between cost and performance, and will be suitable for running typical embedded RTOS's such as eCOS, FreeRTOS or uC/OS-II. They are more complex perhaps that AVR or PIC based systems, but far more suited to running C++. Microchip's compilers do not even support C++, even on the MIPS based PIC-32!
A useful portal for all things embedded is http://www.eetimes.com/design/embedded (formerly www.embedded.com).