Symbian OS è un sistema operativo mobile e una piattaforma di calcolo progettata per gli smartphone. È stato originariamente sviluppato come sistema operativo closed source per PDA nel 1998 da Symbian Ltd. Questa piattaforma era originariamente una successiva distribuzione di EPOC Psion e funzionava esclusivamente su processori ARM (sebbene esistesse anche una versione x86).
Symbian è stato utilizzato da molti importanti marchi di telefoni cellulari: Samsung, Motorola, Sony Ericsson e, soprattutto, Nokia. Come pioniere nella creazione del settore degli smartphone, è stato il sistema operativo per smartphone più popolare fino a circa la fine del 2010, cioè in un momento in cui erano in uso limitato. Poi il suo sviluppo ha superato il sistema operativo Android, dal momento che lo sviluppo di Google ha rapidamente raggiunto il mercato di massa.
Dal 2001, Symbian OS è una shell di sistema e richiede un'interfaccia utente aggiuntiva (come middleware) per formare un sistema operativo completo. Divenne quindi autosufficiente grazie alla piattaforma S60 (ex Serie 60), creata da Nokia e pubblicata per la prima volta nel 2002. Poiché è stato integrato nella maggior parte degli smartphone Nokia, il sistema operativo Symbian è diventato il sistema operativo mobile intelligente più utilizzato.
UIQ era un'altra interfaccia utente Symbian, utilizzata principalmente da Motorola e SonyEricsson, mentre MOAP esisteva anche in Giappone. Le applicazioni di queste interfacce non erano compatibili tra loro, nonostante il fatto che ognuna di esse fosse costruita su Symbian OS. Nokia è stata l'azionista di maggioranza di Simbian e ha acquisito l'intera partecipazione nel 2008. Successivamente, è stata creata una Symbian Foundation senza scopo di lucro per sviluppare un software royalty-free basato sulla S60. Come risultato di questo lavoro, Symbian ^ 1 (o S60 5th Edition) è stato rilasciato nel 2009. Il successivo kit di distribuzione ^ 2 è stato utilizzato solo per NTT DoCoMo media nel mercato giapponese. Symbian ^ 3 è stato rilasciato nel 2010 e, a quel tempo, era diventato una piattaforma completamente open source. Questa versione ha ricevuto aggiornamenti significativi nel 2011.
La Symbian Foundation è andata in pezzi alla fine del 2010 e Nokia ha riguadagnato il controllo dello sviluppo del sistema operativo. A febbraio 2011, Nokia, l'unica azienda rimasta che supporta Symbian al di fuori del Giappone, ha annunciato che utilizzerà Windows Phone 7 di Microsoft come piattaforma principale per smartphone. Due mesi dopo, il sistema operativo è stato spostato su licenze chiuse. Nonostante il supporto della piattaforma sia stato promesso fino al 2016, tutti gli sviluppi dal 2012 si sono sviluppati male. Nel gennaio 2014, Nokia ha smesso di accettare il software Symbian nuovo o modificato dagli sviluppatori.
Nokia 808 PureView è diventato ufficialmente l'ultimo smartphone Symbian di questo produttore. Tuttavia, NTT DoCoMo ha continuato a produrre dispositivi OPP (Operatore Symbian Symbian, MOAP successore) in Giappone, che funzionano ancora come middleware su Symbian. Altri telefoni Symbian OS oggi ampiamente utilizzati sono Fujitsu F-07F e Sharp SH-07F, rilasciati nel 2014.
Sin dalla sua nascita, Symbian ha avuto il proprio toolkit grafico, noto come AVKON (in precedenza - Serie 60). L'S60 è stato progettato per essere controllato utilizzando una tastiera simile a uno strumento di interfaccia (mini-QWERTY). Il software basato su AVKON è compatibile con le versioni binarie di Symbian, inclusa la versione ^ 3.
Symbian ^ 3 include il framework Qt, che è attualmente il toolkit raccomandato per le nuove applicazioni. Qt può anche essere installato su dispositivi precedenti con questo sistema operativo.
La quarta distribuzione stava progettando di introdurre una nuova libreria grafica appositamente progettata per l'interfaccia touch, nota come "Estensioni UI per dispositivi mobili" o UIEMO, sviluppata in base a QtWidget. La versione di prova è stata rilasciata nel gennaio 2010, ma nell'ottobre dello stesso anno, Nokia ha annunciato che Orbit / UIEMO non entrerà nel mercato.
Attualmente, Nokia raccomanda agli sviluppatori di utilizzare QtQuick con QML, la nuova interfaccia utente dichiarativa di alto livello e l'ambiente di sviluppo scripting che consente lo sviluppo sia del sistema operativo Symbian che di MeeGo. È disponibile per dispositivi esistenti di terza generazione come aggiornamento Qt. Quando in altre applicazioni appare gradualmente una nuova interfaccia utente, la struttura S60 obsoleta (AVKON) viene soppiantata e non viene più inclusa nei nuovi dispositivi, il che viola la compatibilità binaria con le vecchie applicazioni per Symbian OS S60.
Symbian ^ 3 e versioni precedenti hanno un browser basato su WebKit. Symbian è stata la prima piattaforma mobile che utilizza questa applicazione (nel giugno 2005). Alcuni telefoni più vecchi (su Symbian OS) usano Opera Mobile come browser predefinito.
Successivamente, Nokia ha rilasciato un nuovo browser Symbian Anna con una maggiore velocità e una migliore interfaccia utente.
Symbian ha un potente supporto per la localizzazione, consentendo ai produttori e agli sviluppatori di applicazioni di terze parti di utilizzare i loro prodotti basati su questo sistema operativo per supportare la distribuzione globale. L'attuale versione di Symbian (Belle) supporta 48 lingue che Nokia rende disponibili sui dispositivi nei pacchetti di lingue. Hanno tutti un comune dialetto inglese o localmente rilevante.
Il sistema operativo Symbian OS supporta il multitasking e la protezione della memoria preventivi, come altri sistemi operativi (specialmente quelli progettati per l'uso sui computer desktop). L'approccio EPOC al multitasking è stato appreso da VMS e si basa su eventi server asincroni.
Symbian OS è stato creato tenendo conto di tre principi di progettazione del sistema:
Per seguire meglio questi principi, Symbian utilizza un microkernel, ha un approccio ai servizi di callback e supporta la separazione tra l'interfaccia utente e il motore. Il sistema operativo è ottimizzato per dispositivi a bassa potenza su batterie e sistemi basati su ROM (ad esempio, funzionalità come XIP e reinclusione in librerie condivise). Le applicazioni e il sistema operativo stesso seguono un design orientato agli oggetti: Model-view-controller (MVC).
Le iterazioni successive del SO hanno diluito questo approccio in risposta alle richieste del mercato, in particolare con l'introduzione del kernel in tempo reale e modelli di sicurezza della piattaforma nelle versioni del sistema operativo Symbian 9.3 e versioni successive.
Un'attenzione particolare è dedicata alla conservazione delle risorse, esempi dei quali sono idiomi di programmazione speciali, come descrittori e stack di pulizia. Esistono metodi simili per risparmiare spazio di archiviazione. Inoltre, tutta la programmazione Symbian è basata su eventi e l'unità di elaborazione centrale (CPU) passa alla modalità a bassa potenza quando le applicazioni non sono direttamente correlate all'evento. Questo viene fatto usando un idioma software, chiamato oggetti attivi. Allo stesso modo, l'approccio di Symbian OS (9.4) a thread e processi è dovuto a costi generali ridotti.
Il modello AllOver contiene i seguenti livelli dall'alto al basso:
Il livello dei servizi di base è il livello più basso disponibile per le operazioni dell'utente. Comprende un file server e una libreria utente, una piattaforma plug-in che gestisce tutti i plug-in, storage, repository centrale, sistema di gestione dei database e servizi di crittografia. Contiene anche un server casella di testo e una shell di testo: due servizi di base da cui è possibile creare una porta completamente funzionale senza la necessità di servizi di livello superiore.
Symbian OS ha un'architettura microkernel, il che significa che il minimo necessario è all'interno del kernel per massimizzare affidabilità, disponibilità e reattività. Contiene scheduler, gestione della memoria e driver di dispositivo, ma altri servizi, come il networking, la telefonia e il supporto del file system, sono ospitati sul sistema operativo o sul livello dei servizi di base. L'attivazione dei driver di dispositivo significa che il kernel non è un vero microkernel. Il kernel EKA2 in tempo reale, chiamato nano-core, contiene solo le posizioni più primitive e richiede un modulo esteso per implementare qualsiasi altra astrazione.
Symbian è progettato per enfatizzare la compatibilità con altri dispositivi, in particolare con i file system multimediali rimovibili. Lo sviluppo iniziale di EPOC ha portato FAT a diventare un file system interno (e rimane fino ad oggi), ma un modello di persistenza orientato agli oggetti è stato posizionato sulla FAT sottostante per fornire un'interfaccia in stile POSIX e un modello in linea. I formati di dati interni si basano sull'utilizzo delle stesse API che creano dati per eseguire tutte le manipolazioni di file. Ciò ha portato a dipendenze dei dati e alle relative difficoltà con le loro modifiche e migrazione.
Esiste un grande sottosistema di rete e comunicazione con tre server principali: ETEL (telefonia EPOC), ESOCK (socket EPOC) e C32 (responsabile della comunicazione seriale). Ognuno ha un diagramma di plug-in. Ad esempio, ESOCK consente vari moduli di protocollo ".PRT" per implementare vari protocolli di rete. Il sottosistema contiene anche un codice che supporta linee di comunicazione brevi, come Bluetooth, IrDA e USB.
C'è anche una grande quantità di codice dell'interfaccia utente (UI). Il sistema operativo Symbian conteneva solo classi base e una sottostruttura, mentre la maggior parte delle interfacce utente reali erano supportate da terze parti. Questo non è più il caso. Tre interfacce principali - S60, UIQ e MOAP - sono state introdotte in Symbian nel 2009. Symbian contiene anche grafici, layout di testo e librerie di rendering dei font.
Tutti i programmi nativi C ++ per Symbian OS sono costruiti da tre classi base definite dall'architettura dell'applicazione: applicazione, documento e interfaccia utente dell'applicazione. Queste classi creano il comportamento fondamentale dell'applicazione. Il resto delle funzioni necessarie, la vista dell'applicazione, il modello e l'interfaccia dati sono creati in modo indipendente e interagiscono esclusivamente tramite la loro API con altre classi.
Molti altri componenti non si adattano ancora a questo modello, ad esempio SyncML, Java ME, che fornisce un set di API diverso rispetto alla maggior parte dei sistemi operativi e multimediali. Molti di questi sono framework e ci si aspetta che gli sviluppatori forniscano plug-in per loro da terze parti (ad esempio, HelixPlayer per i codec multimediali). Ciò ha il vantaggio che le API per tali aree di funzionalità sono le stesse in molti modelli di telefono e che gli sviluppatori hanno anche una maggiore flessibilità. Ma allo stesso tempo, questo significa che i produttori di telefoni devono fare un sacco di lavoro di integrazione per creare un gadget funzionale con il sistema operativo Symbian.
Symbian include un'interfaccia utente di aiuto chiamata TechView. Fornisce le basi per l'installazione iniziale ed è un ambiente in cui vengono eseguiti molti test Symbian e codice di esempio.
Symbian, avendo avanzato alla versione 7.0 del sistema operativo, era diviso in diverse interfacce utente grafiche, ognuna delle quali è supportata da una particolare azienda o dal loro gruppo. A differenza delle diverse versioni del sistema operativo Android, le interfacce grafiche di Symbian sono chiamate "piattaforme" a causa di modifiche e integrazione più significative. Tutto è diventato più complicato quando le applicazioni (compresi i giochi per i giochi Symbian OS) sviluppate per diverse piattaforme GUI sono diventate incompatibili tra loro, il che ha portato alla frammentazione del sistema operativo.