Что считается утилитами и приложениями?

Что считается утилитами и приложениями?

Команды типа cp, ls, chmod, pwdи т. д. называются "утилиты". Кажется, я не могу определить, что называется "приложениями".

Давайте откажемся от графического интерфейса, чтобы сделать определение более точным.

решение1

Я думаю, что тема Википедии называется: "Утилиты программного обеспечения"в точку:

Утилитарные программы обычно фокусируются на том, как работает компьютерная инфраструктура (включаякомпьютерное железо,Операционная система,программное обеспечениеиданныехранилище) работает. В связи с этим, утилиты часто являются довольно техническими и ориентированы на людей с продвинутым уровнем компьютерных знаний - в отличие отпрограммное обеспечение, который позволяет пользователям создавать текстовые документы, играть в видеоигры, слушать музыку или просматривать веб-сайты.

решение2

Строго говоря,Unix-утилитыпредставляют собой лишь четко определенный набор команд, используемых переносимыми скриптами оболочки испецифицировано POSIX.

Термин также иногда вольно используется для обозначения нестандартных команд CLI, которые все еще распространены в системах Unix и Linux, например, less, emacs, perl, zipи миллиарда других.

Приложения — это почти все, что работает в пользовательском пространстве и взаимодействует с конечными пользователями. Это исключает ядро ​​и все, что с ним связано, например, драйверы устройств. Демоны, системные службы и утилиты могут быть исключены или нет в зависимости от контекста.

Здесь снова POSIX определяет, что такое переносимые приложения, т.е. программы, написанные на языке ISO C, и описываетразличные уровни соответствияим разрешено следовать. Конечно, неконформные приложения могут использовать любой язык программирования и непереносимые возможности, которые им нравятся.

В любом случае приложения используют API (Интерфейсы прикладного программирования).

«Приложение» также является одним из терминов, используемых для классификации и упорядочивания того, что хранится на диске, наряду с «Операционной системой», «Данными» и другими. Например, ОС использует /dev, /usrи /etc, данные хранятся в /varи разделенных приложениях /opt.

решение3

Утилиты в Unix предназначены для эффективной работы в командных конвейерах или скриптах. Они не предназначены для интенсивного взаимодействия с ними при выполнении своих задач.

Приложения обычно предоставляют понятие рабочего пространства или проекта, где вы можете работать над задачей или файлом (или несколькими такими вещами) интерактивно, и, возможно, даже сохранять/загружать весь этот проект/рабочее пространство как единое целое. Например, Audacity позволяет вам сохранять несколько аудиоклипов в проект. LMMS — еще один пример: «проект» в LMMS будет содержать не только ваши музыкальные данные, но и сэмплы, настройки инструментов и т. д.

Такие утилиты, как cp, ls, или даже те, у которых много опций и возможностей, как convertили avconv, берут файл/каталог и обрабатывают его, генерируя новый файл, генерируя другой вывод или делая что-то с существующим отдельным файлом/каталогом без дальнейшего ввода с вашей стороны. Утилита обычно берет файл или stdin в качестве входных данных, что-то с ним делает, а затем завершает работу.

решение4

Контраст Википедиипрограммное обеспечениеспрограммное обеспечение. Последний:

  • Предоставляет платформу для прикладного программного обеспечения, предоставляя доступ к оборудованию и т. д.

  • Выполняет системные задачи — например, большинство общих утилит командной строки. Однако многие программы командной строки на самом деле являются приложениями (например, wget, make, ssh).

Прикладное программное обеспечение можно рассматривать как что угодно, что может (теоретически) работать одинаково на любой операционной системе. Но здесь есть некоторая двусмысленность. Например, treeприложение это или утилита? Поскольку это различие абстрактно и не влияет на использование или реализацию, не обязательно классифицировать все так или иначе.

Связанный контент