- •Лекция 1. 7.02.2014
- •Монтирование файловой системы.
- •Лекция 2. 10.02.2014
- •Лекция 3. 17.02.2014
- •Открытые файлы.
- •Лекция 4. 24.02.2014
- •Лекция 5. 3.03.2014 Файлы.
- •Регистрация и дерегистрация фс
- •Лекция 6. 17.03.2014
- •Организация виртуальной файловой системы (vfs)
- •Функции для работы с элементами фс proc.
- •Лекция 7. 24.03.2014
- •Файловая система specfs.
- •Терминалы.
- •Терминальный ввод-вывод.
- •Лекция 8. 31.03.2014
- •Типы флагов структуры termios.
- •Принятые соглашения и стандарты.
- •Простые способы открытия псевдотерминалов.
- •Лекция 9. 7.04.2014
- •Лекция 10. 14.04.2014
- •Реализация доступа к устройствам.
- •Структура контроллера внешнего устройства.
- •Южный и северный мосты.
- •Последовательные и параллельные интерфейсы.
- •Лекция 11. 21.04.2014
- •Управление вводом-выводом.
- •Прерывания.
- •Лекция 12. 28.04.2014 Контроллер прерывания.
- •Лекции 13-14. 5.05.2014, 12.05.2014
- •Проблемы прямого доступа к памяти.
- •Управление устройствами.
- •Многослойная модель системы ввода-вывода.
- •Пространство имен устройств.
- •Доступ к драйверу символьного устройства.
- •Доступ к драйверу блочного устройства.
- •Дополнительная информация о драйверах.
- •Лекция 15. 19.05.2014
- •Типичные точки входа в драйвер устройства.
- •Файлы устройств.
- •Буферизация ввода-вывода.
- •Схемы обменной буферизации
- •Обслуживание прерываний.
- •Лекция 16. 26.05.14
- •Лекция 17. 02.06.14
Терминальный ввод-вывод.
Функции терминального ввода-вывода используются для управления терминалами, взаимодействия между компьютерами, соединенными кабелями, для работы с модемами, принтерами и т. п. Система позволяет работать с широким спектром устройств.
Терминальный ввод-вывод имеет два режима: канонический — ввод с терминала обрабатывается построчно, но вводится не более одной строки, неканонический — вводимые символы в строки не собираются (посимвольный ввод). Канонический режим устанавливается по умолчанию.
В стандарте POSIX-1 установлены два режима, которые считаются устаревшими.
1) Прозрачный — raw
2) посимвольный — cbreak
TTY — Teletype or terminal type.
В Линукс все устройства, которые могут действовать в качестве терминалов, объединены под этим названием. При этом tty0 ~tty7 — виртуальные консоли.
Pty# - псевдотерминалы, например, окно xterm
ttyS# - последовательные интерфейсы.
Устройство tty, как правило, может переключаться между различными дисциплинами линий связи tty. Это означает, что в ядре каждый системный вызов read-write или I/O control вызывает процедуру, специфичную для этой линии связи. Конкретнее можно сказать, что реализация дисциплины линии связи tty вставляется между драйвером устройства tty, который является низкоуровневым драйвером и отвечает за действительный ввод-вывод, и процессом пользователя, который желает получить доступ к устройству tty.
SLIP — протокол интернета для последовательного канала.
Serial line internet protocol.
Ppp — протокол 2х точечного соединения. Point to point protocol.
Реализация ррр состоит из 4-ех частей:
1) Общий драйвер ррр;
2, 3) По одной дисциплине линии связи tty для синхронных (2) и асинхронных (3) устройств;
4) демон pppd.
Вопросы, связанные с терминальным вводом-выводом, относятся к разряду наиболее запутанных, независимо от ОС. Все характеристики терминала, которые можно узнать или изменить, находятся в структуре struct termios.
struct termios
{
tcflag_t c_iflag; // флаги режима ввода. Управляют вводом символов
tcflag_t c_oflag; // флаги режима вывода
tcflag_t c_cflag; // флаги режима управления
tcfag_t c_lflag; // флаги локального режима
cc_t c_cc[NCCS]; //
}
Флаги режима ввода управляют вводом символов. В частности, очистку восьмого бита, проверка бита четности и т. д.
Флаги режима вывода определяют обработку выходного потока данных. В частности, может быть замена символов конца строк, например, это необходимо, когда передача информации осуществляется между компьютерами под управлением разных ОС. В этом случае необходим заменить NL на CR/NL (cr — возврат каретки).
Флаги режима управления определяют параметры последовательного порта. RS-232 — последовательный порт. Например, можно указать, что необходимо игнорировать строки состояния модема, установить количество стоповых битов и т. п.
Флаги локального режима управляют интерфейсом между драйвером и пользователем, например, включение и выключение эха вывода, разрешение и запрет генерации сигналов терминалом, переход в неканонический режим и т. п.
