Windows (Win32 API)和OS X (Cocoa)都有自己的API来处理窗口、事件和其他操作系统的东西。我从来没有真正得到一个明确的答案,Linux的等效是什么?

我听到有人说GTK+,但GTK+是跨平台的。怎么可能是本土的呢?


当前回答

linux中最接近Win32的是libc,正如你所提到的,不仅是UI,还有事件和“其他操作系统的东西”

其他回答

Wayland也值得一提,因为它通常被称为“未来的X11杀手”。

还要注意,Android和其他一些移动操作系统不包括X11,尽管它们有Linux内核,所以从这个意义上说,X11并不是所有Linux系统的本机。

跨平台与本土化没有任何关系。Cocoa也通过GNUStep移植到其他平台,但它仍然是OS X / macOS的原生版本。

linux中最接近Win32的是libc,正如你所提到的,不仅是UI,还有事件和“其他操作系统的东西”

Linux是一个内核,不是一个完整的操作系统。有不同的窗口系统和gui运行在Linux上提供窗口。通常X11是Linux发行版使用的窗口系统。

XWindows可能是最接近所谓的“原生”:)

linux内核的图形化操作在/include/linux/fb.h中作为结构体fb_ops。最终,这就是X11、Wayland或DRM等附加组件所引用的内容。由于这些操作仅适用于视频卡,而不适用于矢量或光栅硬拷贝或面向tty的终端设备,因此它们作为GUI的用处是有限的;如果你不介意在必要时使用一些汇编器绕过系统调用,那么你需要这些附加组件来获得图形输出,这并不完全正确。