Linux的本地GUI API是什么?

487

Windows(Win32 API)和 OS X (Cocoa)都有自己处理窗口、事件和其他操作系统事项的 API。 我从来没有真正得到一个清晰的答案,关于 Linux 的等价物是什么?

我听说过有些人说 GTK +,但是GTK+是跨平台的,它怎么能算是本地的呢?


49
乔尼是正确的:"在Linux中,图形用户界面不是操作系统的一部分... X Window系统定义了一个用于GUI功能的网络协议。工具箱库(如Gnome使用的Gtk+和KDE使用的QT)是建立在Xlib之上的。" - paulsm4
36
相反,大卫,这是一个很好的问题。 - amphibient
8
我同意 - 我读过《Linux编程接口》和《系统级程序设计…Unix》这两本关于内核和API的圣经,但我从未想到过这个问题 :) 这些答案很有趣。 - John Humphreys
11
如果你包括Wine,Win32 API也是跨平台的。 - Brendan Long
2
顺便提一下,Windows拥有WIN32/WIN64子系统,这些子系统实现了许多与“Windows外观和感觉-也称为WIN32”等相关的功能。这些子系统在NT内核之上运行。它们的API是不同的。例如,C:是WIN32抽象,而不是NT内核的东西。某些窗口功能也是如此。Windows还拥有可用的Unix子系统(支持X11到某种程度)。 - Preet Sangha
显示剩余4条评论
11个回答

0

GUI是能力的高级抽象,因此几乎所有从XOrg服务器到OpenGL的内容都可以跨平台移植,包括Windows平台。但是,如果你所说的GUI API是指*nix图形API,那么你可能会困惑于“直接渲染基础设施”。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接