首页 理论教育 操作系统实现之路:GUIShell概述

操作系统实现之路:GUIShell概述

时间:2023-10-21 理论教育 版权反馈
【摘要】:图11-19是GUI Shell的运行截图。图11-19 GUI Shell运行截图整个屏幕被分成了四个部分,最上面和最下面的条形区域,是系统信息显示区,用于直观显示一些系统信息。在后面的内容中,我们将简单介绍GUI Shell的实现,以便读者对操作系统图形shell有一个大概的认识。通过Hello China GUI Shell这片树叶,读者可感受到通用操作系统GUI Shell的整个森林。虽然V1.75版GUI Shell的实现比较简单,但在几页或十几页的篇幅内分析全部代码,也是不可能的。

操作系统实现之路:GUIShell概述

Shell是计算机操作系统呈现给用户的第一层交互接口,实际上就是一个应用程序,这个应用程序由操作系统提供,用户通过这个应用程序来启动其他应用程序。一般情况下,存在图形模式的shell(GUI shell)和字符模式的shell(CUI shell)两种shell表现形式。对于字符模式的shell,大多数人都应该很熟悉,最有名的就是DOS操作系统的命令行界面和UNIX/Linux的各种shell,如C Shell、K Shell等。

对于GUI的shell,或许有的读者感到迷惑,GUI模式下会有shell吗?答案是肯定的,以最典型的Windows操作系统为例,开机启动完成后,只要看到桌面,实际上就进入了它的shell程序。Shell程序(在Windows操作系统里是explorer进程)把系统已安装的应用程序统一呈现给用户,由用户根据需要启动特定的程序,以完成特定功能。除此之外,shell还有其他的功能,比如修改显示外观等。

Hello China操作系统对两种shell—图形模式shell和字符模式shell都支持。缺省情况下,Hello China启动完成后,进入的是字符模式的shell。在字符模式下,用户运行gui命令,即可进入图形模式,从而切换到图形shell。在图形shell下,展现给用户的是系统中已安装的所有图形模式的应用程序,同时也呈现给用户一些辅助信息,比如V1.75版的实现中,呈现给用户的是时间和日历信息。图11-19是GUI Shell的运行截图。

978-7-111-41444-5-Chapter11-88.jpg

图11-19 GUI Shell运行截图(www.xing528.com)

整个屏幕被分成了四个部分,最上面和最下面的条形区域,是系统信息显示区,用于直观显示一些系统信息。操作系统提供编程接口,供应用程序直接调用,来显示特定信息。右面的区域,是用于显示辅助信息的地方,V1.75的实现中,在这个区域内放了一个模拟时钟和一个日历程序,这样用户就可实时查看时间和日历信息。位于窗口左面的大部分区域,就是应用程序呈现区。系统中所有成功安装的应用程序,都被操作系统枚举,并显示在这个地方。用户只需用鼠标或触摸屏按一下相应图标,应用程序即可启动。在Hello China V1.75的实现中,应用程序窗口会占据整个应用程序显示区。这样的结果是,用户在同一时间,只能运行一个基于图形用户界面的应用程序。这是充分考虑了嵌入式系统的特点而做的实现策略,因为在嵌入式领域,应用都是由单一的应用程序来完成,而且屏幕相对较小,若罗列多个GUI应用程序会显得拥挤,而且实现起来也非常困难。因此采取了这种“一个应用程序覆盖整个显示客户区”的做法。流行的智能终端操作系统,比如Android和iOS,也采用了这种实现方式。

Hello China V1.75版本的GUI实现还是比较基础的,只实现了最简单的窗口机制和绘图机制。但对于很多功能相对单一、用户交互不是很密集的应用程序来说,已经足够使用了。在后续版本的实现中,将根据需要增加其他的图形功能。

在后面的内容中,我们将简单介绍GUI Shell的实现,以便读者对操作系统图形shell有一个大概的认识。还是那句话,虽然是以Hello China的图形shell为例来讲,但基本原理是通用的。通过Hello China GUI Shell这片树叶,读者可感受到通用操作系统GUI Shell的整个森林。

虽然V1.75版GUI Shell的实现比较简单,但在几页或十几页的篇幅内分析全部代码,也是不可能的。我们采用“情景化”的分析方法,分析GUI Shell的初始化、应用程序的加载、GUI Shell的退出等三个场景,通过这三个场景的分析,达到以点带面的效果。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈