Do you want to know a secret?

Back in the days of Symbian Software Ltd, Symbian OS was a commercial product with fairly complex licensing conditions. Code that was wholly owned by us as divided into 5 categories called A, D, E, F and G, with category A indicating the “crown jewels” , the very essence of the Symbian-nature. Most people didn’t get to see the Category A code, and even Nokia wasn’t permitted to change a line of it.

As you know (Pay attention in the back row), Symbian Software Limited is no more, the code has passed to the Symbian Foundation and we’ve started opening up the source code to the public. The Kernel and Hardware Services package is now available under the Eclipse Public License, and Lo and Behold! – there are the Category A files.

The list seems to have grown a bit since I last looked, probably because the distinction ceased to matter after Nokia completed the purchase of Symbian Software Limited in December 2008.

Good – that’s another bit of arcane knowledge I can forget about forever…

2 Responses to “Do you want to know a secret?”

  1. antonyedwards Says:

    While you’re talking about the arcane can you explain to me what OSDs (or whatever the other part of distribution.policy files was) were all about? I never quite understood those.

  2. William Roberts Says:

    [Brain creaking noises as search continues…]

    The architecture was divided up into “big features”, and each feature was classified as {Common|Optional} + {Symbian|Replaceable}. Common features had to be in all devices based on Symbian OS, and Optional features could be left out at the OEM’s discretion. Symbian features had to use the implementation supplied by Symbian, but Replaceable freatures could use other compatible implementations if the OEM preferred. For example:

    Fileserver = Common Symbian – you had to have it, and it had to be the original Symbian implementation.
    Bluetooth = Optional Symbian – you didn’t have to have Bluetooth, but if you did it, it had to be the Symbian implementation
    OpenGL = Common Replaceable – it had to be present, but you could use an optimised implementation instead of the generic one
    J2ME = Optional Replaceable – almost anything goes…

    Symbian Software Ltd preferred Common Symbian, but OEMs preferred Optional Replaceable. In practice, everyone was sufficiently happy with the overall result that nobody wanted to check too closely about compliance.

    Another thing I’m glad to be forgetting. This is good for the soul, so are there any other Thing You Always Wanted To Know, But Were Too Afraid To Ask?

Leave a comment