在开始开发应用程序之前,与eyeOS内部运行相关的概念必须了解。
MMAP是一个服务,extern是一个服务,exec是一个JavaScript函数。
目录
1、MMAP
所有对eyeOS的请求必须通过index.php文件传递。这意味着,index.php文件根据请求的类型执行一个动作。您可以发送GET或POST变量到index.php。
MMAP是系统服务,负责识别请求的类型、决定执行组件或调用其他eyeOS服务。MMAP与一个插件系统协同工作,对每个MMAP可管理的请 求类型,MMAP都有一个相应的插件。当一个请求发送到index.php,index.php文件调用MMAP,然后MMAP从所有插件中找出一个能够 处理该请求的插件。
例如,有一个插件,如果请求没有任何GET参数,即用户访问没有任何参数被传递到index.php,那么该插件显示登录窗口。还有另外一个插件,如果参数extern存在,那么它会读取指定文件的内容,并返回到浏览器。
eyeOS里还有其他类型的请求,例如,当你想运行应用程序,一个请求将发送到index.php,该请求传递要执行的应用程序的名称,checknum(当前运行的进程的ID PID),和任何其他参数。
完整的URL将类似于下面这样......
/index.php?getApplication=calculator&checknum=570515413&args=null
MMAP运行应用程序,并收集其他类型的消息,例如,当一个应用程序的JavaScript要与应用程序的PHP通过AJAX沟通,以执行动作,如读取数据库(将有一个消息被MMAP收集到)。
这些请求大多是不可见的,开发人员构建应用程序并不需要了解他们。然而,了解所有到index.php的请求,和MMAP决定对每个请求做什么(是有益的)。
2、Exec
Exec是一个在JavaScript中通过eyeOS对象调用的函数。JavaScript中的eyeOS对象是应用程序用来访问基本系统功能的对象,例如运行应用程序。
在JavaScript中,应用程序可以在任何时候调用exec函数,如下:
eyeos.execute('myApplication', checknum, args);
第一个参数是要执行的应用程序的名称,第二个参数是当前应用程序进程的标识符,第三个参数是应用程序执行时必须得到的参数。请注意args可指定为NULL,或可以从函数调用中省略。
请求到达index.php文件,并将它传递给mmap,然后找到可以管理应用程序执行的插件。运行应用程序的插件在用户的进程表中插入一个新的进程,读取应用程序的JavaScript内容,并返回到浏览器。然后运行该应用程序并在eyeOS桌面上显示。
3、extern
因为只有index.php文件是可以从外部访问,eyeOS必须有一些方法,使JavaScript文件,CSS,图片等,可用于浏览器,以 便浏览器可以加载它们。这是extern目录存在的目的。需要通过浏览器访问的所有资源必须放置在extern目录,或其子文件夹内。
当index.php文件收到这样的请求“index.php?extern=some_image.jpg”,extern目录下的some_image.jpg文件的内容被返回给浏览器,以便它可以被加载。