You can make them by hand using wrappers for different programming languages, manual implementation, or use a SDK (like fmiCpp). Using a SDK you avoid reimplementing the common functions. It is also possible to make them from tools. Several modelling tools support exporting a simulation model to an FMU. Have a look here for an overview of the different tools that support the FMI standard.
Yes! OSP is an open-source computing and software development platform for developing FMU based simulators, running FMU based co-simulations and verifying connections between FMUs.
The core of the platform is a set of software libraries and tools that you can use to build your own simulator. The platform also provides two reference simulator implementations: a web based demo application and command line application. For more information see Software.