Fools ignore complexity; pragmatists suffer it; experts avoid it; geniuses remove it.
This chapter describes the architecture of P.I.P.S. An insight into the design and implementation of this framework will provide you with a better understanding of what the framework is capable of and what its limitations are. While you can generally rely on the architectural information presented in the chapter, implementation details of the various individual components may change as P.I.P.S. evolves.
The P.I.P.S. framework is composed of the following components: the backend, the core libraries, the addons, the
stdcpp library, the emulator's writeable static data (WSD) library, the locale/
stdio subsystems and the glue code. These components are shown in Figure 13.1.
The core libraries are those mandated by the POSIX standard on any compliant operating system:
libc, libm, libpthread and
libdl. The bulk of the code in
libm was ported from the FreeBSD libraries. On the other hand,
libdl were written from scratch around native thread and DLL management interfaces.
The addons are utility libraries that were ported or written using the P.I.P.S. framework and made available on Symbian OS. These are included in the Symbian platform from the first release onward but are also available as part of the Open C plug-in for earlier versions of Symbian OS with S60 3rd Edition. These include
libssl, libz and ...