Командный интерпретатор shell 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Командный интерпретатор shell



Все современные системы UNIX поставляются по крайней мере с тремя командными интерпретаторами: Bourne shell (/bin/sh) С shell (/bin/csh) и Korn shell (/bin/ksh). Командный интерпретатор занимает важное место в операционной системе UNIX, прежде всего, благодаря следующим обстоятельствам:

1. Первая программа, с которой по существу начинается работа пользователя, — shell. В UNIX реализуется следующий сценарий работы в системе (рис. 1.8):

• При включении терминала активизируется процесс который является сервером терминального доступа и запускает программу, которая, в свою очередь, запрашивает у пользователя имя и пароль.

• Если пользователь зарегистрирован в системе и ввел правильный пароль, запускает программу, указанную в последнем поле записи пользователя в файле. В принципе это может быть любая программа, но в нашем случае — это командный интерпретатор shell.

• Shell выполняет соответствующий командный файл инициализации, и выдает на терминал пользователя приглашение. С этого момента пользователь может вводить команды.

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

• По окончании работы пользователь завершает работу с интерпретатором, вводя команду exit, и выходит из системы.

2. Командный интерпретатор является удобным средством программирования. С помощью shell можно создавать сложные программы, конструируя их, как из кирпичиков, из существующих утилит UNIX. Программы на языке shell часто называют скриптами или сценариями (script). Интерпретатор считывает строки из файла скрипта и выполняет их, как если бы они были введены пользователем в командной строке.

3. При входе пользователя в систему запускается Его инициализированный скрипт, выполняющий несколько функций: установку пути поиска программ, инициализацию терминала, определение расположения почтового ящика.

Рисунок 4 - Процессы, обеспечивающие вход пользователя в систему


 

Основные стандарты

Чем больше появлялось версий UNIX (и особенно коммерческих), тем очевиднее становилась необходимость стандартизации системы. Наличие стандартов облегчает переносимость приложений и защищает как пользователей, так и производителей. В результате возникло несколько организаций, связанных со стандартизацией, и был разработан ряд стандартов, оказывающих влияние на развитие UNIX:

IEEE и POSIX

В 1980 году была создана инициативная группа под названием с целью стандартизации программного интерфейса UNIX, т. е. формального определения услуг, предоставляемых операционной системой приложениям. Решение этой задачи упростило бы переносимость приложений между различными версиями UNIX. Такой стандарт был создан в 1984 году и использовался комитетом ANSI, отвечающим за стандартизацию языка С, при описании библиотек. Однако с ростом числа версий операционной системы эффективность стандарта уменьшилась, и через год, в 1985 году, был создан Portable Operating System Interface for Computing Environment, сокращенно POSIX (переносимый интерфейс операционной системы для вычислительной среды).

В 1988 году группой был разработан стандарт POSIX 1003.1-1988, который определил программный интерфейс приложений (Application Programming Interface, API). Этот стандарт нашел широкое применение во многих операционных системах, в том числе и отличных от UNIX. Спустя два года стандарт был принят как стандарт IEЕЕ 1003.1-1990.

Таблица 2 - наиболее значительные стандарты POSIX, относящиеся к UNIX, являются:

Стандарт Особенности
POSIX 1003.2-1992 Включает определение командного интерпретатора UNIX и набора утилит
POSIX 1003.1b-1993 Содержит дополнения, относящиеся к поддержке приложений реального времени
POSIX 1003.1c-1995 Включает определения "нитей" (threads) POSIX, известных также как pthreads

X/Open

В 1984 году ряд европейских компьютерных компаний сформировал некоммерческую организацию, получившую название X/Open, целью которой была разработка общего набора интерфейсов операционной системы, согласованного между различными производителями, и создание действительно открытых систем, для которых стоимость переносимости приложений как между различными версиями одной операционной системы, так и между системами различных производителей была бы минимальной.

Основной задачей организации Х/Open являлось согласование и утверждение стандартов для создания общего программного интерфейса и программной среды для приложений. В 1992 году появился документ, известный под названием X/Open Portability Guide версии 3 или XPG3, который включал POSIX 1003.1-1988 и стандарт на графическую систему X Window System, разработанную в Массачусетском институте технологии.

SVID

Вскоре после выхода в свет в 1984 году версии SVR2, группа USG выпустила документ под названием System V Interface Definition, SVID, в котором описывались внешние интерфейсы UNIX версий System V. По существу, этот труд (в двух томах) определял соответствие операционной системы версии System V.

В дополнение к SVID был выпущен, так называемый, System V Verification Suite, SVVS, — набор тестовых программ, позволяющих производителям получить ответ, достойна ли их система права носить имя System V.

ANSI

В конце 1989 года Американским национальным институтом стандартов (American National Standards Institute, ANSI) был утвержден стандарт X3.159-1989 языка программирования С. Целью появления этого стандарта являлось улучшение переносимости программ, написанных на языке С, в различные операционные системы (не только UNIX). Стандарт определяет не только синтаксис и семантику языка, но и содержимое стандартной библиотеки.

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


 

6 Преимущества использования языка С++ для UNIX систем



Поделиться:


Последнее изменение этой страницы: 2016-12-29; просмотров: 340; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.85.241.10 (0.007 с.)