What you are seeing is the result of decisions made decades ago.
When X was developed at MIT, memory was still quite expensive. Thus, it was decided that X's functionality would be treated akin to a "kernel" such that all X applications would simply call down to common shared libraries to conserve memory & promote simultaneous execution of multiple applications at the same time. The alternative would be to statically link all libraries into each application which would be both redundant & increase application size. The result is if an X application does not find necessary libraries already loaded, then it will abort with a "no display specified" message.
This is a common practice adopted by other (emulating) environments such as Windows; if an inadequate subsystem is prescribed (trying to execute a graphical application as a console app...), bail with an equally cryptic message.
|