专用的单一应用程序 linux 盒子

zha*_*vey 5 linux arch-linux lightweight init small-distribution

我正在设计一个将部署/安装到 linux 机器上的应用程序(也许是 Archlinux,但可以是任何发行版,事实上,如果可能的话,我实际上更喜欢轻量级和 Debian 系列内部的东西)。这台机器不是“通用”或多应用机器:它的唯一目的是在启动时运行我的应用程序并在关闭时关闭我的应用程序。这台机器上不会安装其他最终用户应用程序。

我正在寻找一种方法:

  • 当用户打开机器电源时,而不是正常的 Ubuntu/OS 启动 --> BIOS --> 启动画面 --> 登录过程,他们只会看到我的应用程序的启动画面(系统和应用程序启动时)和然后我的应用程序以自己的外观和感觉加载
  • 在使用机器时,他们无法访问任何其他应用程序、外壳或操作系统的其他部分;他们只能访问我的应用程序
  • 运行时,应用程序占据整个屏幕,其窗口无法最小化或调整大小
  • 该应用程序(作为软件)在运行时不能关闭或终止,除非...
  • 关闭机器(物理关闭电源)会正常关闭应用程序并关闭底层操作系统

因此,最终用户永远不会知道机器运行在 linux 之上;对他们来说,应用程序是机器上唯一“存在”的东西。

必须是可能的,因为 Android 只是 Linux 的一个包装器,还有成千上万的其他设备只运行一个应用程序,仅此而已。

这可能是一个 C 二进制文件,它启动一个 Java 桌面应用程序作为实际应用程序。

关于如何完成上述项目的任何想法?

Hal*_*ost 6

我强烈推荐 Archlinux 来完成这项任务。它成功地在默认安装很少的“最终用户”应用程序和仍然留下一个可供您构建的合理系统之间取得了微妙的平衡。

至于实现您的目标所需采取的步骤,在安装 Arch 之后,微调您想要在启动时运行的服务(在我的脑海中,听起来您可能需要更少的 ttys)。之后,安装并配置 X(该链接还包含您需要的登录时启动 X 的链接)。如果您想要启动时出现启动屏幕,您需要设置类似Plymouth的内容。最后,systemd 倾向于相当优雅地处理物理关闭(例如,按消费类硬件上的电源按钮一次)。但是,可能值得考虑向您将运行的应用程序添加关闭功能。

$HOME/.xinitrc如果您不需要很多功能,您的功能可能非常基本。例如:

exec /path/to/your/program/here
Run Code Online (Sandbox Code Playgroud)