Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OSiS_otvety.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
503 Кб
Скачать
☆
  1. Системные переменные Unix.

Переменная среды — текстовая переменная операционной системы, хранящая какую-либо информацию — например, данные о настройках системы.

Переменные среды устанавливаются пользователем или сценариями оболочки. Начальный набор переменных задаётся стартовыми сценариями операционной системы и сценариями, запускаемыми при регистрации пользователя в системе, в частности, /etc/profile и ~/.bash_profile.

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

Среда представляет собой набор пар «имя переменной» и «значение переменной», реализация управления которыми возложена обычно на командный интерпретатор. Так как существует достаточно большое количество интерпретаторов, синтаксис отличается в зависимости от используемого пользователем. Как «имя», так и «значение» чувствительны к регистру символов, «Имя» обычно указывается в верхнем регистре, использование пробелов недопустимо.

В сценариях обычно используются объявления вида ИМЯ_ПЕРЕМЕННОЙ="значение переменной", но конкретный синтаксис зависит от используемого интерпретатора.

Для получения значения переменной необходимо перед её именем поставить символ доллара. Так же иногда требуется заключить имя в скобки (например, в сценариях утилиты make).

Из командной строки управление переменными осуществляется с помощью export и env

  1. Логическая организация файлов.

Нна самом нижнем уровне представления вся информация, касающаяся файла (и собственно данные, и управляющая информация), – не более чем совокупность байтов. Интерпретация (осмысление) этой совокупности на том или ином уровне (уровне устройства; ОС; приложения; пользователя) представляет собой уже соответствующий логический уровень. Пользователем данные файла интерпретируются в соответствии с содержанием решаемой задачи. Эта интерпретация в той или иной степени отображается в программе описании данных и операциях с ними, в частности, файловых операциях. Далее в зависимости от используемых операций уже операционная система понимает файл как имеющий (с ее точки зрения) некоторую структуру или как простую последовательность байтов. Хотя понятие «смысл данных» для каждого уровня свое, эти уровни интерпретации тесно связаны тем, какие осмысленные единицы выделил в данных файла пользователь и как он отобразил их в программе. Все системные программы предназначены для решения своих специфических задач, поэтому в каждую из них заложено «понимание» своего формата данных (компилятор генерирует объектный модуль определенного формата как выходные данные; для редактора связей это формат входных данных; файловая система должна различать разные типы файлов и т.д.). Поэтому вопрос о структуре файлов относится прежде всего к обычным пользовательским файлам с произвольным с точки зрения ФС содержанием. В первых ОС (OS 360, ОС малых машин) структурирование данных в файле поддерживалась файловой системой. Это означает, что программист на соответствующем

языке ОС описывал желаемую структуру, а ОС создавала файл с соответствующей

организацией (так, OS 360 поддерживала несколько типов файлов с достаточно сложной структурой). Развитием этого подхода стали системы управления базами данных.

В настоящее время наиболее популярна модель файла как неструктурированной

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

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

- Практически в операциях прямого доступа в качестве ключа рассматривается номер записи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]