What are considered utilities and applications?
Solution 1
Strictly speaking, Unix utilities are only a well defined set of commands usable by portable shell scripts and specified by POSIX.
The term is also sometimes loosely used to include non standard CLI only commands still common in Unix and Linux systems, like say less
, emacs
, perl
, zip
and a gazillion of others.
Applications are almost anything running in userland that interact with end users. This excludes the kernel and everything tight to it like device drivers. Daemons, system services and utilities might be excluded or not depending on the context.
Here again, POSIX defines what are portable applications, i.e. programs written in ISO C and describe the various levels of conformance they are allowed to follow. Of course, non conforming applications can use whatever programming language and non portable facility they like.
In any case, applications use APIs (Application Programming Interfaces).
"Application" is also one of the terms used to classify and arrange what is stored on disk, along with "Operating System", "Data" and others. For example the OS uses /dev
, /usr
and /etc
, data is stored in /var
and unbundled applications /opt
.
Solution 2
I think the Wikipedia topic titled: "Utility Software" nails it:
Utility software usually focuses on how the computer infrastructure (including the computer hardware, operating system, application software and data storage) operates. Due to this focus, utilities are often rather technical and targeted at people with an advanced level of computer knowledge - in contrast to application software, which allows users to do things like creating text documents, playing video games, listening to music or viewing websites.
Solution 3
Wikipedia contrasts application software with system software. The latter:
Provides a platform for application software by providing access to hardware, etc.
Performs system specific tasks -- for example, most common command line utilities. However, many command line programs are really applications (e.g.,
wget
,make
,ssh
).
Application software could be thought of as anything that could (in theory) run the same way on any operating system. But there is some ambiguity here. For example, is tree
an application or a utility? Since the distinction is an abstract one that does not impact use or implementation, it is not vital to categorize everything one way or the other.
Solution 4
Utilities in Unix are meant to function well in command pipelines or scripts. They are not meant to be interacted with to a high degree while performing their tasks.
Applications typically provide a notion of a workspace or project where you can work on a task or file (or multiple such things) interactively, and maybe even save/load that entire project/workspace as a unit. Audacity, for example, lets you save multiple audio clips to a project. LMMS is another example - a "project" in LMMS would contain not only your music data, but samples, instrument settings, etc.
Utilities like cp
, ls
, or even ones with many options and capabilities like convert
or avconv
will take a file/directory, and process it, generating a new file, generating other output, or doing something to an existing single file/directory without further input from you. A utility generally takes a file or stdin as input, does something to it, and is then done.
Related videos on Youtube
Ron Vince
Updated on September 18, 2022Comments
-
Ron Vince over 1 year
Commands like
cp
,ls
,chmod
,pwd
etc are referred to as "utilities". I seem unable to define the things are called "applications" instead.Let's abandon GUI to make the definition more precise.
-
Lekensteyn about 10 yearsPlease do not crosspost questions.
-
Ron Vince about 10 yearsThis question is related to this question. If it is possible, please answer whether daemons are utilities or application. Daemons are obviously not library routines.
-
Lekensteyn about 10 yearsI was referring to this post on AU. On the SE network, it is frowned upon to post the same questions on different sites. Also, this question has some answers now. If something is still not clear, please comment on it.
-
Ron Vince about 10 yearsI think the question is more appropriate to ask here. I did not before there was specific section for Unix. That is why I asked on askubuntu and stackoverflow.
-
Ron Vince about 10 yearsAs for the answer, it is still kind of blur line. I am still doing literature review.
-
-
Melab over 5 yearsWhere does POSIX define what constitutes a "portable application"?
-
jlliagre over 5 years@Melab POSIX uses portable applications as a synonym of conforming applications. What makes an application conforming (i.e. portable) is described in the conformance link I posted. See also pubs.opengroup.org/onlinepubs/9699919799/xrat/…