[an error occurred while processing this directive]
.цв
ОПЕРАЦИОННАЯ СИСТЕМА "ОНИКС"
(Руководство пользователя)
В.Шевкунов
Москва, 1990
.сс
.цв
1.1 Операционная система ПЭВМ АГАТ - "ОНИКС"
.ов
Операционная система (ОС) - это программа, которая управляет работой компьютера. ОС "ОНИКС" загружается в память ПЭВМ с диска при включении питания. ОС работает постоянно, она выполняет в основном повторяющиеся действия с такой скоростью, что вы даже не замечаете, что компьютер все время занят работой. На самом деле ОС проделывает огромное количество работы даже прежде, чем вы первый раз нажмете на клавишу. В обязанности ОС входит: опрос клавиатуры, внесение изменений в изображение на экране, выполнение аналого-цифровых преобразований и многое другое.
ОС - это большая и сложная программа на машинном коде. Она состоит из набора подпрограмм, отвечающих за выполнение перечисленных функций. Таким образом, вызывая эти подпрограммы, любая программа на машинном коде может воспользоваться услугами ОС. Одна из таких программ на машинном коде, с которой вы вероятно, уже знакомы, это BASIC. BASIC позволяет, например, пользоваться практически всеми изобразительными возможностями компьютера в очень удобной форме. Все это обеспечивается постоянными обращениями интерпретатора BASICа к соответствующим подпрограммам ОС.
В ОС есть некоторое число полезных подпрограмм, к которым нельзя обратиться посредством операторов BASICа. Следовательно, может возникнуть необходимость прямого обращения к ОС. Это можно сделать, например, с помощью команд ОС. Все команды ОС начинаются на '*'. Вы можете пользоваться ими как в непосредственном режиме, т.е. вводить с клавиатуры, так и в программном, т.е. вставлять команды ОС в программу на BASICе. В компьютер АГАТ-7 может быть загружено одновременно несколько резидентов (при условии, что в нем установлена дополнительная память в любой свободный разъем или установлена плата допОЗУ объемом 128 или 512 Кбайт). АГАТ-9 позволяет загружать не менее трех резидентов даже в минимальной конфигурации.
Резидентами мы называем системные программы, располагающиеся в памяти с адреса ¤8000, и имеющие точки входов, соответствующие стандарту ОС "ОНИКС" (например, языки, текстовый редактор, файловые системы и т.д.).
ОС ОНИКС совместима с операционной системой популярного компьютера BBC фирмы Acorn (Великобритания). Таким образом в ОС ОНИКС могут работать (и работают !!!) многие системные и прикладные программы созданные для BBC. Вот некоторые из них:
BASIC BBC - ЯП (язык программирования) COMAL - ЯП расширенный вариант Бейсика LISP - ЯП искусственный интеллект LOGO - ЯП для детей PASCAL - ЯП с графическими средствами PROLOG - ЯП искуственный интеллект BCPL - ЯП для системных программистов StatCalc - Пакет статистической обработки (Корреляционный анали и т.д.) View - Текстовый редактор (экран 80*32 символа) ViewSheet - Электронная таблица (экран 80*32 символа) ViewStore - СУБД BasicEd - Редактор программ на Бейсике ToolStar - Монитор ToolKit - Отладчик программ на Бейсике
Большинство резидентов имеет свои собственные команды, которые начинаются так же, как команды ОС - на '*'. Мы перечислим сейчас некоторые полезные команды ОС. Для получения информации о командах ROMов можно воспользоваться командой *HELP.
.сс
.цв
1.2 Команды операционной системы
.ов
*SAVE <файл> <адр1> <адр2> <адр3> <адр4>
Записывает участок памяти компьютера с адр1 по адр2 в файл текущей файловой системы. Параметры адр3 (загрузочный адрес) и адр4 (адрес запуска) указывать не обязательно, по умолчанию они равны адр1. Вместо конечного адреса адр2 можно указать длину участка памяти в виде:
*SAVE <файл> <адр1> +<длина>
*LOAD <файл> <адр1>
Загружает файл в память компьютера, начиная с адреса адр1.
Адрес загрузки можно не указывать.
С помощью этих двух команд можно, например, записать содержимое экрана (не только текст, но и графику) на диск, и потом использовать его в своих программах на BASICе.
*KEY<номер> <текст>
Позволяет запрограммировать функциональную клавишу f<номер> таким образом, чтобы при нажатии на нее выполнялись действия, указанные в команде, записанной в поле <текст>. Например,
>*KEY4 MODE7|M >*KEY3 LIST|M
После ввода этих команд при нажатии на клавишу f4 будет включаться 7-ой экранный режим, а при нажатии на f3 вы увидите на экране текст вашей программы на Бейсике. (|M ставится там, где при обычном вводе вы нажимаете на <ВВОД>). Символ "|" получается нажатием клавиш РЕГ+Э в латинском режиме.
*ROMS
Выводит на экран список ROMов (резидентных модулей), которые загружены в компьютер.
*HELP
Выводит на экран информацию о резидентах и ОС. Кроме названия и номера версии, некоторые резиденты предлагают список разделов, по которым имеется дополнительная информация. для получения дополнительной информации поразделу необходимо подать команду
>*HELP <раздел>.
Большая группа команд ОС имеет одинаковый формат:
*FX<номер> (<параметр>)
Вот примеры некоторых команд из этой группы:
*FX0 - выдает сообщение о версии ОС;
*FX4 - позволяет выбрать режим, в котором будут работать клавиши редактирования (клавиши со стрелками и клавиша КОПИЯ (равно на функциональной клавиатуре));
*FX4 0 - осуществление обычных функций управления управления курсором и редактированием;
*FX4 1 - указанные клавиши больше не будут управлять курсором и превратятся в обычные клавиши со следующими кодами:
.цв
КОПИЯ 135
стрелка влево 136
стрелка вправо 137
стрелка вниз 138
стрелка вверх 139
.ов
*FX4 2 - позволяет использовать эти клавиши так же, как функциональные клавиши. То есть вы можете запрограммировать их с помощью команды *KEY<номер>, где номер для:
.цв
КОПИЯ 11
стрелка влево 12
стрелка вправо 13
стрелка вверх 14
стрелка вниз 15
.ов
*FX5 - с помощью этой команды вы можете выбрать принтер, на который будет выводиться информация; *FX5 1 - выбирает принтер, подключенный к машине; *FX5 4 - выбирает принтер локальной сети; *FX6 - указывает символ, который не будет выводиться на принтер; *FX6 10- символ с кодом 10 (перевод строки) не будет посылаться на принтер, т.е. вся информация выводится в одну строку; *FX6 0 - все символы будут посылаться на принтер.
*SHOW
Контроль определений функциональных клавиш.
*CAPS
Переключение решистра. По умолчанию, при нажатии алфавитной клавиши в латинском режиме печатается заглавная буква. Это удобно при наборе программ, но не документов. Данная команда осуществляет "переключение" клавиатуры из режима заглавных букв в режим строчных и наоборот.
*RUS и *LAT
Некоторые фирменные программы не рассчитаны на работу с кириллицей (например ViewStore, ViewSheet, PASCAL и т.д.). Для отображения вместо латинских букв русских используется команда *RUS. Команда *LAT имеет обратный эффект.
.сс
.цв
1.3 Использование команд операционной системы
в программах на Бейсике
.ов
Командами операционной системы, а точнее всеми командами, начинающимися на * (звездочку), можно пользоваться не только в командном режиме, но и в программах на Бейсике. В последнем случае необходимо соблюдать следующее правило: команда, начинающаяся на * , должна быть или единственной командой в строке, или она должна находиться в самом конце строки, после других команд Бейсика. Например,
.ло10
.лв
10 INPUT"Хотите посмотреть каталог диска?" А¤ 20 IF A¤="да" THEN GOTO 30 ELSE GOTO 40 30 *CAT 40 END
или
10 INPUT"Хотите посмотреть каталог диска?" А¤ 20 IF A¤="да" THEN *CAT 30 END
.нф
.ов
Некоторые команды на * требуют указания значений соответствующих параметров. Например, команда *LOAD (загрузить) допускает использование в следующем формате:
.цв
*LOAD <имя файла>
.ов
В данном случае <имя файла> - это параметр, значение которого необходимо указать при использовании команды. Таким образом, если мы напишем
.цв
*LOAD PICT , то
PICT будет выступать в качестве значения параметра <имя файла>.
При использовании команд на * с параметрами необходимо помнить о следующем отличии их от команд с параметрами Бейсика. Отличие состоит в том, что в качестве параметра нельзя использовать переменные.
Вспомним команду Бейсика CHAIN. Она имеет следующий формат:
.цв
CHAIN "<имя файла>"
.ов
Для передачи параметра этой команде, как и другим командам Бейсика, вы можете воспользоваться двумя приемами:
явно указать значение параметра, например:
.цв
100 CHAIN "PROGRAM"
.ов
или передать значение через переменную Бейсика, например,
.ло10
.лв
100 A¤="PROGRAM" 110 CHAIN A¤
.нф
.ов
В случае команды на * вы можете воспользоваться только первым приемом. То есть значения всех параметров должны быть указаны явно. В Бейсике, однако, существуют средства, обеспечивающие возможность передачи значений параметров для команд на * через переменные. Одним из них является оператор Бейсика OSCLI, со следующим форматом:
.цв
OSCLI <символьное выражение>
.ов
Механизм дествия этой команды следующий: символьное выражение вычисляется Бейсиком, и его значение передается операционной системе. То есть команда OSCLI эквивалентка следующей команде на звездочку:
.цв
*<значение символьного выражения>
.ов
Приведем несколько примеров использования команды OSCLI:
.ло10
.лв
10 A¤="PICTURE" 20 OSCLI"LOAD "+A¤
.нф
.ов
В данном случае аргумент команды OSCLI, то есть символьное выражение
.ло10
"LOAD "+A¤
.нф
.ов
после подстановки станет равным
.ло10
"LOAD PICTURE"
.нф
Таким образом, с точки зрения результата, данная программа эквивалентна следующей:
.ло10
10 *LOAD PICTURE.
.нф
Еще один пример, иллюстрирующий механизм передачи числовых параметров команде на * :
.ло10
.лв
10 X=12:Y=5 20 OSCLI"FX "+STR¤X+","+STR¤Y
.нф
.ов
Эта программа эквивалентна следующей:
.ло10
10 *FX 12,5
.нф
В Бейсике имеются и другие средства передачи параметров командам на * , но в данном пособии они рассматриваться не будут.
.сс
.цв
2. ИСПОЛЬЗОВАНИЕ ДИСКОВОЙ ФАЙЛОВОЙ СИСТЕМЫ ОС "ОНИКС"
.ов
2.1 Файловая структура ОС "ОНИКС"
Вся информация хранится на манитном диске в виде файлов, которые организуются в некоторые группы, называемые каталогами. Внутри главного каталога пользователь имеет возможность создавать подкаталоги, в которые соответственно могут быть вложены подкаталоги следующего, более низкого уровня и т.д.
В целом организация подкаталогов пользователя внутри главного каталога имеет древовидную (иерархическую) структуру. Например, главный каталог с именем CATALOG может иметь следующую схему разбиения на подкаталоги для размещения различных групп файлов:
.лв
+---------+ ! CATALOG ! +----+----+ ! +---------------+------------------+ ! ! ! +---+--+ +---+---+ +--+---+ ! TEXT ! ! BASIC ! ! DATA ! +------+ +---+---+ +--+---+ ! ! +------+----+ +----+------+ ! ! + ! +---+---+ +--+-+ +---+---+ +---+----+ ! STAND ! ! MY ! !NUMBER ! ! STRING ! +-------+ +----+ +-------+ +--------+
.нф
.ов
Разумно, если каждый из подкаталогов будет иметь некоторый самостоятельный логический смысл. Например, подкаталог TEXT может быть предназначен для хранения текстовых файлов, содержащих различные описания, BASIC - программ на языке Бейсик, DATA - файлов данных. В свою очередь, программы на Бейсике делятся на собственные (подкаталог MY) и используемые (STAND), а файлы данных - на числовые (NUMBER) и строковые (STRING). Сами подкаталоги хранятся в виде файлов в соответствующих подкаталогах более высокого уровня. Дисковая файловая система осуществляет доступ к файлам по иерархической цепочке от корневого каталога.
Каждый файл (в том числе сами каталоги и подкаталоги) идентифицируется в системе именем, которое присваивается в соответствии со следующими соглашениями:
.ло10
.лв
- имя может содержать до десяти символов;
- имя представляет собой произвольную комбинацию алфавитно-цифровых символов;
- кроме алфавитно-цифровых, допускается в произвольных плозициях имени использовать специальные символы из следующего набора:
! % & = - ~ ^ : \ { [ _ + ; , } ] < > ? /
.нф
.ов
При попытке определения имени с отклонением по одному из пунктов от принятых соглашений выдается сообщение об ошибке:
.ло10
Bad file name
.нф
Очевидно, что с учетом иерархической организации хранения, указания только собственного имени файла недостаточно для его однозначной идентификации (в разных подкаталогах могут храниться файлы с одинаковыми именами, которые справедливо рассматриваются как разные файлы). Таким образом, спецификация файла должна однозначно определять всю цепочку доступа, начиная с корневого каталога. Возможны два варианта спецификации: первый связан с установкой подкаталога нижнего уровня (в котором непосредственно находится требуемый файл) текущим (осуществляется командой *DIR) с дальнейшим указанием файла непосредственно по имени; второй - состоит в задании всей цепочки уровней вложенности подкаталогов перед собственно именем файла. В последнем случае все, указываемые в направлении сверху вниз, имена подкаталогов отделяются друг от друга символом ".". Например, при организации подкаталогов в соответствии со схемой, представленной выше, файл подкаталога STAND с именем EXAMPLE специфицируется из главного каталога CATALOG следующим образом:
.цв
BASIC.STAND.EXAMPLE
.ов
Аналогично файлам специфицируются подкаталоги, например:
.цв
DATA.NUMBER TEXT и т.д.
.ов
Пользователь имеет возможность просматривать содержимое не только текущего, но и всех каталогов, и также специфицировать любой файл, находящийся на диске. Корневой каталог, естественно, всегда указывается первым в цепочке спецификации и имеет стандартное имя из одного символа "¤". Например, пусть текущий каталог пользователя имеет имя USER1. Предположим, что пользователю необходимо специфицировать некоторый файл, находящийся в другом каталоге с именем USER2, доступ к которому может быть осуществлен только через корневой каталог. Таким образом, спецификация файла, должна иметь вид:
.цв
¤.USER2.имя файла
.ов
Используя символ "¤" в качестве первого элемента цепочки имен,пользователь вообще получает возможность с помощью команды *DIR назначить любой каталог или подкаталог текущим. Для выхода в корневой каталог используется команда:
.цв
*DIR ¤
.сс
.цв
2.2 Защита информации от уничтожения
.ов
Остановимся на средствах защиты информации от случайного уничтожения.
Порядок доступа к файлу осуществляется с помощью команды
.цв
*ACCESS <имя файла> (<атрибуты1>) (/<атрибуты2>),
.лв
где:
атрибуты1 - любое подмножество множества из трех букв (LWR); атрибуты2 - то же самое, но их использование имеет смысл только в локальной сети.
.ов
Присутствие какой-либо буквы в команде устанавливает определенный вид доступа к файлу для владельца файла, если эта буква находится до "/", или для других пользователей сети, если эта буква находится после "/". Значение букв следующее:
.лв
L (Locked) - файл нельзя удалять; W (Write) - содержимое файла можно изменять, например, с помощью команды Бейсика PRINT#; R (Read) - содержимое файла может быть прочитано (т.е. файл можно, например, загружать в память компьютера).
.ов
По умолчанию для вновь созданного файла устанавливаются атрибуты:
.цв
WR/L
.ов
т.е. владелец файла обладает всеми возможными правами на файл, а другие пользователи не обладают никакими. Приведем несколько примеров использования команды *ACCESS:
.цв
*ACCESS programm LWR
.ов
запрещает владельцу каталога удалять файл programm, оставляя только возможность вносить изменения и читать;
.цв
*ACCESS text LR/LR
.ов
устанавливает для всех пользователей равные права на файл text: из файла можно только читать.
Если вы хотите изменить права доступа сразу для группы файлов, то можно воспользоваться механизмом, описанным в п.3.6.
Теперь перейдем непосредственно к рассмотрению команд дисковой файловой системы (ДФС). С точки зрения синтаксиса все команды, адресуемые ДФС, как и команды операционной системы, в качестве первого используют символ "*", а ввод любой команды завершается нажатием клавиши ВВОД.
.цв
2.3 Команды для работы с каталогами и подкаталогами
.ов
Продуманная организация каталога, использование логически обоснованной системы имен, структурирование различных видов файлов введением подкаталогов различных уровней вложенности, контроль текущего состояния всех информационных элементов являются важными сопутствующими компонентами индивидуальной работы на ПЭВМ.
Команда *CAT - выводит на экран содержимое (перечень файлов) указанного каталога или подкаталога. Вид и форму представления выводимой информации рассмотрим на следующем примере:
.ло10
.лв
EXAMPLE WR / GAMES D / TEXT WR / DATA WR / TUTOR R /
.нф
.ов
Общий формат команды *CAT:
.цв
*CAT [ спецификация ]
.ов
где спецификация - имя каталога или подкаталога.
Если спецификация не указывается, то выводится информация о текущем каталоге. Это, как правило, либо главный каталог пользователя, устанавливаемый при его регистрации в системе, либо - назначенный самим пользователем ранее поданной командой *DIR. Например:
.лв
*CAT - выводит информацию о текущем каталоге; *CAT ¤ - выводит информацию о корневом каталоге системы; *CAT BASIC.STAND - выводит информацию о подкаталоге третьего уровня STAND.
.ов
Для просмотра каталогов также может использоваться команда *EX. Она выводит дополнительную информацию о каждом файле: тип файла (директория, текстовый или двоичный); длина файла для текстового (все шесть байт) или загрузочный адрес, длина и адрес запуска для двоичного файла; дата создания файла или его последней модификации.
Команда *CDIR - предназначена для создания новых подкаталогов в главном каталоге пользователя. Формат команды:
.цв
*CDIR спецификация подкаталога.
.ов
В общем случае спецификация подкаталога может содержать цепочку имен, разделенных символом ".". Примеры команды:
.лв
*CDIR SUB1 - создает подкаталог SUB1 в главном каталоге пользователя; *CDIR SUB1.PROGS - создаваемый подкаталог PROGS принадлежит подкаталогу SUB1.
.ов
После использования команды *CDIR при просмотре подкаталога, в котором создан новый подкаталог, (команда *CAT), обнаруживается новый файл с соответствующим именем и атрибутами D (Directory).
Команда *DIR - осуществляет назначение текущего каталога или подкаталога. Формат команды:
.цв
*DIR спецификация подкаталога.
.ов
Команду целесообразно использовать, когда предполагается работа с файлами, размещенными не в главном каталоге (в другом каталоге или одном из подкаталогов). При этом будет сокращена спецификация соответствующих файлов. Так, в случае многократной спецификации файлов подкаталога четвертого уровня, например,
.цв
MAIN.PROGS.STAT. имя файла,
.ов
удобно подать команду
.цв
*DIR MAIN.PROGS.STAT,
.ов
установив тем самым подкаталог STAT текущим, а затем специфицировать соответствующие файлы только по имени.
.ст оникс2
[an error occurred while processing this directive]