L4Env is a programming environment for application development on top of the L4 microkernel family. L4Env is developed as a part of the Dresden Real-Time Operating System (DROPS) and is still under construction.
Prior to L4Env, most L4 applications had their very own idea about the environment (libraries, interfaces and so on) in which they were executed. Almost every programmer had his own set of libraries he used to build his applications, which resulted in huge problems if someone tried to combine components developed by different authors. Frequent problems were conflicting implementations of common functions (like printf) or conflicts caused by the lack of a central management of resources like threads or virtual memory.
The intention of L4Env is to define a set of functions which describe a minimal environment. This minimal environment is available for every L4 application. Hence, all applications and especially all libraries can use these functions. Libraries which are intended to be used by many different applications should only use these functions to avoid dependencies to other libraries.
L4Env also decreases the dependencies to a certain L4 API or hardware architecture, making applications more portable.