Is there any free TEE (Trusted Execution Environment) software development environment / emulator / Virtual Machine that is compatible with GlobalPlatform TEE specifications? So people could learn how to develop TEE trusted apps and client apps without buying any expensive SDK and hardware development boards from commercial TEE vendors?
Here are at least 2 options to develop TEE apps using only your regular computer with free SDK and no external hardware:
Take a look at Open-TEE project sponsored by Intel and University of Helsinki.
Open-TEE is not really a TEE OS per se, because it runs inside your main OS ( GNU / Linux / Android ). Proper TEE by definition would have to run outside of your main OS.
Open-TEE is not designed for production use, b/c it does NOT really run in the "secure world". It runs in the "main world" instead. It was designed to provide an easy means to develop and debug "trusted apps" and "client apps" in a GlobalPlatform-compliant software environment. Debugging trusted application running in "secure world" would be really difficult, and so trusted applications in Open-TEE are running in the "main world" / "main OS" (not in "secure world").
Open-TEE is a virtual hardware-agnostic TEE implemented completely in software. Open-TEE conforms to GlobalPlatform specifications. It allows developers to develop and debug trusted applications with the same tools they use for developing software in general. Once your trusted application is fully debugged, it can be compiled for any actual hardware TEE like Trustonic, etc.
OPTEE is a real open sourced TEE OS mostly developed by Linaro (one of the largest contributors to open source Linux and tools for ARM platform), and STMicroelectronics (one of the largest European semiconductor manufacturers).
With some skill and luck, you should be able to deploy OPTEE on a regular Linux computer using QEMU emulator.
And here is how it looks like when running on the real hardware
(image credit to Linaro)