eyeOS内部运行中的MMAP,Exec与extern

  在开始开发应用程序之前,与eyeOS内部运行相关的概念必须了解。

  MMAP是一个服务,extern是一个服务,exec是一个JavaScript函数。

目录

  1、MMAP

  2、Exec

  3、extern

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文件的内容被返回给浏览器,以便它可以被加载。

文库: