Операционная система и программное обеспечение
(часть 1)
Пользователям о "Корвете". Журнал "Радио" №10/1989г., стр.39-42
Операционная система является наиболее важной программой ПЭВМ, поскольку она решает задачи управления различными частями компьютера, определяет последовательность действий, в которых наиболее часто возникает потребность. Вот ее основные функции:
- управление работой различных устройств ввода-вывода (например, дисплеями, принтером, накопителями на магнитных дисках и лентах и др.);
- управление размещением файлов на магнитных дисках;
- загрузка в память и запуск стандартных программ ОС и программ, написанных пользователем.
Здесь мы рассмотрим операционную систему СР/М-80 (от англ. control program for microprocessors -управляющая программа для микропроцессоров), которая применена в "Корвете".
Почему мы остановили свой выбор именно на этой ОС? CP/M-80 была разработана для ПЭВМ на микропроцессоре i8080 (отсюда число 80 в названии этой ОС) в 1975 г. Г. Кил-дэлом. С этого времени СР/М (далее для краткости будем называть ее так) стала одной из наиболее популярных в восьмиразрядных ЭВМ и признается "промышленным стандартом", поскольку она используется многими изготовителями ПЭВМ.
Эта ОС обеспечивает работу буквально сотен различных программ, созданных разработчиками программного обеспечения для персональных компьютеров.
Работа с ПЭВМ начинается с загрузки ОС - с перенесения ее с системного диска в оперативную память машины. Существуют два типа загрузки: начальная и реинициализация системы.
В каждой ПЭВМ, работающей с ОС СР/М, имеется программа начальной загрузки, хранящаяся в ПЗУ. ОС размещается на первых двух дорожках системного диска, поэтому программа в ПЗУ должна обеспечить считывание информации с этих дорожек и размещение ее в памяти. При включении ПЭВМ в сеть или при нажатии на кнопку "СБРОС" можно услышать звуковой сигнал, свидетельствующий о том, что информация с системных дорожек загружается. Какая именно информация записана на них?
Как мы уже знаем, ОС служит для управления различными устройствами, входящими в состав ПЭВМ. За это отвечает часть операционной системы, называемая BIOS (от англ. basic input-output system - базовая система ввода-вывода). BIOS содержит подпрограммы управления периферийными устройствами. Поскольку организация периферийных устройств отличается на различных ПЭВМ, то и BIOS различен для разных ПЭВМ. Обычно BIOS пишется непосредственно разработчиками машины.
Оставшаяся часть ОС - общая для всех машин, которые могут с ней работать. Она не зависит от машины и ее периферийных устройств и работает с ними только через BIOS. Называется эта часть BDOS (от англ. basic disk operating system - базовая дисковая операционная система).
В ОС СР/ М входит также программа ССР (от англ. console command processor - процессор команд консоли). В задачу ССР входят проверка состояния клавиатуры консоли на соответствие вводимых символов командам ОС СР/М и интерпретация команд.
Все три части ОС загружаются с системного диска. Процесс начальной загрузки называется "холодным стартом" системы. В результате "холодного старта" на экране дисплея появляется сообщение:
СР/М-80 v. 2.2
ОФП НИИЯФ МГУ BIOS
Ver. 1.2 (с) III 1988
A>
Это информация для пользователя о номере версий загруженной системы, BIOS и ее авторах (в данном случае отдел физики плазмы НИИ ядерной физики МГУ). Последняя строка является стандартным сообщением о том, что ОС работает в данный момент с диском А и ждет команды пользователя (это сообщение называется промптом). Следует запомнить, что для нормальной работы машины необходимо, чтобы в дисководе А всегда находился диск, первые две дорожки которого содержат копию ОС СР/М.
В результате реинициализации системы (эту процедуру называют "теплым стартом") с системного диска копируется в память ПЭВМ только часть ОС. Остальная остается нетронутой. Обычно "теплый старт" используется при выходе из выполнявшейся программы. Процедура выполняется автоматически. Можно, однако, вручную вызвать "теплый старт", нажав на клавишу CTRL и, не отпуская ее, на С (клавиша CTRL находится слева на клавиатуре и на ней написано "УПР/CTRL"). Это бывает необходимо в тех случаях, когда ОС не может ре-инициализировать себя сама, например, при смене диска или при ошибках определенного типа. Если реинициализация системы не удалась, то необходимо выполнить полную перезагрузку системы, нажав на кнопку "СБРОС".
После загрузки операционной системы диск А автоматически становится текущим диском или диском по умолчанию, к которому подразумевается обращение во всех командах, если явно не дано другое указание.
Для изменения текущего диска необходимо набрать на клавиатуре имя нового, затем двоеточие и нажать клавишу ВК. Например, выбор текущим диском диска В можно осуществить следующим образом:
А>В:
В>
Может оказаться, что и после помещения диска в дисковод попытка изменить текущий диск не даст результата. Это, как правило, является следствием несоответствия формата вновь вставленного диска формату, принятому в СР/М. Поэтому старайтесь пользоваться для форматирования дисков программой, имеющейся на вашем системном диске.
Если необходимо обратиться к файлу на другом диске, то вовсе не обязательно изменять текущий диск, достаточно перед именем файла указать имя диска, на котором он записан, отделив имя диска от имени файла двоеточием. Например, если необходимо просмотреть содержимое файла PROGRAM1.BAS, находящегося на диске в дисководе В, можно выполнить команду:
А>TYPE В:PROGRAM1.BAS
Какие же основные команды входят в операционную систему СР/М? К ним относят команды управляющих символов, а также встроенные и транзитные. Рассмотрим вначале значение и действие команд управляющих символов.
Для их ввода достаточно нажать одновременно клавиши, УПР/CTRL и с требуемым символом.
С одним из них мы уже познакомились, это CTRL-C - команда реинициализации системы.
Отметим, что вместо клавиши ВК для завершения ввода можно использовать следующие управляющие символы:
- CTRL-M - вызывает возврат каретки, эквивалентен действию клавиши ВК;
- CTRL-J - вызывает перевод строки;
- CTRL-H или BACKSPACE - возвращает курсор на одну позицию назад и стирает символ, стоящий в этой позиции (клавиша BACKSPACE находится в верхнем ряду клавиатуры справа и обозначается <==);
- DEL - стирает символ слева от курсора;
- CTRL-V - удаляет уже набранную командную строку и перемещает курсор в начало следующей строки;
- CTRL-X - удаляет текст командной строки и возвращает курсор в ее начало;
- CTRL-E - используется для переноса командной строки на следующую строку экрана, пока не нажата клавиша ВК. Когда ВК будет, наконец, нажата, то все введенные с помощью CTRL-E команды будут восприняты СР/М как единая командная строка;
- CTRL-R - используется для повторного вывода командной строки, содержащей удаленные при нажатии клавиши DEL символы. В результате из командной строки будут исключены все удаленные символы, и в таком виде она будет выдана на следующую строку экрана;
- CTRL-S - служит для задержки вывода текста на экран; при первом использовании команды вывод прекращается, при следующем - возобновляется; подобную процедуру можно повторять столько раз, сколько потребуется;
- CTRL-P - используется для вывода на принтер любого текста, появляющегося на экране. Способ ее использования аналогичен команде CTRL-S.
Теперь познакомимся с встроенными командами, которые входят в операционную систему СР/М. Они называются также резидентными, являются частью ОС и хранятся вместе с ней в одной и той же области оперативной памяти.
Начнем с наиболее часто используемой команды DIR для вывода на экран или принтер данных о файлах, содержащихся на указанном диске.
Команда иллюстрирует способ ввода сообщений с клавиатуры в операционную систему СР/М. Сообщение состоит из команды и отделенных от нее пробелом одного или нескольких операндов. Операндами являются дополнительные сообщения системе о том, что конкретно от нее требуется. Если применена команда DIR (без операндов), то отображается полное оглавление текущего диска:
A>DIR
A: STAT СОМ : PIP СОМ : MOVCPM СОМ : SYSGEN СОМ
A: FORMAT СОМ : LOAD СОМ : DDT СОМ : ASM СОМ
A: SUBMIT СОМ : XSUB СОМ : ED СОМ
А>
Как видим, при завершении выполнения команды снова появляется промпт А>.
Если же DIR желают использовать для вывода оглавления других дисков, то в этом случае в качестве операнда нужно указать имя диска и поставить двоеточие, например:
A>DIR В:
В: PIP СОМ : TEXT ТХТ : BASIC СОМ : PROG BAS
B: SUBMIT СОМ
А>
Команда DIR позволяет выводить на экран все оглавление. а также имена отдельных файлов или группы с общими признаками. Для этого в качестве операнда указывается имя файла или общий признак группы. Оно содержит и глобальные символы * и ?, например:
A>DIR В:*.СОМ
В:PIP СОМ : BASIC СОМ : SUBMIT СОМ
Следующая команда, с которой мы познакомимся, называется REN (от англ. rename - переименовать). Это команда изменения имени (переименования) файлов, содержащихся в каталоге диска. Синтаксис команды имеет вид:
A>REN B:PROGRAM1.BAS
При попытке переименовать несуществующий в оглавлении файл выдается сообщение NO FILE.
В операционных системах обычно устанавливается различный уровень доступа к файлам. Это делается для их защиты, чтобы предотвратить случайное стирание нужных файлов. Уровень доступа R/O (от англ. read only) уже содержит элемент защиты, так как разрешает только чтение, a R/W (от англ. read/write) - чтение и запись или свободный доступ. При попытке переименовать файл с уровнем R/0 выдается сообщение:
FILE IS SET R/O (файл имеет такой уровень доступа, что он может быть только прочитан). Для появления промпта в этом случае необходимо нажать клавишу ВК.
Отметим, что использование в операндах команды REN глобальных символов ? и * не допускается.
При необходимости удаления хранящихся на диске файлов используют команду ERA (от англ. erase - стирать). Она очень опасна тем, что неправильное ее применение вызовет стирание полезных программ. Правда, по команде ERA реально ничего не уничтожается. Просто удаляется из каталога имя файла, а сам файл остается нетронутым. Однако после этого прочесть его стандартными средствами ОС СР/М невозможно. В случае, если вы случайно стерли что-нибудь необыкновенно ценное, советуем обратиться за помощью к более опытным системным программистам, и они помогут вам восстановить утраченный файл.
Пользоваться командой ERA очень просто. Достаточно после имени команды указать имя стираемого файла. Проиллюстрируем сказанное примером:
A>ERA TEXT.TXT
А>
Любителям стирать файлы дадим несколько рекомендаций по технике безопасности. Не жалейте дисков. Храните резервные копии важных и ценных программ в недоступном для других и, в особенности, для себя месте. Прежде чем набрать команду ERA, трижды подумайте.
Перейдем теперь к наиболее опасному по последствиям использованию команды ERA. Сейчас мы научимся уничтожать целые группы файлов, вплоть до стирания всей информации, записанной на диске. Для этой цели применяют глобальные символы в имени файла.
Предположим, что вы хотите удалить все файлы, имеющие расширение ТХТ. Для этого вы должны набрать команду:
A>ERA *.ТХТ
В результате все файлы с расширением ТХТ будут удалены. А как быть, если вам нужно удалить не все файлы с расширением ТХТ? В этом случае нужно либо удалять их по одному, не используя глобальных символов, либо переименовать те, которые вы удалять не собираетесь.
Рассмотрим, наконец, использование команды ERA для "леденящей душу" процедуры уничтожения всего, что есть на диске. Команда в этом случае имеет вид:
A>ERA *.*
Когда вы нажмете клавишу ВК после ввода команды, то машина в испуге попробует вас остановить и на экране появится вопрос: ALL (Y/N)? Если вы ответите Y (Yes), то машина, скрепя сердце, сотрет все содержимое диска. Если вы ответите N (No), то машина с облегчением выведет на экран промпт и не будет ничего стирать.
При попытке стереть несуществующий файл выводится сообщение NO FILE. Если стираемый файл имеет уровень защиты R/O, появляется сообщение FILE IS SET R/O, после чего необходимо нажать клавишу ВК.
Еще раз хочется напомнить: защищайте файлы и диски от случайного стирания и не доверяйте своих дисков случайным пользователям. Помните, что восстановление утраченных программ требует больших затрат времени, а в ряде случаев оказывается невозможным.
Перейдем к следующей встроенной команде - TYPE. Она нужна для просмотра текстовых файлов и вывода на дисплей его содержимого.
Предположим, что вы написали большую и очень полезную программу или текст вашего выступления на всемирном конгрессе пользователей "Корвета". Мысль о большой проделанной работе согревает вашу душу. Но время от времени закрадывается сомнение: а цело ли ваше творение? Не стерли ли его злоумышленники? Просмотр оглавления диска немного успокаивает. Да, вот оно, на месте, и имя тоже. А вдруг с самим текстом что-нибудь приключилось? Для того чтобы убедиться в его сохранности, а также для просмотра других текстовых файлов, и служит команда TYPE. Заметим, что попытка просмотра с помощью команды TYPE файлов, не предназначенных для вывода на экран, например командных, приводит к непредсказуемым последствиям. Формат команды TYPE имеет вид:
A>TYPE PROGRAM.BAS
Использование глобальных символов в команде TYPE не допускается. Поэтому единовременно можно вывести на экран только один файл. Если вы просите вывести содержимое несуществующего файла, то появится сообщение об ошибке в виде имени файла, сопровождаемого вопросительным знаком. То же самое будет выдано на экран при использовании глобальных символов.
Если файл очень длинный, можно воспользоваться командой CTRL-S для задержки его вывода. Нажатие любых других клавиш на клавиатуре продолжает выдачу текста на экран, и в конце выдачи появляется промпт.
Введем в наш обиход еще одну команду USER - это команда обращения различных пользователей к своим файлам, хранящимся на одном и том же диске, разделенном на области. USER используется при пользовании одним компьютером. Если бы у каждого программиста был на столе персональный компьютер и множество дисков, надобность в ней полностью отпала бы. Но это пока представляется лишь в мечтах. Обычно, хотя компьютер называют и персональный, с ним работают разные пользователи. У каждого есть свои программы, но не у каждого есть собственные диски. Для избежания путаницы, где чьи файлы, была придумана команда USER. В многопользовательском режиме работы каждый диск разбивается на области с номерами от 0 до 15 (16 областей). Каждый пользователь имеет свою собственную область, в которой он хранит программы. Не следует думать, что такая организация дисков позволяет нескольким людям работать на машине одновременно- Операционная система СР/М - однопользовательская. Все, что будет сейчас излагаться, относится только к созданию архива.
После загрузки ОС СР/М текущей активной областью становится область с номером 0. При просмотре директории вы увидите только файлы, размещенные в текущей области. Для того чтобы добраться до файлов, расположенных в других областях, нужно сделать соответствующую область активной. При этом выбранная область делается текущей на всех дисках, вставленных в дисководы, независимо от того, с каким из них вы работаете в данный момент.
Попробуем создать новую активную область на всех дисках, вставленных в дисководы вашей машины. Для этого необходимо набрать команду USER и через пробел ввести номер области в пределах от 0 до 15, например:
A>USER 1
А>
После ввода этой команды на экран не выводится никаких сообщений, кроме основного промпта. Однако кое-что все-таки произошло. При вводе команды DIR вы получите сообщение NO FILE. При этом вам окажутся недоступными все транзитные команды ОС СР/М и пользоваться можно будет только резидентными командами.
(Окончание следует)
C. Ахманов, Н. Рой, К. Скурихин