ProgrammingThis forum is for all programming questions.
The question does not have to be directly related to Linux and any language is fair game.
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
There are dozens of API's that you could use, depending on what you are trying to do. Just google "Linux API" to see what I mean. There is an API for writing kernel software, a couple different ones that you could use for manipulating and mixing sound, a couple for drawing GUI's, and so on. GNU/Linux by itself is a relatively bare system, and that provides it some strength. Most of the API's can be installed on top of the basic system to provide extra functionality to programmers. You'll need to be a little more specific about what you are trying to accomplish to get any truly useful advice.
I think you may have some terms confused. API stands for Application Programming Interface. It does not necessarily have anything to do with system calls. It is basically a library of commonly used code segments that allow developers to write applications more easily.
Now with a working definition of API, your questions about different types of APIs seems to be an attempt to classify the many APIs into groups based upon functionality, such as "graphics, sound, and networking." This is not the case. Linux libraries are often created to combine functionality for a particular purpose. For example, although there is no "gaming" API on Linux, there is a 'driver API' that is loosely standardized. I say loosely because there is no specific document that says "all drivers must be signed by the kernel team." That being said, if it is included in the kernel, it has been approved by the kernel team, but they do not micromanage the coding style of the driver developer. There are basic standards that say that it cannot adversely affect other drivers within reasonable assurance, but until someone comes up with that WDC XT hard drive controller conflicting with the Intel X5904 802.11q card (no, I just made that up, it does not exist, although the WDC XT hard drive controller does, and was the HDC on the original IBM PC - I have one hidden in the basement somewhere) you cannot be certain that it will be 100% bug-free.
As for predicting the APIs that are being used, the answer is that you need to read as much as possible about the application you intend to run. For example, the Borland Delphi for Linux used a certain version of glibc as well as other libraries. If you were using a more recent one, you got the same error as if you were using an older version. IBM has some programs that are like that as well. The requirements are documented, however, and the best thing you can do is go to your linux distribution's package version tracker and find out what is installed in the libraries. (On Slackware, that is /var/log/packages, and in Red Hat, it is the rpm catalog, though I am not sure how to read that, as I don't use Red Hat.)
Why do I get the feeling that you have a question sheet in front of you containing these exact sentences? And that the answers are in the course materials that you were supposed to be studying?
The first three are not answerable as asked (not outside the context of the course, at least), and the fourth can be answered by definition. Learn what an API is and what a system call is.
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.