1

Commands like cp, ls, chmod, pwd etc are called as utilities. I seem to not able to define what kind of things are called applications.

Let's abandon GUI to make the definition more precise.

  • Please do not crosspost questions. – Lekensteyn Mar 26 '14 at 17:18
  • This question is related to this question. If it is possible, please answer whether daemons are utilities or application. Daemons are obviously not library routines. – Ron Vince Mar 28 '14 at 16:23
  • I 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. – Lekensteyn Mar 28 '14 at 17:51
  • I 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 Mar 28 '14 at 23:19
  • As for the answer, it is still kind of blur line. I am still doing literature review. – Ron Vince Mar 28 '14 at 23:20
4

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, zipand 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 .

  • Where does POSIX define what constitutes a "portable application"? – Melab Aug 19 '18 at 21:06
  • @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/… – jlliagre Aug 19 '18 at 21:29
3

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.

2

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.

2

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.