Дисциплина линии
Дисциплина линии (англ. line discipline, ldisc) — это слой абстракции подсистемы терминальных устройств (tty) UNIX-подобных операционных систем, необходимый для имитации соответствующих возможностей аппаратного терминала. Этот слой расположен между драйвером консоли и драйвером UART.
Соединение с драйвером UART осуществляется через двунаправленный канал. Эта схема имеет несколько вариаций. Например, в качестве драйвера UART может выступать виртуальное устройство
телетайпа /dev/tty — в этом случае с имеющимся виртуальным терминалом могут работать процессы на локальной машине. Если же работа осуществляется через физический UART, то такая схема обеспечивает связь с процессом на удалённой рабочей станции, то есть режим удалённого терминала.
Соединение с консолью осуществляется через два однонаправленных канала: канал ввода и канал вывода. Здесь тоже возможны вариации. Если в качестве консоли используется драйвер виртуального терминала UNIX, то, через такую виртуальную консоль пользователь может работать в UNIX-системе в полноэкранном текстовом режиме, переключаясь между консолями при помощи горячих клавиш. Вместо драйвера консоли, интерфейс ldisc может экспортироваться через файл устройства, такой, как,
например, /dev/ttyS0. В этом случае, с ldisc может взаимодействовать коммуникационная программа, такая, как minicom
Существует так же схема подключения ldisc, при которой файлами виртуальных устройств заменяется как консоль, так и UART. Такая схема получила название псевдо-терминала. В этом случае ведущее устройство (master), такое, как /dev/ptyp1, заменяет консоль и используется специализированной программой, такой как tmux, xterm или socat. Подчинённое (slave) устройство, такое, как /dev/ttyp1, заменяет UART и может использоваться любым пользовательским процессом.
Модуль дисциплины линии предоставляет буфер для приёма строки из канала вывода консоли, обрабатывает команды
редактирования строки и некоторые другие управляющие последовательности , а также обеспечивает
реализацию механизма эхо — отправляет принятые с консоли символы обратно, через канал ввода консоли.
После обработки, строка из буфера отправляется в канал UART. Принятые из канала UART данные, после обработки, отправляются в
канал ввода консоли.
Именно слой ldisc определяет работу таких системных вызовов , как read(2) и write(2) при работе с различными файлами устройств терминала. Управлять им
можно с помощью системного вызова ioctl(2) (или же посредством библиотечной функции-обёртки tcsetattr(3)), в том случае, если хотя бы один из сопряжённых с ним компонентов экспортируется через файл устройств. При этом, какой именно компонент экспортирован,
значения не имеет — управление можно осуществлять как через устройство master, так и через slave. Например, используя файл-устройство /dev/tty (соответствует подчинённой стороне), можно управлять режимом эхо консоли, а, используя файл-устройство /dev/ttyS0 (соответствует ведущей стороне), можно управлять режимом эхо для самой коммуникационной программы: при включённом эхо, всё, записанное в /dev/ttyS0, можно будет сразу считать назад.
Если программа использует собственную обработку строк, например, при помощи библиотеки Ncurses или Readline, то механизм обработки строк, предоставляемый подсистемой терминальных устройств, можно отключить, переведя его в режим raw. В этом режиме, данные, принимаемые из канала вывода консоли, отправляются в канал UART, а данные, принятые с UART, отправляются в канал ввода консоли. Никакой обработки данных в этом режиме не происходит.
Источник: Википедия
Связанные понятия
Модуль ядра , загружаемый модуль ядра (англ. loadable kernel module, LKM) — объект, содержащий код, который расширяет функциональность запущенного или т. н. базового ядра ОС. Большинство текущих систем, основанных на Unix, поддерживают загружаемые модули ядра, хотя они могут называться по-разному (например, kernel loadable module в FreeBSD и kernel extension в Mac OS X).
Экранное считывающее устройство — это один из видов вспомогательных технологий (вт), предназначенных для слепых людей, имеющих плохое зрение а также людей имеющих затруднения при обучении. Считывающие устройства это такие программные обеспечения, с помощью которых, их пользователи могут постигать визуальную информацию без использования зрения, например озвучивания, звуковые значки или Брайлевского дисплея.В операционных системах Windows, начиная с версии Windows 2000, встроено экранное считывающее...
Дамп памяти (англ. memory dump; в Unix — core dump) — содержимое рабочей памяти одного процесса, ядра или всей операционной системы. Также может включать дополнительную информацию о состоянии программы или системы, например значения регистров процессора и содержимое стека. Многие операционные системы позволяют сохранять дамп памяти для отладки программы. Как правило, дамп памяти процесса сохраняется автоматически, когда процесс завершается из-за критической ошибки (например, из-за ошибки сегментации...
Терминальный сервер , сервер терминалов (англ. terminal server) — сервер, предоставляющий клиентам вычислительные ресурсы (процессорное время, память, дисковое пространство) для решения задач. Технически терминальный сервер представляет собой очень мощный компьютер (либо кластер), соединенный по сети с терминальными клиентами — которые, как правило, представляют собой маломощные или устаревшие рабочие станции, либо специализированные решения для доступа к терминальному серверу.
Уровень абстракции — один из способов сокрытия деталей реализации определенного набора функциональных возможностей. Применяется для управления сложностью проектируемой системы при декомпозиции, когда система представляется в виде иерархии уровней абстракции.
Hardware Abstraction Layer (HAL, Слой аппаратных абстракций) — слой абстрагирования, реализованный в программном обеспечении, находящийся между физическим уровнем аппаратного обеспечения и программным обеспечением, запускаемом на этом компьютере. HAL предназначен для скрытия различий в аппаратном обеспечении от основной части ядра операционной системы, таким образом, чтобы большая часть кода, работающая в режиме ядра, не нуждалась в изменении при её запуске на системах с различным аппаратным обеспечением...
Паралле́льный порт — тип интерфейса, разработанный для компьютеров (персональных и других) для подключения различных периферийных устройств. В вычислительной технике параллельный порт является физической реализацией принципа параллельного соединения. Он также известен как принтерный порт или порт Centronics. Стандарт IEEE 1284 определяет двунаправленный вариант порта, который позволяет одновременно передавать и принимать биты данных.
Основная область памяти (Основная память, англ. Conventional memory) занимает первые 640 Кбайт оперативной памяти в IBM PC-совместимых компьютерах. В эту область загружается таблица векторов прерываний (занимает 1 Кбайт), некоторые данные из BIOS (например, буфер клавиатуры), различные 16-битные программы DOS. Для них 640 Кбайт являются барьером.
Объём жёсткого диска (также используются термины размер, ёмкость) — максимальное количество информации, которое способен вместить жёсткий магнитный диск.
Горячая замена (англ. Hot Swap — горячая замена и англ. HotPlug — горячее подключение) — термины, означающие отключение или подключение электронного оборудования в/к (компьютерной) системе во время её работы без выключения питания и остановки (системы) (HotPlug), а также замену (переподключение) блока в целом (Hot Swap). Также существует термин, обозначающий противоположность горячей замене — Холодная замена, то есть все (пере)подключения производятся после остановки системы и снятия напряжения (остаточного...
Компьютерная регистрация телефонных переговоров осуществляется специализированными программно-аппаратными комплексами. Аппаратная часть представляет собой компьютерную платформу (персональный или индустриальный компьютер) с установленными в нем адапторами для снятия данных с телефонных линий или из эфира и переферийные устройства. Программная часть - это ОС, драйвера адаптеров, службы, база данных, приложения для доступа к данным.
Загрузчик операционной системы — системное программное обеспечение, обеспечивающее загрузку операционной системы непосредственно после включения компьютера (процедуры POST) и начальной загрузки.
Конфигурационное пространство PCI (англ. PCI configuration space) — адресное пространство для конфигурации PCI, в дополнение к типичным адресным пространствам памяти и ввода-вывода.
Универсальный асинхронный приёмопередатчик (УАПП, англ. Universal Asynchronous Receiver-Transmitter, UART) — узел вычислительных устройств, предназначенный для организации связи с другими цифровыми устройствами. Преобразует передаваемые данные в последовательный вид так, чтобы было возможно передать их по одной физической цифровой линии другому аналогичному устройству. Метод преобразования хорошо стандартизован и широко применяется в компьютерной технике (особенно во встраиваемых устройствах и системах...
Перехват (англ. hooking) — технология, позволяющая изменить стандартное поведение тех или иных компонентов информационной системы.
Контроллер домена в компьютерных сетях построенных на Microsoft Server — сервер, контролирующий область компьютерной сети (домен).
Точка монтирования (англ. mount point) — это каталог или файл, с помощью которого обеспечивается доступ к новой файловой системе, каталогу или файлу.
Кольца защиты — архитектура информационной безопасности и функциональной отказоустойчивости, реализующая аппаратное разделение системного и пользовательского уровней привилегий. Структуру привилегий можно изобразить в виде нескольких концентрических кругов. В этом случае системный режим (режим супервизора или нулевое кольцо, так называемое «кольцо 0»), обеспечивающий максимальный доступ к ресурсам, является внутренним кругом, тогда как режим пользователя с ограниченным доступом — внешним. Традиционно...
Сетевая плата (в англоязычной среде NIC — англ. network interface controller/card), также известная как сетевая карта, сетевой адаптер (в терминологии компании Intel), Ethernet-адаптер — по названию технологии — дополнительное устройство, позволяющее компьютеру взаимодействовать с другими устройствами сети. В настоящее время в персональных компьютерах и ноутбуках контроллер и компоненты, выполняющие функции сетевой платы, довольно часто интегрированы в материнские платы для удобства, в том числе...
Механизм копирования
при записи (англ. Copy-On-Write, COW) используется для оптимизации многих процессов, происходящих в операционной системе, таких как, например, работа с оперативной памятью или файлами на диске (пример — ext3cow).
Проверка системных файлов (SFC) — это утилита Microsoft Windows, позволяющая пользователю находить и восстанавливать повреждения системных файлов Windows. Компонент доступен в Windows 98, Windows 2000 и всех последующих версиях операционных систем семейства Windows NT. В Windows Vista и Windows 7 проверка системных файлов встроена в защиту ресурсов Windows, которая защищает не только критичные системные файлы, но и ключи реестра, и папки. Под Windows Vista, sfc.exe может быть использован для проверки...
Мультизагрузка (англ. Multi-boot) это техническая возможность выбора, при включении компьютера, операционной системы для запуска. Для настройки такой возможности может потребоваться специальный загрузчик операционной системы и разбиение диска на несколько разделов.
В программировании
именованный канал или именованный конвейер (англ. named pipe) — один из методов межпроцессного взаимодействия, расширение понятия конвейера в Unix и подобных ОС. Именованный канал позволяет различным процессам обмениваться данными, даже если программы, выполняющиеся в этих процессах, изначально не были написаны для взаимодействия с другими программами. Это понятие также существует и в Microsoft Windows, хотя там его семантика существенно отличается. Традиционный канал — «безымянен...
Виртуальная файловая система (англ. virtual file system — VFS) или виртуальный коммутатор файловой системы (англ. virtual filesystem switch) — уровень абстракции поверх конкретной реализации файловой системы. Целью VFS является обеспечение единообразного доступа клиентских приложений к различным типам файловых систем. VFS может быть использована для доступа к локальным устройствам и файлам (fat32, ext4, ntfs), сетевым устройствам и файлам на них (nfs), а также к устройствам, не предназначенным для...
Переключение банков — способ увеличения количества используемой памяти по сравнению с количеством, которое процессор может адресовать напрямую. Этот способ может использоваться чтобы изменять конфигурацию системы: например ПЗУ, требующееся для загрузки системы с дискеты, может быть отключено, когда оно больше не нужно. В игровых приставках переключение банков позволяет разработать игры большего размера для использования на текущем поколении консолей.
Карта расширения (от англ. expansion card) — вид компьютерных комплектующих: печатная плата, которую устанавливают в слот расширения материнской платы компьютерной системы с целью добавления дополнительных функций. Платы расширения, необходимые для подключения внешних устройств, могут также называться адаптерами или контроллерами этих устройств.
DLL (англ. Dynamic Link Library — «
библиотека динамической компоновки», «динамически подключаемая библиотека») в операционных системах Microsoft Windows и IBM OS/2 — динамическая библиотека, позволяющая многократное использование различными программными приложениями. Эти библиотеки обычно имеют расширение DLL, OCX (для библиотек содержащих ActiveX), или DRV (для ряда системных драйверов). Формат файлов для DLL такой же, как для EXE-файлов Windows, т. е. Portable Executable (PE) для 32-битных и 64-битных...
Расширенная память (англ. expanded memory) — аппаратно-программная система, предоставляющая доступ DOS-приложениям к памяти, недоступной через адресное пространство основной памяти. Расширенная память адресуется странично через «окно», находящееся в верхней зарезервированной области памяти (UMA). Спецификация расширенной памяти (англ. Expanded Memory Specification, EMS) была разработана в 1984 году совместно Lotus Software, Intel и Microsoft, поэтому часто встречается сокращение LIM EMS. С конца...
Компьютерная телефония (CTI, англ. Computer Telephony Integration) — технологии, обеспечивающие взаимодействие компьютеров и традиционных телефонных сетей. Компьютерная телефония позволяет объединить передачу речи с передачей цифровых данных, а также обеспечить отслеживание вызовов и управление ими по любому сценарию (голос, электронная почта, веб-интерфейс, факс и т. д.). Компьютерная телефония используется, в частности, при создании центров телефонного обслуживания и вместо офисных АТС. Существуют...
Кадровый буфер (англ. framebuffer) (другие названия: буфер кадра, видеобуфер, фреймбуфер) — реальное или виртуальное электронное устройство или область памяти для кратковременного хранения одного или нескольких кадров в цифровом виде перед его отправкой на устройство видеовывода. Буфер может быть использован для выполнения над кадром различных предварительных операций, организации стоп-кадра, устранения мерцания изображения и др. Обычно кадр хранится в виде последовательности цветовых значений каждого...
В информатике бу́фер (англ. buffer), мн. ч. бу́феры — это область памяти, используемая для временного хранения данных при вводе или выводе. Обмен данными (ввод и вывод) может происходить как с внешними устройствами, так и с процессами в пределах компьютера. Буферы могут быть реализованы в аппаратном или программном обеспечении, но подавляющее большинство буферов реализуется в программном обеспечении. Буферы используются, когда существует разница между скоростью получения данных и скоростью их обработки...
Подробнее: Буфер (информатика)
Блочное устройство (block device) — вид файла устройств в UNIX/Linux-системах, обеспечивающий интерфейс к устройству, реальному или виртуальному, в виде файла в файловой системе.
Стандартные потоки ввода-вывода в системах типа UNIX (и некоторых других) — потоки процесса, имеющие номер (дескриптор), зарезервированный для выполнения некоторых «стандартных» функций. Как правило (хотя и не обязательно), эти дескрипторы открыты уже в момент запуска задачи (исполняемого файла).
По умолча́нию — термин, используемый для обозначения значений параметров какой-либо программы, предустановленных разработчиком. Пользователь может изменить эти установки явным образом, однако, если он не сделал этого, то в качестве значений используются параметры, заданные разработчиком.
Эмулятор терминала , приложение терминала, term или tty для краткости — это программа, которая эмулирует терминал компьютера внутри некоторой другой архитектуры вывода данных на экран.
А́дресное пространство (англ. address space) — совокупность всех допустимых адресов каких-либо объектов вычислительной системы — ячеек памяти, секторов диска, узлов сети и т. п., которые могут быть использованы для доступа к этим объектам при определенном режиме работы (состоянии системы).
Буферизация (от англ. buffer) — способ организации обмена, в частности, ввода и вывода данных в компьютерах и других вычислительных устройствах, который подразумевает использование буфера для временного хранения данных. При вводе данных одни устройства или процессы производят запись данных в буфер, а другие — чтение из него, при выводе — наоборот. Процесс, выполнивший запись в буфер, может немедленно продолжать работу, не ожидая, пока данные будут обработаны другим процессом, которому они предназначены...
Файловый дескриптор — это неотрицательное целое число. Когда создается новый поток ввода-вывода, ядро возвращает процессу, создавшему поток ввода-вывода, его файловый дескриптор.
Периферийное сканирование (англ. Boundary Scan) — вид структурного тестирования печатной платы с установленными на неё компонентами, основанный на применении в некоторых микросхемах стандарта IEEE 1149.1(.4, .6). Широко используется также термин «Граничное сканирование». Результатом периферийного сканирования является информация о наличии в электроцепях типичных неисправностей, возникающих при производстве печатных плат...
Устро́йства вво́да — периферийное оборудование, предназначенное для ввода (занесения) данных или сигналов в компьютер или в другое электронное устройство во время его работы.
Ввод-вывод через порты (англ. I/O ports) — схемотехническое решение, организующее взаимодействие процессора и устройств ввода-вывода. Противоположность вводу-выводу через память.
Подробнее: Порт ввода-вывода
Специальный файл устройства , или просто файл устройства (англ. special device file) — это один из типов файлов в UNIX-подобной операционной системе. Специальные файлы устройств содержат данные, необходимые операционной системе для взаимодействия с физическими устройствами, такими как диски и дисководы, принтеры и факсы и т. п. Фактически, специальные файлы устройств являются указателями на драйверы устройств, и когда процесс обращается к файлу устройств, он по сути работает с драйвером этого устройства...
Открытая архитектура — архитектура компьютера, периферийного устройства или же программного обеспечения, на которую опубликованы спецификации, что позволяет другим производителям разрабатывать дополнительные устройства к системам с такой архитектурой.
Двои́чная совмести́мость , бина́рная совмести́мость (англ. binary compatibility) — вид программной совместимости, позволяющий программе работать в различных средах без изменения её исполняемых файлов.
Общий ресурс , или общий сетевой ресурс, — в информатике, это устройство или часть информации, к которой может быть осуществлён удалённый доступ с другого компьютера, обычно через локальную компьютерную сеть или посредством корпоративного интернета, как если бы ресурс находился на локальной машине.
Дисковый массив — внешнее устройство хранения, состоящее из нескольких жёстких дисков.
Главная загрузочная запись (англ. master boot record, MBR) — код и данные, необходимые для последующей загрузки операционной системы и расположенные в первых физических секторах (чаще всего в самом первом) на жёстком диске или другом устройстве хранения информации.