Как организованы файлы в OpenVMS

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

Далее показана возможная полная спецификация файла для пользователя Joe файла FOR_MARY.LIS

NEPTUNE::NEPDISK:[JOEUSER.MEMOS.JUNE]FOR_MARY.LIS;3

спецификация файла содержит следующие части:

Узел (node) — имя компьютера на котором хранится файл. Это не имя брэнда или модели, а более никнейм назначенный системным администратором при установке системы. Если вы отправите электронное письмо кому-нибудь в VMS системе, вам необходимо будет знать имя ноды. В примере, система пользователя Joe названа NEPTUNE. Обратите внимание на использование двух двоеточий для отделения имени узла от остальной части спецификации файла.

Устройство (device) — данная система VMS может хранить файлы на нескольких жестких дисках; имя устройства конкретного жесткого диска, где хранится файл. NEPDISK это имя устроства в примере. Одно двоеточие отделяет имя устройства от остальной части имени файла.

Каталог (directory) – жесткий диск разбит на секции, которые называются каталогами. Системный администратор назначет каждому пользователю ID его собственного каталога, и пользователь может создать поддиректории данной директории известные как поддиректории. (они также могут быть разделены и подразделы могут быть разделены, и так далее до семи уровней ниже директории пользовательского ID). Полное имя директории содержит имена различных уровней отделенных точкой с квадратными скобками вокруг всего этого. Мы вызываем пользовательский ID главной директории в примере выше, [JOEUSER] — это root директория пользователя. DOS и UNIX пользователи должны иметь в виду, что в VMS “root директория” означает root конкретного пользователя подкаталогов (например, домашний каталог пользователя в UNIX), а не корень жесткого диска. Пользователь Joe может разделить на несколько директорий и имя одно из них MEMOS. Это поддиректория полностью называется [JOEUSER.MEMOS]. Если он разделил поддиректорию MEMOS на подразделы для каждого месяца в году, полное имя поддиректории называемого Июнь должна будет записываться [JOEUSER.MEMOS.JUNE], как в примере.

Имя файла — Это просто имя файла.

Номер версии (version number) – когда вы создаете файл в первый раз, VMS назначает номер версии 1. если вы отредактировали файл, текстовый редактор сохраняет отредактированную версию с номером версии 2, а старые оставляет в той же директории с номером версии 1. Номер версии добавляется в имя файла, отделенное от него точкой с запятой. В примере, 3, после FOR_MARY.LIS имени файла показывает, что представлена третья версия файла. Вы несомненно, обнаружети, что ваши каталоги постепенно заполняются ненужными старыми версиями файлов. Далее мы рассмотрим как удалить старые версии файлов, кроме самых последних.

Системный администратор присваивает имени пользователю ID для конкретного диска конкретного компьютера. Если вы не включаете узел или имя устройства, когда обращаетесь к файлу, VMS предполагает, что вы говорите о файле на том же узле и диске, который уже используете. Такая организация доступа к файлу обусловлена тем, что VMS часто используются в качестве кластерных систем, а такая организация доступа к файлу делает доступ к файлу гораздо проще.

Перемещение между каталогами

Команда SHOW DEFAULT отображает имя вашей директории по умолчанию. Если Joe это тип User тогда его корневой каталог по умолчанию будет:

NEPDISK:[JOEUSER]

эта команда очень удобна, потому что вы можете использовать ее для проверки успешности при каждом изменении каталога по умолчанию.

Команда SET DEFAULT изменяет ваш каталог по умолчанию. Поскольку эта команда и SHOW DEFAULT появляется достаточно часто, это избавит вас от несколких нажатий клавиш для запоминания того, что вам нужно, так как вам нужны только первые три символа ключевого слова DCL. Это делают эти три команды SET DEF и SHOW DEF или даже SHO DEF.

Для пользователя Joe, чтобы изменить его каталог по умолчанию на подкаталог MEMOS его корневого каталога необходимо набрать это:

SET DEFAULT [JOEUSER.MEMOS]

К счастью, есть и другие сокращения, кроме сокращенний ключевых слов. Если вы начнете имя каталога с периодом, вы скажете VMS, что следующее имя каталога подкаталог текущего по умолчанию. Например, если Joe уже в [JOEUSER] каталоге и хочет перейти на один уровень ниже, в MEMOS каталог, он может набрать следующее:

SET DEFAULT [.MEMOS]

если он хочет перейти из [JOEUSER] в [JOEUSER.MEMOS.JUNE] одной командой без набора полного имени его назначения он должен ввести это:

SET DEFAULT [.MEMOS.JUNE]

При перемещении назад на один или более уровень, дефис представляет один уровень ближе к корню. Например, Joe мог бы перейти из [JOEUSER.MEMOS.JUNE] в [JOEUSER.MEMOS] введя это:

SET DEFAULT [-]

Для перехода назад на несколько уровней, вы можете использовать множество дефисов, отделяя их точкой. Например, Joe может перейти из [JOEUSER.MEMOS.JUNE] в [JOEUSER] корневой каталог введя это:

SET DEFAULT [-.-]

Каталог по умолчанию? Текущий каталог?

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

Например, это происходит, когда вы указываете несуществующий каталог вашим новым каталогом по умолчанию. В UNIX и DOS, при выполнении команды cd с несуществующим каталогом как параметром, система выдаст сообщение об ошибке сразу. С другой стороны, когда вы используете SET DEFAULT команду, чтобы сказать VMS применить это имя каталога с файлами, которые я буду иметь в виду в будущем, система возьмет на веру, что имя каталога верное. При попытке сделать это с несуществующим именем каталога, система не выведет ошибку:

$ set default [.febyooary]
$

если пользователь Joe попробует сделать что-нибудь с несуществующим каталогом, он получит сообщение об ошибке или даже два:

$ dir
%DIRECT-E-OPENIN, error opening NEPDISK:[JOEUSER.FEBYOOARY]*.*;* as input
-RMS-E-DNF, directory not found
-SYSTEM-W-NOSUCHFILE, no such file

Эта проблема будет продолжать присутствовать пока вы не исправите ее набрав:

set default [joeuser.february]

Запрос свободного места на диске

Системный администратор VMS выделяет определенное количество дискового пространства для каждого ID. Чтобы увидеть, сколько вы использовали и сколько свободного места осталось введите следующую команду:

SHOW QUOTA

VMS выведет сообщение похожее на это:

User [207,JOEUSER] has 356 blocks used, 9644 available,
of 10000 authorized and permitted overdraft of 100 blocks on NEPDISK

[107, JOEUSER] это Пользовательский Идентификационный Код (UIC) уникальный код, который система использует для отслеживания пользователей. Блок это 512 байтов, чтобы представить себе заданное число блоков в килобайтах, нужно разделить его пополам. Предыдущий пример показывает, что файлы в пространстве пользовательского ID Joe занимают около 178 К и у него около 4822 К свободного пространства.

В следующем посте будет освещена тема работы с файлами в OpenVMS.

Оставить комментарий

Ваш email не будет опубликован. Обязательные поля отмечены *

Вы можете использовать это HTMLтеги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Post Navigation