Symbian Operating System Open Source Computer Science Essay

Published: Last Edited:

This essay has been submitted by a student. This is not an example of the work written by our professional essay writers.

Symbian OS is an open source operating system for mobile phones and smart phones. It has libraries, user interface, frameworks and reference implementations of common tools. Symbian OS runs exclusively on ARM processors and has evolved from Psion's EPOC which was developed as a rudimentary operating system for early electronic organizers. Psion software created a joint venture with several mobile hardware manufacturers, Ericsson, Motorola, and Nokia called Symbian

Symbian has a microkernel architecture, which means that the minimum necessary is within the kernel to maximise robustness, availability and responsiveness. It contains a scheduler, memory management and device drivers, but other services like networking, telephony and filesystem support are placed in the OS Services Layer or the Base Services Layer. The inclusion of device drivers means the kernel is not a true microkernel.

The native language of Symbian is C++, although it is not a standard implementation. There were multiple platforms based upon Symbian OS that provided SDKs for application developers wishing to target Symbian OS devices. Unfortunately, Symbian C++ programming has a steep learning curve, as Symbian requires the use of special techniques such as descriptors and the cleanup stack.

Symbian features pre-emptive multitasking and memory protection, like other operating systems (especially those created for use on desktop computers). EPOC's approach to multitasking was inspired by VMS and is based on asynchronous server-based events.

Symbian uses a microkernel, has a request-and-callback approach to services, and maintains separation between user interface and engine. The OS is optimized for low-power battery-based devices and for ROM-based systems (e.g. features like XIP and re-entrancy in shared libraries). Applications, and the OS itself, follow an object-oriented design: Model-view-controller (MVC).

There is a strong emphasis on conserving resources which is exemplified by Symbian-specific programming idioms such as descriptors and a cleanup stack. There are similar techniques for conserving disk space (though the disks on Symbian devices are usually flash memory). Furthermore, all Symbian programming is event-based, and the CPU is switched into a low power mode when applications are not directly dealing with an event. This is achieved through a programming idiom called active objects. Similarly the Symbian approach to threads and processes is driven by reducing overheads.

The Symbian kernel (EKA2) supports sufficiently-fast real-time response to build a single-core phone around it, a phone in which a single processor core executes both the user applications and the signalling stack[. This is a feature which is not available in Linux. This has allowed Symbian EKA2 phones to become smaller, cheaper and more power efficient than their predecessors


Messaging - Symbian OS includes comprehensive support for SMS, EMS, MMS, email and fax. Peer-to-peer multimedia messaging is a key revenue generator for 2.5G and 3G networks

Open application environment - Symbian OS enables mobile phones to be a platform for deployment of applications and services (programs and content) developed in a wide range of languages (Java and C++) and content formats

Standards and interoperability - with a flexible and modular implementation, Symbian OS provides a core set of application programming interfaces (APIs) and technologies that is shared by all Symbian OS phones. Key industry standards such as IP v4 and v6, Bluetooth wireless technology, Java, WAP and SyncML are supported

Multi-tasking - Fully object-oriented and component-based, Symbian OS includes a multi-tasking kernel, middleware for communications, data management and graphics,

Flexible user interface design - By enabling flexible graphical user interface design on Symbian OS, Symbian is fostering innovation and is able to offer choice for manufacturers, carriers, enterprises and end-users. Using the same core operating system in different designs also eases application porting for third party developers.


Mac operating system was especially designed for the Macintosh's personal computers. The part of the operating system that simulates the desktop is called "Finder." The multitasking version of Finder was called "MultiFinder" until multitasking was integrated into the core of the OS with the introduction of System 7.0 in 1990 The Macintosh series provides a built-in graphics language, called "QuickDraw", which provides a standardfor software developers.

Mac OS 8, scheduled for delivery in July 1997, included new human-interface features, increased system stability and performance, a PowerPC processor-native Finder, tighter integration of Internet access through panel-based "assistants," Personal Web Sharing and the ability to run Java applets and programs through Mac OS Run Time for Java. Version 9.2 was the last version of the bespoke Mac OS. The next version, Mac OS X is quite different, being based on Unix.

Mac OS X is the newest of Apple Inc.'s Mac OS line of operating systems. Although it is officially designated as simply "version 10" of the Mac OS, it has a history largely independent of the earlier Mac OS releases.

Mac OS X's core is a POSIX compliant operating system (OS) built on top of the XNU kernel, with standard Unix facilities available from the command line interface. Apple released this family of software as a free and open source operating system named Darwin, but it later became partially proprietary. On top of Darwin, Apple layered a number of components, including the Aqua interface and the Finder, to complete the GUI-based operating system which is Mac OS X

One of the major differences between the previous versions of Mac OS and OS X was the addition of the Aqua GUI, a graphical user interface with water-like elements. Every window element, text, graphics, or widgets is drawn on-screen using the anti-aliasing technology. ColorSync, a technology introduced many years before, was improved and built into the core drawing engine, to provide color matching for printing and multimedia professionals. Also ,drop shadows were added around windows and isolated text elements to provide a sense of depth. New interface elements were integrated, including sheets (document modal dialog boxes attached to specific windows) and drawers.

The human interface guidelines published by Apple for Mac OS X are followed by many applications, giving them consistent user interface and keyboard shortcuts. In addition, new services for applications are included, which include spelling and grammar checkers, special characters palette, color picker, font chooser and dictionary; these global features are present in every Cocoa application, adding consistency. The graphics system OpenGL composites windows onto the screen to allow hardware-accelerated drawing. This technology, introduced in version 10.2, is called Quartz Extreme, a component of Quartz. 



Take advantage of TextEdit support for the Word 2007 and OpenDocument formats for reading and writing.


Save the configuration of all your open windows as a workspace. The location, window settings, and shell configurations of multiple windows can then be recalled instantly.


Get yourself a .Mac account and your System Preferences can stay in sync across all your Macs. No matter what Mac you use, you'll feel right at home.


Allow anyone to surf the web and check email as a guest on your Mac. When they log out of the guest account, Mac OS X purges the account, removing any trace of their activity. So each time someone logs in as a guest, he or she gets a fresh, unused account.


Let your grammar set a shining example. A built-in English language grammar checker helps ensure that you don't make errors in grammar.


Scroll any open window, even if it's not active. Simply position your mouse over the target window and scroll.


Make sure you always have the latest printer drivers. Download directly to your system using the familiar capabilities of Software Update.


Re-create your PDF as you like. Move individual pages around, or remove pages altogether. You can even combine PDFs with a simple drag and drop.


Let Leopard adjust TCP buffer size automatically. Get optimum application performance, especially in high-bandwidth/high-latency environments.


Create an archive of your mailbox to back up important messages or to transfer your mail to another computer.


Register for AOL's Mobile Forwarding service and receive instant messages on your phone when you're away from your computer.


Share the information you need for a successful meeting. Simply drag photos, video, or any kind of document into an event. Send email invitations to attendees and your attachments go along for the ride.


Automatically activate fonts as you need them. When an application requests an installed font that's currently disabled, Leopard activates that font and keeps it active until the requesting application quits.


Start an interactive screen sharing session with other Macs on your network. Just select the Mac from your sidebar and (if authorized) you can see and control the Mac as if you were right in front of it. Change a system preference, publish an iPhoto library, or add a new playlist to iTunes.


Harness the power of Wikipedia when you're connected to the Internet - built right into its Dictionary. You get a great Mac OS X user interface with super-fast searching and beautifully laid out-results.


Synchronize Address Book on your Mac with your Yahoo! address book. Just enter your Yahoo! account information in Address Book preferences to get started.

Windows CE

A version of the Microsoft Windows operating system that is being used in a variety of embedded products, from handheld PCs to specialised industrial controllers and consumer electronic devices. Programming for Windows CE is similar to programming for other Win32 platforms.

Windows CE was developed to be a customisable operating system for embedded applications. Its kernelborrows much from other Microsoft 32-bit operating systems, while eliminating (or replacing) those operating system features that are not needed for typical Windows CE-based applications. For example, as on Windows NT, all applications running on Windows CE run in a fully preemptive multitaskingenvironment, in fully protected memory spaces.

The Win32 (API) for Windows CE is smaller than the Win32 API for the other 32-bit Windows operating systems. It includes approximately half the interface methods of the Windows NT version of the API. But the Win32 API for Windows CE also includes features found in no other Microsoft operating system. The notification API, for example, makes it possible to handle user or application notification events (such as timer events) at the operating-system level, rather than in a running application. The touch screen API and the built-in support for the Windows CE database are not found in other Windows operating systems. The touch screen API makes it easy to manage screen calibration and user interactions for touch-sensitive displays, while the database API provides access to a data storage facility.

Windows Embedded CE is an open, scalable, 32-bit operating system that is designed to meet the needs of a broad range of intelligent devices. These devices range from enterprise tools, such as industrial controllers, communications hubs, and point-of-sale terminals to consumer products such as cameras, telephones, and home entertainment devices.


Applications and Services Development

Describes the operating system functionality that is available in Windows CE for developing applications and services.

Applications - End User

Describes the operating system functionality that is available for developing end user applications.

Communication Services and Networking

Describes the networking and communications capabilities in Windows CE that enable devices to connect and communicate with other devices and people over both wireless and wired networks.

Core OS Services

Describes the core operating system (OS) services that are available in Windows CE. Core OS services contain information on the Windows CE kernel and other features common to all Windows CE OS designs. The core OS services enable low-level tasks such as process, thread, and memory management.

File Systems and Data Store

Provides an overview of the file systems and data store architecture in Windows CE.

Graphics and Multimedia Technologies

Describes the graphics and multimedia technologies that are supported in Windows CE. Includes detailed descriptions of the audio, graphics, and media support in Windows CE.


Describes the International support in Windows CE. The International technologies in Windows CE are comprised of a collection of functionality that provides general locale services and locale-specific support for certain key capabilities.

Internet Client Services

Describes the support for Internet client services in Windows CE. Windows CE provides support for browser applications, technologies that enable you to create custom browsers, and run-time engines for parsing and translating scripting languages.


Provides an overview of the security technologies that enable you to enhance the security of your devices or applications.

Shell and User Interface

Provides a description of the shell and user interface technologies in Windows CE. These include the functionality that is necessary for a user to interact with a Windows CE-based device and the underlying OS.

Voice over IP Phone Services

Describes the technologies that are available in Windows CE to build IP phone devices.

Windows CE Error Reporting

Describes the Windows CE Error Reporting technology. Windows CE Error Reporting allows a device to save key information about the state of the machine at the time of a program crash.



Solaris is the UNIX-based operating system of Sun Microsystems with roots in the BSD operating system family. Up to the version 3.x this operating system was called SunOS, this name was kept into the internal release information of current Solaris versions. The first version of SunOS was published in 1982. With the version 4.0 the new product name Solaris was introduced for SunOS releases as of 1989. The operating system Solaris 2.0 (SunOS 5.0) basing on the UNIX system V release 4 was published in July 1992.

Solaris uses a common code base for the platforms it supports: SPARC and i86pc (which includes both x86 and x86-64).

Solaris is certified against the Single Unix Specification. Although it was historically developed asproprietary software, it is supported on systems manufactured by all major server vendors, and the majority of its codebase is now open source software via the OpenSolaris project.

Solaris has a reputation for being well-suited to symmetric multiprocessing, supporting a large number of CPUs. It has historically been tightly integrated with Sun's SPARC hardware), with which it is marketed as a combined package. This has often led to more reliable systems, but at a cost premium over commodity PC hardware.

Sun and other Unix vendors created an industry alliance to standardize Unix desktops. As a member of COSE, the Common Open Software Environment initiative, Sun helped co-develop the Common Desktop Environment. CDE was an initiative to create a standard Unix desktop environment.

The open source desktop environments KDE and Xfce, along with numerous other window managers, also compile and run on recent versions of Solaris.Sun was investing in a new desktop environment called Project Looking Glass since 2003. The environment has been copied by other desktop vendors.



The Solaris OS is built from a single source base and features the same programming interfaces on any supported platform. This means that applications developed for SPARC systems can be easily recompiled for x86 systems and vice versa.


The Solaris Operating System (OS) introduces a new architecture for building and

deploying systems and services capable of Predictive Self-Healing. This feature has

advanced background error detection, correction, and recovery, which proactively

offlines components before system failure.


The Solaris ZFS file system is designed from the ground up to meet the emerging

needs of a general-purpose fi le system that spans the desktop to the data center. ZFS

is highly scalable and provides excellent performance with end-to-end data integrity.


Designed to be more powerful than any diagnostic tool, DTrace is an excellent

dynamic tracing framework for troubleshooting your network and tuning system

performance in real time. DTrace lets you see your entire system in a way that reveals

systemic problems that were previously invisibile and fi xing performance issues that

used to go unresolved.


The Solaris OS is designed to provide comprehensive, in-depth security, helping to protect the enterprise at multiple levels. Specific features include Solaris Containers

technology for application isolation, Secure by Default for system/network



Linux, also known as GNU/Linux, is a free, UNIX-like operating system, developed originally for home PCs, but which now runs on practically every hardware platform available including PowerPC, Macintosh, DEC Alpha, Sun Sparc, ARM, Mainframes, and many others. Linux aims for POSIX compliancy to maintain maximum compatibility with other UNIX-like systems. With millions of users worldwide, Linux is probably the most popular UNIX-like OS in the world.

The central nervous system of Linux is the kernel, the operating system code which runs the whole computer. The kernel is under constant development and is always available in both the latest stable release and the latest experimental release.

The kernel design is modular, so that the actual OS code is very small yet able to load whatever functionality it needs when it needs it. Because of this, the kernel remains small and fast yet highly extensible, in comparison to other operating systems which slow down the computer and waste memory by loading everything all the time, whether it is needed or not.

Linux systems excel in many areas, ranging from end-user concerns such as stability, speed, and ease of use, to serious concerns such as development and networking. Nowadays, Linux even offers a wide variety of free and commercial productivity packages such as the OpenOffice suite which can import and export files from other platforms, including Windows and MacOS.



Linux has long been praised for its stability--Linux boxes are known for running months or even years at a time without crashing, freezing, or having to be rebooted. Linux users sometimes poke fun at other, less stable operating systems, by way of screensavers like BSOD (Blue Screen of Death, which displays crash screens from various other platforms).


So much of the web is built on Linux that the acronym LAMP has emerged. LAMP represents Linux, Apache (web server), MySQL (database) and PHP (web application language). This acronym may need to be changed eventually due to the rapid growth of PostgreSQL, Ruby, and Java on Linux web servers.

Linux machines are known to be extremely fast, because the operating system is very efficient at managing resources such as memory, CPU power, and disk space. NASA, Sandia, Fermilabs and many others have built very powerful yet inexpensive supercomputers by creating clusters of Linux boxes running in parallel. 


Networking comes naturally to Linux. Probably all networking protocols in use on the Internet are native to UNIX and/or Linux, so one can expect that UNIX and Linux would network better than any other platforms. Setting up a network on a Linux machine is surprisingly simple, because Linux handles most of the work.

Software Development

Programmers often find that the Linux development environment is second to none--a good thing for end users who depend on these software developers to provide free software. Nearly all development software for Linux is free and covered under the GNU Public License, which guarantees that it will always remain free. Linux systems come standard with C and C++ compilers and an assembler, and usually include Pascal, FORTRAN, compiled Java, Perl, Python, and BASIC implementations as well. In addition, modern languages like Ruby and classic languages like LISP are all available, fully functional and completely free.

The Open Source nature of Linux also makes it ideal for embedded and specialized systems (routers, cell phones, multimedia entertainment centers, point-of-sale systems), because there's no limit to what you can do to customize Linux for your special needs.


Networking comes naturally to Linux. Probably all networking protocols in use on the Internet are native to UNIX and/or Linux, so one can expect that UNIX and Linux would network better than any other platforms. Setting up a network on a Linux machine is surprisingly simple, because Linux handles most of the work.

A large part of the Web is running on Linux boxes, especially because of the Apache Web Server which dramatically defeated its commercial competitors, proving the effectiveness and viability of the Open Source approach.


Productivity software availability has exploded in recent years, and commercial developers have been producing excellent software for the Linux platform. The Firefox browser, Opera, and Mozilla are freely available (with some licensing restrictions) as well as the OpenOffice productivity suite, KOffice and a host of others, which often come standard on Linux distributions. Many distributors package commercial software with their distributions, and many commercial producers offer free downloads for Linux. Linux productivity packages can usually read and write files from productivity packages on other platforms; Linux has always been at the leading edge of compatibility and openness.


The open source nature of Linux guarantees it is here to stay, and the amazing growth of Linux over the past years bears that out. Best of all, as long as you stick with a truly free/open source operating system like Linux and truly free/open source applications, you can never get locked into depending on any particular vendor. Linux puts you in control of what you do with your software, how, when and if you choose to change or upgrade it.


multitasking: several programs running at the same time.

multiuser: several users on the same machine at the same time (and no two-user licenses!).

multiplatform: runs on many different CPUs, not just Intel.

multiprocessor: SMP support is available on the Intel and SPARC platforms (with work currently in progress on other platforms), and Linux is used in several loosely-coupled MP applications, including Beowulf systems (see and the Fujitsu AP1000+ SPARC-based supercomputer.

multithreading: has native kernel support for multiple independent threads of control within a single process memory space.

runs in protected mode on the 386.

has memory protection between processes, so that one program can't bring the whole system down.

demand loads executables: Linux only reads from disk those parts of a program that are actually used.

shared copy-on-write pages among executables. This means that multiple process can use the same memory to run in. When one tries to write to that memory, that page (4KB piece of memory) is copied somewhere else. Copy-on-write has two benefits: increasing speed and decreasing memory use.

virtual memory using paging (not swapping whole processes) to disk: to a separate partition or a file in the filesystem, or both, with the possibility of adding more swapping areas during runtime (yes, they're still called swapping areas). A total of 16 of these 128 MB (2GB in recent kernels) swapping areas can be used at the same time, for a theoretical total of 2 GB of useable swap space. It is simple to increase this if necessary, by changing a few lines of source code.

a unified memory pool for user programs and disk cache, so that all free memory can be used for caching, and the cache can be reduced when running large programs.

dynamically linked shared libraries (DLL's), and static libraries too, of course.

does core dumps for post-mortem analysis, allowing the use of a debugger on a program not only while it is running but also after it has crashed.

mostly compatible with POSIX, System V, and BSD at the source level.

through an iBCS2-compliant emulation module, mostly compatible with SCO, SVR3, and SVR4 at the binary level.

all source code is available, including the whole kernel and all drivers, the development tools and all user programs; also, all of it is freely distributable. Plenty of commercial programs are being provided for Linux without source, but everything that has been free, including the entire base operating system, is still free.

POSIX job control.

pseudoterminals (pty's).

387-emulation in the kernel so that programs don't need to do their own math emulation. Every computer running Linux appears to have a math coprocessor. Of course, if your computer already contains an FPU, it will be used instead of the emulation, and you can even compile your own kernel with math emulation removed, for a small memory gain.

support for many national or customized keyboards, and it is fairly easy to add new ones dynamically.

multiple virtual consoles: several independent login sessions through the console, you switch by pressing a hot-key combination (not dependent on video hardware). These are dynamically allocated; you can use up to 64.

Supports several common filesystems, including minix, Xenix, and all the common system V filesystems, and has an advanced filesystem of its own, which offers filesystems of up to 4 TB, and names up to 255 characters long.

transparent access to MS-DOS partitions (or OS/2 FAT partitions) via a special filesystem: you don't need any special commands to use the MS-DOS partition, it looks just like a normal Unix filesystem (except for funny restrictions on filenames, permissions, and so on). MS-DOS 6 compressed partitions do not work at this time without a patch (dmsdosfs). VFAT (WNT, Windows 95) support and FAT-32 is available in Linux 2.0

special filesystem called UMSDOS which allows Linux to be installed on a DOS filesystem.