Вы когда-нибудь пытались разобраться в командах UNIX-подобных систем, но чувствовали себя как в лесу без карты? Все дело в том, что POSIX и shell часто путают, но они не одно и то же. В этой статье мы проложим маршрут и разберемся, что такое POSIX, чем он отличается от shell и почему важно понимать разницу между ними.

Введение

POSIX (Portable Operating System Interface) — это стандарт, определяющий интерфейс взаимодействия между операционной системой и приложениями. Однако часто можно услышать, что POSIX — это shell, но на самом деле это не так.

Что такое POSIX?

POSIX — это набор стандартов, определяющих интерфейс взаимодействия между операционной системой и приложениями. Он был разработан в 1980-х годах для обеспечения переносимости программ между различными UNIX-подобными операционными системами. POSIX определяет набор функций, которые должна поддерживать операционная система, чтобы быть совместимой с этим стандартом.

POSIX включает в себя несколько стандартов, включая:

  • POSIX.1 (IEEE 1003.1) — определяет интерфейс командной строки и программный интерфейс;
  • POSIX.2 (IEEE 1003.2) — определяет интерфейс для утилит и команд;
  • POSIX.3 (IEEE 1003.3) — определяет тестовый набор для проверки соответствия POSIX.

Что такое shell?

Shell — это программа, которая интерпретирует команды, введенные пользователем, и выполняет их в операционной системе. Shell является интерфейсом между пользователем и операционной системой, позволяя пользователям выполнять команды, обращаться к файлам и директориям, а также управлять процессами. (На самом деле, shell — это как личный помощник, который выполняет все ваши поручения.)

Существует несколько типов shell, включая:

  • Bourne shell (sh)
  • C shell (csh)
  • Korn shell (ksh)
  • Bash (GNU Bourne-Again SHell)

POSIX и shell: в чем разница?

POSIX — это стандарт, определяющий интерфейс взаимодействия между операционной системой и приложениями, в то время как shell — это программа, которая интерпретирует команды и выполняет их в операционной системе. Хотя POSIX и shell связаны между собой, они не являются одним и тем же. (Это как Stack Overflow и ваш любимый редактор кода — они помогают, но не одно и то же.)

POSIX определяет набор функций, которые должна поддерживать операционная система, чтобы быть совместимой с этим стандартом. Shell, в свою очередь, использует эти функции для выполнения команд и взаимодействия с операционной системой.

Примеры POSIX-совместимых shell

Существует несколько shell, которые соответствуют стандарту POSIX. Некоторые из них:

  • Bash (GNU Bourne-Again SHell)
  • dash (Debian Almquist Shell)
  • ksh (Korn shell)
  • zsh (Z shell)

Заключение

В заключение, POSIX — это стандарт, определяющий интерфейс взаимодействия между операционной системой и приложениями, в то время как shell — это программа, которая интерпретирует команды и выполняет их в операционной системе. Понимание разницы между POSIX и shell важно для разработчиков и пользователей, которые работают с UNIX-подобными операционными системами.

POSIX-совместимые shell, такие как Bash, dash, ksh и zsh, поддерживают большинство функций, определенных в стандарте POSIX, и могут быть использованы для выполнения команд и взаимодействия с операционной системой.

Теперь, когда вы знаете разницу между POSIX и shell, попробуйте использовать разные shell и оцените их возможности. Ваш опыт работы с UNIX-подобными системами станет более эффективным и удобным! (И не говорите, что я не предупреждал вас о легаси-коде).