Windows (Win32 API)和OS X (Cocoa)都有自己的API来处理窗口、事件和其他操作系统的东西。我从来没有真正得到一个明确的答案,Linux的等效是什么?
我听到有人说GTK+,但GTK+是跨平台的。怎么可能是本土的呢?
Windows (Win32 API)和OS X (Cocoa)都有自己的API来处理窗口、事件和其他操作系统的东西。我从来没有真正得到一个明确的答案,Linux的等效是什么?
我听到有人说GTK+,但GTK+是跨平台的。怎么可能是本土的呢?
当前回答
严格地说,Linux的API由它的系统调用组成。这些都是用户模式(非内核)程序可以调用的所有内核函数。这是一个非常低级的接口,允许程序做一些事情,比如打开和读取文件。有关一般介绍,请参阅http://en.wikipedia.org/wiki/System_call。
为了提供图形用户界面和其他特性,一个真正的Linux系统还会有一个运行在其上的其他软件的完整“堆栈”。这个堆栈的每个元素都将提供自己的API。
其他回答
Linux是一个内核,不是一个完整的操作系统。有不同的窗口系统和gui运行在Linux上提供窗口。通常X11是Linux发行版使用的窗口系统。
linux中最接近Win32的是libc,正如你所提到的,不仅是UI,还有事件和“其他操作系统的东西”
XWindows可能是最接近所谓的“原生”:)
Wayland也值得一提,因为它通常被称为“未来的X11杀手”。
还要注意,Android和其他一些移动操作系统不包括X11,尽管它们有Linux内核,所以从这个意义上说,X11并不是所有Linux系统的本机。
跨平台与本土化没有任何关系。Cocoa也通过GNUStep移植到其他平台,但它仍然是OS X / macOS的原生版本。
我想这个问题更像是“linux的原生GUI API是什么”。
在大多数情况下,X(又名X11)将用于http://en.wikipedia.org/wiki/X_Window_System。
您可以在这里找到API文档