Новые книги

Быстрота реакции – это то, что определяет успех продаж и переговоров. При разговоре (как телефонном, так и очном) зачастую нет и пары секунд, чтобы подумать и сформулировать взвешенный ответ. Главным оружием в такой ситуации является владение обширным арсеналом готовых ответов на любую реплику со стороны контрагента. Эта книга – кладезь самых успешных, продуманных и опробованных в жестких условиях реальных продаж речевых модулей, которые позволяют разрабатывать сценарии продаж, подходящие именно вашей переговорной ситуации. Если вместо избитых и совершенно неэффективных ответов на возражения клиента вы хотите получить реально работающие фразы, эта книга для вас!
Comprehensive Real-World Guidance for Every Embedded Developer and Engineer

This book brings together indispensable knowledge for building efficient, high-value, Linux-based embedded products: information that has never been assembled in one place before. Drawing on years of experience as an embedded Linux consultant and field application engineer, Christopher Hallinan offers solutions for the specific technical issues you're most likely to face, demonstrates how to build an effective embedded Linux environment, and shows how to use it as productively as possible.

Hallinan begins by touring a typical Linux-based embedded system, introducing key concepts and components, and calling attention to differences between Linux and traditional embedded environments. Writing from the embedded developer's viewpoint, he thoroughly addresses issues ranging from kernel building and initialization to bootloaders, device drivers to file systems.

Hallinan thoroughly covers the increasingly popular BusyBox utilities; presents a step-by-step walkthrough of porting Linux to custom boards; and introduces real-time configuration via CONFIG_RT--one of today's most exciting developments in embedded Linux. You'll find especially detailed coverage of using development tools to analyze and debug embedded systems--including the art of kernel debugging.

• Compare leading embedded Linux processors

• Understand the details of the Linux kernel initialization process

• Learn about the special role of bootloaders in embedded Linux systems, with specific emphasis on U-Boot

• Use embedded Linux file systems, including JFFS2--with detailed guidelines for building Flash-resident file system images

• Understand the Memory Technology Devices subsystem for flash (and other) memory devices

• Master gdb, KGDB, and hardware JTAG debugging

• Learn many tips and techniques for debugging within the Linux kernel

• Maximize your productivity in cross-development environments

• Prepare your entire development environment, including TFTP, DHCP, and NFS target servers

• Configure, build, and initialize BusyBox to support your unique requirements

UUCP Low-Level Protocols



Протоколы низкого уровня UUCP

Чтобы осуществлять контроль за приемом и передачей файлов, uucico использует набор стандартизированных сообщений. Этот набор иначе называется протоколом верхнего уровня (high-level protocol). В течение фазы инициализации и фазы авторизации они просто передаются как строки. Однако, в течение реальной фазы передачи использован дополнительный протокол низкого уровня, который является обычно прозрачным для более высоких уровней. Он должен делать проверки на наличие ошибок, возможных при использовании ненадежных линий.

Краткий обзор протоколов

Поскольку UUCP используется поверх различных типов соединений, например, последовательных линий, TCP или даже X.25, специфические протоколы низкого уровня необходимы. Кроме того, отдельные реализации UUCP представили различные протоколы, которые делают приблизительно то же самое.

Протоколы могут быть разделены на две категории: потоковые и пакетные (streaming и packet). Первые передают файл целиком, возможно, вычисляя при этом контрольную сумму. Нет непроизводственных затрат, но требуется надежное соединение, так как любая ошибка потребует повторной передачи файла. Эти протоколы обычно используются на соединениях TCP, но не подходят для использования с телефонными линиями. Хотя современные модемы хорошо исправляют ошибки, нельзя обнаружить ошибку между компьютером и модемом.

С другой стороны, пакетные протоколы разбивают файл на отдельные куски равного размера. Каждый пакет посылается и получается отдельно, контрольная сумма вычисляется, и квитирование возвращается датчику. Чтобы делать это более эффективно, были изобретены протоколы подвижного окна, которые учитывают ограниченный размер окна, ожидающого обработки в любое время. Это значительно уменьшает время ожидания uucico в течение передачи. Несмотря на это, относительно большие непроизводительные затраты (по сравнению с потоковым протоколом), делают пакетный протокол неэффективным для использования поверх TCP.

Ширина канала данных также дает различие. Иногда посылка восьмибитовых символов через последовательное соединение невозможна, например, если соединение использует простой сервер терминала. В этом случае символы с восьмым набором битов должны кодироваться при передаче. Когда Вы передаете восьмибитовые символы по соединению с семью линиями, они должны быть согласно предположениям с самым плохим случаем, это удваивает количество данных, которые будут переданы, хотя сжатие, выполненное аппаратными средствами, может компенсировать это. Строки, которые могут передавать произвольные восьмибитовые символы, обычно называются восьмибитовыми чистыми (8-bit clean). Дело обстоит так для всех соединений TCP, также как для большинства соединений модема.

Следующие протоколы доступны в Taylor UUCP 1.06:

g

Наиболее общий протокол и может быть понят всеми версиями uucico. Он делает полную проверку ошибок и, следовательно, хорошо подходит для плохих телефонных линий. g требует восьмибитового чистого соединения. Это пакет-ориентированный протокол, который использует методику подвижного окна.

i

Является двунаправленным пакетным протоколом, который может посылать и получать файлы одновременно. Требуется дуплексное соединение и восьмибитовый канал для данных. Он в настоящее время распознается только Taylor UUCP.

t

Протокол, предназначенный для использования над соединениями TCP или другими, свободными от ошибок. Использует пакеты в 1024 байта и требует восьмибитового чистого соединения.

e

Аналог t, но только потоковый.

f

Предназначен для использования с надежным X.25-соединением. Это потоковый протокол, желателен семибитовый канал данных. Восьмибитовые символы кодируются, что может сделать передачу неэффективной.

G

Реализация протокола g в System V Release 4. Также распознается и некоторыми другими версиями UUCP.

a

Протокол, схожий с ZMODEM. Требуется восьмиразрядное соединение, кодируются некоторые управляющие символы, подобно XON и XOFF.

Настройка протокола передачи

Все протоколы учитывают некоторое изменение в размерах пакета, блокировках по времени и т.п. Обычно значения по умолчанию, обеспечивающие работу при стандартных обстоятельствах, не оптимальны для вашей системы. Протокол g, например, использует размеры окна от 1 до 7 и размеры пакета в степенях 2 в пределах от 64 до 4096. Если ваша телефонная линия обычно настолько шумная, что теряется более 5% всех пакетов, Вы должны уменьшить размер пакета и сократить окно. С другой стороны, на очень хороших телефонных линиях непроизводительные затраты протокола при посылке запроса черз каждые 128 байт могут оказзаться расточительными, так что Вы можете увеличивать размер пакета до 512 или даже 1024.

Taylor UUCP обеспечивает механизм настройки этих параметров командой protocol-parameter в файле sys. Например, чтобы установить пакет протокола g в 512 байт при обмене с pablo:

system          pablo
...
protocol-parameter g  packet-size  512

Настраиваемые параметры и их названия изменяются от протокола к протоколу. Для полного списка изучите документацию, поставляемую с Taylor UUCP.

Выбор специфических протоколов

Не каждая реализация uucico понимает все протоколы, так что в течение начальной фазы авторизации оба процесса должны договориться об общем протоколе. Главный uucico предлагает подчиненому список обеспечиваемых протоколов, посылая Pprotlist, из которого подчиненный может выбирать.

Основываясь на типе используемого порта (модем, TCP или прямой), uucico составит заданный по умолчанию список протоколов. Для модема и прямых соединений этот список обычно включает i, a, g, G и j. Для соединений TCP это t, e, i, a, g, G, j и f. Вы можете изменить этот заданный по умолчанию список командой protocols, которая может быть определена в записи системы или порта. Например, Вы могли бы записать в файл port примерно следующее:

port            serial1
...
protocols       igG

Это требует от любого входящего или исходящего соединения через этот порт использовать i, g или G, если удаленная система не поддерживает никакой из них, диалог потерпит неудачу.