PICsim emulates some PIC microcontroller and periferics such as USART and timers, the simulator architecture permit easy implementation of external elements in c language. It can be used as a standalone simulator (picsim executable) or as a library in other programs (As in PICSimLab).
com0com - For serial emulation in windows http://com0com.sourceforge.net/
tty0tty - For serial emulation in linux https://github.com/lcgamboa/tty0tty
gputils - For assemble examples http://gputils.sourceforge.net/
sdcc - For compile examples http://sdcc.sourceforge.net/
PICSimLab - Simulator that use PICsim https://github.com/lcgamboa/picsimlab