Symbian
Symbian Developer Library

SYMBIAN OS V9.4

Feedback

[Index] [Previous] [Next]


P.I.P.S. Overview

[Top]


Introduction

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.

[Top]


The differences between Symbian OS and other operating systems

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.

[Top]


What P.I.P.S. is not

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.