Skip to main content

Symbian OS Internals: Real-time Kernel Programming

Symbian OS Internals: Real-time Kernel Programming

Jane Sales

ISBN: 978-0-470-02525-3

Dec 2005

936 pages

$92.99

Description

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
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.