操作系统设计与实现:基于LoongArch架构
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

0.2 系统功能测试

为了对MaQueOS实现的功能进行测试,我们基于MaQueOS提供的系统调用,使用LoongArch汇编指令编写了测试应用程序。测试程序的运行原理在每章中进行了详细的解释。

相关的测试程序如下:

1)create应用程序(第12章),通过调用create系统调用,创建一个常规文件hello_xt。

2)destroy应用程序(第12章),通过调用destroy系统调用,删除hello_xt文件。

3)write应用程序(第12章),首先通过调用open系统调用打开hello_xt文件,然后调用write系统调用向文件中写入字符串“hello,xt!”,最后通过调用close系统调用关闭文件。

4)read应用程序(第12章),首先通过调用open系统调用打开文件hello_xt,然后调用read系统调用从该文件中读取内容“hello,xt!”,将读取的内容显示在显示器上后,通过调用close系统调用关闭文件。

5)sync应用程序(第12章),通过调用sync系统调用,将内存缓冲区的内容写回到硬盘中对应的数据块里。

6)hello应用程序(第11章),通过调用timer系统调用,实现每隔固定时间在显示器上显示“hello,world.”字符串的功能。

7)print应用程序(第9章),实现了在显示器上显示用户通过xtsh传递给print应用程序的字符串。

8)share应用程序(第10章),在运行时创建了1个子进程。其中,在子进程创建前,父进程通过对其用户栈进行写操作来触发页无效例外;在子进程创建后,父子进程通过对各自的用户栈进行写操作来触发页修改例外。

9)shmem应用程序(第11章),在运行时创建了1个子进程。父子进程首先通过调用shmem系统调用,为两个进程创建了一个共享内存plane,之后父子进程通过对共享内存plane的读写操作进行通信。

在MaQueOS启动后,为了给用户提供交互界面,MaQueOS开发了一个用于和用户进行交互的shell程序——xtsh(第9章)。当MaQueOS启动后,进程1在用户态下通过调用exe系统调用,加载运行xtsh应用程序,并等待用户输入命令。上述所有应用程序都可以在xtsh中运行。

除了这9个测试应用程序,可以使用在附录E中的飞机大战应用程序对MaQueOS的功能进行更加全面的测试。飞机大战应用程序的实现被拆分成多个独立的子任务,这些子任务分散在每章的本章任务中。