Wiley
Wiley.com
Print this page Share

Symbian OS Internals: Real-time Kernel Programming

ISBN: 978-0-470-02524-6
936 pages
December 2005
Symbian OS Internals: Real-time Kernel Programming (0470025247) cover image
Take a look inside Symbian OS with an under-the-hood view of Symbian's revolutionary new real-time smartphone kernel
  • Describes the functioning of the new real-time kernel, which will become ubiquitious on Symbian OS phones in the next 5-10 years
  • Will benefit the base-porting engineer by providing a more solid understanding of the OS being ported
  • Contains an in-depth explanation of how Symbian OS drivers work. Device drivers have changed considerably with the introduction of a single code - this book helps those converting them to the new kernel
  • The book has broad appeal and is relevant to all who work with Symbian OS at a low level, whatever Symbian OS they are targeting
  • Written by the engineers who actually designed and built the real-time kernel
See More
Symbian Press Acknowledgments.

About this Book.

About the Authors.

1 Introducing EKA2.

1.1 The history of EKA2.

1.2 Basic OS concepts.

1.3 Symbian OS design.

1.4 Summary.

2 Hardware for Symbian OS.

2.1 Inside a Symbian OS phone.

2.2 System-on-Chip (SoC).

2.3 Random Access Memory (RAM).

2.4 Flash memory.

2.5 Interrupts.

2.6 Timers.

2.7 Direct Memory Access (DMA).

2.8 Liquid Crystal Display (LCD).

2.9 Audio.

2.10 Power management.

2.11 Summary.

3 Threads, Processes and Libraries.

3.1 What is a thread?

3.2 Nanokernel threads.

3.3 Symbian OS threads.

3.4 What is a process?

3.5 DProcess class.

3.6 Scheduling.

3.7 Dynamically loaded libraries.

3.8 Summary.

4 Inter-thread Communication.

4.1 Client-server ITC.

4.2 Asynchronous message queues.

4.3 Kernel-side messages.

4.4 Publish and subscribe.

4.5 Shared chunks and shared I/O buffers.

4.6 Summary.

5 Kernel Services.

5.1 Objects and handles.

5.2 Services provided to user threads.

5.3 Example user-accessible services.

5.4 Services provided by the kernel to the kernel.

5.5 Timers.

5.6 Summary.

6 Interrupts and Exceptions.

6.1 Exception types.

6.2 Exceptions on real hardware.

6.3 Interrupts.

6.4 Aborts, traps and faults.

6.5 Summary.

7 Memory Models.

7.1 The memory model.

7.2 MMUs and caches.

7.3 The memory model interface.

7.4 The memory models.

7.5 Programmer APIs.

7.6 Memory allocation.

7.7 Low memory.

7.8 Summary.

8 Platform Security.

8.1 Introduction.

8.2 Unit of trust.

8.3 Capability model.

8.4 Data caging.

8.5 Summary.

9 The File Server.

9.1 Overview.

9.2 The file server client API.

9.3 The file server.

9.4 File systems.

9.5 Summary.

10 The Loader.

10.1 E32 image file format.

10.2 ROM image file format.

10.3 The loader server.

10.4 Kernel-side code management.

10.5 Summary.

11 The Window Server.

11.1 The kernel’s event handler.

11.2 Different types of events.

11.3 How WSERV processes events.

11.4 Processing key events.

11.5 Processing pointer events.

11.6 Client queues.

11.7 A simple handwriting animation DLL.

11.8 Window objects and classes.

11.9 Properties of windows.

11.10 Drawing to windows.

11.11 Direct screen access.

11.12 Platform security in WSERV.3

11.13 Summary.

12 Device Drivers and Extensions.

12.1 Device drivers and extensions in Symbian OS.

12.2 Kernel extensions.

12.3 The hardware abstraction layer.

12.4 Device drivers.

12.5 Differences between EKA1 and EKA2.

12.6 Summary.

13 Peripheral Support.

13.1 DMA.

13.2 Shared chunks.

13.3 Media drivers and the local media sub-system.

13.4 Peripheral bus controllers.

13.5 MultiMediaCard support.

13.6 USB device support.

13.7 Summary.

14 Kernel-Side Debug.

14.1 Overview.

14.2 Architecture.

14.3 The kernel debug interface.

14.4 Target debugger agents.

14.5 Stop-mode debug API.

14.6 Kernel trace channel.

14.7 Summary.

15 Power Management.

15.1 Power states.

15.2 Power framework.

15.3 Typical power management.

15.4 Managing idle time.

15.5 Advanced power management.

15.6 Summary.

16 Boot Processes.

16.1 Operating system startup.

16.2 Alternative startup scenarios.

16.3 Operating system shutdown.

16.4 Operating system sleep and wakeup events.

16.5 Summary.

17 Real Time.

17.1 What is real time?

17.2 Real time operating systems.

17.3 EKA2 and real time.

17.4 Real time application – GSM.

17.5 Personality layers.

17.6 Summary.

18 Ensuring Performance.

18.1 Writing efficient code.

18.2 Maintaining real-time performance.

18.3 Summary.

Appendix 1: Glossary.

Appendix 2: The E32ImageHeader.

Appendix 3: The TRomImageHeader.

Appendix 4: Bibliography.

Index.

See More
Jane Sales, Lead Author

Jane joined Symbian (then Psion) in 1995 to lad the team whose goal was to create a new 32-bit operating system, now known as EKA1. This goal was realized two years later, when the Psion Series 5 was released. Since then, Jane has taken on variety of roles within Symbian, Including product management, systems architecture and setting up a small product -focused research group in Japan.

Jane Studied at Jesus college, Oxford, where she gained an NA in mathematics in 1982. After that, she became part of a small team building a microcomputer to which they ported CCPIM, It was he start of a long-lasting love of systems programming.

In 2003, Jane Moved to the South of France and Began work on this book She would like to thank her husband, Roger, for his moral and financial support over the Succeeding 18 months.

Corinne Dive-Reclus

Corinne joined Symbian in 2001 after several years at Baltimore Ltd, where she designed the embedded software of ACCE ( Advanced Configurable Crypto Environment), a cryptographic hardware module certified FIPS 140-1 Level 4.

In 1987, her first job was as a presales engineer at Sun Microsystems France where she was exposed to the concept of Network Computing & Internet and to its very first remote attacks - at a time when this was still confidential. Being more interested in development than presales, she subsequently worked as a software engineer for Concepts and Implicit, developing an RAD )Rapid Application Development) Programming Language for the creation of distributed data-oriented applications. Since joining Symbian, Corinne has been the Platform Security System Architect, and has worked on the platform security architecture from its initial design to its implementation in Symbain V9. To ensure that all layers of the operating system will contribute to its overall security, she worked extensively with Andrew Thoelke and Dennis May to validate the security features of EKA2, design new services such as Publish & Subscribe and Capability Model, as well as defining the new behavior of the file server, known as Data Caging. For this work, Corinne received the Symbian Technical Innovation award in 2003.

Fulfilling an early passion for Prehistoric Archaeology & Computing, Corinne graduate from the Ecole National Superieure de Geologie, a unique French Institution combining a five-year curriculum in Engineering and Earth Science.

Douglas Feather

Douglas Joined Symbian (then Psion) in 1994. He started by leading the writing of the text formatting engine for the Psion S5. He has also worked in the Web Browser and Core Apps teams where he rewrote most of the versit parser to greatly improve its performance. For five out of the last seven years he has worked mainly on ht Window Server, where he added full color support, a framework to allow digital ink to be drawn over the other applications, support for multiple screens and to be drawn over the other applications, support for multiple screens and transparent windows.

Douglas has a BSc in Mathematics from Southampton University and a PhD in Number Theory from Nottingham University. he is a Committed Christian and regularly engages in vigorous theological debate, to defend the biblical truths about Jesus Christ, at Speaker's Corner (Hyde Park, London) on Sunday afternoons.

See More

Related Titles

Back to Top