Results 1 to 3 of 3

Thread: Breaking the platform barrier

  1. #1
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359

    Breaking the platform barrier

    Alot of times people wonder what it takes to have a cross platform front end experience. What hurdles need to be overcome, just how hard is it, could xyz front end be tweaked to work on linux, etc. 14 months ago openMobile asked these same questions and came up with the following challenges:
    • Plugins need to be platform and CPU architecture neutral
    • Colors, fonts and images need to look exactly the same on all platforms
    • User interaction needs to be identical on all platforms despite windows's focus based interaction and linuxs cursor based interaction
    • Plugins need to be able to fully interact with the OS without resorting to API calls
    • It needs to be fast even on embedded hardware
    • Plugins need to be easily installable on any platform (plugin developers shouldn't need to package plugins on each platform)


    Next came the list of operating systems and OS features we needed to support:
    Windows:
    • Windows XP, Vista, Seven
    • WinMM Audio Platform, CoreAudio Platform
    • 32 and 64bit (running 32bit on a 64bit OS made no sense)

    Linux:
    • Gnome and KDE Desktop environments
    • Hal, DeviceKit and UDev device frameworks
    • Hal and UPower power frameworks
    • Alsa, pulseaudio and jack sound servers
    • Almost a dozen different file systems including those normally found on OSX or windows
    • XRandR, Xinerama and XF86 display managers
    • 32bit,64bit,ARM,PowerPC,MIPS

    OSX:
    • Carbon, Cocoa and Quartz APIs
    • CoreAudio framework
    • 32bit,64bit,PowerPC


    We set out to design a system that met every one of those goals and a year later have met ever single one (except CoreAudio on OSX).

    • We chose the .net/mono framework to allow code execution on any OS or CPU architecture. That wasn't enough though, we had to provide a universal API that executing code could use to access OSSpecific functions, so we created the Core Framework with platform specific HALs. Combining the OSSpecific functions with the graphics engine we implemented over 3500 API calls to achieve the desired results (all while keeping the framework under 2MB).
    • We created a graphics system from scratch that enabled strongly named fonts and colors which were guaranteed to look the same on all platforms (allowing plugins to name regular windows fonts would make them useless down the road). A multi-layer openGL based graphics engine was used to ensure image handling and rendering were identical to the pixel on every platform.
    • We created a low level input system designed for multi-input and multi-touch interaction with the front end. Six months after its creation the technology to finally use it was rolled out as MPX (which our platform fully supports). By creating our own user input "drivers" we guaranteed user interaction was identical on all platforms. We further abstracted platform specific nuances by creating our Devices API ensuring the user sees hardware the same on all platforms regardless of how the OS sees it.
    • To ensure speed on even embedded hardware we created a high speed OpenGL graphics engine which automatically adapts to the capabilities of a graphics card even if its an Embedded OpenGL ES GPU.
    • Finally, to easily get this out to end users in a single package we created the Open Installer platform. Ompkg files are typically smaller then even .7z files, allow installation on any OS or architecture and allow advanced installation rules and scripting to ensure powerful deployment potential.

  2. #2
    Raw Wave
    Auto Apps:loading...
    justchat_1's Avatar
    Join Date
    Jul 2008
    Location
    Boston, Ma or NY,NY
    Posts
    2,359
    Oh and since I know someone will ask:

    API Calls by Category:
    • windows-345+
    • Linux-225+
    • OSX-400+
    • OpenGL-1847
    • OpenGL ES-600+
    • Windows Hal-130+


    This is only the big items that needed to be overcome....theres hundreds more smaller issues that didn't even make the list.

  3. #3
    Maximum Bitrate jmullan99's Avatar
    Join Date
    Feb 2009
    Location
    Niagara Falls, Ontario
    Posts
    678
    The effort put forth, and the obstacles surmounted, by the devs is understood and miraculous.

    Kudos.

    John

Similar Threads

  1. Google Android as a FE Platform
    By UnusuallyGenius in forum Software & Software Development
    Replies: 16
    Last Post: 03-22-2010, 06:57 PM
  2. Old but: BMW asks other automakers to collaborate on in-car open source platform
    By RipplingHurst in forum Software & Software Development
    Replies: 2
    Last Post: 02-03-2010, 10:15 AM
  3. New platform from VIA
    By 4u2n in forum General Hardware Discussion
    Replies: 2
    Last Post: 03-10-2005, 09:32 PM
  4. Opening a letter w/o breaking seal?
    By XxAndyxX in forum Off Topic
    Replies: 19
    Last Post: 01-12-2005, 02:35 PM
  5. Stuff keeps breaking
    By gizmomkr in forum General MP3Car Discussion
    Replies: 6
    Last Post: 10-02-2004, 08:08 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •