When software designers write software (for the Unix/Linux/OSX worlds), they want it to run in as many environments as possible, and with a minimum of fuss. (Read
Their software might find itself running on a Windows machine, a Macintosh, a Linux computer, an IBM Mainframe, or a ##CLASSIFIED##
(no kidding...), and the designers simply want it to "just work" in all cases.
So... the software development community builds libraries
that "do all sorts of useful things," and they "port" those libraries to all the various environments (including ##CLASSIFIED##
) where they need to be able to "do all of these sorts of useful things."
In all of these various environments, these libraries present exactly the same, consistent,
"friendly face" to every application program that comes calling. Their implementation
, from one particular set of hardware to another (and from one operating system to another!) will of-course "be totally different," but the very-essential point is: because of the library, the application program does not have to care!
"Oh... 'this' library-function is implemented by 'that' system-call on 'that' particular piece of hardware? Uhh... cool!"
"And your point is???"
"Isn't the name of this game that I do not have to care about 'this' particular piece of hardware...?"
If the application directs all of its requests only to "the library," and is able to take for granted that "the library" exists, and that it is properly installed for whatever environment (including ##CLASSIFIED##
) it happens to be running in, then ... "it 'just works.'"
, I assure you, saves many
Linux, right out of the box, runs on more than twenty
distinctly-different varieties of (non-##CLASSIFIED##