Symbian

Symbian oli älypuhelimille suunniteltu mobiilikäyttöjärjestelmä (OS) ja sovellusalusta, jota ylläpiti Accenture. Symbianin kehitti alkujaan Symbian Ltd, Psionin EPOC:in jälkeläiseksi ja se toimii ainoastaan ARM-suorittimilla, vaikkakin julkaisematon x86-käännös oli olemassa. Monet merkittävät matkapuhelinvalmistajat, kuten Samsung, Motorola, Sony Ericsson ja ennen kaikkea Nokia, käyttivät Symbiania puhelimissaan. Se oli maailmanlaajuisella keskiarvolla mitattuna maailman suosituin älypuhelinten käyttöjärjestelmä vuoden 2010 loppuun saakka, jolloin Android ohitti sen.

Symbian nousi kuuluisuuteen kun Nokia käytti sitä rakentamansa S60-ohjelmistoalustansa kanssa, joka julkaistiin alkujaan vuonna 2002 ja joka oli käytössä useimmissa Nokian älypuhelimissa. UIQ, toinen Symbian-alusta, oli olemassa samaan aikaan, mutta nämä kaksi alustaa eivät olleet keskenään yhteensopivia. Symbian^3, jota käytettiin ensimmäisen kerran Nokia N8:ssa, julkaistiin vuoden 2010 viimeisellä neljänneksellä S60:n ja UIQ:n seuraajaksi. Toukokuussa 2011 Symbian Anna -päivitys julkaistiin virallisesti ja sitä seurasi Nokia Belle -päivitys (alkuperäiseltä nimeltään Symbian Belle) elokuussa 2011.

11. helmikuuta 2011 Nokia ilmoitti, että se tulisi käyttämään Microsoftin Windows Phone -käyttöjärjestelmää pääasiallisena älypuhelinalustanaan, ja Symbian tulisi olemaan sen franchise-alusta, pudottaen Symbianin Nokian ensisijaisena älypuhelinalustana. 22. kesäkuuta 2011 Nokia teki ulkoistussopimuksen Accenturen kanssa. Accenture tarjosi Symbian-pohjaista ohjelmistonkehitystä ja tukipalveluja Nokialle vuoteen 2016 saakka; noin 2800:sta Nokian työntekijästä tuli Accenturen työntekijöitä lokakuussa 2011. Siirtymä saatettiin loppuun 30. syyskuuta 2011. Nokia 808 PureView oli virallisesti viimeinen Symbian-älypuhelin.

Historia

Symbian sai alkunsa Psionin 1980-luvulla luomasta EPOC-käyttöjärjestelmästä. Kesäkuussa 1998 Psion Softwaresta tuli Symbian Ltd, merkittävä yhteisyritys Psionin ja matkapuhelinvalmistajien Ericsson, Motorola ja Nokia kanssa.

Nimellä Symbian haluttiin viestiä yhteisestä käyttöjärjestelmästä ja yritysten symbioosista.

Jälkeenpäin Symbianille luotiin useita erilaisia ohjelmistoalustoja, joita tukivat erilaiset ryhmän matkapuhelinvalmistajia. Niihin lukeutuvat S60 (Nokia, Samsung ja LG), UIQ (Sony Ericsson ja Motorola) ja MOAP(S) (vain japanilaisille, kuten esim. Fujitsulle, Sharpille jne.).

Kesäkuussa 2008 Nokia ilmoitti ostaneensa Symbian Ltd:n ja uusi, itsenäinen, voittoa tavoittelematon järjestö nimeltä Symbian Foundation perustettiin. Nokia, NTT DoCoMo, Sony Ericsson ja Symbian Ltd lahjoittivat omistamansa Symbian OS:n ja siihen liittyvät käyttöliittymät S60, UIQ ja MOAP(S) säätiölle tavoitteena tehdä Symbian-alustasta tekijänoikeusmaksuvapaa, avoimen lähdekoodin ohjelmisto OSI:n ja FSF:n hyväksymän Eclipse Public License (EPL) -lisenssin ehtojen mukaisesti. Alusta on nimetty Symbian OS:n seuraajaksi Symbian Foundationin virallisen julkaisun jälkeen huhtikuussa 2009. Symbian-alustasta tuli virallisesti avointa lähdekoodia helmikuussa 2010.

Nokiasta tuli merkittävä tekijä Symbianin lähdekoodiin, koska sillä oli resurssit sekä Symbian OS:in ytimen että käyttöliittymän kehittämiseen. Siitä lähtien Nokia on ylläpitänyt omaa koodivarastoaan alustan kehitystä varten ja julkaissut säännöllisesti kehitystyönsä tuloksia julkiseen koodivarastoon. Symbianin oli tarkoitus olla kesäkuussa 2008 julkistetun ja virallisesti huhtikuussa 2009 toimintansa aloittaneen Symbian Foundationin johtaman yhteisön kehittämä. Sen tavoitteena oli julkaista koko Symbian-alustan lähdekoodi OSI:n ja FSF:n hyväksymän Eclipse Public License (EPL) -lisenssin ehtojen mukaisesti. Koodi julkaistiin EPL-lisenssillä 4. helmikuuta 2010; Symbian Foundationin mukaan tämä tapahtuma oli laajin koodivaraston siirtymä avoimeen lähdekoodiin historiassa.

Kuitenkin jotkin Symbian OS:n tärkeät osat oli lisensoitu kolmansilta osapuolilta, mikä esti säätiötä julkaisemasta täyttä lähdekoodia EPL-lisenssillä välittömästi; sen sijaan nämä lähdekoodin osat julkaistiin paljon rajoittavamman Symbian Foundation License (SFL) -lisenssin ehtojen mukaisesti ja pääsy täydelliseen lähdekoodiin oli rajattu jäsenyrityksille, vaikkakin jäsenyys oli avoin mille tahansa organisaatiolle.

Marraskuussa 2010 Symbian Foundation ilmoitti, että maailmanlaajuisen talous- ja markkinatilanteen muutosten tähden (sekä myös sen tähden, että jäseniltä, kuten Samsungilta ja Sony Ericssonilta ei tullut tukea), se tulisi muuttumaan pelkäksi lisensointiorganisaatioksi; Nokia ilmoitti ottavansa Symbian-alustan ylivalvojuuden käsiinsä. Symbian Foundation tulee pysymään tavaramerkkien oikeuksien haltijana ja lisensoijana ja sen toiminnassa tulisi olemaan mukana vain ei-johtajia.

11. helmikuuta 2011 Nokia julkisti kumppanuutensa Microsoftin kanssa, jonka tuloksena Nokia ottaisi käyttöön Windows Phonen pääasiallisena älypuhelinalustanaan, ja Symbianista tulisi sen franchise-alusta (ja näin ollen Symbian ei enää olisi sen pääasiallinen käyttöjärjestelmä älypuhelimille). Tämän seurauksena Symbian-alustan suosio putosi nopeasti. Kesäkuussa 2011 tehty tutkimus osoittaa, että yli 39 % tutkimuksen aikaan Symbiania käyttäneistä mobiilikehittäjistä suunnittelivat alustan hylkäämistä.

5. huhtikuuta 2011 mennessä Nokia oli lopettanut Symbian-ohjelmiston julkaisemisen avoimen lähdekoodin lisenssillä ja rajannut yhteistyökumppaninsa pieneen, esivalittuun ryhmään yhteistyökumppaneita Japanissa. EPL-lisenssillä julkaistu lähdekoodi on edelleenkin saatavilla kolmansien osapuolien koodivarastoissa.

22. kesäkuuta 2011 Nokia teki ulkoistussopimuksen Accenturen kanssa. Accenture tarjoaa Symbian-pohjaista ohjelmistonkehitystä ja tukipalveluja Nokialle vuoteen 2016 saakka; noin 2800:sta Nokian työntekijästä tuli Accenturen työntekijöitä lokakuussa 2011. Siirtymä saatettiin loppuun 30. syyskuuta 2011.

Ominaisuudet

Käyttöliittymä

Symbianissa on ollut natiivi grafiikkatyökalupakki, tunnettu nimellä AVKON (aiemmalta nimeltään Series 60), alusta saakka. S60 suunniteltiin sellaiseksi, että sitä voisi käyttää näppäimistön kaltaisella käyttöliittymällä, joita olivat ~15-näppäiminen matkapuhelimissa yleinen numeronäppäimistö tai minikokoiset QWERTY-näppäimistöt. AVKON-pohjaiset ohjelmat ovat binaaritasolla yhteensopivia Symbian-versioon Symbian^3 saakka ja sen kanssa.

Symbian^3 sisältää Qt-kehitysympäristön, joka on nyttemmin suositeltu käyttöliittymätyökalupaketti uusille sovelluksille. Qt:n voi myös asentaa vanhemmille Symbian-laitteille.

Symbian^4:n oli tarkoitus sisältää uusi graafisen käyttöliittymän kehitysympäristö, tunnettu nimellä "UI Extensions for Mobile" tai UIEMO (sisäinen projektinimi "Orbit"), joka olisi nimenomaan kehitetty kosketuspohjaisia laitteita varten ja se olisi kehitetty Qt Widgetin pohjalta; esikatselu julkistettiin tammikuussa 2010, mutta kuitenkin lokakuussa 2010 Nokia ilmoitti, että Orbit/UIEMO oli peruutettu.

Tällä hetkellä Nokia suosittelee, että kehittäjät käyttävät Qt Quickia QML:n kanssa; QML on uusi, korkean tason deklaratiivinen käyttöliittymä- ja komentosarjakehitysympäristö visuaalisesti näyttävien kosketusnäyttökäyttöliittymien kehittämiseen, joka mahdollistaa kehityksen sekä Symbianille että MeeGolle; se saatetaan olemassa oleviin Symbian^3-laitteisiin Qt-päivityksenä. Kun yhä useammat sovellukset asteittain siirtyvät Qt-käyttöliittymään, vanhentunut S60-runko (AVKON) poistetaan käytöstä jossain vaiheessa, mikä rikkoo binaaritason yhteensopivuuden vanhojen S60-sovellusten kanssa.

Selain

Symbian^3:ssa ja vanhemmissa on sisäänrakennettu WebKit-pohjainen selain. Symbian oli ensimmäinen mobiilialusta, joka hyödynsi WebKitiä (kesäkuussa 2005). Joidenkin vanhempien Symbian-mallien oletusselaimena on Opera Mobile.

Nokia julkaisi uuden, nopeamman selaimen Symbian Annan julkaisun mukana, jossa on paranneltu käyttöliittymä.

Useampien kielten tuki
Symbianilla on vahva kotoistustuki, joka mahdollistaa maahantuojien ja kolmannen osapuolen ohjelmistonkehittäjien kotoistaa heidän Symbian-tuotteensa tukeakseen maailmanlaajuista jakelua.

Tämänhetkisellä Symbian-julkaisulla (Symbian Belle) on tuki 48:lle kielelle, jotka Nokia saattaa laitteille saataville kielipakettien muodossa (kokoelma kieliä, jotka kattavat myyntialueella yleisesti puhutut kielet). Kaikissa kielipaketeissa on englannin kieli (tai sen paikallisesti oleellinen murre).

Symbian Bellessä tuetut kielet [murteineen] (ja kirjoitusasuineen) ovat:

Symbian Belle on ensimmäinen julkaisu, jossa on mukana tuki kazakin kielelle, kun taas korean kielen tuki on poistettu.

Japanin kieli on saatavilla vain Symbian^2-laitteisiin, sillä ne tehdään Japanissa, ja muilla Symbian-laitteilla japanin kielen tuessa on silti puutteita.

Sovelluskehitys

Vuonna 2010 Symbian otti käyttöön standardi-C++:n Qt:n kanssa pääasialliseksi ohjelmistonkehityspaketikseen; sitä voi käyttää joko Qt Creatorin tai Carbide.c++:n kanssa. Qt tukee vanhempia Symbian/S60 3rd- (alkaen Feature Pack 1:stä, tunnettu myös nimellä S60 3.1) ja Symbian/S60 5th Edition (tunnettu myös nimellä S60 5.01b) -julkaisuja, kuten myös uudempaa Symbian-alustaa. Se tukee myös Maemoa ja MeeGoa, Windowsia, Linuxia ja Mac OS X:ää.

Vaihtoehtoinen sovelluskehitys onnistuu Python (katso Python for S60), Adobe Flash Liten tai Java ME:n avulla.

Symbian OS käytti aiemmin erityistä C++-versiota Carbide.c++-ohjelmointiympäristön (IDE) kanssa natiivina sovelluskehitysympäristönä.

Web Run time (WRT) on siirrettävä sovellusympäristö, joka mahdollistaa vekottimien luomisen S60-alustalla; se on lisäosa S60:n WebKit-pohjaiseen selaimeen, joka mahdollistaa useampien selaininstanssien käynnistämisen erillisinä JavaScript-sovelluksina.

Sovelluskehitys

Qt
Vuonna 2010 Symbianin ohjelmistonkehityspaketti on tavallinen C++ Qt:tä käyttäen. Sitä voi käyttää joko Qt Creatorin tai Carbiden (vanhempi integroitu ohjelmointiympäristö, jota käytettiin ennen Symbian-kehitykseen) kanssa. Puhelinsimulaattori mahdollistaa Qt-sovellusten testaamisen. Simulaattorille käännetyt sovellukset ovat käännetty kehitysalustan natiiville koodille sen sijaan, että niitä pitäisi emuloida. Sovelluskehityksessä voi käyttää joko C++:aa tai QML:ää.

Symbian C++
Koska Symbian-käyttöjärjestelmä on kirjoitettu C++-kielellä käyttäen Symbianin koodausstandardeja, on mahdollista kehittää Symbian C++:aa käyttämällä, vaikkakin se ei ole standarditoteutus. 
Symbianissa käytetty Symbian C++ kuitenkin eroaa standardin mukaisesta C++-kielestä eräissä kohdin.

Ennen Qt-ohjelmistonkehityspaketin julkaisua, tämä oli normaali kehitysympäristö. Oli olemassa useita Symbianiin pohjautuvia alustoja, jotka tarjosivat ohjelmistonkehityspaketteja (SDK) ohjelmistonkehittäjille, jotka halusivat kehittää Symbian OS -laitteille; näistä tärkeimmät olivat UIQ ja S60. Yksittäisillä puhelintuotteilla tai -perheillä oli usein valmistajan sivuilta ladattavia ohjelmistonkehityspaketteja tai ohjelmistonkehityspakettien laajennoksia.

Ohjelmistonkehityspaketit sisältävät dokumentaatiota, Symbian OS -ohjelmiston kääntämiseen tarvittavat otsikko- ja kirjastotiedostot sekä Windows-pohjaisen emulaattorin ("WINS"). Symbian OS:n versioon 8 saakka ohjelmistonkehityspaketit sisälsivät myös version GCC-kääntäjästä (ristiinkääntäjä), jota tarvittiin kääntämään ohjelmisto laitteessa toimivaksi.

Symbian OS 9 ja Symbian-alusta käyttävät uutta ABI:a ja tarvitsevat erilaisen kääntäjän. Kääntäjiä on useita erilaisia, mukaan lukien uudempi versio GCC:stä.

Symbian C++ -ohjelmointi on vaikeaa oppia, koska Symbian C++ vaatii erityisten tekniikoiden, kuten kuvaajien, aktiivisten objektien ja siivouspinon, käyttöä. Tämä saattaa tehdä jopa melko yksinkertaisten ohjelmien toteuttamisesta vaikeampaa kuin muissa ympäristöissä. On mahdollista, että nämä 1990-luvun huomattavasti rajoittuneemmalle mobiililaitteistolle ja -kääntäjille kehitetyt tekniikat aiheuttivat tarpeetonta monimutkaisuutta lähdekoodissa, koska ohjelmoijien on ollut pakko kiinnittää huomiota matalan tason yksityiskohtiin sovelluskohtaisten ominaisuuksien sijaan. Vuonna 2010 nämä eivät enää ole ongelmia standardi-C++:aa ja Qt-ohjelmistonkehityspakettia käytettäessä.

Symbian C++-ohjelmointia tehdään yleensä integroidun ohjelmointiympäristön (IDE) kanssa. Aiempien versioiden kanssa kaupallista CodeWarrior-IDE:ä suosittiin. Vuonna 2006 CodeWarror-työkalujen korvaajaksi tuli Carbide.c++, Nokian kehittämä Eclipse-pohjainen IDE. Carbide.c++-versioita on neljä: Express, Developer, Professional, ja OEM, joissa jokaisessa on erilaiset kyvyt. Ilmaisella Express-versiolla voi tehdä ja julkaista täysin toimivia ohjelmistoja. Käyttöliittymän suunnittelu, virheenkorjaus kaatumistilanteessa jne. ovat saatavilla muissa, maksullisissa versioissa. Microsoft Visual Studion 2003- ja 2005-versioita tuetaan Carbide.vs-lisäosan avulla.

Muut kielet

Symbian-laitteita voi myös ohjelmoida Pythonia, Java ME:tä, Flash Litea, Rubyä, .NET:iä, Web Runtime (WRT) -vekottimia ja standardia C/C++:aa käyttämällä.

Visual Basics -ohjelmoijat voivat käyttää NS Basicia kehittääkseen sovelluksia S60 3rd Editionille ja UIQ 3 -laitteille.

Aiemmin Visual Basic-, Visual Basic .NET-, ja C#-ohjelmointi Symbianille oli mahdollista Microsoft Visual Studion lisäosan, nimeltään AppForge Crossfire, avulla. 13. maaliskuuta 2007 AppForge lopetti toimintansa; Oracle osti tekijänoikeudet, mutta ilmoitti, ettei se aio myydä tai tarjota tuotetukea entisille AppForgen tuotteille. RedFIVElabs myy kaupallisena tuotteena Symbianille Net60:tä, pienikokoista .NET-ohjelmointiympäristöä. Net60:n avulla (muun muassa) VB.NET- ja C#-lähdekoodi käännetään välikieleksi, jonka Symbian OS suorittaa käyttämällä just-in-time-kääntäjää. (18. tammikuuta 2010 mennessä RedFIVElabs on lopettanut Net60:n kehittämisen ja heidän sivuillaan lukee seuraavaa: "Tässä vaiheessa etsimme muita mahdollisuuksia tekijänoikeuksien myymiseen, jotta Net60:llä voi olla tulevaisuus jatkossakin.")

Symbian OS:lle on saatavilla myös versio Borland-ohjelmointiympäristöstä. Symbian OS -kehitys on myös mahdollista Linuxilla ja OS X:llä käyttäen yhteisön kehittämiä työkaluja ja tapoja, jonka on mahdollistanut avaintyökalujen lähdekoodin vapauttaminen. Saatavilla oli lisäosa, joka mahdollistaa Symbian-sovellusten kehittämisen Applen Xcode-ohjelmointiympäristössä Mac OS X -käyttöjärjestelmän kanssa.

Java ME-sovellusten kehittäminen Symbianille tapahtuu käyttämällä sekä standarditekniikoita ja -työkaluja, kuten Sun Java Wireless Toolkitiä (aiemmin tunnettu nimellä J2ME Wireless Toolkit). Ne ovat pakattuina JAR (ja mahdollisesti JAD)-tiedostoina. Sekä CLDC- ja CDC-sovelluksia voi luoda NetBeansin avulla. Muihin työkaluihin lukeutuvat SuperWaba, jota voi käyttää rakentaakseen Symbian 7.0 ja 7.0s -sovelluksia Javaa käyttäen.

Nokian S60-puhelimet pystyvät myös suorittamaan Python-komentosarjoja, kun Python for S60 -komentotulkki on asennettuna Bluetooth-tuen tarjoavan mukautetun ohjelmointirajapinnan kanssa. On myös olemassa interaktiivinen konsoli, joka mahdollistaa Python-komentosarjojen kirjoittamisen suoraan puhelimesta.

Käyttöönotto

Kehityksen jälkeen Symbian-sovellusten täytyy löytää tiensä asiakkaiden matkapuhelimiin. Ne ovat pakattuina SIS-tiedostoihin, joita pystyy asentamaan ilmateitse (engl. over-the-air), yhdistämällä puhelimen tietokoneeseen, Bluetoothin välityksellä tai muistikortilta. Vaihtoehtona on tehdä yhteistyötä puhelimen valmistajan kanssa saadakseen ohjelmistonsa sisällytettyä puhelimeen. Sovellusten tulee olla digitaalisesti allekirjoitettuja (Symbian Signed) Symbian OS 9.x -versioille, jotta ne voivat saada täyden hyödyn tietyistä ominaisuuksista (järjestelmän ominaisuudet, rajoitetut ominaisuudet ja laitteen valmistajan ominaisuudet). Sovelluksia voi allekirjoittaa maksutta.

Arkkitehtuuri

Teknologiatoimialueet ja paketit
Symbianin design on jaettu teknologiatoimialueisiin, joista jokainen käsittää erinäisen määrän ohjelmistopaketteja. Jokaisella teknologiatoimialueella on oma etenemissuunnitelmansa ja Symbian Foundationilla on ryhmä teknologiahallinnoijia, jotka hallinnoivat näitä teknologiatoimialueiden etenemissuunnitelmia.

Jokainen paketti on jaettu tasan yhdelle teknologiatoimialueelle, joka perustuu siihen, millaista toiminnallisuutta paketti lisää ja mistä se on saanut vaikutteita. Ryhmittämällä paketit teemoittain Symbian Foundation toivoo kannustavansa niiden ympärille muodostuvan vahvan yhteisön keskustelun ja tarkastelun aikaansaamiseksi.

Symbianin järjestelmämalli havainnollistaa teknologiatoimialueiden laajuutta alustapakettien halki.

Paketit omistaa ja niitä ylläpitää paketin omistaja, Symbian Foundationin organisaatiojäsenen nimeämä henkilö, joka hyväksyy koodimuutoksia laajemmalta Symbian-yhteisöltä ja joka vastaa kyseisestä paketista.

Symbianin ydin
Symbianin ydin (EKA2) tukee kohtuullisen nopeaa reaaliaikaista vastausta yksiytimisen puhelimen rakentamiseen sen ympärille—siis puhelin, jossa yksi ydin suorittaa sekä käyttäjän sovellusohjelmat ja protokollapinot. Reaaliaikaisella ytimellä on mikroydinarkkitehtuuri, joka sisältää vain tarpeellisimmat, alkeellisimmat toiminnallisuudet parhaimman vakauden, saatavuuden ja reagointivalmiuden takaamiseksi. Sitä on kutsuttu nanoytimeksi, koska se tarvitsee laajennetun ytimen toteuttaakseen mitä tahansa muita abstraktioita. Se sisältää aikatauluttajan, muistin hallinnan ja laiteajurit, ja verkko-, puhelin- ja tiedostojärjestelmätukipalvelut joko käyttöjärjestelmän palvelujen kerroksessa tai peruspalvelujen kerroksessa. Laiteajurien sisällyttäminen tarkoittaa, että ydin ei ole todellinen mikroydin.

Design
Symbianissa on ennaltaehkäisevä moniajo ja muistin suojaus, kuten muissakin käyttöjärjestelmissä (varsinkin niissä, jotka on luotu pöytätietokoneita varten). EPOC:in moniajon lähestymistapaa inspiroi VMS ja se pohjautuu asynkronisiin palvelinpohjaisiin tapahtumiin.

Symbian OS luotiin kolme järjestelmäsuunnittelun periaatetta mielessä pitäen:
 käyttäjän tietojen eheys ja turvallisuus on tärkeintä
 käyttäjän aikaa ei tule tuhlata
 kaikki resurssit ovat niukkoja

Seuratakseen näitä periaatteita parhaiten, Symbian käyttää mikroydintä ja siinä on pyyntö-ja-vastine -lähestymistapa palveluihin sekä kone ja käyttöliittymä on erotettu toisistaan. Käyttöjärjestelmä on optimoitu matalavirtaisia akkua käyttäviä laitteita sekä lukumuistipohjaisia järjestelmiä varten (esim. XIP:n kaltaiset ominaisuudet sekä jaettujen kirjastojen ominaisuudet). Sovellukset ja käyttöjärjestelmä itsessään seuraavat oliopohjaista suunnittelutapaa: malli–näkymä–käsittelijä (MVC).

Myöhemmät käyttöjärjestelmäversiot laimensivat tätä lähestymistapaa vastatakseen markkinoiden haasteisiin, merkittävimpänä reaaliaikaisen ytimen ja alustan turvallisuusmallin käyttöönotto versioissa 8 ja 9.

Suuri painoarvo on resurssien säästämisessä, mitä kuvaavat hyvin Symbian-kohtaiset ohjelmointi-idiomit, kuten kuvaajat ja siivouspino. Samankaltaisia menetelmiä on olemassa tallennustilan säästämiseksi. Symbian-ohjelmointi on tapahtumapohjaista ja suoritin (CPU) kytketään vähävirtaiseen tilaan, kun sovellukset eivät suoraan käsittele jotakin tapahtumaa. Tämä tapahtuu aktiiviset objektit -nimisen ohjelmointi-idiomin avulla. Samalla tavalla Symbianin lähestymistapaa säikeisiin ja prosesseihin kuvaa tarpeettoman suoritinkäytön vähentäminen.

Käyttöjärjestelmä
All over -malli sisältää seuraavat kerrokset, ylhäältä alaspäin:

 käyttöliittymän ohjelmistokehyskerros
 sovelluspalveluiden kerros
 Java ME
 käyttöjärjestelmän palveluiden kerros
 yleiset käyttöjärjestelmän palvelut
 viestintäpalvelut
 multimedia- ja grafiikkapalvelut
 liitettävyyspalvelut
 peruspalvelujen kerros
 ytimen palvelut & laitteistorajapintakerros

Peruspalvelujen kerros on matalin taso, jonka käyttäjäpuolen operaatiot voivat saavuttaa; siihen kuuluu tiedostopalvelin ja käyttäjäkirjasto, plug-in-ohjelmistokehys, joka hallinnoi kaikkia plug-ineja, kauppa, keskusvarasto, tietokanta ja salauspalvelut. Siihen sisältyy myös teksti-ikkunapalvelin ja teksti-shell: kaksi peruspalvelua, joiden avulla voi luoda täysin toiminnallisen ohjelmistoporttauksen ilman, että tarvitsee yhtään korkeamman tason palvelua.

Symbianilla on mikroydinarkkitehtuuri, joka tarkoittaa, että ydin sisältää vain tarpeellisimmat, alkeellisimmat toiminnallisuudet parhaimman vakauden, saatavuuden ja reagointivalmiuden takaamiseksi. Se sisältää aikatauluttajan, muistin hallinnan ja laiteajurit, mutta muut palvelut, kuten verkko-, puhelin- ja tiedostojärjestelmätukipalvelut sijaitsevat joko käyttöjärjestelmän palvelujen kerroksessa tai peruspalvelujen kerroksessa. Laiteajurien sisällyttäminen tarkoittaa, että ydin ei ole todellinen mikroydin. EKA2-reaaliaikainen ydin, jota on kutsuttu nanoytimeksi, sisältää vain tarpeellisimmat, alkeellisimmat toiminnallisuudet ja se tarvitsee laajennetun ytimen toteuttaakseen mitä tahansa muita abstraktioita.

Symbian on suunniteltu painottamaan yhteensopivuutta muiden laitteiden, varsinkin poistettavia mediatiedostojärjestelmien, kanssa. EPOC:in varhaiskehityksessä päädyttiin käyttämään FAT-tiedostojärjestelmää sisäisenä tiedostojärjestelmänä ja näin on vieläkin, mutta oliopohjainen pysyvyysmalli laitettiin tiedostojärjestelmän päälle POSIX-tyylisen käyttöliittymän ja virtautusmallin aikaansaamiseksi. Sisäiset tietomuodot luottavat siihen, että samat ohjelmointirajapinnat, jotka luovat tiedoston, myös tekevät kaikki muutokset siihen. Tämä on johtanut vaikeuksiin tietojen siirtämisessä.

Laajassa verkko- ja viestintäalijärjestelmässä on kolme pääpalvelinta nimeltään ETEL (EPOC-puhelintekniikka), ESOCK (EPOC-pistokkeet) ja C32 (vastaa sarjaviestinnästä). Jokaisessa näistä on plug-in-järjestelmä. Esimerkiksi ESOCK sallii erilaisten ".PRT"-protokollamoduulien toteuttaa erinäisiä verkkoprotokollajärjestelmiä. Alijärjestelmä sisältää myös koodia, joka tukee lyhyen matkan viestintälinkkejä, kuten Bluetoothia, IrDAa ja USB:ia.

Käyttöliittymäkoodia on myös suuri määrä. Symbian OS:issa on vain pohjaluokat ja perustat, itse käyttöliittymät olivat kolmansien osapuolien ylläpitämiä. Näin ei ole enää. Kolme suurinta käyttöliittymää — S60, UIQ ja MOAP — lahjoitettiin Symbianille vuonna 2009. Symbian sisältää myös grafiikka-, tekstin asettelu- ja kirjasintyyppienmallinnuskirjastot.

Kaikki natiivit Symbian C++ -sovellukset rakentuvat näiden sovellusarkkitehtuurin määrittelemän kolmen runkoluokan ympärille: sovellusluokka, dokumenttiluokka ja sovelluksen käyttöliittymäluokka. Nämä luokat luovat sovelluksen perustavanlaatuisen käytöksen. Muut tarvittavat toiminnot, sovellusnäkymä, datamalli ja datakäyttöliittymä, luodaan itsenäisesti ja ne ovat vuorovaikutuksessa muiden luokkien kanssa yksinomaan omien ohjelmointirajapintojensa kautta.

Monet muut asiat eivät vielä sovi tähän malliin — esimerkiksi SyncML, Java ME, joka tarjoaa kokoelman ohjelmointirajapintoja käyttöjärjestelmän päälle ja multimedia. Monet näistä ovat ohelmistokehyksiä ja myyjien oletetaan tarjoavat kolmansien osapuolien plug-init näihin ohjelmistokehyksiin (esimerkiksi Helix Player multimediakoodekkeja varten). Tässä on se etu, että kyseisten osa-alueiden ohjelmointirajapinnat ovat samat monilla puhelinmalleilla, ja myyjillä on paljon liikkumavaraa, mutta se tarkoittaa, että puhelinten myyjien täytyy panostaa integraatiotyöhön paljon tehdäkseen toimiva Symbian OS -puhelin.

Symbianissa on mukana viitekäyttöliittymä nimeltään "TechView". Se sisältää pohjan, jonka perusteella voi ryhtyä tekemään muutoksia ja se on ympäristö, jossa Symbianin testi- ja esimerkkikoodia suoritetaan. Se on hyvin paljon samankaltainen kuin Psion Series 5:n käyttöliittymä eikä sitä käytetä missään tuotantoon menneen puhelimen käyttöliittymässä.

Symbianin käyttöliittymän muunnelmat ja alustat
Kehityttyään versioon 7.0, Symbian alkoi hajautumaan useiksi eri käyttöliittymiksi, joista jokaista tuki tietty yritys tai ryhmä yrityksiä. Toisin kuin Android erilaisine kosmeettisine käyttöliittymine, Symbianin käyttöliittymät ovat syvempiä koodimuutosten ja integraatioiden tasolla (minkä tähden niitä kutsutaan käyttöliittymäalustoiksi). Asiat mutkistuivat, kun eri Symbian-käyttöliittymäalustoille kehitetyt sovellukset eivät olleet keskenään yhteensopivia, ja tämä johti käyttöjärjestelmän pirstaloitumiseen.

Symbian OS:n käyttöliittymäalustoihin lukeutuvat seuraavat:

 S60, Symbian
Myös tunnettu nimellä Series 60, se oli pääosin Nokian tukema. Tästä alustasta on useita eri versioita, joista ensimmäinen oli S60 (1st Edition) Nokia 7650:ssa. Sitä seurasi S60 2nd Edition (Nokia N70), S60 3rd Edition (Nokia N73) ja kosketuspohjainen S60 5th Edition (Nokia N97). Nimi S60 jätettiin pois Symbian Foundationin muodostamisen jälkeen.

 Series 80
Nokia Communicatorien, kuten Nokia 9300i:n käyttämä.

 Series 90
Kosketus- ja painikepohjainen. Ainoa tätä alustaa käyttävä puhelin on Nokia 7710.

 UIQ
Pääosin Sony Ericssonin ja sittemmin Motorolan tukema, se on yhteensopiva sekä painike- että kosketus-/styluspohjaisen syötteen kanssa. Viimeinen iso julkaisuversio on UIQ3.1 vuonna 2008 Sony Ericsson G900 -puhelimessa. Se lakkautettiin Symbian Foundationin muodostamisen jälkeen, kun oli tehty päätös yhdistää kaikki käyttöliittymät S60-pohjaiseen käyttöliittymäversioon.

 MOAP (Mobile Oriented Applications Platform) [vain Japanissa]
Fujitsun, Mitsubishin, Sony Ericssonin ja Sharpin käyttämä, NTT DoCoMon puhelimille kehitetty. Se käyttää varta vasten DoCoMon FOMA "Freedom of Mobile Access" -verkkobrandia suunniteltua käyttöliittymää ja pohjautuu Fujitsun aiempien FOMA-mallien käyttöliittymään. Käyttäjä ei voi asentaa uusia C++-sovelluksia. (vain Japanissa)

 OPP [vain Japanissa], MOAP:in seuraaja, NTT DoCoMon FOMA-puhelimessa käytetty.

Symbian (S60)-versioiden vertailu

* Fujitsun valmistama
† Sharpin valmistama

Markkinaosuus ja kilpailijat
16. marraskuuta 2006 100.s miljoonas Symbiania käyttävä älypuhelin valmistettiin. 21. heinäkuuta 2009 mennessä yli 250 miljoonaa Symbian OS -laitetta oli valmistettu.

Vuonna 2006 Symbianin markkinaosuus älypuhelinmarkkinoista oli 73 % verrattuna sen markkinaosuuteen vuoden 2011 toisella neljänneksellä, mikä oli 22.1%.

Symbian on menettänyt markkinaosuuttaan vuosien varrella samalla kun markkinat ovat dramaattisesti kasvaneet ja markkinoille on tullut kilpailevia alustoja, vaikkakin sen myynti on noussut samalla aikaa. Vaikkakin Symbianin osuus maailmanlaajuisista älypuhelinmarkkinoista putosi vuoden 2008 52,4 % vuoden 2009 lukuun 47,2 %, Symbian-laitteiden valmistus kasvoi 4,8 %, 74,9 miljoonasta yksiköstä 78,5 miljoonaan yksikköön. Vuoden 2009 toisesta neljänneksestä vuoden 2010 toiseen neljännekseen Symbian-laitteiden valmistusmäärät nousivat 41,5 %, 8,0 miljoonalla yksiköllä, 19 178 910 yksiköstä 27 129 340 yksikköön; verrattuna Androidin 9,6 miljoonan yksikön, RIM:in 3,3 miljoonan yksikön ja Applen 3,2 miljoonan yksikön nousuun.

Aiempien helmikuussa 2010 julkaistujen raporttien mukaan Symbian-laitteiden osuus vuonna 2009 myydyistä älymobiililaitteista oli 47,2 %, RIM:in osuus 20,8 %, Applen 15,1 % (iOS:in kautta), Microsoftin 8,8 % (Windows CE:n ja Windows Mobilen kautta) ja Androidin osuus oli 4,7 %.

”Älymobiililaitteiden” myyntimäärissä Symbian-laitteet olivat markkinajohtajia vuonna 2010. Tilastot näyttävät, että Symbian-laitteiden osuus kaikista myydyistä älymobiililaitteista oli 37,6 %, Androidin osuus oli 22,7 %, RIM:in 16 %, ja Applen 15,7 % (iOS:in kautta). Joidenkin arvioiden mukaan vuoden 2010 toisen neljänneksen loppuun mennessä on myyty 385 Symbian -laitetta.

Vuosien 2009–2010 aikana Motorola, Samsung, LG, ja Sony Ericsson ilmoittivat vetäytyvänsä Symbianista vaihtoehtoisten alustojen, kuten Googlen Androidin ja Microsoftin Windows Phonen, hyväksi.

IDC:n mukaan Symbianin markkinaosuus on pudonnut kaikkien aikojen pohjalukemiin 4,4 % vuoden 2012 toisella neljänneksellä.

Kritiikkiä
Symbianin käyttäjät maissa, jotka eivät käytä latinalaista aakkostoa (kuten Venäjä, Ukraina ja muut), ovat kritisoineet monimutkaista kielenvaihtotapaa useita vuosia. Esimerkiksi jos käyttäjä haluaa kirjoittaa latinalaisen kirjaimen, hänen tulee ottaa valikko esiin, napsauttaa kielikuvaketta, käyttää nuolinäppäimiä valitakseen esimerkiksi englannin kieli monien muiden kielten joukosta ja sitten painaa OK-painiketta. Latinalaisen kirjaimen kirjoitettuaan käyttäjän tulee toista sama menettely palatakseen käyttämään äidinkielistä näppäimistöään. Tämä tapa hidastaa vierailla kielillä kirjoittamista merkittävästi. Kosketusnäyttö- ja QWERTY-puhelimissa menettelytapa on hieman erilainen, mutta silti aikaavievä. Kaikissa muissa mobiilikäyttöjärjestelmissä, mukaan lukien Nokian S40-puhelimet, on mahdollista vaihtaa kahden alussa valitun kielen välillä yhdellä napsautuksella tai eleellä.

Alkuperäisen Nokia N97:n laiteohjelmiston varhaisia versioita, jotka käyttivät Symbian^1/Series 60 5th Editionia, kritisoitiin kovasti viallisiksi (osasyyllisenä oli myös puhelimen keskusmuistin vähäinen määrä).

Marraskuussa 2010 älypuhelinblogi All About Symbian kritisoi Symbianin oletusverkkoselaimen suorituskykyä ja suositteli vaihtoehtoista selainta, Opera Mobilea. Nokian vanhempi varajohtaja Jo Harlow lupasi päivitetyn selaimen vuoden 2011 ensimmäisellä neljänneksellä.

Symbianista on useita eri versioita ja painoksia, mikä on johtanut pirstoutumiseen. Sovellukset ja ohjelmistot eivät välttämättä ole keskenään yhteensopivia eri Symbian-versioiden kanssa.

Haittaohjelmat

Symbian on useiden virusten kohde; tunnetuin virus on Cabir. Yleensä nämä lähettävät itsensä puhelimeen Bluetoothin välityksellä. Tähän mennessä yksikään haittaohjelma ei ole käyttänyt hyväkseen Symbianin heikkouksia - sen sijaan ne kaikki ovat pyytäneet käyttäjää asentamaan ohjelmiston, vaikkakin jotkut luottavat käyttäjän manipulointiin, usein erinäisten viestien muodossa. Jotkin haittaohjelmat esittävät olevansa hyötyohjelmia, pelejä tai joitakin muita Symbian-sovelluksia.

Kuitenkin oletuksena oli, että keskivertomatkapuhelinkäyttäjän ei tarvitsisi huolehtia turvallisuudesta, joten Symbian OS 9.x otti käyttöön UNIX-tyylisen valmiusmallin (käyttöoikeudet prosessia kohden, ei objektia kohden). Teoreettisesti asennettu ohjelmisto ei pysty tekemään vahinkoa (esimerkiksi aiheuttamalla rahallista menetystä käyttämällä datayhteyttä) ilman, että se on digitaalisesti allekirjoitettu – joka puolestaan tekee ohjelmasta jäljitettävän. Kaupalliset ohjelmoijat, joilla on varaa, voivat hakea mukaan Symbian Signed -ohjelmaan ja saada ohjelmistonsa allekirjoitettua sitä kautta. Ohjelmistonkehittäjillä on myös mahdollisuus itse allekirjoittaa ohjelmansa. Kuitenkin saatavilla olevat ominaisuudet eivät sisällä pääsyä Bluetoothiin, IrDA:an, GSM CellID:hen, äänipuheluihin, GPS:ään ja muutamaan muuhun ominaisuuteen. Jotkin operaattorit ovat päättäneet poistaa käytöstä kaikki muut sertifikaatit paitsi Symbian Signed -sertifikaatit.

Alapuolella on listattu joitakin haittaohjelmia, mutta silti ne kaikki vaativat käyttäjän toimia ollakseen haitaksi.
 Drever.A on vahingollinen SIS-tiedosto-trojalainen, joka yrittää poistaa käytöstä Simworksin ja Kasperskyn anti-virus-ohjelmat automaattisesta käynnistyksestä.
 Locknut.B on vahingollinen SIS-tiedosto-trojalainen, joka esittää olevansa paikkaus Symbian S60 -matkapuhelimille. Kun se on asennettu, se suorittaa binaaritiedoston, joka kaataa kriittisen järjestelmäpalvelun osan, täten estäen minkä tahansa sovelluksen avaamisen.
 Mabir.A on käytännössä Cabir lisätyillä multimediaviestitoiminnoilla. Se leviää Bluetoothin välityksellä samaan tapaan kuin Cabirin varhaiset versiot. Kun Mabir.A aktivoituu, se etsii ensimmäisen puhelimen, jonka se löytää, ja lähettää itsestään kopioita siihen puhelimeen.
 Fontal.A on SIS-tiedosto-trojalainen, joka asentaa vioittuneen tiedoston, minkä ansiosta puhelin ei toimi uudelleenkäynnistyksen jälkeen. Jos käyttäjä yrittää käynnistää saastuneen puhelimen uudelleen, se jää pysyvästi uudelleenkäynnistystilaan eikä sitä voi käyttää ilman puhdistusta – eli alustusnäppäinkomentoa, joka poistaa kaikki käyttäjän tiedot laitteesta. Frontal on trojalainen eikä näin ollen leviä itsestään – todennäköisin tapa tartunnan saamiseen olisi tiedoston hankkiminen epäluotettavasta lähteestä ja sen asentaminen, joko vahingossa tai muuten, puhelimeen.

Joulukuussa 2010 intialainen hakkeri Atul Alex esitteli uudenlaista haittaohjelmauhkaa Symbianille, nimeltään 'keitetty firmware', kansainvälisessä haittaohjelmakonferenssissa, MalConissa.

Alustan turvallisuuden ohittaminen
Symbian OS 9.x -laitteet pystyy hakkeroimaan poistaakseen käyttöjärjestelmän versiossa 9.1 ja uudemmissa esitellyn alustan turvajärjestelmän, joka mahdollistaa allekirjoittamattoman koodin suorittamisen. Tämä mahdollistaa järjestelmätiedostojen muokkaamisen ja pääsyn aiemmin lukittuihin käyttöjärjestelmän osiin. Nokia kritisoi tätä hakkerointia siitä, että se mahdollisesti voi kasvattaa mobiilivirusten uhkaa, kun allekirjoittamatonta koodia voi suorittaa.

Versioiden historiaa

Katso myös

Yleistä
Android
EKA2 nykyinen Symbianin ydin, EKA1:n seuraaja
EPOC
Luettelo Symbian-laitteista
MOAP-käyttöliittymä
Nokia Ovi suite
Series60-Remote
Nokia PC Suite, ohjelmisto, jonka avulla muodostetaan yhteys Nokian puhelimiin ja Microsoft Windowsia käyttäviin tietokoneisiin; ei rajoitu vain Symbianiin
Nokia Software Updater
S60, Series 60, Nokian ja muiden käyttämä käyttöliittymä
Web Browser for S60 oletusverkkoselain
Ovi Store Nokian sovelluskauppa Internetissä, ei rajoitu vain Symbianiin
Symbian Foundation
Symbian Ltd

Ohjelmistonkehitykseen liittyvää
Aktiivinen objekti (Symbian OS)
Carbide.c++, vaihtoehtoinen sovellus- ja käyttöjärjestelmäkehitysohjelmointiympäristö
P.I.P.S. Is POSIX on Symbian
Python for S60, vaihtoehtoinen kieli sovelluskehitykseen
Qt (kehitysympäristö), suositeltu kehitystyökalu sekä käyttöjärjestelmälle että sovelluksille, ei rajoitettu pelkästään Symbianiin
Qt Creator -ohjelmointiympäristö
Qt Quick
QML, JavaScript-pohjainen kieli
Siivouspino
Valtuutettu Symbian-kehittäjä (engl. Accredited Symbian Developer)

Symbian^3 EPL -lähdekoodi
 symbiandump

Sovellukset 
Katso :Luokka:Symbian-sovellukset.

Lähteet

Kirjaluettelo

Aiheesta muualla

 Symbian Foundationin blogi (jonne kotisivu ohjautuu) 
 Symbian Ohlohissa 
 Symbian OS  Open Directory Projectissa 
 Qt-sovelluskehittäjien verkkosivusto 
 Symbian C++ -kehittäjien verkkosivusto 
 Forum Nokia: Symbian C++/Code and Examples  
 Nokia Discussion Forum - englanninkielinen keskustelupalsta mm. Symbian ohjelmistoalusta kiinnostuneille  

 
Langaton viestintä
Älypuhelimet
Seulonnan keskeiset artikkelit