Руководство системного администратора • третье издание { h h y с п п т п р



Pdf просмотр
страница11/82
Дата12.11.2016
Размер7.94 Mb.
Просмотров14003
Скачиваний0
ТипРуководство
1   ...   7   8   9   10   11   12   13   14   ...   82
* utty -CLOCAL < /dev/fcty03
включает программную несущую для порта tty03. В некоторых системах необходимо указывать оператора не <; обратитесь к документации по команде stty.
122
Чость I. Основы одминистрировония

7.4. Аппаратное управление потоком данных Назначение сигналов CTS и RTS — обеспечить такую скорость передачи данных, чтобы устройство-приемник успевало их обрабатывать. Например, если существует опасность переполнения буфера модема (скажем, в том случае, когда соединение с удаленным узлом работает медленнее, чем последовательный канал между локальной машиной и модемом, модем может приказать компьютеру "замолчать, пока буфер не освободится. Управление потоком данных имеет большое значение для быстродействующих модемов и очень полезно для принтеров. В системах, где аппаратное управление потоком данных отсутствует либо из-за того, что последовательные порты его не понимают, либо из-за того, что в последовательном кабеле выводы CTS и RTS не подключены, его иногда можно моделировать программным путем с помощью управляющих символов XON и XOFF. Однако программное управление потоком данных должно явно поддерживаться высокоуровневым программным обеспечением, хотя даже в этом случае оно функционирует не очень хорошо. В аппаратуре фирмы режим управления потоком данных нужно включить с помощью команды еергош. Большинство терминалов игнорирует сигналы CTS и RTS. Те немногие терминалы, которые для установления связи требуют подтверждения по этим линиям, можно обмануть, соединив перемычкой контакты 4 и 5 на том конце кабеля, который подключается к терминалу. Когда терминал посылает сигнал на вывод 4, заявляя "Я готов, то с вывода 5 он получает этот же сигнал обратно, что означает " Начинай. Таким же способом можно решить вопрос с подтверждением пол и ни ям. Стандарт RS-232 определяет, что максимальная длина кабеля при скорости передачи 9600 бит/с должна составлять 75 футов (22,86 м. Стандарты обычно очень консервативны, и RS-232 — не исключение. В повседневной работе нам приходилось прокладывать кабель гораздо большей длины (иногда до 1000 футов. Опыт показывает, что предел находится где-то между 800 (243,84 ми футами (304,8 м, причем это в значительной степени зависит от конкретных моделей терминала и компьютера.
7.6. Файлы последовательных устройств Последовательные порты предстааляются в системе файлами устройств, расположенными в каталоге /dev. У большинства компьютеров имеется два встроенных последовательных порта. Раньше они обычно назывались /dev/ttya и /dev/ttyb, но со временем соглашения по наименованию изменились. Иногда на один и тот же порт ссылаются сразу несколько файлов. Например, в Solaris с одним портом связаны файлы /dev/cua/a и /dev/term/a, ноу первого младший номер устройства другой
% l a - 1 L / d a v / t a n a / a / d e v / c u a / а
crw-rw-rw- 1 root sys 29, 0 Jan 15 1998 а
crv 1 uucp uucp 29, 131072 Jan 15 Й /dev/cua/a
Символам XON и XOFF соответствуют сочетания клавиши Это представляет проблему для пользователей редактора emacs. где при нажатии клавиш
по умолчанию вызывается команда поиска. Решить эту проблему можно, связав команду поиска с каким-нибудь другим сочетанием клавиш.
7.5. Длина кабеля Глава 7. Последовательные устройства
123
Несколько файлов нужно для поддержки модемов, которые обслуживают как входящие, таки исходящие звонки. В Solaris драйвер разрешает открыть файла, только когда молем выдал сигнал D C D , подтвердив наличие активного соединения (предполагается, что для данного порта не задан режим программной несущей. Файл можно открыть независимо от состояния линии. Он используется при подключении к модему, которому нужно сообщить о необходимости сделать звонок. Доступ к любому из файлов блокируется, если один из них уже открыт. Во FreeBSD можно задать начальное и заблокированное состояние портов в файле /etc/rc.serial. Это удобно, если нужно переопределить поведение плохо написанных программ, неправильно коифитурируюших порты. Если попытаться задать параметры заблокированного порта и затем открыть его в программе, ядро проигнорирует попытку переконфигурировать порт (см. раздел документации cio(4)). Как всегда, имена файлов устройств не имеют особого значения. Их работа определяется старшими младшим номерами устройства, а имена файлов являются лишь общепринятым соглашением. В табл. 7.5 перечислены стандартные имена файлов последовательных портов в наших тестовых системах. Показаны имена для первых двух портов, остальные именуются аналогичным образом. Таблица 7.5. Файлы устоойств для первых двух последовательных лартав Система Стандартные Дополнительные Н ш но цени в
^аипы * аилы исходящие звонки модем для исходящих звонков исходящие звонки по прямом) соединению модем для входящих звонков последовательный принтер исходящие звонки (существует только для совместимости) модем для исходящих звонков модем для исходящих звонков заблокирован модем для исходящих звонков в начальном состоянии
1
Подробные пояснения приведены иа странице руководства mksf(IM).
7.7. Конфигурирование программного обеспечения для последовательных устройств После подключения устройства с помощью соответствующего кабеля следует задать определенную конфигурацию программного обеспечения, чтобы устройство работало эффективно В отличие от устройств, которые " Это не значит, что их можно менять. Большинство программ предполагает, что система придерживается стандартного соглашения о наименовании устройств.
Solaris
HP-UX
1
Red Hat
FreeBSD
/dev/tenn/[a,b] /dev/cua/[a,b]
/dev/ttyOpfO.l]
/dev/HyS[0,IJ
/dev/ttyd|0,lj
/dev/cul0p[0.1J
/dev/cua0p(0,l]
/dev/ttyd0p|0,l)
/dev/cOp[O.IJJp
/dev/cua[0,1J
/dev/cuaaJO.l]
/dev/cualafO.l]
/dev/cuaia(0.11 124
Чость I. Основы сдминисгрирсвония
подключаются непосредственно к шине компьютера, последовательные устройства не требуют конфигурирования на уровне ядра. Тем не менее, программным средствам высокого уровня все равно нужно сообщить о наличии новых устройств. Перечень конфигурационных задач, которые необходимо решать при подключении нового устройства, зависит от типа устройства и приложений, в которых оно будет использоваться Если это аппаратный терминал, нужно дать системе указание ожидать подключения пользователей к порту терминала. Задайте скорость передачи и параметры последовательного соединения. Конфигурация терминалов описана в следующем параграфе. Модемы, принимающие звонки, конфигурируются аналогично аппаратным терминалам. В некоторых системах возможны незначительные различия в перечне необходимых процедур. Для конфигурирования выходного модема, который будет использоваться оператором, следует описать этот модем в файле /ctc/remote для команд tip и си. Как это сделать, объясняется в параграфе 7.13. Для того чтобы использовать модем при установлении сетевого соединения с удаленным пользователем по протоколу РРР, изучите материал, изложенный в главе 13. Возможно, понадобятся дополнительные программные средства. Информация о порядке и особенностях настройки последовательных принтеров приведена в главе 23. Одни принтеры только принимают данные, а другие могут передавать серверу информацию о своем состоянии. Пользовательское последовательное устройство, которое обслуживается только с помощью своего программного обеспечения, не требует специальной конфигурации. Для доступа к нему достаточно открыть файл устройства. Описание функций семейства iocti, с помощью которых устанавливается скорость передачи, флаги и режим буферизации последовательного порта, содержится на странице документации, посвященной описанию команды terraio или tty.
7.8. Конфигурирование аппаратных терминалов За последнее десятилетие рабочие станции и терминалы постепенно вторглись на территорию, где когда-то единолично правили бал текстовые терминалы. Но даже консольные программы на графическом дисплее используют те же драйверы и файлы конфигурации, что и реальные терминалы, поэтому системный адл-гинистратор должен понимать, как они работают. При настройке терминала нужно решить две важные задачи обеспечить закрепление за терминалом процесса, который будет принимать поступающие от него регистрационные запросы, и обеспечить доступность информации о терминале после входа пользователя в систему. Процесс регистрации В процессе регистрации задействовано несколько программ. Вовремя начальной загрузки запускается демон Init, Одна из его задач — породить В действительности сами последовательные порты все же требуют конфигурирования нв уровне ядро, но это всегда делает фирма-поставщик, а не администратор системы. Глава 7. Последовательные устройства
125
процесс, обычно getty (ноне в Solaris), на каждом терминальном порте, который определяется в файле /etc/ltys или /ctc/inittab (в зависимости от системы. Процесс getty устанавливает исходные характеристики порта (в частности, скорость передачи и контроль четности) и выводит на экран регистрационное приглашение. Последовательность событий при полной регистрации следующая пользователь вводит регистрационное имя по приглашению процесса getty; процесс getty запускает программу login, передавая ей в качестве аргумента указанное имя учетной записи программа login запрашивает пароль и сверяет имя и пароль пользователя с записями в файле /etc/passwd": программа login выводит на экран "сообщение дня, хранящееся в файле
/etc/motd; программа login устанавливает переменную среды TERM и запускает интерпретатор команд интерпретатор выполняет соответствующие файлы запуска интерпретатор выводит на экран приглашение командной строки и ожидает ввода информации. Когда пользователь выходит из системы, управление возвращается демону init, который пробуждается и порождает новый процесс getty для порта терминала. Файлы в каталоге /etc управляют характеристиками, связанными с каждым портом терминала. Сюда входит наличие регистрационного приглашения и процесса getty на порте, ожидаемая скорость передачи в бодах и тип терминала, а также многое другое. К сожалению, подход фирм-поставщиков к вопросу конфигурирования терминалов различен. В табл. 7.6 перечислены файлы, используемые в тестовых системач.
Тоблица 7.6. Файлы конфигуроции терминалов Система Выключение те
Р'
/ииоп
° Параметры Монитор
Solaris' sactab sactab zsmon/jpmiab ttymon
HP-UX /elc/inittab /etc/ttytvpe /ctc/gettydefs geny
Red Hat /etc/inittab /etc/ttyiype /elc/gettydels getty
FreeBSD /etc/ttys /etc/ttys /etc/gettytab getty
!
В Solaris конфигураяионные файлы находятся в каталоге /etc/saf и обрабатываются программой sacadm Файлы и /etc/ttytab В снстемах на базе ядра 4.3BSD (и более поздних версий) информация о типе порта и терминала объединена в один файл, который называется ttvtab или ttys (FreeBSD) Формат записей этого файла таков
устройство программа тил_терминала (on f о f f | [ s e c u r e ] В некоторых системах файл /etc/passwd заменяется или дополняется административной СУБД, например NIS. Подробнее об этом рассказывается в главе 18. Файл .profile в интерпретаторах sh, ksh и bash; файлы .login ив и lesb.
126
Чость I. Основы одминистрировония
Поля разделяются пробелами. В поле программа указывается управляющий процесс, запускаемый демоном init, если данный порт включен. В частности, для программы getty, которая обычно упоминается в этом поле, задается аргумент, который определяет скорость передачи и конфигурацию последовательного порта. В поле тип терминала указывается элемент базы данных termcap или lerminfo (см. ниже. Когда пользователь входит в систему, переменная среды
T E R M устанавливается равной значению этого поля. С помощью ключевых слови включается и отключается регистрация на данном порте (те. эти слова определяют, можно ли запускать
программу). Если присутствует ключевое слово s e c u r e , то с такого терминала может входить в систем- пользователь root. Во многих организациях вход суперпользователя в систему с терминалов, установленных в машинных залах и подключаемых через коммутируемый канал, не разрешается. Вот несколько элементов файла /etc/ttys: c o n s o l e none unknown o f £ s e c u r e ttydO " / u s r / l i b e x e c / g e t t y s t d . 9 6 0 0 " d i a l u p o f f s e c u r e t t y d l " / u s r / l i b e x e c / g e t t y s t d . 9 6 0 6 " d i a l u p o f f s e c u r e t t y d 2 " / u s r ' l i b e x e c / g e t t y s t d . 9 6 0 0 " d i a l u p o f f s e c u r e Аргумент команды getty содержит ссылку на элемент одного из следующих файлов inittab, gettytab или gettydeFs (в зависимости от системы. Демон init читает файл ttys или ttytab всего один раз. Если изменяется файл конфигурации, необходимо дать демону явное указание прочесть файл повторно. Для этого ему посылается сигнал отбоя ( H U P ) . Демон init — всегда процесс номер один, поэтому обычно подходит команда
# k i l l -1 1 выполняемая от имени пользователя root. Смотрите, не ошибитесь и не пропустите дефис Файл В некоторых системах информация о типе терминала отделяется от файла
/etc/ttys и хранится в файле /etc/ttytype. Формат его записей следующий
тип_терминалв устройство
Здесь устройство — это сокращенное имя файла устройства, соответствующего порту, а тип терминала задается также, как он описан выше в файле /etc/ttys. Вот пример файла ttytype: wyse c o n s o l e d i a l u p t t y i O d i a l u p t t y i l v t 3 2 0 t t y i 2 h i 9 t t y i 3 a i a l o u t t t y i 4 Файл Файл gettytab предназначен для связывания символьных имен (таких как s t d . 9 6 0 0 , использованное выше) с информацией о конфигурации порта — Глава 7. Последовательные устройства
127
скоростью передачи, контролем четности н строкой регистрационного приглашения. Например
# Стандартная запись, задающая начальные параметры
# для других записей используется в случае, когда
# программа g e t t y вызывается без указания записи 7 2 : s p # 9 6 0 0 :
# Записи, задающие фиксированную скорость- b a u d : \
: s p # 9 6 0 0 : h I s t d . 3 8 4 0 0 I 3 8 4 0 0 - b a u d : \
: s p # 3 8 4 0 0 : Формат здесь аналогичен формату файлов /etc/prlntcap и /etc/tenucap. Строки с именами, разделенными вертикальной чертой, содержат имена, ггол которыми известна каждая конфигурация. В остальных полях задаются параметры последовательного порта. В большинстве систем в файле gettytab уже имеются записи для различных терминалов. Описание формата, обшего для всех указанных файлов, приведено в параграфе 23.3. Информацию о конкретных переменных можно почерпнуть из документации. Файл В Solaris, H P - U X и Red Hat демон init поддерживает различные "уровни выполнения, которые определяют, какие системные ресурсы задействуются. Существует восемь уровней выполнения от 0 до 6 плюс уровень s для однопользовательского режима. При выходе нз однопользовательского режима демон init приглашает пользователя ввести номер уровня выполнении, если только в файле /etc/inittab нет поля i n i t d e f a u l t (см. ниже. Затем демон просматривает файл inittab и ищет все строки, соответствующие указанному уровню. Уровни выполнения обычно устанавливаются таким образом, чтобы > пользователя был один уровень, на котором доступна только системная консоль, и другой уровень, на котором доступны все терминалы. Можно определять уровни выполнения так, как того требует конкретная система, номы рекомендуем не слишком отклоняться от значений, заданных по умолчанию. Записи файла inittab имеют следующий формат
идентификатор :уровни_выполненнл
т
. действие проиесс
Приведем пример
: : s y s i n i t : / e t c / s e t c l k < / d e v / c o n s o l e > / a e v / c o n s o l e 2>bl со y c o n s o l e c o n s o l e
1 1 : 2 3 4 : r e s p a w n : / e t c / g e t t y t t y l l 9600 1 2 : 2 3 4 : o f f : / e t c / g e t t y t t y l 2 9600 В этом формате идентификатор — одно- или двухсимволъная строка, идентифицирующая данную запись. Поле идентификатора может быть пустым, как впервой строке приведенного выше примера. Для терминалов в качестве идентификатора обычно используют номер терминала.
128
Чость I. Основы одминистрировония

Поле уровни_выполнения — это номера уровней выполнения, к которым относится данная запись. Если уровни не заданы (как впервой строке, то запись действительна для всех уровней. В поле действие определяется, как следует трактовать поле процесс, наиболее распространенные значения приведены в табл. 7.7. Таблица 7.7. Возможные зночения поля действие ФОЙЛО /etc/lnWob Значение Ждать Интерпретация i n i t d e f a u l t Залает исходный уровень выполнения b o o t Нет Процесс выполняется при первом чтении файла Inittab b o o t w a i t Да
Проиесс выполняется при первом чтении файле inittab once Нет Запускает проиесс однократно waxt Да Запускает проиесс однократно respawn Нет Всегда поддерживает процесс в работающем состоянии p o w e r f a i l Нет
Проиесс выполняется при получении демоном init сигнала сбоя питания powerwait Да
Проиесс выполняется при получении демоном init сигнала сбоя питания s y s i n i t Да
Проиесс выполняется перед обращением к консоли o f f Завершает процесс, если он выполняется Если одно из значений в поле уровни_выполнения совпадает с номером текущего уровня, а значение поля действие говорит об актуальности записи, то демон init с помощью интерпретатора sh выполняет команду, заданную в поле процесс (или прекращает ее выполнение. В столбце "Ждать" табл. 7.7 указано, в каких случаях демон init перед продолжением ожидает завершения команды. В приведенном выше примере впервой строке устанавливаются системные часы, во второй и третьей строках порождаются процессы getty, а последняя строка обеспечивает отсутствие процесса getty на порте ttyt2. Команда telinit -q заставляет демон init повторно прочитать файл inittab. Ф ой л /etc/gettydefs Как и файл gettytab, файл gettydefs определяет различные варианты конфигурации портов, используемые процессом getty. В системе, как правило, присутствует только один из этих файлов. Файл gcttyders выглядит следующим образом c o n s o l e » В HUPCL * В SANE IXANY # l o g i n : # c o n s o l *
19200# B19200 HUPCL # B19200 SANE IXANY # l o g i n : #9600 9600* B9600 HUPCL # B9600 SANE IXANY HUPCL # l o g i n i #4800
S800# B4800 HUPCL # B4800 SANE IXANY HUPCL t l o g i n : #2400 2400# B2400 HUPCL # B2400 SANE IXANY «UPCL # l o g i n : #1200 1200# B1200 HUPCL * B1200 SANE IXANY HUPCL # l o g i n : #300 300* B300 HUPCL # B300 SANE IXANY TAB3 HUPCL # l o g i n : #9600 Запись этого файла имеет такой формат
метка* начальныефлаги # конечные__флаги # приглашение #слелухщий
Глава 7. Последовательные устройства
129
Процесс getty проводит сравнение своего второго аргумента с записью, идентифицируемой полем метка. Если процесс вызывается без второго аргумента, то для подобного сравнения используется первая запись файла В поле начальные флаги перечисляются флаги системного вызова ioctl, задающие конфигурацию порта до выполнения программы login В поле конечные флаги
указаны флаги, которые необходимо установить после завершения программы login. Должна существовать запись, которая задает быстродействие соединении ив начальных, ив конечных флагах. Список возможных флагов отличается в зависимости от системы обратитесь к разделу документации, касающемуся файла gettydefs (обычно имена флагов те же, что задаются в С-программах).
Поле приглашение служит для описания регистрационного приглашения, которое может включать символы табуляции и новой строки. В поле
следующий указывается метка записи файла gettydefs. которую необходимо подставить вместо текущей при получении сигнала прерывания. Это было полезно десятилетия тому назад, когда модемы не корректировали скорость передачи автоматически и нужно было согласовывать скорость вручную с помощью серии сигналов прерывания. Сегодня это анахронизм. Для аппаратного терминала поле следующий должно содержать метку текущей записи При каждом изменении файла gettydefs следует выполнять команду getty -с gettydefs, которая проверяет синтаксис файла на предмет правильности всех записей. Конф игу р и ров ан и е терминалов в Solaris Вместо традиционных для U N I X процессов getty. которые наблюдают за работой всех портов и выдают регистрационные приглашения, в Solaris существует запутанная иерархическая система Service Access Facility (система сервисного доступа, которая используется для управления мониторами терминалов, мониторами портов р многими другими устройствами, принося в плане функциональных возможностей мало пользы н много осложнений. Для настройки последовательного порта на выдачу регистрационного приглашения необходимо сначала сконфигурировать "монитор, наблюдающий за статусом порта (программа ttymon). Затем нужно сконфигурировать монитор порта, который следит за статусом монитора терминала. Например, чтобы настроить монитор порта ttyb на скорость 9600 бод и вывод регистрационного приглашения на терминал типа VT100, требуется выполнить следующие команды
# sacadm - ар- с / u s r / l i b / s a f / t t y m o n - v 1 f r pmadm - a - p myttymon - a b - i r o o t - f u - v 1 - m " t t y a d m - d \
/ d e v / t e r m / b - 1 96o0 - T vtlOO - s / u s r / b i n / l o g i n " Файл /etc/ttydefs служит в основном для того же. для чего в других системах используется файл gettydefs. те. для установки скорости передичи и контроля четности. Более подробную информацию о настройке этих мониторов можно найти на страницах документации, посвященных утилитами, а также в главе о терминалах справочника Solaris AnswerBook. Поддержка терминалов базы данных termcap и terminfo В U N I X поддерживается много разных типов терминалов, в отличие от программного обеспечения некоторых крупных фирм, которые поддерживают
126 Чость I. Основы одминистрировонир
только термналы собственного производства. UNIX использует для этого специальную базу данных, в которой содержатся характеристики и сведения об особенностях программирования для каждой модели терминала. В одних системах эта база данных называется Lermcap, а в других она имеет иной формат и называется lemiiiifo. Иногда для обеспечения максимальной совместимости в системе присутствуют обе базы данных. Они обычно располагаются в катачоге /etc или /usr/share. Такие базы данных содержат сведения о сотнях различных терминалов. Пользователю практически никогда не приходится составлять собственные описания терминалов. Тем не менее, некоторые поставщики систем настаивают. например, на переименовании терминала "xterm", поэтому может понадобиться добавить новое имя для существующей записи. Для того чтобы определить, какая разновидность терминала используется, программы проверяют значение переменной среды T E R M . Дополнительную информацию об этом терминале можно затем найти в базе данных termcap или terminfo. Кроме того, можно поместить элемент базы данных termcap непосредственно в переменную среды T E R M C A P . Как правило, установка переменных T E R M C A P и T E R M производится вовремя регистрации Подробнее о конфигурировании терминалов вовремя регистрации рассказано в
параграфе 7. П.
Сегодня, когда аппаратные терминалы почти не используются, лишь несколько типов терминалов предстааляют практический интерес. Правило гласит "Все программы эмулируют терминал D E C VT100, еслн не доказано обратное"
7.9. Специальные символы и драйвер терминала Драйвер терминала выполняет несколько специальных функций, доступ к которым осуществляется посредством особых комбинаций клавиш (обычно, в эти комбинации входит клавиша ). Точную привязку функций к клавишам можно задать с помощью команд tset и stty. Некоторые из этих функций и обозначения соответствующих им клавиш приведены в табл. 7.8.
Тоблица 7.8 Специальные символы и функции драйвера терминола Символ По умолчанию Функции
ERASE
H Стирает один введенный символ
WERASE
- w Стирает одно введенное слово
KILL
- и Стирает целую строку
EOF
D Посылает терминалу признак конца файла
INTR С Прерывает выполняемый процесс
QL'IT
Л
Уничтожает текущий проиесс с созданием лампа оперативкой памяти
STOP Останавливает вывод на экран
START
0
Перезапускает процедуру вывода на жран
DISCARD о
Очишаст буфер выходных данных
Sl.'SPEND
7.
Приостанавливает текущий проиесс
LNEXT
V Игнорирует специальное значение следующего символа Глава 7. Последовательные устройства
131
В зависимости от типа клавиатуры с символом ERASE может быть по умолчанию связана клавиша , для которой в разных операционных системах существуют различные текстовые представления. Это наглядное свидетельство имеющихся серьезных разногласий между поставщиками систем, которые не могут прийти к соглашению даже по поводу того, какой код должен генерироваться клавишей < Backspace >. В сахшх ранних системах клавиши <#>, <@> и по умолчанию были связаны со специальными символами ERASE, KILL и INTR. Некоторые системы до сих пор тайно используют их до того, как производится регистрация в системе, поэтому не включайте их символьные представления в свои пароли.
7.10. Команда stty: конфигурирование терминалов Команда stty позволяет непосредственно изменять и запрашивать значения различных параметров драйвера терминала. Существует множество опций, о которых можно узнать, обратившись к разделу документации, где описывается драйвер терминала (tty(4), tty(5), ноне это простая программа, которая сообщает, на каком терминале или псевдотерминале зарегистрирован текущий пользователь. За небольшим исключением указанные там опции совпадают с опциями команды stty. Многие опции одинаковы для большинства систем, но существуют и различия, причем даже среди родственных вариантов, поэтому лучше посмотреть, что написано в руководстве по имеющейся операционной системе. Опции команды stty могут следовать в любом порядке ив любых сочетаниях. Дефис перед опцией отменяет ее. Например, следующая команда настраивает терминал на скорость 9600 бит/с с проверкой четности и без аппаратной табуляции



Поделитесь с Вашими друзьями:
1   ...   7   8   9   10   11   12   13   14   ...   82


База данных защищена авторским правом ©nethash.ru 2019
обратиться к администрации

войти | регистрация
    Главная страница


загрузить материал