当前位置: 首页 > 面试题库 >

Linux的本机GUI API是什么?

阴禄
2023-03-14
问题内容

我希望这不会成为一个愚蠢的问题,但这始终是我一直想知道的事情。Windows(Win32 API)和OS
X(Cocoa)都有自己的API,可以处理窗口,事件和其他OS内容。对于Linux的等效功能,我从未真正有明确的答案。

我听说有人说GTK +,但是GTK +是跨平台的,怎么会是本地的呢?


问题答案:

在Linux中,图形用户界面不是操作系统的一部分。大多数Linux桌面上的图形用户界面由称为X Window
System
的软件提供,该软件定义了一种与设备无关的方式来处理屏幕,键盘和指针设备。

X
Window定义了用于通信的网络协议,任何知道如何“说”该协议的程序都可以使用它。有一个名为Xlib的C库,可以更轻松地使用此协议,因此Xlib是
机GUI API的一种。Xlib并不是访问X
Window服务器的唯一方法。还有XCB。

之所以使用Xkit之上的GTK
+(由GNOME使用)和Qt(由KDE使用)之类的工具包库,是因为它们易于编程。例如,它们在整个应用程序中为您提供一致的外观和感觉,使拖放操作变得更容易,为现代桌面环境提供了标准的组件,等等。

X在内部如何在屏幕上绘制取决于实现方式。X.org具有独立于设备的部分和独立于设备的部分。前者管理诸如Windows之类的屏幕资源,而后者则与通常是内核模块的图形卡驱动程序进行通信。通信可以通过直接内存访问或通过系统调用内核来进行。驱动程序将命令转换为卡上硬件可以理解的形式。

截至2013年,一个名为Wayland的新窗口系统开始可用,许多发行版都表示他们将在某个时候迁移到该窗口,尽管目前尚无明确的时间表。该系统基于OpenGL
/ ES API,这意味着将来的OpenGL将成为Linux中的“本地GUI API”。正在完成将GTK
+和QT移植到Wayland的工作,因此当前流行的应用程序和桌面系统将需要进行最小的更改。X11服务器将支持无法移植的应用程序,就像OS
X通过Xquartz支持X11应用程序一样。GTK +端口预计将在一年内完成,而Qt
5已获得Wayland的完整支持。

更复杂的是,Ubuntu宣布由于Wayland遇到的问题而正在开发一个名为Mir的新系统。该窗口系统也基于OpenGL
/ ES API。



 类似资料:
  • 问题内容: 如果我们看一下Java Object类,那么我们可以找到一些方法,例如: 这些本机是什么,这些方法如何工作? 问题答案: 这些方法是 本 机的,也可能是在Java外部用“本机”代码编写的,也就是说,特定于给定的计算机。 您提到的是 _内部的,_并且是JDK的一部分,但是您也可以自己使用Java本机接口(JNI)编写本机方法。通常,这将使用C来编写方法,但是许多其他语言(例如python

  • 问题内容: 什么是启动停止守护程序,应如何使用? 我正在尝试自动运行特定程序。每当系统启动时,程序都应运行。为此,我在位置编写脚本。 问题答案: 它是一个程序,用于管理系统级后台进程(守护程序)的启动和停止。通过为要启动的进程传递参数(例如,用于创建/检查的pid文件)和命令参数来使用它。 然后,您执行以下两项操作之一: 如果尚未运行,请启动。如果它正在运行,则什么也不做。 停下来。如果没有运行,

  • 问题内容: 我最近看到了以下帖子: 内存分配器的级别不低于malloc。(默认分配器通常直接或间接调用malloc) 分配器仅允许您指定不同的分配策略。例如,您可以使用一个分配器,该分配器一次调用malloc来检索一个大的内存池,然后对于后续的分配请求,它仅返回该池的一小部分。 或者,您可以将其用作挂钩,以便每次分配或释放内存时都可以执行一些其他任务。 关于您的第二个问题,malloc是在不损失可

  • 让这种方法本土化背后的逻辑是什么? 与仅使用哈希图制作内嵌字符串池相比,有什么优势? 它看起来有点奇怪,但在非本机代码中似乎很容易做到: 那么为什么是本机代码呢?

  • 本文向大家介绍Linux中的GRUB是什么?,包括了Linux中的GRUB是什么?的使用技巧和注意事项,需要的朋友参考一下 GRUB(大统一引导加载程序)是可从GNU项目获得的引导加载程序。引导加载程序非常重要,因为没有它就无法启动操作系统。这是第一个在打开程序时启动的程序。引导程序将控制权转移到操作系统内核。 GRUB功能 GRUB是许多Linux发行版的默认引导程序。这是因为它比许多先前版本的

  • 本文向大家介绍Windows和Linux之间的根本区别是什么?,包括了Windows和Linux之间的根本区别是什么?的使用技巧和注意事项,需要的朋友参考一下 视窗 窗口操作系统是磁盘操作系统的扩展。 Windows是最流行,最简单的操作系统,任何可以阅读和理解基本英语的人都可以使用Windows,因为它不需要任何特殊培训。 它要求DOS最初运行各种应用程序。因此,应该将DOS安装到内存中,然后才