具有独立应用程序的嵌入式 Linux

par*_*274 3 linux linux-kernel embedded-linux

我想让 Linux 操作系统只以全屏方式运行一个应用程序,而不在启动时显示任何登录窗口或标题栏和最小化/最大化/关闭按钮。

有什么办法可以做到这一点吗?它是嵌入式平台,我已经为其构建了 Linux 操作系统,并且我也有应用程序。

qdo*_*dot 5

简而言之 - X System 非常灵活。

当系统启动时,它会执行以下步骤:

  1. 加载并运行内核(以及相关的 initrd,如果有的话,但它是不相关的)
  2. 启动init(进程1)
  3. 启动系统服务、网络等。
  4. 启动 X 服务器
  5. 启动窗口管理器(负责调整窗口大小等的应用程序)
  6. 启动您的应用程序。

您需要做的是首先禁用 GUI 登录和会话(最简单的是禁用 X) - 您将能够通过控制台终端登录(您始终可以使用 Ctrl-Alt-F1 访问它)

然后,按照以下方式启动一些东西

X &
DISPLAY=:0 ./yourapp.exe
Run Code Online (Sandbox Code Playgroud)

如果您的应用程序可以自行全屏显示,那就可以了。将其添加到您的启动脚本中即可。


更多解释

窗口管理器的目的是管理窗口。就这么简单:)

基本上,典型的 X 会话有 3 个组成部分。

  • X Server - 围绕硬件(GPU 驱动程序、键盘、鼠标、触摸屏等)提供抽象层的软件。它有一个窗口的概念——X 客户端可以进入的区域。
  • X 客户端 - 其他一切。你的软件,如果它画了一些东西,很可能就是其中之一。Web 浏览器等也是如此。连接到 X Server 并进行绘制。
  • 窗口管理器 - 一种特殊类型的 X 客户端,该软件提供了控制屏幕上窗口的能力。它经常绘制窗口装饰(最小化、最大化按钮),有时绘制任务栏等。

您可以随意混合搭配它们。更简单、简约的窗口管理器,例如我ratpoison更喜欢的许多原型嵌入式系统,只有全屏窗口的概念,并且可以在全屏应用程序之间切换(想想 Windows 8 Metro)。其他人绘制窗户装饰,并允许重叠和层叠的窗户。

由于开发窗口管理器是一项简单且模块化的任务,因此实际上有数百种可供选择。您也可以选择根本不使用其中一个,此时您的窗口必须进行自我管理(默认情况下您将无法移动它们)。许多应用程序都尊重该-geometry 1920x1080+0+0参数,告诉它们在 0,0 角打开一个 1920x1080 分辨率的窗口 - 有效地全屏。