Создание и редактирование файлов в Unix




Драйверы устройств в ОС Unix

Ввиду существенных различий в работе с символьными и с блочными устройствами, в UNIX различаются два основных типа драйверов: символьные и блочные.

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

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

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

К наиболее важным функциям драйвера относятся следующие.

· Открытие устройства. Как минимум, при этом увеличивается счетчик текущих обращений к устройству, что позволяет ставить обращения в очередь, если устройство занято. Некоторые устройства при открытии могут выполнять еще какие-то начальные действия.

· Закрытие устройства – операция, противоположная открытию.

· Обработка прерывания – выполняет ввод или вывод очередной порции данных, когда устройство переходит в состояние готовности.

· Опрос устройства – эта функция выполняется для тех устройств, которые не генерируют прерываний, или если при разработке драйвера почему-либо решено не использовать прерывания от устройств. Опрос выполняется не постоянно, а с некоторым периодом, по прерыванию от таймера.

· Чтение данных с устройства.

· Запись данных на устройство.

· Вызов стратегии. Это способ выполнения операций ввода/вывода, характерный для блочных устройств. При этом запрос может быть поставлен в очередь. Запрос в ряде случаев может быть удовлетворен путем обращения к дисковому кэшу, без выполнения чтения или записи на устройство.

· Выполнение специальных функций. Набор этих функций зависит от конкретного устройства. Это может быть, например, опрос или установка текущего режима работы устройства, форматирование дорожек диска, перемотка ленты и т.п.

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

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

 

Взаимодействие с устройством через файл

 

Создание и редактирование файлов в Unix

Описываются процедуры создания и редактирования файлов при омощи команд cat, touch, cp, mv, textedit (редактор Text Editor) и vi

Использование команды cat
Команду cat удобно использовать для создания коротких файлов или добавления Небольшого объема текста в существующий файл. Чтобы создать файл при помощи команды cat, необходимо выполнить следующие действия:
1.Наберите cat > имя^файла и нажмите Enter.
2.Введите текст, который вы хотите разместить в новом файле.
3.Нажмите Enter.
4.Нажмите Ctrl +D. В результате текст будет записан в файл, а на экране вновь появится приглашение командного интерпретатора.

Чтобы добавить дополнительный текст в существующий файл, выполните
следующие действия:
1.Наберите cat > имя_файла и нажмите Enter.
2.Введите текст, который вы хотите добавить в файл с указанным именем.
3.Нажмите Enter.
4.Нажмите Ctrl +D. В результате текст будет добавлен в файл, а на экране вновь появится приглашение командного интерпретатора. Чтобы просмотреть содержимое файла, наберите cat имя_файла и нажмите Enter.
На экран будет выведено содержимое файла. Если содержащаяся в файле ин­формация не умещается на экране терминала, выводимый текст будет пролистан так, что на экране останется только самый конец файла (количество строк с кон­ца файла, которое умещается на экране или в окне).

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

Копирование (ср) и переименование (mv) существующего файла
Чтобы создать новый файл, можно скопировать или переименовать существу­ющий файл.
Чтобы скопировать существующий файл, наберите ср старое_имя_файла новое_ иия_файла и нажмите Enter. Эта команда создает копию файла под новым именем и при этом сохраняет оригинал.

Чтобы переместить (переименовать) существующий файл, наберите mv старое_имя_файла новое_имя_файла и нажмите Enter. В результате имя файла будет из­менено.

Использование vi

Редактор vi - универсальный полноэкранный текстовый редактор в среде UNIX. Универсальность означает, что, во-первых, этот редактор есть во всех UNIX-подобных ОС и, во-вторых, этот редактор работает с практически любым видом терминала (ANSI, VT100, VT220, VT320, DEC, и т. д.).(База данных, содержащая описание известных системе терминалов находится в файле /etc/termcap.) Эта универсальность обернулась несколько непривычным (для пользователей DOS) пользовательским интерфейсом: для управления редактором используются лишь ``обычные'' кнопки клавиатуры (алфавитно-цифровые символы и знаки препинания).
Визуальный редактор vi (visual editor) является традиционным средством редак­тирования файлов в среде UNIX..
Чтобы запустить vi, наберите vi имя_файла и нажмите Enter. Если файл с ука­занным именем не существует, будет открыт новый файл. Этот файл будет запи­сан на диск в момент, когда вы отдадите команду сохранить файл. Если файл с указанным именем уже существует, на экране будет отображено его начало.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2020-11-04 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: