Linux
專用的、單一應用程序的 linux 盒子
我正在設計一個將部署/安裝到 linux 機器上的應用程序(可能是 Archlinux,但可以是任何發行版,事實上,如果可能的話,我實際上更喜歡輕量級的,並且在 Debian 家族中)。這台機器不會是“通用”或多應用程序機器:它的唯一目的是在啟動時執行我的應用程序並在關閉時關閉我的應用程序。這台機器上不會安裝其他最終使用者應用程序。
我正在尋找一種方法:
- 當使用者打開機器電源時,而不是正常的 Ubuntu/OS 啟動 –> BIOS –> 啟動螢幕 –> 登錄過程,他們只會看到我的應用程序的啟動螢幕(當系統和應用程序啟動時)和然後我的應用程序以自己的外觀和感覺載入
- 在使用機器時,他們無法訪問任何其他應用程序、shell 或作業系統的其他部分;他們只能訪問我的應用程序
- 執行時,應用程序佔據整個螢幕,其視窗無法最小化或調整大小
- 應用程序(作為軟體)在執行時不能關閉或終止,除非…
- 關閉機器(物理關機)優雅地關閉應用程序並關閉底層作業系統
因此,最終使用者永遠不會知道機器執行在 linux 之上;對他們來說,應用程序是機器上唯一“活”的東西。
這必須是可能的,因為 Android 只是 Linux 的一個包裝器,還有成千上萬的其他設備只執行一個應用程序,僅此而已。
這可能是一個啟動 Java 桌面應用程序作為實際應用程序的 C 二進製文件。
關於如何完成上述項目的任何想法?
我強烈推薦 Archlinux 來完成這項任務。它設法在預設安裝很少的“最終使用者”應用程序和仍然留下一個可以建構的合理系統之間取得微妙的平衡。
至於為實現目標而採取的步驟,在安裝 Arch 之後,微調您想要在啟動時執行的服務(在我的腦海中,聽起來您可能需要更少的 ttys)。之後,安裝和配置 X(該連結還有一個連結,指向在登錄時啟動 X,您將需要它)。如果您想在啟動時顯示初始螢幕,則需要設置Plymouth之類的東西。最後,systemd 傾向於非常優雅地處理物理關閉(例如,按一次消費硬體上的電源按鈕)。但是,可能值得考慮為您將執行的應用程序添加關閉功能。
$HOME/.xinitrc
如果您不需要很多功能,您可能會非常基礎。例如:exec /path/to/your/program/here