Wednesday, October 27, 2010

OS Base layer of MeeGo

               The OS Base layer of MeeGo  consists of mainly two parts Hardware adaptation software and MeeGo kernel .

Hardware Adaptation Software
              
               This part of software involves adapting the entire MeeGo OS platform to various hardware architecture's which the hardware vendor(Basically chipset vendors) must provide and these include platform kernel drivers, core architecture additions, kernel configuration, X software additions and configuration, modem support, and hardware specific media components and all these form the Hardware Adaptation Software Component
Lets Discuss Hardware Adaptation Software Component briefly:
  
KERNEL:
                Kernel is the central component of most computer operating systems; it is a bridge between applications and the actual data processing done at the hardware level. The kernel's responsibilities include managing the system's resources ,the communication between hardware and software components.There are three general categories of additions that MeeGo requires for each supported hardware platform.
                               
  • Kernel Drivers: This is the set of software drivers needed to interact with the hardware device. Some examples are drivers for wireless, camera, USB, 3G, Bluetooth, and touchscreen.
  • Core Architecture Additions: These are additional packages added to the Kernel to enable certain architecture features. An example would be firmware.
  • Kernel Configuration File: This file determines the options needed to get the hardware device working properly. This configuration file is in addition to the general kernel configuration file that is provided within MeeGo, and is specific to the hardware vendor platform. This file details the specific configurations required for the specific device. Examples include device architecture, processor type, device driver configuration options, network support, and kernel debugging options.
X Window System

            Also known as X or X11 is a computer software system and network protocol that provides a graphical user interface (GUI) .It creates a hardware abstraction layer where software is written to use a generalized set of commands, allowing for device independence and reuse of programs on any computer that implements X.

              There are two general categories of X additions that MeeGo requires for each supported hardware platform.
 
  • Core Architecture Additions: These are additional packages to be added to X to enable certain architecture features. Examples include the graphics controller, display, and acceleration.
  • X Configuration file: This file provides configuration and runtime parameters for initializing the X windows system. If there are hardware-specific configuration options required for the X windows system, these details must be added and supplied to the specific hardware platform X configuration file. Examples include the display output and resolution.
 Bootloader: 
           
           The bootloader program's only job is to perform the necessary initializations to prepare the hardware for the operating system, and it contains board- and/or processor-specific code. The bootloader provides the necessary glue between the firmware and the kernel. 

Image Device Format Tool: 
          
           This provides the details on how to write an image for a specific device. It is a tool used to create a device executable in the appropriate device format. 

Modem Support:

          Telephony framework plug-ins for specific cellular modems 

Hardware-Specific Media Codecs:
    
      Codecs that are hardware specific (such as codecs with hardware assist/offload)

MeeGo Kernel

          MeeGo uses a Linux kernel from kernel.org, with architecture specific configuration and patches (as needed). Drivers are provided for each supported platform. Guys Check out this Website you can even receive the source code of the kernel from the kernel.org.The latest stable kernel is running with the version 2.6.36.for more info on linux kernel  click here.




Wednesday, October 20, 2010

Moblin Platform

Moblin, short for 'mobile Linux', was an open source operating system and application stack for Mobile Internet Devices (MIDs), netbooks, nettops and embedded devices. Now it is called MeeGo. Built around the Intel Atom processor, current builds are designed to minimize boot times and power consumption to create a netbook and MID-centric operating system. The netbook/desktop version of Moblin currently supports other chipsets based on the SSSE3 instruction set, such as the Core2 and some Celeron processors.The Moblin 2 OS was specifically designed to run on an Intel Atom processor in a netbook.

Architecture :

The Moblin Architecture is designed to support multiple platforms and usage models, ranging from Netbooks to Mobile Internet Devices (MID), to various embedded usage models, such as the In Vehicle Infotainment systems. The central piece of the architecture is the common layer that we call Moblin Core, a hardware and usage model independent layer that provides one uniform way to develop such devices. Underneath Moblin Core, sits the Linux kernel and device drivers specific to the hardware platform, and above Moblin Core are the specific user interface and user interaction model for the target device.
Moblin Core provides a number of open source libraries and application services to form highly functional building blocks for the fast creation of specific devices.

Such functionality includes

  • Base graphics, text rendering and windowing system
  • Classic Desktop style user interface toolkit
  • Modern 3D based organic user interface toolkit
  • PIM server and client libraries
  • Multimedia management playback libraries with OpenGL integration
  • Networking subsystem with connection management
  • Power management
  • Fast boot technology
  • Services discovery, inter application messaging, UPnP stack
  • Location and Geo based services
  • Telephony

Planned improvements

  • Device synchronization
  • Web services connectivity
  • Web rendering components

MOBLIN CORE:

   Moblin Core is the heart of the Moblin software platform. It provides a feature rich common base shared among form factor-specific platform implementations, such as netbooks, MIDs, and automotive. Moblin Core consists of platform libraries and application services providing rich functional platform building blocks. It does not provide application user interfaces or specific user interaction shells. Such functionality is provided by a platform-specific implementation, produced by Moblin or a third party.
Moblin Core is built on the GNOME Mobile platform, extending and enriching it with Intel open source technologies like Clutter, GUPnP, and Atom specific technologies, such as graphics, fast boot, and power saving.

Tuesday, October 19, 2010

MaeMo Platform

Maemo is a software platform developed by Nokia for smartphones and Internet tablets. It is based on the Debian Linux distribution.The platform comprises the Maemo operating system and the Maemo SDK. Maemo is mostly based on open source code, and has been developed by Maemo Devices within Nokia in collaboration with many open source projects such as the Linux kernel, Debian, and GNOME. Maemo is based on Debian GNU/Linux and draws much of its GUI, frameworks, and libraries from the GNOME project. It uses the Matchbox window manager, and the GTK-based Hildon as its GUI and application framework.
     The Maemo platform consists of the software stack from the Linux kernel to the Maemo APIs and the Hildon UI framework. Commercially available devices running on Maemo come with the pre-installed Hildon UI and a set of applications delivered by Nokia. It is possible to develop other UIs on top of the Hildon UI framework.

Maemo Architecture :
        
          Maemo platform is based on Linux operating system which itself inherits its architecture from the Unix operating system. Linux and other open source projects contributing to the Maemo platform embrace sharing of source code, collaboration and open development model. The Maemo community promotes these values by keeping the Maemo platform open wherever feasible, by sharing source code, and by contributing code directly to the upstream projects.Currently all devices running on the Maemo platform have an OMAP chipset, which contain a general-purpose ARM processor and a DSP unit.
    GNOME is a leading application framework for desktop Linux systems. Maemo platform has inherited many central components such as GTK+, the GStreamer multimedia framework, the GConf configuration management, and the XML library. The Maemo platform extends GTK+/GNOME technologies by providing extensions for a mobile desktop.

Linux kernel:

     The Linux kernel is the central software component of the system. It provides the hardware abstraction layer for the system devices, memory management, process management, networking services including link and transport layer protocols like TCP/IP, file management including file systems and various other services. Maemo 5 is based on Linux 2.6 operating system.The ARM/OMAP-based Linux kernel of the Maemo platform implement hardware-specific device and bus drivers on top of the core kernel's virtual services. The device drivers include USB, LCD, WLAN, camera and audio, for instance. The bus drivers include Flash bus, SPI, I2C, and serial bus, for instance.

System Libraries:

Maemo platform is based on the standard GNU C library. For networking, Maemo platform uses a OpenSSL library that provides network security and libcurl that provides the HTTP access for applications. For hardware abstraction, the Maemo platform provides a Hardware Abstraction Layer (HAL). The HAL provides a shared library that has an API for device objects. A device object has properties and it is up to an actual device driver which properties it supports. HAL is thus capable of loading the right device driver when a new device is detected, creating and maintaining /dev files, tracking the status of devices and providing a means to uses each device.

Debian Package Management :

The package management framework, the file system hierarchy, and general design policies are derived from the Debian distribution.

System Services:

The primary communication channel between applications is DBUS. DBUS also provides a channel for interaction between the system and applications. DBUS is used to invoke all the applications by sending messages.System Services provide a SQL database (SQLite 3) that can be used to store user application data. SQLite database is accessed through a library interface.System Services provides also system-wide services to applications and end users. The services include device state management (DSM), mode control (MCE), battery management (BME) and few graphical user interface elements to manage the behavior of the services.

Maemo Launcher:

Maemo Launcher launches all applications on the Maemo platform. It is there to speed up application startup by sharing some of the initialization data of an application startup. Maemo Launcher is composed of two parts: the Maemo-invoker, which is executed by a DBUS daemon or scripts to start the given service, and the Maemo-launcher, a server that has initialized most of the data used by the applications. The Maemo-invoker asks Maemo-launcher to start the actual application.

Hildon UI Framework:

The user interface framework is based on the X Window System having the Matchbox window manager. The API on top of X is the GTK+ widget toolkit with so-called Hildon extensions. GTK+ is the UI framework developed in the GNOME project. The Hildon UI framework provides components on top of the GNOME components to support control panel, status bar, task navigator, and home applets.

Maemo SDK:

The Maemo SDK contains the tools needed to create and port integrated applications, replicating the Maemo platform environment in your PC. Supported Maemo APIs are provided for the C language. The Maemo community also has C++ and Python bindings for the core Maemo APIs.
The cross-compilation environment of the Maemo SDK is based on Scratchbox. Cross-compilation is a problematic issue in Linux systems, since build scripts typically utilize Autotools which have not been designed well for cross-compilation in mind. Thus, many Linux distributors solve the cross-compilation problem by avoiding it, and use dedicated hardware to run native compilations. This is a big limitation since sometimes native hardware build environment is difficult to arrange. And even if it were available builds run typically multiple times slower than in cross-compilation. Scratchbox solves this problem problem by totally isolating the target and host environments. Autotools based build scripts can be run on Scratchbox without modifications to build target platform binaries on a host system having a hardware platform other than the target.

 Recent Updates On Maemo :
1)At the Mobile World Congress in February 2010, it was announced that the Maemo project would be merging with Moblin to create the MeeGo mobile software platform.
2)Latest release of Maemo is Harmattan,which is a MeeGo initiator.
3)N900 was the last device to port Maemo.