<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Synergy Operating System &#187; LocalApp</title>
	<atom:link href="http://www.synergyos.org/index.php/tag/localapp/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.synergyos.org</link>
	<description>A meta Web OS that truly rocks!</description>
	<lastBuildDate>Fri, 22 Jan 2010 20:57:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>How Synergy OS runs on top of any Operating System, specially Linux</title>
		<link>http://www.synergyos.org/index.php/2010/01/21/synergy-os-runs-on-top-of-any-operating-system-specially-linux/</link>
		<comments>http://www.synergyos.org/index.php/2010/01/21/synergy-os-runs-on-top-of-any-operating-system-specially-linux/#comments</comments>
		<pubDate>Thu, 21 Jan 2010 18:41:31 +0000</pubDate>
		<dc:creator>Aron Homberg</dc:creator>
				<category><![CDATA[Concepts]]></category>
		<category><![CDATA[LocalApp]]></category>
		<category><![CDATA[Meta Operating System]]></category>
		<category><![CDATA[Meta OS]]></category>
		<category><![CDATA[Synergy Foundation Classes]]></category>
		<category><![CDATA[Synergy OS]]></category>
		<category><![CDATA[V8]]></category>
		<category><![CDATA[Web GUI]]></category>
		<category><![CDATA[WebApp]]></category>

		<guid isPermaLink="false">http://synergyos.org/?p=13</guid>
		<description><![CDATA[Synergy OS is the first meta operating system that can fit in any operating system and device!]]></description>
			<content:encoded><![CDATA[<p><strong>Design of the first meta Operating System</strong></p>
<p>The major design goal of Synergy OS is to be a highly flexible and customizable suite of software components forming a real Web OS on top of any operating system. For the first step, Synergy OS it will be compatible to some standard Linux distributions.</p>
<p>In Synergy OS, Apps are written in Javascript (EcmaScript) and are executed by the high-performance javascript VM &#8220;V8&#8243;. V8 comes from Chrome OS. Apps are using the Synergy OS foundation classes to get access to the resources of the real operating system they are executed on. So Apps have no direct dependency to the real OS.</p>
<p>The foundation classes of Synergy OS are well designed and well namespaced. They are grouped in:</p>
<ul>
<li>The &#8220;Synergy OS Framework&#8221;</li>
<li>The &#8220;Synergy Web Framework&#8221;</li>
</ul>
<p>Because WebApps in Synergy OS are executed in a locally webbrowser, there is a client side of an App and a server side of an App. It is also possible to write LocalApp&#8217;s. These run in the shell and have no webbrowser based client code.</p>
<p>The foundation classes for the Web contain classes for GUI rendering, Video control, Audio control, Network communication and Input event handling in the webbrowser.</p>
<p>The foundation classes for the Core contain classes for controlling system services and devices (hardware management) and all features a cutting edge web framework needs to be amazing. Plans are there to implement all features of Zend Framework and Ruby on Rails.</p>
<p><strong>The architecture in detail</strong></p>
<p>The anatomy of Synergy OS is a component orientated architecture. The foundation classes wrap the functionallities of the components.</p>
<p>The whole foundation classes are defined by an WebIDL specification (see W3C Web IDL for more informations). Web IDL is a language independend interface definiton language. We plan to integrate an extended version of the WebIDL compiler from the ES Operating System into Synergy OS.</p>
<p>The foundation classes of the Core are implemented in Java on basis of OpenJDK. The backend of a WebApp or a LocalApp in general is implemented in Javascript. So how is Javascript calling the Java libraries?</p>
<p>This is simple. We will patch V8 to have direct binding to Java compiled libraries by using the Java Native Interface wrappers (they are also used in SWT (Eclipse), QTJambi etc.).</p>
<p>The classes of the Synergy OS Framework abstract the functionalities of the real operating systems. They will be designed in a component orientated manner.</p>
<p><strong>What about compatibility?</strong></p>
<p>Each Linux distribution has it&#8217;s own design decisions in mind. Specially for target devices, performance optimization etc. So for example X.org is used in conjunction with some desktop environment like Gnome or KDE in most of the distributions. How can Synergy OS be compatible to these distributions if Synergy OS comes with it&#8217;s own special SynergyView GUI?</p>
<p>The answer is quite easy. We just change the boot process of a target distribution when installing Synergy OS on top of it. This means that after installing Synergy OS on your linux box, the desktop environment of your Xorg configuration will be replaced by starting the SynergyView instead. The SynergyView is also based on X btw. &#8211; for Windows SynergyView runs native on the Windows desktop. It even runs on BSD systems.</p>
<p>It is the same for any other overlay. For example the standard shell will be replaced by the Synergy (the EcmaScript shell) which is able to interpret javascript on console etc.</p>
<p>In general, a linux distribution or in the future any other OS is nothing more or less than just a Synergy OS backend target. We customize the install process of Synergy OS for every backend OS and need to write the foundation classes backends for missing components support but thats all. Even the foundation classes (e.g. the Synergy OS Framework) must not be ported. It&#8217;s Java.</p>
<p><strong>Does that mean Synergy OS fit&#8217;s into different design goals automatically?</strong></p>
<p>Yes. It sounds crazy &#8211; but this an effect of Synergy OS&#8217;s meta design. If you want Synergy OS to run perfectly on your Mobile Phone or Netbook, you can just install Synergy OS on a linux distribution customized for mobile (For sure there need to be a Synergy OS backend for this OS/distro). Normally it just overlays the GUI, the standard UI, some things in the boot process etc. to be able to run all Synergy OS apps smoothly.</p>
<p>Synergy OS does for example not touch the Xorg configuration. So special settings for mobile distributions would not be affected and the SynergyView just applies to the special requirements of that mobile distribution. Same for power magement, audio, hardware accelleration etc.</p>
<p><strong>From an application developers point of view this means</strong></p>
<p>As an application developer you can write one application that runs on any operating system supported as a backend of Synergy OS. The number of supported OS&#8217;s will grow fast because there is more or less nothing to do to port Synergy OS to different distributions or even to BSD.</p>
<p>For an application developer there is also no magic in writing cool new applications for Synergy OS. There are two types of Apps that can be written for Synergy OS in general:</p>
<ul>
<li>LocalApps</li>
<li>WebApps</li>
</ul>
<p>A LocalApp runs locally without any SynergyView (Web GUI). It can be implemented in Javascript or Java. But you will choose Javascript normally. It has full access to the Synergy OS Framework. Console programs, system services and other scripts etc. should be implemented as LocalApp.</p>
<p>A WebApp is a zipped application bundle that is splitted into it&#8217;s frontend and backend part. There is code which needs to be executed in the SynergyView environment and code that needs to be executed in the webserver backend. So a WebApp bunde contains &#8220;frontend&#8221;, &#8220;backend&#8221; and &#8220;resources&#8221; directories. It is packed as zip file just for easier singning, installing and deployment reasons. A WebApp can only be written in Javascript (maybe we write some kind of cross-compiler like GWT in the future). The backend of a WebApp can be written in Java too but this is not recommended.</p>
<p>So if you have some experience in web application development or just in scripting ActionScript, Javascript, JScript or one of the hundreds of other EcmaScript based languages there is more or less no learn for you. You can directly start wirting amazing Apps for Synergy OS.</p>
<p><strong>The future goal</strong></p>
<p>Synergy OS must not be regressed to support Linux as backend OS. Why not implementing Synergy OS foundation classes and component backends for BSD, Windows and Mac?</p>
<p>The Synergy OS Framework is written in Java, the EcmaScript VM is V8 and already ported to any modern OS. So there is not much todo to port Synergy OS to any other modern real operating system.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.synergyos.org/index.php/2010/01/21/synergy-os-runs-on-top-of-any-operating-system-specially-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

