Warrah - 2/8/2010
Written on Mon, 08 Feb 2010 17:18:50 +0000 - Last updated on Mon, 08 Feb 2010 17:54:33 +0000A journal entry in the development of the Warrahoperating system, dated February 8, 2010.
Warrah
application format
In Warrah, applications (aka "services") are zip files with an extension
.app. The name that shows up in Warrah's file manager is actually a name specified in the application's configuration, but the true file name (minus .app) is what Warrah uses to identify the application. This is the "service name" part in a Warrah service URL.
Inside this file, two directories "
service" and "
ui" contain files related to the application backend and frontend, respectively. "service" contains a hierarchy of interpreted "script" files (only Python initially but with support for other languages planned for the future), while "ui" contains frontend (HTML, CSS, JavaScript) files pertaining to the application. An XML file, "
application.xml", contains configuration relating to:
- the application's name
- the application's logo (any web format, PNG recommended)
- the entry point into the application. This is actually a module and not a single method. The Warrah executive introspects this file to determine the WSDL for the application. SOAP calls from the frontend are translated to method calls in this module.
- authorship and copyright information, including licensing.
(todo: determine if Warrah applications should be run in separate threads or separate processes entirely)
Warrah will include an application, the "Program Editor", that can be used to directly edit such program files.
Note that Warrah applications are interpreted. In fact, in Warrah everything but the kernel and some other necessary userland tools (like the Python interpreter) are interpreted. This is done to insure ease of modification - anyone who wants to can easily look inside the source code to any Warrah application or the Warrah executive to adapt it or learn from it. The nature of interpreted code makes it easier to exercise the "Four Freedoms" with it, since no additional software or steps are needed to see or modify the code.
Note that Warrah can't technically (or legally) prevent proprietary software from running on it. It is possible, for example, to obfuscate the source code for a Warrah application. However, Warrah is architected in such a manner to make it easier to distribute and run free (as in freedom) software for it.
Public vs private applications
Warrah sometimes acts as a typical desktop OS, and much of the time a user will not notice a difference. However, unlike other OSs, Warrah is based on Web technology. This means that, if a Warrah computer is connected to a network, other computers on that network can connect to it and interact with it. One facet of this is the concept of a
public application. Public applications are regular Warrah applications that are accessed by users who do not have an account on the Warrah machine. Although Warrah has special support for public applications hosted on other Warrah machines, a user on a non-Warrah machine may use Warrah public applications through a regular Web browser. Public applications do not run under a user account and thus have more limited access than it would if it was running under a user account. However, an application running without a user account may still access files, so such applications must be authored to not do any significant damage while running in public mode.