小编xiv*_*r77的帖子

在没有安装任何桌面环境的情况下,使用“startx”运行的默认 GUI 是什么?

在玩默认没有安装任何桌面环境的 Ubuntu Server 时,我做了“apt-get install startx; startx”,它在一个白框中显示了一个控制台,每当我运行一个 GUI 应用程序时,我可以看到一个非常简单的窗口,我无法找到一种方法来拖动或执行通常期望作为 GUI 窗口执行的任何花哨的事情,但它仍然有效。我什至成功运行了 Firefox 浏览器!鼠标光标是一个带有白色轮廓的黑色 X。多任务处理似乎是不可能的。

我没有安装任何类型的桌面环境,例如 KDE、GNOME、Unity 等,我想知道“startx”命令在运行什么。

window-manager gui desktop-environment x11

2
推荐指数
1
解决办法
2813
查看次数

为什么没有 Unix API?

为什么没有 Unix API?我的意思是,因为有 Windows API。

我知道 Unix 世界中的很多东西都是模块化的,这些东西放在一起就形成了一个完整的系统。这听起来不错,但是当您尝试制作本机 Unix 应用程序时确实会产生一些问题。

例如,你想用一个很酷的名字 WP 编写一个漂亮的文字处理器。Windows 版本的 WP 将通过调用 Windows API 来构建。您可以直接用 C 编写代码,也可以使用各种包装库中的任何一种。但是,该程序仍然必须通过调用 winapi 来构建,它提供了程序员构建 Windows 应用程序可能需要的每一个功能,从基本系统调用到 GUI、3D、多媒体或其他任何具有十多年向后兼容性的东西。如果不是这样,Wine 永远不会存在。

现在你想创建一个 Unix 版本的 WP。标准 C 和 C++ 库以及 POSIX API 非常稳定,并且在任何 Unix 变体中都得到很好的支持。当您尝试执行更多操作时会出现问题。所以你需要为 WP 创建一个窗口,但是如何呢?有 X11,但这不是唯一的。人们认为应该更换 X11,现在正在制作两个不兼容的替代品,Wayland 和 Mir。即使对于 X11,也有 Xlib 和 xcb。xcb 声称它们“更好”,在某些方面确实如此,但是文档在哪里?您最终选择 Xlib 来完成任务,但 X11 标准本身仅定义了非常基本的功能。您对 GUI 应用程序期望的任何其他内容(例如窗口事件或剪贴板支持)都需要通过调用来处理扩展XInternAtom. 这句话只是我个人的看法,但在X中使用Atoms是非常不直观的。另一个问题是并不是每个 X 的窗口管理器都很好地支持这些扩展。因此,让我们将这种肮脏的事情留给 GTK+ 和 Qt 的开发人员,他们会破坏每个新版本的向后兼容性。是否有可能在 Linux 中支持便携式拖放?

在我看来,Unix 社区真的在桌面世界中杀死了自己。我知道我提到的事情甚至对设置 BSD 服务器都没有关系,但是如果您尝试构建便携式本机 Linux 应用程序,则很重要。

是什么造成了这一切?真的有努力清理和标准化现代 Unix 桌面环境的东西吗?为什么没有 Unix API?会有一个吗?

desktop desktop-environment x11 posix api

1
推荐指数
2
解决办法
2013
查看次数

标签 统计

desktop-environment ×2

x11 ×2

api ×1

desktop ×1

gui ×1

posix ×1

window-manager ×1