The Symbian OS Architecture Sourcebook
Total Page:16
File Type:pdf, Size:1020Kb
The Symbian OS Architecture Sourcebook The Symbian OS Architecture Sourcebook Design and Evolution of a Mobile Phone OS By Ben Morris Reviewed by Chris Davies, Warren Day, Martin de Jode, Roy Hayun, Simon Higginson, Mark Jacobs, Andrew Langstaff, David Mery, Matthew O’Donnell, Kal Patel, Dominic Pinkman, Alan Robinson, Matthew Reynolds, Mark Shackman, Jo Stichbury, Jan van Bergen Symbian Press Head of Symbian Press Freddie Gjertsen Managing Editor Satu McNabb Copyright 2007 Symbian Software, Ltd John Wiley & Sons, Ltd The Atrium, Southern Gate, Chichester, West Sussex PO19 8SQ, England Telephone (+44) 1243 779777 Email (for orders and customer service enquiries): [email protected] Visit our Home Page on www.wileyeurope.com or www.wiley.com All Rights Reserved. No part of this publication may be reproduced, stored in a retrieval system or transmitted in any form or by any means, electronic, mechanical, photocopying, recording, scanning or otherwise, except under the terms of the Copyright, Designs and Patents Act 1988 or under the terms of a licence issued by the Copyright Licensing Agency Ltd, 90 Tottenham Court Road, London W1T 4LP, UK, without the permission in writing of the Publisher. Requests to the Publisher should be addressed to the Permissions Department, John Wiley & Sons Ltd, The Atrium, Southern Gate, Chichester, West Sussex PO19 8SQ, England, or emailed to [email protected], or faxed to (+44) 1243 770620. Designations used by companies to distinguish their products are often claimed as trademarks. All brand names and product names used in this book are trade names, service marks, trademarks or registered trademarks of their respective owners. The Publisher is not associated with any product or vendor mentioned in this book. This publication is designed to provide accurate and authoritative information in regard to the subject matter covered. It is sold on the understanding that the Publisher is not engaged in rendering professional services. If professional advice or other expert assistance is required, the services of a competent professional should be sought. Other Wiley Editorial Offices John Wiley & Sons Inc., 111 River Street, Hoboken, NJ 07030, USA Jossey-Bass, 989 Market Street, San Francisco, CA 94103-1741, USA Wiley-VCH Verlag GmbH, Boschstr. 12, D-69469 Weinheim, Germany John Wiley & Sons Australia Ltd, 42 McDougall Street, Milton, Queensland 4064, Australia John Wiley & Sons (Asia) Pte Ltd, 2 Clementi Loop #02-01, Jin Xing Distripark, Singapore 129809 John Wiley & Sons Canada Ltd, 6045 Freemont Blvd, Mississauga, Ontario, L5R 4J3, Canada Wiley also publishes its books in a variety of electronic formats. Some content that appears in print may not be available in electronic books. Anniversary Logo Design: Richard J. Pacifico Library of Congress Cataloging-in-Publication Data Morris, Ben, 1958- The Symbian OS architecture sourcebook : design and evolution of a mobile phone OS / by Ben Morris. p. cm. Includes bibliographical references. ISBN-13: 978-0-470-01846-0 ISBN-10: 0-470-01846-1 1. Operating systems (Computers) 2. Symbian OS (Computer file) I. Title. QA76.76.O63M6835 2007 005.432 – dc22 2006103533 British Library Cataloguing in Publication Data A catalogue record for this book is available from the British Library ISBN: 978-0-470-01846-0 Typeset in 10/12pt Optima by Laserwords Private Limited, Chennai, India Printed and bound in Great Britain by Bell & Bain, Glasgow This book is printed on acid-free paper responsibly manufactured from sustainable forestry in which at least two trees are planted for each one used for paper production. To Philippa, with love. Contents About this Author xiii Acknowledgements xv Glossary of Terms xvii Introduction xix Part 1: The Background to Symbian OS 1 Why Phones Are Different 3 1.1 The Origins of Mobile Phones 3 1.2 From 2G to 3G 5 1.3 Mobile Phone Evolution 6 1.4 Technology and Soft Effects 7 1.5 Disruption and Complexity 9 1.6 The Thing About Mobile Phones 10 2 The History and Prehistory of Symbian OS 15 2.1 The State of the Art 15 2.2 In the Beginning 17 2.3 The Prehistory of Psion 20 2.4 The Beginnings of Symbian OS 22 2.5 The Mobile Opportunity 26 2.6 Background to the First Licensee Projects 27 2.7 Device Families 31 2.8 Operating System Influences 37 viii CONTENTS 3 Introduction to the Architecture of Symbian OS 45 3.1 Design Goals and Architecture 45 3.2 Basic Design Patterns of Symbian OS 49 3.3 Why Architecture Matters 49 3.4 Symbian OS Layer by Layer 52 3.5 The Key Design Patterns 56 3.6 The Application Perspective 65 3.7 Symbian OS Idioms 71 3.8 Platform Security from Symbian OS v9 83 4 Introduction to Object Orientation 87 4.1 Background 87 4.2 The Big Attraction 88 4.3 The Origins of Object Orientation 90 4.4 The Key Ideas of Object Orientation 92 4.5 The Languages of Object Orientation 100 Part 2: The Layered Architecture View 5 The Symbian OS Layered Model 111 5.1 Introduction 111 5.2 Basic Concepts 111 5.3 Layer-by-Layer Summary of the Symbian OS v9.3 Model 117 5.4 What the Model Does Not Show 119 5.5 History 119 6 The UI Framework Layer 121 6.1 Introduction 121 6.2 Purpose 122 6.3 Design Goals 123 6.4 Overview 123 6.5 Architecture 124 6.6 A Short History of the UI Architecture 128 6.7 Component Collections 129 7 The Application Services Layer 133 7.1 Introduction 133 7.2 Purpose 134 7.3 Design Goals 134 7.4 Overview 135 7.5 Legacy Application Engines 137 7.6 Architecture 137 7.7 Component Collections 149 CONTENTS ix 8 The OS Services Layer 165 8.1 Introduction 165 8.2 Purpose 166 8.3 Design Goals 168 8.4 Overview 170 8.5 Architecture 171 8.6 Generic OS Services Block 171 8.7 Multimedia and Graphics Services Block 177 8.8 Connectivity Services Block 192 9 The Comms Services Block 199 9.1 Introduction 199 9.2 Purpose 201 9.3 Design Goals 204 9.4 Overview 206 9.5 Architecture 206 9.6 Comms Framework 210 9.7 Telephony Services 220 9.8 Networking Services 230 9.9 Short-link Services 245 10 The Base Services Layer 255 10.1 Introduction 255 10.2 Purpose 255 10.3 Design Goals 256 10.4 Overview 257 10.5 Architecture 258 10.6 Component Collections 270 11 The Kernel Services and Hardware Interface Layer 279 11.1 Introduction 279 11.2 Purpose 280 11.3 Design Goals 281 11.4 Overview 283 11.5 EKA1 and EKA2 283 11.6 Singleton Component Collections 284 11.7 Kernel Architecture Block 285 11.8 Kernel Architecture Component Collections 295 12 The Java ME Subsystem 301 12.1 Introduction 301 12.2 Requirements of the Java ME Subsystem 302 12.3 Design Goals for the Java ME Subsystem 302 12.4 Evolution of Java on Symbian OS 303 xCONTENTS 12.5 Architecture 306 12.6 Component Collections 311 13 Notes on the Evolution of Symbian OS 319 13.1 The State of the Art 319 13.2 Summary of Symbian OS v6 Releases 319 13.3 Summary of Symbian OS v7 Releases 321 13.4 Summary of Symbian OS v8 Releases 324 13.5 Summary of Symbian OS v9 Releases 326 Part 3: Design Case Studies 14 The Use of Object-oriented Design in Symbian OS 333 14.1 Introduction 333 14.2 Pioneering the Object Approach in Psion 334 14.3 A Thoroughly Object-oriented Operating System 353 15 Just Add Phone 367 15.1 Introduction 367 15.2 Anatomy of a Phone 367 15.3 The Phone Operating System 368 15.4 Telephony 378 15.5 Messaging: It’s Different on a Phone 386 16 One Size Does Not Fit All: The Radical User Interface Solution 397 16.1 Introduction 397 16.2 Background to the Eikon GUI 402 16.3 Eikon Design Point 404 16.4 The Device Family Strategy 410 16.5 Quartz 416 16.6 Pearl 417 16.7 Nightingale 418 16.8 How to Develop a World-class GUI 420 16.9 Symbian OS User Interface Architecture 425 16.10 Future Directions 426 17 System Evolution and Renewal 429 17.1 Introduction 429 17.2 Design Lifetime 430 17.3 Renewal in Symbian OS 434 17.4 Evolution in the Kernel 436 17.5 Telephony Evolution 440 17.6 Sound and Vision Evolution 443 CONTENTS xi 17.7 Defining the Skin 444 17.8 Moving Towards Standard C++ 446 18 Creative Zoo or Software Factory? 453 18.1 Introduction 453 18.2 The Software Problem 453 18.3 Too Many Dragons 455 18.4 Software Development Approaches 456 18.5 What Making Software Is Really About 459 Appendix A: Symbian OS Component Reference 475 Appendix B: Interviewee Biographies 573 References 579 Index 583 About the Author Ben Morris joined Psion Software in October 1997, working in the software development kit team on the production of the first C++ and Java SDKs for what was at that time still the EPOC32 operating system. He led the small team that produced the SDKs for the ER5 release of EPOC32 and, when Psion Software became Symbian, he took over responsibility for expanding and leading the company’s system documentation team. In 2002, he joined the newly formed System Management Group in the Software Engineering organization of Symbian, with a brief to ‘define the system’. He devised the original System Model for Symbian OS and currently leads the team responsible for its maintenance and evolution.