Symbian3/SDK/Source/GUID-F6B9860A-E7F2-5B03-878D-9BCA0AF029C2.dita
author Dominic Pinkman <dominic.pinkman@nokia.com>
Fri, 11 Jun 2010 12:39:03 +0100
changeset 8 ae94777fff8f
parent 7 51a74ef9ed63
child 13 48780e181b38
permissions -rw-r--r--
Week 23 contribution of SDK documentation content. See release notes for details. Fixes bugs Bug 2714, Bug 462.

<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies) All rights reserved. -->
<!-- This component and the accompanying materials are made available under the terms of the License 
"Eclipse Public License v1.0" which accompanies this distribution, 
and is available at the URL "http://www.eclipse.org/legal/epl-v10.html". -->
<!-- Initial Contributors:
    Nokia Corporation - initial contribution.
Contributors: 
-->
<!DOCTYPE concept
  PUBLIC "-//OASIS//DTD DITA Concept//EN" "concept.dtd">
<concept id="GUID-F6B9860A-E7F2-5B03-878D-9BCA0AF029C2" xml:lang="en"><title>Quick
Start</title><prolog><metadata><keywords/></metadata></prolog><conbody>
<p>Generic OS Services is a collection of components and libraries that provide
generic OS level services to the Symbian platform components and applications. </p>
<section id="GUID-2705CC8F-AE74-4627-8A07-1FE48F187EE6"><title>Getting started with Generic OS Services</title> <p>The following
list briefly describes how device creators or Symbian Developers can use the
APIs of the components and libraries provided by Generic OS Services: </p> <ul>
<li id="GUID-E5E9B035-EA72-5931-9295-6601A5A202CA"><p>Use the Plug-In Framework
(ECom) APIs to register, discover plug-ins and load appropriate plug-ins. </p> </li>
<li id="GUID-2C3836C2-5F9B-5E5B-95A8-725325956AFF"><p>Use the P.I.P.S. libraries
(<codeph>libc</codeph>, <codeph>libm</codeph>, <codeph>libpthread</codeph> and <codeph>libdl</codeph>)
to port POSIX-based applications to the Symbian platform. </p> </li>
<li id="GUID-195FD344-AF6B-517A-869C-99A816FE45CB"><p>Use the Standard C++
libraries to develop or port Standard C++ applications or libraries to the
Symbian platform. </p> </li>
<li id="GUID-71C8DD3C-9989-5EB0-AC01-BACACB0BB683"><p>Use the <xref href="http://refspecs.freestandards.org/LSB_3.1.0/LSB-Core-generic/LSB-Core-generic/librt.html" scope="external">Librt</xref> library APIs to port Librt-based applications
onto the Symbian platform quickly and easily. </p> </li>
<li id="GUID-83754BD8-F2AA-55FC-999F-BF46BDD1CA61"><p>Use the EUser High Level
(EUserHL) library to do better string handling, resource management, and error
handling and object creation along the lines of standard C++ practices. EUserHL
library provides a usability layer to hide away some of the complexities of
the Symbian platform. </p> </li>
<li id="GUID-6BEBEC4E-71F5-56F0-A731-DD498446B6BB"><p>Use the Zip Compression
Library APIs to perform file and stream compression and decompression. </p> </li>
<li id="GUID-D62D3C16-0C6A-5569-BCD7-546EBF687282"><p>Use the task scheduler
APIs to develop applications with scheduling options and capabilities. </p> </li>
<li id="GUID-26FD6D1B-5F7C-5C4B-8474-B5B7D4BB7D0F"><p>Use the Active Backup
Client APIs to create backup and restore software with complete control of
the data backed up and restored. </p> </li>
<li id="GUID-D9B2CA30-9AA0-529C-B531-5B511BD05B7C"><p>Use the HTTP Utilities
library APIs to extract URI components, construct and modify Uniform Resource
Indicators (URIs), text utilities, and URI component utilities required to
work with URIs. </p> </li>
<li id="GUID-4FC76033-12BC-5D76-AD3F-D4825E3D6C1B"><p>Use the MIME (Multipurpose
Internet Mail Extension) Recognition Framework APIs to implement data type
recognition using MIME recognizer plug-ins. </p> </li>
<li id="GUID-22816C73-E2CC-57FD-BB18-8A3DA071F95B"><p>Use the Basic Application
Framework Utilities library (BAFL) to in turn use utilities, such as clipboard,
command-line parser, descriptor array, environment change notifier, incremental
matcher, resource files, localized names of plug-ins, system sounds and string
pools. </p> </li>
<li id="GUID-B4CB6CF9-8022-55A8-9642-2F79306C6653"><p>Use the Base Services
Utility library (BSUL) to validate messages and handle errors. </p> </li>
<li id="GUID-F239EF07-F3DC-5C23-8A21-44CDFE798322"><p>Use the Activity Manager
library to enable clients to monitor user inactivity (idle time) and user
activity (key press). </p> </li>
<li id="GUID-FFF66809-C883-570C-A741-9182280B2F7C"><p>Use the System Utility
library to perform the following tasks: </p> <ul>
<li id="GUID-62F47958-AFEF-5D09-BF39-88676E8E889B"><p>Retrieve software and
language package version strings for display purposes. </p> </li>
<li id="GUID-B3726DF9-7108-5C0A-A713-2B0BAA36051A"><p>Check for free space
on a disk drive before file creation or writing. </p> </li>
<li id="GUID-F47C051F-921C-5B72-8498-0D4AB4FB295F"><p>Get device type information
(phone model) for display purposes. </p> </li>
</ul> </li>
</ul> </section>
<section id="GUID-403DCD77-1F14-4E82-85DE-98419E629A47"><title>Architecture</title> <p>The Generic OS Services module is
a group of non-related components and libraries that provide OS level services
to other components of the Symbian platform. The components and libraries
in Generic OS Services are grouped into the following collections: </p> <ul>
<li id="GUID-D831C8AB-D3AF-57EB-81CF-E4EF1E57CBED"><p><xref href="GUID-9208E03A-CC7A-57A9-84BD-778B99040842.dita"> Compression
Libraries</xref>  </p> </li>
<li><p><xref href="GUID-E2DE2C6F-E071-5E88-96F1-D71DDED84609.dita">Generic Open
Libraries</xref></p></li>
<li id="GUID-5F25107F-DF98-5DB1-9D4A-B8A7B68B2919"><p><xref href="GUID-94215E49-605B-51BA-B215-10BDA1A0C013.dita">Generic
Services</xref>  </p> </li>
<li id="GUID-FE8F4625-0D24-5113-A72F-B9E70801284F"><p><xref href="GUID-324107D1-6E0B-56DD-BDC0-7296F688A9CF.dita"> Low
Level Libraries and Frameworks</xref>  </p> </li>
</ul> <p>The following diagram outlines the Generic OS Services collections
and components associated with each collection: </p> <fig id="GUID-3DCD7AF8-7355-5752-A569-EA4F9078C739">
<title>              Collections and components of Generic OS Services   
        </title>
<image href="GUID-AD95D78A-9323-5E97-96C4-FB4872B66755_d0e144346_href.png" placement="inline"/>
</fig> </section>
<section id="GUID-842B935E-D653-4EFD-9BB7-2E819BBE17DF"><title>Technologies</title> <p>Generic OS services enables, implements
or uses the following technologies: </p> <ul>
<li id="GUID-66896EAF-09A0-5EBB-A496-106F94A924EA"><p> <b>zlib:</b> The <xref href="GUID-5D14ADEC-ED83-5FA4-B551-C57CAE4F79BE.dita">Zip Compression Library</xref> (EZLib)
provides C++ wrapper classes that encapsulate the functionality of the Open
Source <xref href="http://en.wikipedia.org/wiki/Zlib" scope="external">zlib</xref> library
v1.2.3. It provides stream and file compression and decompression functionalities. </p> </li>
<li id="GUID-EF1DE4A8-CBE1-5DD3-9D89-E2EAC1CC1B29"><p> <b> Standard C++:</b> A
Standard C++ environment with IOStream and STL (Standard Template Library)
libraries enables you to develop or port Standard C++ applications or libraries
quickly and easily onto the Symbian platform. For more information, see the <xref href="GUID-4492D5C1-C64E-5561-8A3F-8D887603B6FB.dita"> Standard C++ Porting Tutorials</xref> section. </p> </li>
<li id="GUID-95F58286-C65B-5EC3-A432-1C3C5CA02269"><p> <b>P.I.P.S. Is POSIX
on Symbian Platform (P.I.P.S.):</b> P.I.P.S. provides an API layer, above
the Symbian platform native APIs, that is more closely aligned with industry
standard APIs making Symbian software development more accessible to Symbian
Developers who program using the C language. Symbian Developers can use the
P.I.P.S. libraries (<codeph>libc</codeph>, <codeph>libm</codeph>, <codeph>libpthread</codeph> and <codeph>libdl</codeph>)
to port POSIX-based applications to the Symbian platform. For more information,
see the <xref href="GUID-C4C85189-BA6F-5F11-ABB3-727D8C1F5984.dita">P.I.P.S. Porting
Tutorials</xref> section. </p> </li>
<li id="GUID-571DD883-A5A6-5A89-9092-47279A521685"><p> <b> POSIX.1b, Real-time
extensions:</b> The Librt library enables support for POSIX.1b, Real-time
extensions on the Symbian platform and is based on the Linux Standard Base
(LSB) 3.1 specification. It covers features such as shared memory, clocks
and real time emulation for timers. Support for the Librt library on the Symbian
platform enables you to port Librt-based applications onto the Symbian platform
quickly and easily. For more information, see the <xref href="GUID-6565B222-4036-5C3D-8319-4CDDA3F2098D.dita">Librt</xref> section </p> </li>
<li id="GUID-CBF47924-085E-5546-92D8-D9269072B816"><p> <b>MIME (Multipurpose
Internet Mail Extension):</b> MIME is an internet standard system
for identifying the type of data in a file or stream. Types can include graphics,
photos, audio, video files and formatted text. MIME type recognition enables
devices to identify data in streams or files and start appropriate applications
automatically. </p> <p>This technology is implemented by the MIME recognition
framework component. The MIME recognition framework implements data recognition
using MIME recogniser plug-ins. For more information, see the <xref href="GUID-F18D0E06-2FB8-5339-AF31-02CC7D5A8010.dita">MIME
Recognition Framework</xref> section. </p> </li>
<li id="GUID-51BFDE39-44E7-51E6-82BC-2F45738A0ADD"><p> <b>ECom Plug-in:</b> The
Plug-in (ECom) framework is a generic framework that enables registration
and discovery of plug-ins, and the loading of an appropriate plug-in. The
Plug-In framework is intended to provide a common and system-wide mechanism
for instantiating a dynamically determined component. For more information,
see the <xref href="GUID-9E92EE30-F2E2-5F28-BB2A-391C09EC69D2.dita">Plug-in Framework</xref> section. </p> </li>
</ul> </section>
</conbody></concept>