22
Symbian will continue to develop software for smartphones and communicators, and will use the
increased investment, resources and expertise of its owners to expand its development, participate
more widely in setting industry standards, and increase its licensee and developer base.
8.2 Core
EPOC is a whole operating system encompassing a base, graphics, applications, Java runtime,
wireless communications protocols and applications, SDKs and many other features. The
components described in this chapter help to define the shape of EPOC and distinguish it from
other OSs intended for desktop or hand-portable computers: in this sense, they are truly the core
technologies of EPOC.
This chapter is part of an EPOC overview series: other chapters look at the whole of EPOC,
communications, software development options including the Java environment, applications, and
data synchronization with PC-based applications.
8.2.1 Introduction
EPOC is delivered as a set of components, which are built into:
•
ROMs for execution in target machines (components may also be run from flash ROM,
removable media, or RAM)
•
the Windows-hosted EPOC emulator
•
the WINC Windows utility package
•
EPOC Connect, for PC-based data synchronization, backup, software installation etc
•
tools and documentation that go into developer SDKs and OEM toolkits
The components described in this paper help to define the shape of EPOC and distinguish it from
other OSs intended for desktop or hand-portable computers. The core components can be grouped
into the following major groups:
Base
runtime and tools for building ROM, emulator and WINC components
Engine
Support
components without any user interface, that are used by application engines
Graphics
components for drawing graphics, printing, fonts and re-usable views
System
and GUI
graphical user interface, system shell, control panel and other components which define the look-
and-feel of an EPOC machine, and provide a basis for its graphical programming
8.2.2 Base
The base provides the EPOC runtime, APIs for higher-level programs, and toolchain used for
building programs and ROMs.
8.2.2.1 Portable runtime system
EPOC is a portable operating system with three major implementation families:
•
target machines: EPOC is a full OS which boots on a ROM-based device and manages all
aspects of that device — scheduling, memory, power, timers, files, keyboard, pointer,
screen, PC Cards, CF-card removable media, etc. Only the ARM3 processor architecture
has been made available for general use. EPOC has however run native on x86 PCs,
ARM4 and StrongARM. Support for ARM’s Thumb architecture, and for Motorola’s
M*Core architecture, is under development.
•
windows-based emulator: EPOC presents the same user-side APIs as its machine
implementations, but rather than running native on device hardware, EPOC calls Win32
services to provide a highly effective emulator for software development and
demonstration purposes. File access is constrained to specified subdirectories, to prevent
uncontrolled access to the user’s PC files by software under development.
•
windows-based tools, the so-called WINC environment: EPOC presents user-side APIs
which are binary compatible with the emulator build, but the runtime includes no