Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT

Руководство GNU по обеспечению конфиденциальности

GnuPG использует криптографию с открытым ключом. Каждый пользователь имеет пару ключей (keypair), состоящую из секретного (private) и открытого (public) ключей. Секретный ключ является секретом пользователя и не может быть передан другому лицу, ни при каких обстоятельствах. Открытый ключ передается всем людям, с которыми пользователь будет обмениваться сообщениями. На самом деле GnuPG использует несколько более хитроумную схему, при которой пользователь имеет первичную пару ключей и, возможно, дополнительно несколько подчиненных. Первичный и подчиненные ключи объединены, для упрощения их использования, и эта связка, зачастую, может рассматриваться просто, как одна пара ключей.

Быстрый старт
Основы криптографии
Управление ключами
Построение Вашей сети доверия
Различные вопросы

Эффективное использование GNU Make
Манифест GNU
Генеральная общедоступная лицензия GNU
Фонд свободного программного обеспечения

Эффективное использование GNU Make

В этой книге я описываю свой опыт работы с утилитой GNU Make и, в частности, мою методику подготовки make-файлов. Я считаю свою методику довольно удобной, поскольку она предполагает:
Автоматическое построение списка файлов с исходными текстами
Автоматическую генерацию зависимостей от включаемых файлов (с помощью компилятора GCC)
"Параллельную" сборку отладочной и рабочей версий программы
Моя книга построена несколько необычным образом. Как правило, книги строятся по принципу "от простого - к сложному". Для новичков это удобно, но может вызвать затруднение у профессионалов. Опытный программист будет вынужден "продираться" сквозь книгу, пропуская главы с известной ему информацией. Я решил построить книгу по другому принципу. Вся "квинтэссенция" книги, ее "главная идея", содержится в первой главе. Остальные главы носят более или менее дополнительный характер.
В начале каждой главы я кратко описываю, о чем в ней будет вестись речь, и какими знаниями нужно обладать, чтобы успешно воспринять излагаемый в главе материал. Для тех, кто чувствует, что недостаточно хорошо ориентируется в предмете разговора, я указываю на дополнительные главы, с которыми следует предварительно ознакомиться.
Для работы я использовал GNU Make версии 3.79.1. Некоторые старые версии GNU Make (например, версия 3.76.1 из дистрибутива Slackware 3.5) могут неправильно работать с примером "традиционного" строения make-файла (по-видимому, они "не воспринимают" старую форму записи шаблонных правил).

Моя методика использования GNU Make

Microsoft Visual C++ и MFC. Программирование для Win95 и WinNT

В предыдущих томах серии “Библиотеки системного программиста” мы ориентировались в первую очередь на язык программирования Си. Даже если некоторые программы были написаны на Си++, то богатые возможности этого языка практически не использовались.
Сегодня уровень сложности программного обеспечения настолько высок, что разработка коммерческих приложений Windows с использованием средств одного только языка Си значительно затрудняется. Программист должен будет затратить массу времени на решение стандартных задач по созданию многооконного интерфейса. Реализация технологии связывания и встраивания объектов - OLE потребует от программиста еще более тяжелой работы.
Чтобы облегчить работу программиста практически все современные компиляторы с языка Си++ содержат специальные библиотеки классов. Такие библиотеки включают в себя практически весь программный интерфейс Windows и позволяют пользоваться при программировании средствами более высокого уровня, чем обычные вызовы функций. За счет этого значительно упрощается разработка приложений, имеющих сложный интерфейс пользователя, облегчается поддержка технологии OLE и взаимодействие с базами данных.

Microsoft Visual C++
На конкретных примерах мы научим вас в кратчайшие сроки создавать приложения для операционных систем Windows 3.хх, Windows 95 и WindowsNT. Рассмотрим применение средств автоматизированного программирования MFC AppWizard и ClassWizard, позволяющих разрабатывать приложения в кратчайшие сроки.

Класс CTime - дата и время
Для работы с календарными датами и временем в состав библиотеки классов MFC включен класс CTime. Класс основан на элементе типа time_t, в котором будет храниться дата и время. Элемент типа time_t объявлен как private, поэтому вы не можете обращаться непосредственно к этому элементу. Для этого в состав класса CTime входит набор методов.

Создание нового документа
Оказывается, когда пользователь выбирает из меню File строку New, вызывается виртуальный метод OnNewDocument, определенный в классе CDocument. Если вы не переопределите этот метод, то по умолчанию он вызывает метод DeleteContents, и далее помечает его как чистый (пустой). Вы можете переопределить метод OnNewDocument в своем классе документа, чтобы выполнить его инициализацию. Требуется, чтобы вы вызывали из переопределенного метода OnNewDocument, метод OnNewDocument, определенный в базовом классе CDocument.

Новые версии Visual C++
Когда вы начнете использовать в своих разработках не только функции программного интерфейса Windows (Windows API), но также и библиотеку классов MFC, создание сложных приложений Windows станет еще проще. Теперь в ваших руках будет высокоуровневое средство, включающее в себя функции Windows API.

Новая кнопка в панели управления
Вместе с Microsoft Visual C++ поставляются несколько изображений кнопок панелей управления, которые можно использовать в разрабатываемых приложениях. Откройте файл ресурсов Common.res, записанный на компакт диске Microsoft Visual C++, и просмотрите записанные в нем ресурсы типа toolbar. Если вы обнаружите подходящие вам изображение, скопируйте его в обменный буфер Windows clipboard и вставьте в редактируемую панель управления. Для более полного описания файла Common.res обратитесь к разделу “Ресурсы Microsoft”.

Ресурсы приложения Dater
В файле ресурсов приложения Dater определены меню, панель управления и таблица клавиш акселераторов IDR_MAINFRAME, шаблон диалоговой панели IDD_DATER_FORM, который используется окном просмотра и шаблон информационной панели IDD_ABOUTBOX. В файле ресурсов также расположены строковые ресурсы, описывающие строки меню, кнопки панелей управления и индикаторы панели состояния.



CISCO internetworking technology overview

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

Введение
Каким образом Уровень 4 Системы В узнает о том, что необходимо Уровню 4 Системы А? Специфичные запросы Уровня А запоминаются как управляющая информация, которая передается между соответствующими уровнями в блоке, называемом заголовком; заголовок предшествуют фактической прикладной информации. Например, предположим, что Система А хочет отправить в Систему В следующий текст (называемый "данные" или "информация"): The small grey cat ran up the wall to try to catch the red bird.

Компоненты маршрутизации
Маршрутизация включает в себя два основных компонента: определение оптимальных трактов маршрутизации и транспортировка информационых групп (обычно называемых пакетами) через об'единенную сеть. В настоящей работе последний из этих двух компонентов называется коммутацией. Коммутация относительно проста. С другой стороны, определение маршрута может быть очень сложным процессом.

Сравнение устройств для объединения сетей
Серийное изготовление мостов началось в начале 1980гг. В то время, когда они появились, мосты о'единяли гомогенные сети, делая возможным прохождение пакетов между ними. В последнее время об'единение различных сетей с помощью мостов также было определено и стандартизировано. На первый план выдвинулись несколько видов об'единений с помощью мостов. В окружениях Ethernet в основном встречается "transparent bridging" (прозрачное соединение). В окружениях Token Ring в первую очередь используется "Source-route bridging" (соединение маршрут- источник). "Translational bridging" (трансляционное соединение) обеспечивает трансляцию между форматами и принципами передачи различных типов сред (обычно Ethernet и Token Ring). "Source-route transparent bridging" (прозрачное соединение маршрут-источник) об'единяет алгоритмы прозрачного соединения и соединения маршрут- источник, что позволяет передавать сообщения в смешанных окружениях Ethernet/Token Ring.

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

Основы технологии
Ethernet был разработан Исследовательским центром в Пало Альто (PARC) корпорации Xerox в 1970-м году. Ethernet стал основой для спецификации IEEE 802.3, которая появилась 1980-м году. После недолгих споров компании Digital Equipment Corporation, Intel Corporation и Xerox Corporation совместно разработали и приняли спецификацию (Version 2.0), которая была частично совместима с 802.3.

Сравнение Token Ring и IEEE 802.5
Сеть Token Ring первоначально была разработана компанией IBM в гг. Она попрежнему является основной технологией IBM для локальных сетей (LAN) , уступая по популярности среди технологий LAN только Ethernet/IEEE 802.3. Спецификация IEEE 802.5 почти идентична и полностью совместима с сетью Token Ring IBM. Спецификация IEEE 802.5 была фактически создана по образцу Token Ring IBM, и она продолжает отслеживать ее разработку. Термин "Token Ring" oбычно применяется как при ссылке на сеть Token Ring IBM, так и на сеть IEEE 802.5

Технические условия FDDI
Стандарт на "Волоконно-оптический интерфейс по распределенным данным" (FDDI) был выпущен ANSI X3Т9.5 (комитет по разработке стандартов) в середине 1980 гг. В этот период быстродействующие АРМ проектировщика уже начинали требовать максимального напряжения возможностей существующих локальных сетей (LAN) (в oсновном Ethernet и Token Ring). Возникла необходимость в новой LAN, которая могла бы легко поддерживать эти АРМ и их новые прикладные распределенные системы.

Компоненты UltraNet
Система сети UltraNet, или просто UltraNet, состоит из семейства высокоскоростных программ для об'единенных сетей и аппаратных изделий, способных обеспечить совокупную пропускную способность в один гигабайт в секунду (Gb/сек). UltraNet производится и реализуется на рынке компанией Ultra Network Technologies.

Библиографическая справка
Бесспорной тенденцией развития сетей является увеличение скорости связи. В последнее время с появлением интерфейса Fiber Distributed Data Interface (FDDI) (Волоконно-оптический интерфейс по распределенным данным) локальные сети переместились в диапазон скоростей до Mb/сек. Прикладные программы для локальных сетей, стимулирующие это увеличение скоростей, включают передачу изображений, видеосигналов и современные прикладные задачи передачи распределенной информации (клиент-устройство обслуживания).

Компоненты PPP
В конце 1980 гг. Internet (крупная международная сеть, соединяющая множество иссследовательских организаций, университетoв и коммерческих концернов) начала испытывать резкий рост числа главных вычислительных машин, обеспечивающих TCP/IP. Преобладающая часть этих главных вычислительных машин была подсоединена к локальным сетям (LAN) различных типов, причем наиболее популярной была Ethernet.

Компоненты ISDN
Название сети Integrated Services Digital Network (ISDN) (Цифровая сеть с интегрированными услугами) относится к набору цифровых услуг, которые становятся доступными для конечных пользователей. ISDN предполагает оцифровывание телефонной сети для того, чтобы голос, информация, текст, графические изображения, музыка, видеосигналы и другие материальные источники могли быть переданы коанечныму пользователю по имеющимся телефонным проводам и получены им из одного терминала конечного пользователя.

Форматы блока данных
IBM разработала протокол Synchronous Data-Link Control (SDLC) (Управление синхронным каналом передачи данных) в середине 1970 гг. для применения в окружениях Systems Network Architecture (SNA) (Архитектура системных сетей). SDLC был первым из протоколов канального уровня нового важного направления, базирующегося на синхронном бит-ориентированном режиме работы.

Формат блока данных
В середине-конце 1970 гг. потребовался определенный набор протоколов, чтобы обеспечить пользователям связность глобальной сети с общедоступными сетями передачи данных (PDN). Сети PDN, такие как TELENET и TYMNET, добились замечательного успеха, однако было ясно, что стандартизация протоколов еще больше увеличит число абонентов PDN за счет возросшей совместимости оборудования и более низких цен. Результатом последующих усилий по разработке в этом направлении была группа протоколов, самым популярным из которых является Х.25.

Дополнения LMI
Frame Relay первоначально замышлялся как протокол для использования в интерфейсах ISDN, и исходные предложения, представленные в CCITT в 1984 г., преследовали эту цель. Была также предпринята работа над Frame Relay в аккредитованном ANSI комитете по стандартам T1S1 в США. Крупное событие в истории Frame Relay произошло в 1990 г., когда Cisco Systems, StrataCom, Northern Telecom и Digital Equipment Corporation образовали консорциум

Адресация
Switched Multimegabit Data Service (SMDS) (Служба коммутации данных мультимегабитного диапазона) является службой дейтаграмм с коммутацией пакетов, предназначенной для высокоскоростных информационных сообщений глобальных сетей. Обеспечивая пропускную способность , которая первоначально будет находиться в диапазоне от 1 до 34 Mg/сек, SMDS в настоящее время начинает повсеместно использоваться в общедоступных сетях передачи данных коммерческими сетями связи в результате реакции на две тенденции.

Доступ к среде
В начале 1980 гг. Apple Computer готовилась к выпуску компьютера Macintosh. Инженеры компании знали, что в скором времени сети станут насущной необходимостью, а не просто интересной новинкой. Они хотели также добиться того, чтобы базирующаяся на компьютерах Macintosh сеть была бесшовным расширением интерфейса пользователя Macintosh, совершившим подлинную революцию в этой области.

Архитектура цифровой сети (DNA)
Digital Equipment Corporation (Digital) разработала семейство протоколов DECnet с целью обеспечения своих компьютеров рациональным способом сообщения друг с другом. Выпущенная в 1975 г. первая версия DECnet обеспечивала возможность сообщения двух напрямую подключенных миникомпьютеров PDP-11.

Сетевой уровень
В середине 1970 гг. Агентство по Внедрению Научно-исследовательских Проектов Передовой технологии при Министерстве обороны (DARPA) заинтересовалось организацией сети с коммутацией пакетов для обеспечения связи между научно-исследовательскими институтами в США. DARPA и другие правительственные организации понимали, какие потенциальные возможности скрыты в технологии сети с коммутацией пакетов; они только что начали сталкиваться с проблемой, с которой сейчас приходится иметь дело практически всем компаниям, а именно с проблемой связи между различными компьютерными системами.

Доступ к среде
NetWare является операционной системой сети (network operating system - NOS) и связанной с ней средой обеспечения услуг, разработанной Novell, Inc. и представленной на рынок в начале 1980 гг. В то время сети были небольшими и преимущественно гомогенными, связь рабочих групп с помощью локальных сетей была еще новым явлением, а идея о персональном компьютере еще только начала завоевывать популярность

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

Протокол корректировки маршрутизации (RTR)
Компания Banyan Virtual Network System (VINES) реализовала систему распределенной сети, базирующуюся на семействе патентованных протоколов, разработанных на основе протоколов Xerox Network Systems (XNS) компании XEROX

Транспортный уровень
Протоколы Xerox Network Systems (XNS) разработаны корпорацией Xerox в конце 1970-начале 1980 гг. Они предназначены для использования в разнообразных средах передачи, процессорах и прикладных задачах офиса. Несколько протоколов XNS похожи на Протокол Internet (IP) и Протокол управления передачей (TCP), разработанных агентством DARPA для Министерства обороны США (DoD).

Формат таблицы маршрутизации
Протокол Информации Маршрутизации (RIP) является протоколом маршрутизации, который был первоначально разработан для Универсального протокола PARC Xerox (где он назывался GWINFO) и использовался в комплекте протоколов ХNS. RIP начали связывать как с UNIX, так и с TCP/IP в 1982 г., когда версию UNIX, называемую Berkeley Standard Distribution (BSD), начали отгружать с одной из реализацией RIP, крторую называли "трассируемой" (routed) (слово произносится "route dee").

Формат пакета
В середине 1980 гг. самым популярным протоколом маршрутизации внутри AS был Протокол Информации Маршрутизации (RIP). Хотя RIP был вполне пригоден для маршрутизации в пределах относительно однородных об'единенных сетей небольшого или среднего размера, его ограничения сдерживали рост сетей.

Иерархия маршрутизации
Открытый протокол, базирующийся на алгоритме поиска наикратчайшего пути (Open Shortest Path Fisrt - OSPF) является протоколом маршрутизации, разработанным для сетей IP рабочей группой Internet Engineering Task Force (IETF), занимающейся разработкой протоколов для внутрисистемных роутеров (interior gateway protocol - IGP).

Типы сообщений
Протокол внешних роутеров (Exterior Gateway Protocol-EGP) является протоколом междоменной досягаемости, который применяется в Internet - международной сети, об'единяющей университеты, правительственные учреждения, научно-исследовательские организации и частные коммерческие концерны.

Сообщения о корректировке
Протоколы внешних роутеров предназначены для маршрутизации между доменами маршрутизации. В терминологии Internet (международной сети, об'единяющей университеты, правительственные учреждения, научно-исследовательские организации и частные коммерческие концерны) доменом маршрутизации называется автономная система (AS).

ES-IS
При содействии Международной Организации по Стандартизации (ISO) уже разработаны или разрабатываются в настоящее время несколько протоколов маршрутизации. ISO ссылается на Протокол Обмена Внутридоменной Маршрутизации Промежуточных Систем (Intermediate System to Intermediate System Intra-Domain Routing Exchange Protocol (IS-IS)) как на ISO 10589. Двигательной силой стандартизации ISO документа IS-IS был комитет Х.3S3.3 Американского Национального Института Стандартов (ANSI), занимающийся сетевым и транспортным уровнями.

Петли в сетях, объединенных с помощью мостов
Прозрачные мосты (TB) были впервые разработаны Digital Equipment Corporation в начале 1980 гг. Digital представила свою работу в IEEE, который включил ее в стандарт IEEE 802.1. TB очень популярны в сетях Ethernet/IEEE 802.3.

Алгоритм SRB
Алгоритм Source-Route Bridging (SRB) (об'единение с помощью мостов "источник-маршрут") был разработан IBM и предложен комитету IEEE 802.1 в качестве средства об'единения локальных сетей с помощью мостов.

Трансляционное объединение с помощью мостов (TLB)
Прозрачные мосты (transparent bridges - TB) в основном встечаются в сетях Ethernet, в то время как мосты SRB встечаются почти исключительно в сетях Token Ring

Типы команд
В создание протокола SNMP внесли свой вклад разработки по трем направлениям: High-level Entity Management System (HEMS) Система управления об'ектами высшего уровня. Определяет систему управления с рядом интересных технических характеристик.

Функциональные области управления
IBM была одной из первых компаний, которые признали важность полной интегрированной стратегии управления сетями. В 1986 г. IBM предложила Open Network Management (ONA) (Управление открытыми сетями) - структуру, описывающую обобщенную архитектуру управления сетями. NetView, самое первое изделие сетевого управления для универсальной вычислительной машины IBM, фактически является компонентом ONA.