|
||
P.I.P.S. Is POSIX on Symbian OS (P.I.P.S.). It provides an API layer, above the Symbian OS native APIs, that is more closely aligned with industry standard APIs making Symbian software development more accessible to developers who program using the C language.
Symbian OS already provides a library called 'ESTLIB
',
which includes a subset of Standard C APIs. This was created to allow the Java
virtual machine to run on Symbian OS rather than to allow applications written
in C to be ported to Symbian OS. Furthermore, the functionality provided by
ESTLIB
is not fully compliant with the Standard C and POSIX
standards. Symbian intends to deprecate ESTLIB
once P.I.P.S. is
mature.
P.I.P.S. supplies a new framework of POSIX 'C' APIs to be used by
developers with RTOS, Linux or Microsoft Windows® knowledge. The new APIs are
packaged into industry standard libraries - libc
,
libm
, libpthread
and libdl
- and will
help reduce development costs.
The P.I.P.S. libraries are included in ROM on certain smartphones based on Symbian OS v9.3 onwards. For smartphones based on earlier versions of Symbian OS, a freely downloadable SIS file is available from the Symbian Developer Network (specifically http://developer.symbian.com/wiki/display/oe/P.I.P.S.+Home) and can be installed on any Symbian OS v9.x smartphones.
Symbian OS is an operating system designed for mobile devices and comes in the form of many libraries that contain hundreds of classes and thousands of member functions.
Symbian OS has been specifically designed to provide efficient memory and power management.
P.I.P.S. has been introduced to Symbian OS to make it more attractive to third party developers with C/C++ experience and to allow them to port their applications to Symbian OS with greater ease.
The P.I.P.S. initiative aims to reduce the development cost of porting
software to run on Symbian OS. It achieves this by providing a POSIX-like API
layer above the Symbian OS. Given the structure of Symbian OS, however, it is
not possible to provide a fully compliant API and some functionality, such as,
fork()
, exec()
and
signals()
, is not supported. This guide details such
non-compliance and recommended alternatives.
Specific differences between Symbian OS and Unix-like systems are described in the relevant sections of this P.I.P.S. Guide.
The P.I.P.S. environment is not a UNIX® application
environment. You will not be able to run a UNIX application on Symbian OS 'as
is'. At a minimum, you will need to create a .mmp
file and a
bld.inf
file for the application and rebuild the application's
source code for Symbian OS. For further information, see
The Symbian OS build process section of the Symbian OS Library.
If the application does not work at the first attempt, you may have to modify the application code to replace missing APIs or port the required APIs to extend the P.I.P.S. environment. To find out more about porting C libraries to Symbian OS, see the Porting Using P.I.P.S. sections.
The P.I.P.S. environment is not 100% POSIX compliant and it is not
officially certified as POSIX compatible. However, the implementation is as
compliant as the underlying Symbian OS platform allows it to be. For example,
P.I.P.S. does not provide the APIs fork()
and exec()
,
but it does provide popen()
, mkfifo()
and so on, which can be used to implement well known alternative patterns. For
further information, see the Process Creation section.