我正在设计一个将部署/安装到Linux机器上的应用程序(可能是Archlinux,但也可以是任何发行版,事实上,如果可能的话,我实际上更喜欢轻量级的并且在Debian系列中的东西)。该机器不会是“通用”或多应用程序机器:它的唯一目的是在启动时运行我的应用程序并在关机时关闭我的应用程序。此计算机上不会安装其他最终用户应用程序。
我正在寻找一种方法:
- 当用户打开计算机电源时,他们只会看到我的应用程序的启动屏幕(当系统和应用程序启动时),而不是正常的 Ubuntu/OS 启动 --> BIOS --> 启动屏幕 --> 登录过程然后我的应用程序加载它自己的外观和感觉
- 使用机器时,他们无法访问任何其他应用程序、shell 或操作系统的其他部分;他们只能访问我的应用程序
- 运行时,应用程序占据整个屏幕,并且其窗口无法最小化或调整大小
- 该应用程序(作为软件)在运行时无法关闭或终止,除非......
- 关闭机器(物理关闭电源)会正常关闭应用程序并关闭底层操作系统
因此,最终用户永远不知道机器是在 Linux 之上运行的;对他们来说,应用程序是机器上唯一“活着”的东西。
这有有可能看到 Android 只是 Linux 的包装,并且有数千其他仅运行单个应用程序的设备。
这可能是一个 C 二进制文件,它启动一个 Java 桌面应用程序作为实际的应用程序。
关于如何完成上述项目有什么想法吗?
答案1
我强烈推荐 Archlinux 来完成这项任务。它成功地在默认安装很少的“最终用户”应用程序和仍然留下一个可供您构建的合理系统之间取得了微妙的平衡。
至于实现目标所需采取的步骤,在安装 Arch 之后,微调您想要在启动时运行的服务(在我的脑海中,听起来您可能想要更少的 ttys)。在那之后,安装并配置X(该链接还有一个在登录时启动 X 的链接,您将需要该链接)。如果您想要启动时出现启动屏幕,您需要设置类似普利茅斯。最后,systemd 倾向于相当优雅地处理物理关闭(例如,按消费类硬件上的电源按钮一次)。但是,可能值得考虑向您将运行的应用程序添加关闭功能。
$HOME/.xinitrc
如果您不需要很多功能,您的功能可能非常基本。例如:
exec /path/to/your/program/here