Apologies for the slightly vague title. Im having trouble discerning the difference between the two. For instance, more often than not when I see simulation(of Real Time Systems) I notice many who modify the linux kernels (2.6.xx the exact one eludes me). Then I see other software that are written in C++, Ada, and whatnot that don't modify any kernels but also do simulation of real time systems.
Then I come across the term testbed. Is that not a form of a simulator also? How are they similar and how are they not alike?