有没有Linux API,比如windows get windows API、Mac get Cocoa?

有没有Linux API,比如windows get windows API、Mac get Cocoa?,linux,api,Linux,Api,我知道Windows平台有微软的Windows API,而Mac则有苹果的Cocoa API。我想知道Linux社区有没有API?thx很多。因为你的问题非常笼统,我假设你指的是 每个操作系统都提供一些API来执行低级操作,否则它就不会是一个操作系统了,不是吗?不,不像Windows和OS X等供应商控制的平台,Linux发行版没有单一源专有的Linux专用API,该API是从低级文件访问到GUI界面的所有方面的通用标准默认API 最接近的等价物是Qt,但这是一个跨平台API,而不是特定于Lin

我知道Windows平台有微软的Windows API,而Mac则有苹果的Cocoa API。我想知道Linux社区有没有API?thx很多。

因为你的问题非常笼统,我假设你指的是


每个操作系统都提供一些API来执行低级操作,否则它就不会是一个操作系统了,不是吗?

不,不像Windows和OS X等供应商控制的平台,Linux发行版没有单一源专有的Linux专用API,该API是从低级文件访问到GUI界面的所有方面的通用标准默认API


最接近的等价物是Qt,但这是一个跨平台API,而不是特定于Linux的东西。

很难回答,因为Windows API和Cocoa没有相同的角色

Linux是基于Linux的系统的内核。就像darwin对于MacOSX和Windows,或者NT内核对于Windows一样。在这些系统中,您可以编写专注于与最终用户、图形、窗口等交互的应用程序,或者专注于与内核交互的应用程序,以完成联网、控制存储等任务

当您想到Cocoa应用程序时,我相信您通常会想到以用户为中心的图形化应用程序,而术语windowsapi主要指低级操作。在Windows世界中,与Cocoa相当的不是Windows API,而是各种COM、COM+、DCOM,现在是带有WPF等内容的.NET framework


如果您想编写在Linux上运行的图形应用程序,类似于默认Ubuntu安装中的图形应用程序,请参阅。如果要编写系统级程序,可能首先需要研究Unix编程。Richard W.Stevens的一本经典著作是《Unix环境中的高级编程》。

有许多API选项,这些是我首先想到的API,顺序是“更接近硬件,更容易安装”到“离硬件更远,不太可能安装”,除非另有说明:

有一个Linux系统调用API,如/usr/include/syscall.h或/usr/include/sys/syscall.h中所述,如果内核是Linux,它100%保证存在

还有Linux控制台编程API,它控制要在Linux控制台(不是终端窗口,而是在X11启动之前在原始控制台)中运行的程序的字符显示

还有posix系统调用,它将在几乎所有不是嵌入式系统的Linux上可用

还有glibc,它不像posixapi那样常见,但通常都存在

Linux帧缓冲区API允许在原始级别上进行图形编程,而无需运行窗口系统

有用于字符/终端控制的ncursesapi,它将在Linux控制台、xterm或通过ssh访问系统的终端仿真器中工作

还有Fresco(曾经被称为Berlin),它是一种图形编程API,没有X11的历史包袱。它很少在桌面上使用,也没有太多在这种环境下运行的应用程序

有X11 API,用于在标准X11图形界面下运行的程序。X11有大量的包装器库,因为它非常复杂,非常灵活,而且直接在中编程非常繁琐。例如,IIRC X11没有定义任何种类的小部件(即文本框、按钮、菜单、滚动条等),这些小部件需要由您自己的代码实现

还有xlib/athena,它基本上只是一组实现简单丑陋小部件的库,它是使X11编程更容易的原始包装器API

还有Motif,xlib的专有继承者,还有Lesstif,Motif的开源模拟

还有TK,它一开始是作为Tcl语言的库,但有perl、python、R和许多其他通用/实用脚本语言的绑定,并且是跨平台的,程序员非常容易使用,而且非常丑陋和陈旧(即90年代早期的小部件设计,不支持滚轮或拖放)

GNUStep和objectiveC环境,用于*nix,包括Linux,它是一个X11包装器GUI工具包和通用编程API,派生自Cocoa所在的同一nextStep系统

有QT和GTK,它们是当今最常用的X11包装图形工具包API。Qt也是一个跨平台库,它试图与其他平台和嵌入式显示器(例如手机)很好地集成

有Gnome和KDE,它们分别构建在GTK和QT之上,具有更大的桌面集成性、可用性、,ram和CPU的使用率比其他任何替代方案都要高——特别是那些试图同时使用Gnome和KDE应用程序的人,将有大量冗余库以不兼容的方式(通常不会在两台台式机之间集成)加载到ram中

还有WxWidgets,它是用于跨平台应用程序的。它在Linux上使用GTK,在Mac和Windows上使用本机工具包


总而言之:就像其他所有东西一样,Linux也有令人困惑的API选择(令人困惑的API数组几乎就是Linux应用程序中令人困惑的外观和感觉数组的来源)。

Um…Qt、GTK、gconf、KDE、MySQL、svn、PyQt、pypypy…大约有10亿个API。你想做什么?如果你想为所有三个平台开发,你可能想看看跨平台库,比如Boost和Qt。这是官方的(源代码的一部分,或者可能是Linus认可的),还是GNU项目写的关于内核的东西?谁能为该文件作出贡献