作为一个模拟器,也就是一个虚拟机,所作的事情就是解释执行运行于该机器上的软件代码,包括系统软件和用户态的应用软件。
基于这个想法,系统软件应该是被加载到内存中的某些位置,当应用软件使用系统调用时,就跳转到系统函数的入口。在这个过程中,模拟器所做的事前后没有本质区别,就是取指令并解析执行,没有必要区分系统软件还是应用软件。
但是为了提高运行速度,jpcsp实现了psp上运行的系统软件的功能,如 内存管理,进程调度,文件系统 等。
当模拟器解析应用程序(比如一个游戏)时,发现该程序使用了syscall指令,就解析用户请求的系统功能,并调用自己实现的函数来完成这些功能。
这使得jpcsp从一个纯硬件虚拟机,升格为操作系统层面的虚拟机。他提供的不单是psp硬件的功能,而是把psp的固件(系统软件)也包括了进去。
jpcsp的源码更新日志中声称系统调用功能的执行速度提升了50%。可见,这是一个很有效的优化。
实现这些系统软件功能的类,通常以HLE开头,是什么单词的缩写暂时还不清楚。
具体每个HLE模块的实现还没有解析,不过可以暂放一边,先解析模拟器的解释引擎主体。