Книга посвящена методам объектно-ориентированного программирования для 32-разрядных операционных систем Windows. Рассмотрен широкий круг вопросов разработки диалоговых и многооконных приложений. Обсуждаются вопросы создания различных типов справочных систем приложения, их русификации и преобразования из одного типа в другой. Большое внимание уделено применению механизма исключений для обработки ошибок, работе с шаблонами, многозадачности и взаимодействию потоков. Отдельная глава посвящена созданию библиотек динамической компоновки (DLL). Приведен обширный справочный материал по функциям и классам Visual C++.
В книге даются начальные сведения по системе программирования Delphi, разработанной американской корпорацией Borland International Inc. (с апреля 1998 г. является подразделением корпорации Inprise Corporation). Книга рассчитана на широкий круг читателей -как начинающих программистов, так и имеющих опыт программирования. В ней описывается версия Delphi 6, работающая под управлением современных 32-разрядных операционных систем Windows 95/98/NT/2000 (Windows 32). Умение пользоваться операционными системамиWindows 32 (на уровне пользователя) является непременным условием усвоения материала книги.
Рассмотрено программирование графических эффектов на языке C++ с использованием популярной библиотеки DirectX. На занимательных практических примерах показано, как создавать различные визуальные эффекты (реалистичный огонь, электрические разряды, зеркала и др.), используемые при разработке демонстрационных роликов (Demoscene). Пошагово описано применение основных методов и интерфейсов DirectX. Показано, как написать оптимальный и эффективный программный код. Большое внимание уделено технологии использования вершинных и пиксельных тендеров для создания реалистичных изображений.
Для программистов.
Книга посвящена методам объектно-ориентированного программирования для 32- разрядных операционных систем Windows. Рассмотрен широкий круг вопросов разработки диалоговых и многооконных приложений. Обсуждаются вопросы создания различных типов справочных систем приложения, их русификации и преобразования из одного типа в другой. Большое внимание уделено применению механизма исключений для обработки ошибок, работе с шаблонами, многозадачности и взаимодействию потоков. Отдельная глава посвящена созданию библиотек динамической компоновки (DLL). Приведен обширный справочный материал по функциям и классам Visual C++.
В книге дано описание основных элементов языка Ассемблера семейства IBM PC: системы счисления, машинное представление данных и команд, основы 16- и 32-разрядного программирования, программирование сопроцессора, ввод-вывод информации в DOS и Windows, использование макросредств. Подробно, шаг за шагом на многочисленных примерах законченных программ рассматриваются идеи и принципы организации вычислений на Ассемблере от простого к сложному, используя аналогию и прямую поддержку со стороны алгоритмических языков Pascal (Borland Pascal-7.0. Delphi-5) и C/C++ (Borland C++ 3.1,4.5. 5.02, Borland C++ Builder 5, Visual C++ 6.0).
Эта книга посвящена глубокому исследованию всех основополагающих концепций и алгоритмов, которые можно отнести к разряду «вечных». Изучив их, вы получите знания, которые никогда не устареют и которыми вы будете пользоваться всегда. Краткость, точность, выверенность, актуальность, изобилие примеров и учебных заданий - вот лишь краткий перечень очевидных достоинств книги. Иллюстрация алгоритмов на одном из наиболее эффективных языков C++ лишний раз подчеркивает их популярность. Книгу можно использовать в качестве справочника. И даже просто читать как художествениую литературу, получая при этом ни с чем пе сравнимое удовольствие.
Поскольку книга построена в виде курса лекций, ее можно использовать и в учебном процессе.
Zortam Mp3 Media Studio Standart 8.75 - программа с многоязычным интерфейсом для работы с MP3 файлами из разряда "всё-в-одном". В ней имеются: редактор MP3-тэгов ID3v1 и ID3v2, Mp3-органайзер, менеджер плэй-листов, синхронизация тэгов, копирование ID3v1 в ID3v2 и наоборот, экспорт тэгов в HTML, генерирование отчетов, поиск тем в пользовательском архиве, переименование и т.д.
Формат PDF был разработан фирмой Adobe Systems, чтобы решить проблему единства отображения и обработки полиграфической продукции в различных информационных средах (его кроссплатформенность) и довольно успешно справляется с этой задачей и по сегодняшний день. Однако со временем у этого формата появилось и иное предназначение. Универсальность этого формата спровоцировала рост его популярности, а, следовательно, увеличилось и количество публикаций, доступных в этом формате в электронном виде в Интернете.
Изначально файлы формата PDF в сознании многих людей ассоциировались именно с качественным уникальным контентом, т. к. с его помощью часто публиковались и публикуются различные отчёты, доклады, статьи, руководства и другая полезная информация. Конечно, было бы глупо упускать такой источник полезной информации. Со временем все популярные поисковые системы научились индексировать файлы PDF и ранжировать их, что автоматически поставило их наравне с привычными для нас файлами в формате HTML (веб-страницами).
Нам же важно не упустить возможную выгоду и научиться правильно оптимизировать файлы подобного рода для поисковых систем, чтобы обеспечить их лучшую видимость в результатах поиска. Долгое время файлы PDF воспринимались исключительно как файлы-архивы, для открытия которых необходимо было их загружать на компьютер и читать в сторонней программе (Например, в Adobe Reader – программе для просмотра формата PDF). Так было раньше, сейчас же многое меняется: значительно увеличиваются скорости Интернета, появляются встроенные в браузер плагины для чтения формата PDF, позволяющие просматривать файлы сразу же в браузере. Например, уже сегодня в браузере Opera можно читать файлы PDF прямо на сайте онлайн. А это всё прямое свидетельство того, что популярность этого формата в обозримом будущем будет только расти. Это теперь не только универсальный формат для хранения и редактирования полиграфии, но также и способ передачи информации в Интернете (выполняющий функции обычной веб-страницы).
В этой статье я старался систематизировать информацию, осветив как можно больше фактов, влияющих на индексацию поисковыми системами документов этого формата в Интернете, а также ответив на самые распространённые вопросы, которые возникают у веб-мастеров, использующих эти файлы на своих сайтах.
Любой веб-мастер и seo-оптимизатор должен понимать, что файл PDF - это такая же страница сайта, как и файл в формате HTML. Как правило, на этот файл ссылаются так, что он является тупиковым для поисковой системы, т. к. в нём почти никогда не содержатся ссылки на другие страницы сайта, а зря. Каждый PDF-файл (как и страница HTML) находится в индексе поисковых систем, следовательно, имеет и свой поисковый вес, передаваемый по ссылкам (вИЦ или PR, если хотите). Я настоятельно рекомендую вам в любом файле PDF, выложенным на сайте, делать ссылки на обычные HTML-страницы сайта и на другие страницы PDF (можно даже продублировать навигацию основного сайта). В данном случае вы будете только в выигрышном положении, т. к. помимо передачи поискового веса по ссылке, посетитель, скачав файл PDF с вашего сайта и ознакомившись с информацией в нём, может к вам вернуться, щёлкнув по ссылке, ведущей на ваш сайт из скачанного документа. К тому же файл PDF редко редактируется, поэтому часто сохраняется в первоначальном виде, а также как файловый архив может стремительно распространяться через различные файловые хостинги, а это, опять же, новые пользователи для вашего сайта (тот редкий случай, когда поисковая оптимизация напрямую влияет на непоисковое продвижение).
ПРОГРАММЫ ДЛЯ РАБОТЫ С ФАЙЛАМИ PDF
Для создания файлов PDF используйте программу Adobe Acrobat, т. к. она имеет целый арсенал средств, которые способны максимально качественно оптимизировать наши файлы. Несмотря на это, можно (но не рекомендуется) использовать и другие программы. Например, для создания файлов PDF вы можете использовать связку программ Adobe Pagemaker и Adobe InDesign или текстовые редакторы наподобие Word из пакета Microsoft Office или Write - из OpenOffice. Когда будете использовать текстовый редактор Word для создания документа формата PDF, то используйте теги H1, H2, H3 и другие подобные для оптимизации текста документа. Вы должны сделать полученный текст базирующимся на языке HTML, чтобы поисковые системы эффективно его индексировали.
Не используйте программы типа Photoshop и Illustrator, т. к. после обработки документа на выходе информация превращается в одно большое изображение, текст на котором не распознать поисковым системам. Однако часто случается и то, что у веб-мастера уже есть большое количество PDF-файлов, полученных от заказчика, или же специфика темы на сайте такая, что по ней есть информация в электронном виде только в этом формате. Если у вас именно такой случай, то не отчаивайтесь. Сейчас активно разрабатываются программы, способные распознавать текст на изображениях, что позволяет модифицировать текст на изображениях в обычный текст, который индексируется поисковыми системами. В России довольно успешно распознаванием текстов занимается компания ABYY. К примеру, вы можете воспользоваться их конвертером Abbyy PDF Transformer. Хочу сразу заметить, что это довольно уникальный продукт, аналогов которому почти нет. В его возможности входит конвертирование текста на картинках PDF в текст, способный индексироваться поисковыми системами.
Несколько слов, я думаю, можно сказать и про программы конвертеры. Если же вы решили, что по каким-то причинам формат PDF на сайте вас не очень устраивает, а контент вашего сайта состоит, в основном, из файлов PDF, то у вас есть возможность переконвертировать эти файлы в формат HTML, используя различные бесплатные и платные PDF конвертеры.
Вот небольшой список таких конвертеров:
* Advanced PDF to HTML
* Comfortable PDF to HTML
* Easy PDF to HTML
* Adobe Acrobat Pro Extended – это конвертер компании Adobe, но известно, что оптимизаторы испытывают сложности с этой программой.
Теперь, я думаю, самое время поделиться с вами секретами оптимизации файла PDF для поисковых систем.
ИЗОБРАЖЕНИЯ
Не используйте слишком много изображений или изображения большого размера. Картинки хоть и улучшают внешний вид, однако также увеличивается размер файла и время его загрузки. Как и на HTML-странице, если вы поставите много изображений (особенно неоптимизированных), то это потребует больше времени для их загрузки в браузер. Но помимо оптимизации размера изображений PDF-документа, необходимо также оптимизировать и подписи (альтернативный текст) к ним. У каждого изображения документа должна быть своя подпись, как к картинкам обычной HTML-страницы.
РАЗМЕР ФАЙЛА
Нужно всегда помнить, что поисковые системы не индексируют файлы, которые слишком много весят. Например, поисковая система "Яндекс" не будет индексировать файлы весом больше, чем 10 Мб, отсюда следует правило, что файл PDF не может быть больше 10 Мб.
Если говорить про оптимальный размер PDF-файла, то многие seo-оптимизаторы считают его величину в пределах 500 - 1000 Кб, т. к. с файлами именно таких размеров происходит меньше всего ошибок, связанных с индексацией файлов.
Для оптимизации размера в программе Adobe Acrobat есть специальная функция: Advanced > PDF Optimizer.
Внимание! При создании PDF-документа в любом редакторе обращайте внимание на версию получаемого файла. Рекомендуемая версия – 1.5 и ниже, т. к. такой файл гарантированно будет читаться всеми программами для просмотра PDF и роботами поисковых систем. Формат PDF позволяет оптимизировать также и копию документа, поэтому по возможности оптимизируйте и её.
ТЕКСТ ФАЙЛА
Старайтесь избегать большого количества текста в одном файле PDF, дробите один файл на несколько файлов, причём, линкуйте их ссылками внутри каждого такого документа (так, как бы вы это делали с обычными HTML-документами).
Оптимизируйте текст файла PDF под конкретные ключевые запросы, а здесь надо уделять внимание таким же показателям, как и на обычной веб-странице (плотность ключевых слов не выше 5% и прочим). Если вы хотите получить хорошо индексируемый и релевантный поисковым запросам контент PDF-документа, вы должны стараться избегать нагромождения страниц в нём. При внутренней оптимизации текста, а именно: заголовков и подзаголовков, ключевых слов и фраз, необходимых для вашего документа, - будьте очень осторожны, чтобы файл не выглядел заспамленным и не вылетел, в итоге, из индекса поисковых систем.
Если ваш файл PDF разбит на несколько частей, то настройте порядок отображения этих частей. От порядка чтения документа зависит то, какая информация будет предоставлена поисковому роботу сначала, а какая - потом. Помните, что наибольшую поисковую значимость имеют ключевые слова, находящиеся ближе к началу документа, поэтому если в документе обратное, то вам стоит перестроить логическую последовательность частей вашего PDF документа, чтобы выделить наиболее важные части и улучшить их поисковую видимость в Интернете.
Сделайте оглавление (поисковую карту документа), каждый пункт этого оглавления оформите ссылкой (закладкой) внутри PDF документа, для каждой ссылки пропишите ключевые слова в описании ссылки. Этот приём наиболее эффективен для документов, состоящих из нескольких логический частей и с большим количеством страниц – он обеспечивает качественную внутреннюю перелинковку документа, позволяющую эффективно индексировать документ поисковым роботам.
Если вы хотите создать справочник, руководство или другой документ, предполагающий большой объём информации в одном файле, то я рекомендую создавать подобные документы в формате DjVu. Страницы документов (контент) в этом формате не индексируются поисковыми системами. Но если по каким-то причинам у вас не получается уменьшить размер PDF-файлов и разбить их на несколько отдельных файлов, то можно воспользоваться очень удобной функцией в программе Adobe Reader - Optimize for Fast Web View, позволяющей просматривать уже загрузившиеся страницы документа, не дожидаясь его окончательной загрузки. Это удобно для тех пользователей, кто будет просматривать ваш PDF-файл непосредственно на вашем сайте в режиме онлайн.
ДОПОЛНИТЕЛЬНАЯ ИНФОРМАЦИЯ (МЕТАПОЛЯ)
Очень важно заполнить всю дополнительную информацию о вашем файле PDF. Уделите особое внимание таким тегам как: Title (заголовок), Author (автор материала), Subject (тема), Keywords (ключевые слова документа), Descriptions (описание PDF-документа) и Copyright (авторские права). Все эти настройки можно найти в программе Adobe Acrobat в меню File > Document Properties. Метаданные файла PDF имеют схожее происхождение с метатегами файлов HTML, так что уделяйте им особое внимание при оптимизации.
КОДИРОВКА, ШРИФТЫ И РАСПОЛОЖЕНИЕ ФАЙЛА
Несколько слов нужно сказать и про оптимизацию шрифтов. Не забывайте включать в сам файл все необходимые (нестандартные) шрифты. Довольно часто для декоративных целей используются самые разнообразные и редкие полиграфические шрифты, которые могут плохо восприниматься поисковыми системами, поэтому, по возможности, старайтесь пользоваться стандартными шрифтами (Arial, Helvetica, Sans-Serif, Times New Roman и другими), которые хорошо индексируются поисковыми системами. Их плюс в том, что они присутствуют по умолчанию в любой операционной системе, поэтому из документа PDF их можно спокойно исключить, уменьшив тем самым размер файла.
Шрифты, которые не были добавлены в PDF-документ или отсутствуют в операционной системе, будут отображаться тем шрифтом, который имеется (самым близким по значению), что может привести к нежелательным последствиям, а именно к увеличению или уменьшению числа страниц, количества символов в строках, межстрочного интервала и других проблем метрики.
Довольно болезненный параметр для поисковых систем - кодировка файла. Если поисковая система не сумеет определить кодировку вашего PDF файла самостоятельно, то документ вообще не будет проиндексирован, поэтому всегда проверяйте, указана ли она. Желательно использовать самые известные и популярные кодировки.
Ваш файл PDF, как и обычная страница файла, должен быть максимально близок к корню сайта. Ссылайтесь на них ближе к главной странице, не пытайтесь засунуть его глубоко в структуру сайта, чтобы не понизить поисковую значимость вашего PDF документа.
Не давайте вашим документам в формате PDF слишком сложные имена. Упрощайте их. Несколько слов в названии самого файла разделяйте символом "_". Например: imya_documenta.pdf. Также для разделителя можно использовать и символ "-", но я рекомендую использовать первый вариант.
После всех проделанных операций по оптимизации можете выкладывать файл на сайт. Поисковые системы найдут файл, проиндексируют его и начнут выводить в результатах поиска, и если материал интересен, начнётся самораскрутка его среди посетителей - на файл начнут ссылаться, скачивать и публиковать его в других местах (а сам файл будет с ссылками на ваш сайт). Неплохо, не правда ли?
Напоследок, предоставлю вам пару ссылок, которые могут быть полезны в связи с опубликованным материалом:
http://ru.wikipedia.org/wiki/PDF - общая информация о файле PDF
http://get.adobe.com/reader/ - последняя версия Adobe Reader
http://www.adobe.com/products/acrobat/ - последняя версия Adobe Acrobat
http://www.abbyy.ru/pdftransformer/ - последняя версия Abbyy PDF Transformer
http://www.taurion.ru/acrobat - самоучитель работы в программе Adobe Acrobat
В этом обзоре я постарался ответить на наиболее распространённые вопросы по оптимизации файла PDF, которые задают люди, занимающиеся раскруткой сайтов. Но если у вас появились вопросы или что-то осталось непонятным, то, пожалуйста, сообщайте об этом! Буду рад любым отзывам от вас! Спасибо!
Доступность оборудования и простота организации делают беспроводные локальные сети всё более популярными. Даже небольшие компании стараются идти в ногу со временем и избавляются от традиционных кабельных "локалок". Использование беспроводных сетей не ограничивается небольшими офисами и домашними системами - крупные же фирмы применяют Wi-Fi для подключения к корпоративным сетевым ресурсам в тех местах, где технически невозможна прокладка кабелей.
Однако решение об устройстве беспроводной сети далеко не всегда оправданно, тем более что во многих случаях безопасности таких сетей уделяется слишком мало внимания. По оценкам специалистов, почти 70 процентов удачных хакерских атак через беспроводные сети связаны с неправильной настройкой точек доступа и клиентского программного обеспечения, а также с установкой чересчур низкого уровня безопасности при слишком сильном сигнале, с лёгкостью "пробивающего" стены офиса.
По каким-то необъяснимым причинам организаторы беспроводных сетей нередко считают, что при их включении автоматически обеспечивается надлежащий уровень безопасности. Производители оборудования, в свою очередь, устанавливают низкие настройки безопасности "по умолчанию", либо вовсе отключают их, чтобы при развёртывании сети клиенты случайно не столкнулись с невозможностью доступа. При минимальных настройках безопасность оборудование лучше всего совместимо с самым широким спектром других устройств и практически с любым современным программным обеспечением. Поэтому после настройки и проверки сети на совместимость с существующей инфраструктурой системный администратор должен изменить настройки безопасности, для того чтобы предотвратить несанкционированное проникновение в корпоративную сеть.
В отличие от проводных сетей, беспроводные требуют повышенного внимания к безопасности, поскольку проникнуть в них гораздо проще, поскольку для этого не нужен физический доступ к каналу. Радиоволны можно принимать на любое совместимое устройство, а если данные не защищены, то их сможет перехватить любой желающий. Разумеется, не стоит отказываться от паролей прочих традиционных средств авторизации, однако их явно недостаточно для защиты от несанкционированного доступа. Рассмотрим вкратце несколько способов повышения защищённости беспроводных сетей.
Отключаем передачу SSID
Последовательность цифр и букв, называемая SSID (Service Set Identifier) - это уникальный идентификатор вашей беспроводной сети. Передача идентификатора сети является встроенным средством защиты, по умолчанию включённым в большей части продающегося сегодня оборудования, и оно позволяет с лёгкостью обнаружить имеющиеся точки доступа в процессе развёртывания сети. Передача SSID требуется именно для того, чтобы ваше оборудование смогло подключиться к сети.
Точки доступа, которые являются базовыми станциями для подключаемых к сети компьютеров, являются потенциальным слабым местом, через которое злоумышленник может проникнуть в сеть. На уровне точек доступа отсутствует система авторизации по умолчанию, что делает внутренние сети незащищёнными, поэтому системные администраторы должны реализовать существующую корпоративную систему в беспроводных базовых станциях.
Для обеспечения повышенной безопасности можно запретить трансляцию точками доступа идентификатора сети. При этом возможность подключения к сети остаётся только у тех, кто знает правильный SSID, то есть, у сотрудников вашей компании, а случайные пользователи, обнаружившие вашу сеть при помощи сканирования, просто не смогут получить к ней доступ. Отключение передачи SSID возможно в подавляющем большинстве устройств ведущих производителей, что позволяет фактически скрыть вашу сеть от чужих. Если ваша сеть не передаёт идентификаторов, и если вы не афишируете использование беспроводной технологии, то этим вы осложните задачу злоумышленников. Подробные инструкции по отключению SSID обычно приводятся в руководствах по эксплуатации беспроводных точек доступа или маршрутизаторов.
Включаем средства шифрования
Уже давно используемое при пересылке важной электронной корреспонденции шифрование данных нашло применение и в беспроводных сетях. Для защиты данных от чужих глаз, в аппаратуре для беспроводной связи реализованы различные криптографические алгоритмы. При покупке оборудования важно убедиться в том, что оно поддерживает не только низкоуровневое 40-разрядное шифрование, но и 128-битный шифр повышенной стойкости.
Чтобы включить криптографическую защиту можно задействовать системы WEP (Wired Equivalent Privacy - "эквивалент проводной безопасности") или WPA (Wi-Fi Protected Access - "защищённый доступ к Wi-Fi"). Первая система менее стойкая, поскольку в ней используются статические (постоянные) ключи. Защищённые по этому протоколу сети взламываются хакерами без особого труда - соответствующие утилиты нетрудно найти в интернете. Тем не менее, по оценкам специалистов, даже этот протокол не задействован в более половины работающих корпоративных беспроводных сетей. Одним из средств повышения действенности WEP является регулярная автоматическая смена ключей, но даже в этом случае сеть не получает стопроцентной защиты. Попытки проникнуть в такую сеть оставят лишь случайные люди, обнаружившие её, но злонамеренных специалистов WEP не остановит, поэтому для полноценной защиты корпоративных сетей данный протокол использоваться не может.
В недалёком прошлом у организаторов беспроводных сетей не было иного выбора, как использовать протокол WEP, поддержка которого сохраняется в современных устройствах как в целях обеспечения совместимости оборудования, так и для обеспечения хотя бы минимального уровня безопасности в случае невозможности использования более современных протоколов. Сегодня WEP реализуется в двух модификациях: с 64- и 128-разрядным шифрованием. Однако корректнее было бы говорить о ключах длиной 40 и 104 бит, поскольку 24 бит из каждого ключа содержат служебную информацию и никак не влияют на стойкость кода. Однако это не столь важно, поскольку главным недостатком WEP являются статические ключи, для подбора которых злоумышленникам необходимо лишь в течение определённого времени сканировать сеть, перехватывая передаваемую информацию.
Повторим, что более-менее приемлемый уровень безопасность можно лишь при помощи регулярной смены ключей и при использовании 128-битного шифрования. Частота смены ключей зависит от частоты и длительности соединений, при этом необходимо обеспечить отработанную защищённую процедуру передачи новых ключей тем сотрудникам, которые пользуются доступом в беспроводную сеть.
Более эффективное шифрование обеспечивает протокол WPA, в котором реализовано динамическое создание ключей, что исключает возможность перехвата или подбора ключа, а также система идентификации (логин-пароль) при подключении к сети на основе протокола EAC (Extensible Authentication Protocol - "расширяемый протокол аутентификации"). В протоколе WPA 128-разрядные ключи генерируются автоматически при передаче каждых десяти килобайт данных, причём число этих ключей достигает сотен миллиардов, что делает практически невозможным подбор при помощи сканирования даже при отработанной методике перехвата информации. Кроме того, в этом протоколе реализован алгоритм проверки целостности данных MIC (Message Integrity Check), предотвращающий возможность злонамеренного изменения передаваемых данных. А вот выбору паролей следует уделять особое внимание: по мнению экспертов, для обеспечения высокого уровня безопасности длина пароля должна составлять не менее 20 знаков, причём он не должен представлять собой набор слов или какую-то фразу, поскольку такие пароли легко вскрываются методом словарного подбора.
Проблема с WPA заключается в том, что официально он был внесён в спецификации IEEE 802.11 лишь в середине 2004 года, поэтому далеко не всё беспроводное оборудование, выпущенное более полутора лет назад, способно работать по этому стандарту. Более того, если в сети есть хотя бы одно устройство, не поддерживающее WPA, будет применяться простое шифрование WEP, даже если WPA включён в настройках всего прочего оборудования.
Тем не менее, оборудование постоянно совершенствуется и в современных устройствах поддерживается новая, ещё более защищённая версия WPA2, работающая с динамическими ключами длиной 128, 192 и 256 бит. К таким устройствам, относится, например, трёхдиапазонный контроллер Intel PRO/Wireless 2915ABG.
Регулируем силу сигнала и его направленность
Технология беспроводной связи сама по себе по своей природе меньше защищена от постороннего вмешательства, поэтому при организации таких сетей особенно важно максимально затруднить несанкционированное проникновение в них. Среди чисто технических способов самым эффективным является снижение мощности транслируемого сигнала, ведь радиоволны с лёгкостью преодолевают стены зданий, а в сельской равнинной местности могут преодолевать весьма большие расстояния. Злоумышленники могут поставить свой автомобиль рядом со зданием, в котором расположен ваш офис, и в комфортной обстановке неторопливо подбирать ключ к вашей сети. Поэтому важно отрегулировать мощность сигнала, чтобы он не проникал за границы вашей территории. Кроме того, точки доступа следует располагать вдалеке от окон, внешних стен зданий, общих коридоров, холлов и лестниц.
Беспроводные сети являются очень удобным средством связи быстрого развёртывания, позволяющим объёдинить в сеть компьютеры даже в тех местах, где по тем или иным причинам невозможна прокладка кабеля. Однако поскольку незащищённые беспроводные сети куда проще поддаются взлому, чем проводные, следует уделять повышенное внимание защите от постороннего проникновения. Разумеется, стопроцентной гарантии безопасности дать невозможно, но некоторые действенные способы затруднения несанкционированного доступа в беспроводные сети мы описали в данном материале. Более подробные инструкции по реализации этих методов на практике обычно приводятся в документации к сетевому оборудованию, поэтому мы не ставили перед собой цели описать конкретные действия, тем более что они различаются в зависимости от модели и производителя беспроводных точек доступа и маршрутизаторов. Надеемся, что этот материал привлечёт внимание к проблеме обеспечения защиты беспроводных сетей.
Последний представленный компанией Microsoft продукт семейства Windows 2003 - является прямым продолжением Windows 2000. Эта система предназначена, в основном, для серверного, а не для домашнего использования. Но некоторое количество усилий и грамотный тюнинг системы позволят превратить домашний компьютер в стабильный мультимедийный игровой сервер.
Практически ежегодно Microsoft представляет публике новую версию самого популярного своего продукта - операционной системы Windows. По традиции компания обещает, что именно эта, последняя версия наиболее стабильна, надежна и удобна. Все по той же традиции пользователи ждут "улучшений" с изрядной долей пессимизма…
Конечно, идеальной операционной системы не существует, и семейство Windows имеет как плюсы, так минусы. Однако, положа руку на сердце, признаем: прогресс, в первую очередь в стабильности, есть. Кроме того, следует учитывать, что продукцией Microsoft пользуются десятки миллионов пользователей во всем мире - и угадать конфигурацию компьютера, индивидуальные потребности к внешнему оформлению и набору программ просто невозможно. Поэтому, установив Windows на свой ПК, не рассчитывайте, что дальше система будет работать идеально - она будет работать стандартно, в расчете на среднестатистические потребности пользователя.
Семейство Windows 2003 Server (Standard, Enterprise, Web и Datacenter Edition) является прямым продолжением Windows 2000 Server. В отличие от Windows ХР, которая является гибридом Windows Ме и Windows 2000, новая система предназначена, в основном, для серверного, а не для домашнего использования. Соответственно, многие функции, присущие "домашнему" компьютеру… исчезли. Но небольшое количество усилий, грамотный тюнинг системы - и стабильный мультимедийный игровой сервер к вашим услугам!
Установка драйверов
Установка системы практически идентична инсталляции Windows ХР, поэтому не будем на ней останавливаться - основные трудности впереди.
Первое, с чем сталкивается пользователь после установки Windows 2003 Server, это отсутствие драйверов под эту версию Windows. По умолчанию большинство устройств на вашем компьютере будет работать, но… например, видеокарта без 3D-функций в наше время мало кого заинтересует.
Первый делом следует создать нового пользователя. Для этого нажимаем на кнопку Start (Пуск) и выбираем подменю Run (Выполнить). Далее вводим команду lusrmgr.msc - и попадаем в программу User Management (Управление пользователями). Правой клавишей мышки кликаем на папке User (Пользователи) в левой части окна и выбираем меню New User (Новый пользователь). Прописываем имя пользователя и, при желании, пароль. Подтверждаем создание и после этого выбираем - при помощи правой клавиши мыши - Properties (Свойства) нового пользователя. Переходим на вкладку Member of (Участник группы), нажимаем кнопку Add (Добавить), далее Find Now (Найти) и дважды кликаем на Administrators (Администраторы).
Итак, новый пользователь с правами администратора создан, остается перезагрузиться под новым логином.
Кстати, просто так перезагрузить и даже просто выключить компьютер уже не удастся. На экране появится окно, в котором система попросит указать причину перезагрузки/выключения. Зачем это нужно? Отвечать на этот вопрос предоставим компании Microsoft, а сами тем временем зайдем в уже знакомое пусковое меню и в подменю Run… (Выполнить) введем команду mmc. Выбираем меню File (Файл), а в нем Add/Remove Snap-in… (Добавить / Убрать Snap-in…). Далее следуем по пунктам меню: Add, Group Policy Object Editor, Add. После этого нажимаем кнопку Finish (Завершить). Переходим в Local Computer Policy > Computer Configuration > Administrative Templates - и выбираем папку System. Дважды кликаем на Display Shutdown Event Tracker. В появившемся меню выбираем Disabled, нажимаем и выходим из программы. Теперь перезагрузка/выключение компьютера буде проходить аналогично Windows 2000.
После того как система загружена под вновь созданным логином, следует приступить к настройке драйверов. Для этого необходимо зайти в Desktop Properties (Свойства экрана) с помощью Control Panel (Панели управления): Пуск > Панель управления > Display (Экран).
Далее переходим на последнюю вкладку - Advanced (Дополнительно) и нажимаем кнопку Troubleshoot (Неисправности). В появившемся меню передвигаем ползунок Hardware Acceleration (Аппаратное ускорение) максимально вправо. Закрываем окна и устанавливаем драйвера под видеокарту. Теперь система не будет выдавать ошибку о несовпадении версии драйвера и Windows. Кстати, для установки подходят драйверы как Windows ХР, так и Windows 2000.
По умолчанию в Windows 2003 Server установлен DirectX 8.1, но отключена поддержка 3D-функций. Кстати, самой папки DirectX в Programs Files (Программные файлы) нет, поэтому следует ввести команду dxdiag в подменю Run… (Выполнить). Открывается окно DirectX, где на вкладке Display (Экран) необходимо включить (нажать кнопки Enabled) функции аппаратного ускорения.
По мнению специалистов компании Microsoft, для полноценной работы сервера звук не обязателен. Соответственно, звуковые функции вашего компьютера по умолчанию будут отключены. В Панели управления есть вкладка Administrative Tools (Средства администрирования), внутри которой выбираем Services (Службы). В появившемся окне размещен список служб, установленных на ПК. Некоторые из них не включены, в том числе и Windows Audio. Дважды кликаем мышкой - и в появившемся окне, в поле Startup type (Способ загрузки), выбираем Automatic, нажимаем Start (Запустить). При необходимости следует выбрать в Панели управления раздел Sound and Audio Devices (Мультимедийные устройства) и в появившемся окне включить громкость звука (перетащить ползунок в крайнее правое положение).
Изменение внешнего вида
Сразу после установки Windows 2003 Server будет иметь спартанский вид (как Windows 2000). Единственное отличие: стартовое меню, частично схожее с Windows ХР. Это практично, удобно, выгодно с точки зрения экономии ресурсов - в общем, прекрасно подходит для сервера, где вид рабочего стола - далеко не самое главное. Однако на домашнем компьютере хочется видеть нечто более яркое, чем стандартные окна Windows.
Возможность преобразовать внешний вид в стиль Windows ХР есть - хотя и скрыта в недрах системы. В первую очередь необходимо включить службу Themes. Для этого заходим в службы (Control Panel > Administrative Tools > Services) и дважды кликаем на службе Themes. В появившемся окне выбираем тип запуска Automatic (Автоматически) и перезагружаем компьютер. После перезагрузки заходим в свойства экрана, кликнув для этого правой клавишей мыши на рабочем столе и выбрав пункт Properties (Свойства). На вкладке Themes выбираем вместо темы Windows Classic тему Windows XP. Теперь рабочий стол и окна приложений приобретут знакомый стиль Windows ХР.
Кроме того, в свойствах системы (Control Panel > System) на вкладке Advanced в разделе Visual Effects есть возможность дополнительной настройки визуальных эффектов Windows.
Десять шагов к идеальной системе
1. Одно из последних усовершенствований системы - параметр prefetch. Его задача заключается в ускорении загрузки приложений. Включение этого параметра не влияет на скорость слишком ощутимо, однако в бою все средства хороши. Для включения этого параметра кликните правой клавишей мыши на ярлыке нужной программы и выберите в появившемся меню пункт Properties (Свойства). В строке Object (Объект) после указания пути к файлу добавьте /prefetch:1 (пробел перед ключом обязателен).
2. Перейдите к закладке Advanced (Дополнительно) в Performance Options (Параметрах быстродействия) и убедитесь, что распределение ресурсов процессора и памяти выставлено на оптимизацию работы Programs (Программ) - указывать приоритет фоновых служб и кэша необходимо, только если ваш компьютер выполняет роль сервера. В опции Memory usage при объеме физической памяти 256 Мб и выше отметьте параметр System cache. Если же памяти на компьютере меньше 256 Мб, система будет работать быстрее при установленном значении Programs.
3. Проверим правильность настройки жесткого диска. В свойствах системы откройте Device Manager (либо, открыв свойства любого диска в Проводнике, закладка Hardware) и просмотрите свойства вашего жесткого диска. Убедитесь, что в закладке Polices стоит отметка Enable write caching on the disk. Если диск SCSI доступны следующие значения в закладке SCSI Properties: Disable Tagged Queuing и Disable Synchronous Transfers должны быть не отмечены.
4. Убедитесь, что DMA включено для всех IDE-устройств системы. Проверить это можно следующим образом: Device Manager > IDE ATA/ATAPI controllers > Primary/Secondary IDE Channel > Advanced Settings. Параметр Device Type позволяет системе автоматически определять подключенные устройства (если канал свободен, установите значение None - это немного ускорит загрузку системы).
Параметр Transfer mode Windows ставит, как правило, по умолчанию и позволяет Windows использовать максимальный DMA, поддерживаемый устройством либо PIO, убедитесь, что значение установлено DMA if available.
5. Для ускорения навигации по папкам, содержащим графические файлы, можно отметить пункт Do not cash thumbnails (Не кэшировать эскизы). Для этого следует зайти в Control Panel (Панель управления) > Folder Options (Свойства папки) > View (Вид), а заодно убрать "галочку" с пункта Remember each folder`s view setting (Помнить параметры отображения каждой папки).
6. Поиск в Windows 2003 Server по умолчанию производится и в.zip-архивах. Скорость поиска возрастет, если отключить эту службу. Для этого в командной строке необходимо набрать:
Код:
или же:
Код:
Для включения поиска в.zip-архивах:
Код:
или же:
Код:
7. В отличие от более ранних версий Windows, в процессе установки Windows 2003 Server нет возможности выбирать необходимые компоненты. Удалить/установить можно лишь незначительную часть программ (Control Panel > Add or Remove Programs > Add/Remove Windows Components). Список невелик - большая его часть скрыта от глаз неопытного пользователя.
Для решения этой проблемы открываем системную папку Inf (по умолчанию - C:WindowsInf), находим в ней файл sysoc.inf, открываем его и удаляем во всех строках слово HIDE. Главное при этом - оставить неизменным формат файла, то есть следует удалять только HIDE, оставляя запятые до и после этого слова.
Для примера - исходная строка и та, что должна получиться:
Код:
Сохраняем файл sysoc.inf, открываем Add/Remove Windows Components - и видим уже значительно более длинный список.
8. Служба индексирования создает индексы содержимого и свойств документов на локальном жестком диске и на общих сетевых дисках. Имеется возможность контроля за включением сведений в индексы. Служба индексирования работает непрерывно и практически не нуждается в обслуживании. Однако процесс индексирования потребляет большое количество ресурсов процессора. Если вы не пользуетесь активно поиском по контексту файлов, данную службу можно отключить. Для этого заходим в Control Panel (Панель управления) > Add or Remove Programs (Установка и удаление программ) - Add/Remove Windows Components (Установка компонентов Windows). В появившемся списке ищем Службу индексирования и убираем "галочку".
9. Если вам не нравятся "излишества" в новом оформлении XP или конфигурация вашего компьютера не позволяют вам ими наслаждаться, интерфейс можно вернуть к "стандартному" виду. Для этого необходимо зайти в Control Panel (Панель задач) > System (Система) и перейти на вкладку Advanced (Дополнительно). Выбираем раздел настройки визуальных эффектов.
10. Довольно часто у домашнего компьютера только один пользователь, так что необходимости в пароле при запуске системы нет. В отличие от предыдущих версий, в этой Windows 2003 пароль убрать не так-то просто.
В процессе загрузки можно пропустить выбор имени пользователя и набор пароля. Выберите Run… (Выполнить) из меню Start (Пуск) и наберите control userpasswords2, что приведет к открытию окна User Accounts (Учетные записи пользователей). На вкладке Users (Пользователи) удалите флажок у позиции Users must enter a user name and password to use this computer (Требовать ввода имени пользователя и пароля). После подтверждения появится диалоговое окно, в котором система предложит ввести имя пользователя и пароль для нужной учетной записи.
В этой статье мы рассмотрим технику создания инифайлов их назначение и применение. Начнем с ответа на вопрос зачем же нужны эти инифайлы?! Предположим, что вы создали приложение, в котором пользователь может настраивать цвет фона, шрифт надписей и так далее. Когда он повторно включит вашу программу он очень сильно разочаруется, так как всего его старания по настройке интерфейса вашей программы пропали даром - программа будет иметь такой вид, который сделали вы при проектировании программы. Так вот чтобы эти настройки сохранять, лучше всего пользоваться инифайлами.
Одно из главных преимуществ инифайлов заключается в том, что эти файлы подерживают переменные разных типов (String, Integer, Boolean). В этих файлах очень удобно хранить различные настройки, например параметры шрифта, цвет фона, какие checkbox'ы выбрал пользователь и многое другое.
Теперь начнем разбираться с этими инифайлами. Для начала создайте новое приложение. Добавьте в секцию uses слово inifiles. Сохраните и откомпилируйте ваше приложение. Теперь сделаем, чтобы при каждом открытии программы форма имела такие размеры, какие установил пользователь последний раз. Для начала нам надо создать объект типа Inifile. Создается он методом Create(Filename:string); причем если в переменной Filename не указан путь к фалу, то он создаться в директории Windows, что не очень-то удобно. Поэтому мы создадим этот файл в директории нашей программы. Напишем это в обработчик события OnDestroy для формы:
Если файл с таким именем существует, то он откроется для чтения, а если нет - то он будет создан. Это очень удобно, так как не надо обрабатывать возможные исключительные ситуации, которые могут возникнуть при обращении к файлу.
Вот файл MyIni.ini после завершения работы программы (у вас естественно значения будут другими):
Теперь подробно разберемся как записывать информацию в инифайлы:
После того, как вы создали инифайл, в него можно записывать три вида переменных: Integer, String, Boolean, это осуществляется соответствующими процедурами: WriteInteger, WriteString, WriteBool. У всех этих процедур одинаковые параметры. В общем объявление этих процедур выглядит так:
Здесь Section -это имя секции, куда будут помещены параметры и значения. В файле имена секций заключены в квадратные скобки. Обычно в секции объединяют схожие параметры.
Ident - это название параметра, которому будет присваиваться какое-нибудь значение.
Value - это собственно значение, которое будет присвоено параметру. В файле оно стоит после знака равно.
Теперь напишем обработчик события OnCreate для формы, в котором будем считывать значения из файла и изменять размеры формы в соответствии с полученными значениями. Код должен иметь такой вид:
В этом коде все просто: открыли файл, прочитали из соответствующих секций необходимые параметры и присвоили их форме. Чтение значений из инифайла по сути ничем не отличается от записи в них. Указываете секцию, где хранится необходимый параметр, указываете параметр и читаете его значение. Как вы видите все просто!
Теперь я отвечу еще на один вопрос, который может появиться - почему не обычные текстовые файлы и не реестр? Отвечаю: из текстового файла очень сложно получить и обработать необходимую информацию. Многие рекомендуют для Win95/98/2000/Me, короче для всех 32-разрядных ОС использовать именно реестр, но лично я считаю, что инифайлы удобнее, так как при при переносе программы на другой компьютер, нужно перенести только один инифайл, а во-вторых, если вы что-нибудь в реестре случайно удалите, то может случиться каюк.
В данной статье рассмотрены принципы, помогающие компилятору Delphi генерировать более оптимальный с точки зрения скорости код. Если Вы не хотите вникать в подробности, в конце статьи есть «свод правил», которые рекомендуется соблюдать при написании программ.
Компилятор Delphi относится к разряду оптимизирующих. Но насколько качественно проводится оптимизация? Как «помочь» компилятору создать более быстрый код? Давайте разберемся с этим на экспериментах.
Оптимизация константных выражений
Пример 1:
С точки зрения оптимизации код можно упростить еще на этапе компиляции до
Но написанный выше листинг преобразуется в
С одной стороны компилятор не «сообразил», что значение переменной «a» можно преобразовать в константу и сложить с другой константой (которая, заметим, подставлена именно как константа) на этапе компиляции, с другой стороны был применен весьма хитрый трюк с LEA (об этом ниже). Тем не менее, код
в любом случае быстрее и короче.
Пример 2:
Скомпилированный код будет выглядеть
А ведь значение, присвоенной переменной «а» являлось константой и наш пример можно было бы переписать как:
Пример 3:
После компиляции получаем:
Т.е. компилятор преобразовал код так, как он был написан, а ведь можно было бы просто записать:
Оптимизация алгебраических выражений
Пример 4:
После компиляции эти переменные будут удалены, причем с предупреждением
Пример 5:
Код скомпилируется как есть! Таким образом мы обманули компилятор псевдо использованием переменных. Delphi не исправляет нашей «кривости», поэтому эта задача ложится исключительно на плечи программиста.
Пример 6:
Данный код можно оптимизировать до
И этого Delphi за нас не сделает.
Пример 7:
В данном примере первую строчку можно безболезненно удалить, что Delphi делать умеет.
Пример 8:
В данном случае можно избавится от одной операции умножения, присвоив значение выражения a*b временной переменной. Анализ ассемблерного листинга показывает, что компилятор именно так и поступает. Тем не менее, поменяв второе подвыражение на ((b*a)>0), компилятор принимает выражения за разные и генерирует умножение для обоих случаев, не смотря на то, что результат одинаков.
Оптимизация арифметических операций
Сложение и вычитание
Применение инструкции LEA вместо ADD позволяет производить сумму 3х операндов (двух переменных и одной константы) за один такт. Трюк заключается в том представление ближних указателей эквивалентно их фактическому значению, поэтому результат, возвращенный LEA равен сумме ее операндов. При возможности Delphi производит такую замену.
Деление
Операция деления требует гораздо больше тактов процессора, нежели умножение, поэтому замена деления на умножение может значительно ускорить работу. Существуют формулы, позволяющие выполнять такое преобразование. Тем не менее, Delphi не использует такую оптимизацию. Деление на степень двойки можно заменять сдвигом вправо на n бит, но даже в этом случае получаем следующий код:
Здесь учитывается особенность самой операции div – округление в большую сторону. Поэтому, если можно пренебрегать округлением, используйте c:=a shr 1 вместо с:=a div 2.
Умножение
Умножение на степень двойки можно заменять сдвигами битов. Delphi заменяет умножение сдвигами при умножении на 4,8,16 итд. При умножении на 2 производится суммированием переменной с собой.
Умножать на 3,5,6,7,8,10 и т. д. можно и без операции умножения – расписав выражение по формуле (a shl n)+a, где n – показатель степени двойки. Например, при умножении на 3 n=1. Delphi при возможности прибегает к этому трюку. Заметим, операнд LEA умеет умножать регистр на 2,4,8, что также при возможности используется компилятором. Например, умножение на 3 преобразуется в инструкцию
Оптимизация case of
Анализ скомпилированного кода показывает, что Delphi проводит утрамбовку дерева. Т.е. значения case сортируются и выбор нужного элемента производится при помощи двоичного поиска.
В случае, если элементы case of выстраиваются в арифметической прогрессии, компилятор формирует таблицу переходов. Т.е. создается массив указателей с индексами элементов, поэтому выбор нужно элемента выполняется за одну итерацию независимо от количества элементов.
Оптимизация циклов
Разворачивание циклов – не производится. Разворачивание циклов весьма спорный момент в оптимизации, поэтому принять грамотное решение может только человек. Delphi не производит разворачивания ни больших, ни маленьких циклов.
Слияние циклов – не производится. Если два цикла, следующие друг за другом имеют одинаковые границы итерационной переменной, разумно оба цикла объединить в один.
Вынесение инвариантного кода за пределы цикла – не выносится. Наиболее распространенный недочет – условие цикла записывается как:
Delphi будет при каждой итерации вызывать метод count, вычитать из результата 1 и потом уже сверять. Настоятельно рекомендуется переписывать подобный код как
Весь код VCL написан с нарушением этого правила. Очевидно, что проще подобного рода оптимизацию встроить в компилятор, нежели переписывать VCL :)
Замена циклов с предусловием на циклы с постусловием – производится. Циклы с постусловием имеют главное преимущество над другими видами циклов (с предусловием и с условием в середине) – они содержат всего одно ветвление. Delphi производит такую замену.
Замена инкремента на декремент – не производится. Более того, даже декрементный цикл компилируется в неоптимальный код, т.к. не используется флаг ZF. Вместо этого происходит сравнивание значения регистра с 0.
Удаление ветвлений – не производится.
Вывод:
1. Не используйте переменные для временного хранения констант или обязательно объявляйте «магические» числа как const, либо подставляйте в код непосредственные значения
2. Неиспользуемыми объявлениями и присвоениями можно безболезненно пренебрегать – Delphi умеет их вычищать.
3. Внимательно следите за использованием переменных, в частности лишним присвоениям их значений друг другу. Такого рода оптимизации Delphi делать не умеет.
4. Используйте свернутые математические выражения. (например, (3*a - a) /2 упрощается до a). Delphi не умеет упрощать математические выражения. (Да и что говорить, даже MathCAD не всегда грамотно умеет делать такие преобразования).
5. Не используйте конструкции типа a:=10*sin(45*pi/180); Delphi не вычислит эту константу на этапе компиляции, напротив, будет послушно вызывать sin и pi по ходу выполнения программы! В случае, если угол является переменной, по крайней мере pi можно заменить константой 3,1415...
6. Delphi прекрасно справляется с выражениями, полностью составленных из констант – они вычисляются на этапе компиляции.
7. Внимательно следите за условиями и их границами. Компилятор Delphi не умеет обнаруживать заведомо ложных условий. Также он не умеет удалять заведомо лишние условия. Например, (a>0) and (a<15616) and (a<>0)
8. Если в условии несколько раз проверяется одно и тоже выражение, следите, чтобы оно было выражено во всех конструкциях одинаково. В противном случае скомпилированный код будет не оптимален. Например, if ((a*b)>0) and ((a*b)<1024) then... При перестановке во втором случае b*a смысл выражения не изменится, но код будет иметь уже на одну операцию умножения, а две. Можно временно присвоить проверяемое выражение временной переменной, а затем уже проверять полученное значение.
9. Сообщение «Combining signed and unsigned types – widened both operands» сообщает не только о потенциальной ошибке – также вследствие преобразования мы теряем производительность. Например, z – объявлена как ineteger. условие if z>$abcd6123 then z:= $abcd6123; несмотря на его правильность вызовет данное предупреждение. Сгенерированный код будет, выполнять преобразования величин до 64-х бит, и дальнейшее уже сравнение 64-х битных операндов. Если изменить тип z на cardinal, мы избавимся от предупреждения и получим 3 строки кода, вместо 8 !
10. Delphi умеет оптимизировать сложение, умножение и частично деление. При делении на степень двойки, если не важно округление до большего, рекомендуется пользоваться shr 1 вместо div 2.
11. В case of при возможности используйте элементы, расположенные в арифметической прогрессии. Тем не менее, даже при невыполнении данного условия мы получим качественный код после утрамбовки дерева.
12. Выносите инвариантный код за тело цикла. Наиболее частая ошибка – for i:=1 to length(str) do... Дело в том, что при каждой итерации будет вызываться функция length, что пагубно скажется на производительности. Рекомендуется длину строки заранее присвоить переменной. Также не включайте в тело цикла код, заведомо не зависящий от изменения итерационной переменной.
Сравнивая Delphi с компиляторами Visual C++, WATCOM, Borland C++ (тестирование данных компиляторов приведено в [1]) приходим к выводу, что Delphi по своим оптимизирующим свойствам аналогичен Borland C++ (а кто сомневался? ;) ). Учитывая, что Borland C++ по итогам сравнения оказался последним, делаем несложный вывод. Весьма печален и тот факт, что большинство кода VCL написано с точки зрения «красоты» кода, а не его оптимальности с точки зрения скорости. Например, не соблюдается правило 12.
Каждый абонент (узел) локальной сети должен иметь свой уникальный адрес (идентификатор или MAC-адрес), для того чтобы ему можно было адресовать пакеты. Существуют две основные системы присвоения адресов абонентам сети (точнее, сетевым адаптерам этих абонентов).
Первая система сводится к тому, что при установке сети каждому абоненту пользователь присваивает индивидуальный адрес по порядку, к примеру, от 0 до 30 или от 0 до 254. Присваивание адресов производится программно или с помощью переключателей на плате адаптера. При этом требуемое количество разрядов адреса определяется из неравенства:
2n > Nmax
где n – количество разрядов адреса, а Nmax – максимально возможное количество абонентов в сети. Например, восемь разрядов адреса достаточно для сети из 255 абонентов. Один адрес (обычно 1111....11) отводится для широковещательной передачи, то есть он используется для пакетов, адресованных всем абонентам одновременно.
Именно такой подход применен в известной сети Arcnet. Достоинства данного подхода – малый объем служебной информации в пакете, а также простота аппаратуры адаптера, распознающей адрес пакета. Недостаток – трудоемкость задания адресов и возможность ошибки (например, двум абонентам сети может быть присвоен один и тот же адрес). Контроль уникальности сетевых адресов всех абонентов возлагается на администратора сети.
Второй подход к адресации был разработан международной организацией IEEE, занимающейся стандартизацией сетей. Именно он используется в большинстве сетей и рекомендован для новых разработок. Идея этого подхода состоит в том, чтобы присваивать уникальный сетевой адрес каждому адаптеру сети еще на этапе его изготовления. Если количество возможных адресов будет достаточно большим, то можно быть уверенным, что в любой сети по всему миру никогда не будет абонентов с одинаковыми адресами. Поэтому был выбран 48-битный формат адреса, что соответствует примерно 280 триллионам различных адресов. Понятно, что столько сетевых адаптеров никогда не будет выпущено.
С тем чтобы распределить возможные диапазоны адресов между многочисленными изготовителями сетевых адаптеров, была предложена следующая структура адреса (рис. 4.7):
* Младшие 24 разряда кода адреса называются OUA (Organizationally Unique Address) – организационно уникальный адрес. Именно их присваивает каждый из зарегистрированных производителей сетевых адаптеров. Всего возможно свыше 16 миллионов комбинаций, то есть каждый изготовитель может выпустить 16 миллионов сетевых адаптеров.
* Следующие 22 разряда кода называются OUI (Organizationally Unique Identifier) – организационно уникальный идентификатор. IEEE присваивает один или несколько OUI каждому производителю сетевых адаптеров. Это позволяет исключить совпадения адресов адаптеров от разных производителей. Всего возможно свыше 4 миллионов разных OUI, это означает, что теоретически может быть зарегистрировано 4 миллиона производителей. Вместе OUA и OUI называются UAA (Universally Administered Address) – универсально управляемый адрес или IEEE-адрес.
* Два старших разряда адреса управляющие, они определяют тип адреса, способ интерпретации остальных 46 разрядов. Старший бит I/G (Individual/Group) указывает на тип адреса. Если он установлен в 0, то индивидуальный, если в 1, то групповой (многопунктовый или функциональный). Пакеты с групповым адресом получат все имеющие этот групповой адрес сетевые адаптеры. Причем групповой адрес определяется 46 младшими разрядами. Второй управляющий бит U/L (Universal/Local) называется флажком универсального/местного управления и определяет, как был присвоен адрес данному сетевому адаптеру. Обычно он установлен в 0. Установка бита U/L в 1 означает, что адрес задан не производителем сетевого адаптера, а организацией, использующей данную сеть. Это случается довольно редко.
Структура 48-битного стандартного MAC-адреса
Рис. 4.7. Структура 48-битного стандартного MAC-адреса
Для широковещательной передачи (то есть передачи всем абонентам сети одновременно) применяется специально выделенный сетевой адрес, все 48 битов которого установлены в единицу. Его принимают все абоненты сети независимо от их индивидуальных и групповых адресов.
Данной системы адресов придерживаются такие популярные сети, как Ethernet, Fast Ethernet, Token-Ring, FDDI, 100VG-AnyLAN. Ее недостатки – высокая сложность аппаратуры сетевых адаптеров, а также большая доля служебной информации в передаваемом пакете (адреса источника и приемника вместе требуют уже 96 битов пакета или 12 байт).
Во многих сетевых адаптерах предусмотрен так называемый циркулярный режим. В этом режиме адаптер принимает все пакеты, приходящие к нему, независимо от значения поля адреса приемника. Такой режим используется, например, для проведения диагностики сети, измерения ее производительности, контроля ошибок передачи. При этом один компьютер принимает и контролирует все пакеты, проходящие по сети, но сам ничего не передает. В данном режиме работают сетевые адаптеры мостов и коммутаторы, которые должны обрабатывать перед ретрансляцией все пакеты, приходящие к ним.
Средой передачи информации называются те линии связи (или каналы связи), по которым производится обмен информацией между компьютерами. В подавляющем большинстве компьютерных сетей (особенно локальных) используются проводные или кабельные каналы связи, хотя существуют и беспроводные сети, которые сейчас находят все более широкое применение, особенно в портативных компьютерах.
Информация в локальных сетях чаще всего передается в последовательном коде, то есть бит за битом. Такая передача медленнее и сложнее, чем при использовании параллельного кода. Однако надо учитывать то, что при более быстрой параллельной передаче (по нескольким кабелям одновременно) увеличивается количество соединительных кабелей в число раз, равное количеству разрядов параллельного кода (например, в 8 раз при 8-разрядном коде). Это совсем не мелочь, как может показаться на первый взгляд. При значительных расстояниях между абонентами сети стоимость кабеля вполне сравнима со стоимостью компьютеров и даже может превосходить ее. К тому же проложить один кабель (реже два разнонаправленных) гораздо проще, чем 8, 16 или 32. Значительно дешевле обойдется также поиск повреждений и ремонт кабеля.
Но это еще не все. Передача на большие расстояния при любом типе кабеля требует сложной передающей и приемной аппаратуры, так как при этом необходимо формировать мощный сигнал на передающем конце и детектировать слабый сигнал на приемном конце. При последовательной передаче для этого требуется всего один передатчик и один приемник. При параллельной же количество требуемых передатчиков и приемников возрастает пропорционально разрядности используемого параллельного кода. В связи с этим, даже если разрабатывается сеть незначительной длины (порядка десятка метров) чаще всего выбирают последовательную передачу.
К тому же при параллельной передаче чрезвычайно важно, чтобы длины отдельных кабелей были точно равны друг другу. Иначе в результате прохождения по кабелям разной длины между сигналами на приемном конце образуется временной сдвиг, который может привести к сбоям в работе или даже к полной неработоспособности сети. Например, при скорости передачи 100 Мбит/с и длительности бита 10 нс этот временной сдвиг не должен превышать 5—10 нс. Такую величину сдвига дает разница в длинах кабелей в 1—2 метра. При длине кабеля 1000 метров это составляет 0,1—0,2%.
Надо отметить, что в некоторых высокоскоростных локальных сетях все-таки используют параллельную передачу по 2—4 кабелям, что позволяет при заданной скорости передачи применять более дешевые кабели с меньшей полосой пропускания. Но допустимая длина кабелей при этом не превышает сотни метров. Примером может служить сегмент 100BASE-T4 сети Fast Ethernet.
Промышленностью выпускается огромное количество типов кабелей, например, только одна крупнейшая кабельная компания Belden предлагает более 2000 их наименований. Но все кабели можно разделить на три большие группы:
* электрические (медные) кабели на основе витых пар проводов (twisted pair), которые делятся на экранированные (shielded twisted pair, STP) и неэкранированные (unshielded twisted pair, UTP);
* электрические (медные) коаксиальные кабели (coaxial cable);
* оптоволоконные кабели (fiber optic).
Каждый тип кабеля имеет свои преимущества и недостатки, так что при выборе надо учитывать как особенности решаемой задачи, так и особенности конкретной сети, в том числе и используемую топологию.
Можно выделить следующие основные параметры кабелей, принципиально важные для использования в локальных сетях:
* Полоса пропускания кабеля (частотный диапазон сигналов, пропускаемых кабелем) и затухание сигнала в кабеле. Два этих параметра тесно связаны между собой, так как с ростом частоты сигнала растет затухание сигнала. Надо выбирать кабель, который на заданной частоте сигнала имеет приемлемое затухание. Или же надо выбирать частоту сигнала, на которой затухание еще приемлемо. Затухание измеряется в децибелах и пропорционально длине кабеля.
* Помехозащищенность кабеля и обеспечиваемая им секретность передачи информации. Эти два взаимосвязанных параметра показывают, как кабель взаимодействует с окружающей средой, то есть, как он реагирует на внешние помехи, и насколько просто прослушать информацию, передаваемую по кабелю.
* Скорость распространения сигнала по кабелю или, обратный параметр – задержка сигнала на метр длины кабеля. Этот параметр имеет принципиальное значение при выборе длины сети. Типичные величины скорости распространения сигнала – от 0,6 до 0,8 от скорости распространения света в вакууме. Соответственно типичные величины задержек – от 4 до 5 нс/м.
* Для электрических кабелей очень важна величина волнового сопротивления кабеля. Волновое сопротивление важно учитывать при согласовании кабеля для предотвращения отражения сигнала от концов кабеля. Волновое сопротивление зависит от формы и взаиморасположения проводников, от технологии изготовления и материала диэлектрика кабеля. Типичные значения волнового сопротивления – от 50 до 150 Ом.
В настоящее время действуют следующие стандарты на кабели:
* EIA/TIA 568 (Commercial Building Telecommunications Cabling Standard) – американский;
* ISO/IEC IS 11801 (Generic cabling for customer premises) – международный;
* CENELEC EN 50173 (Generic cabling systems) – европейский.
Эти стандарты описывают практически одинаковые кабельные системы, но отличаются терминологией и нормами на параметры.
Те, кто устанавливают в свой компьютер источники бесперебойного питания, надеются повысить стабильность работы своего электронного монстра, а заодно и продлить ему жизнь за счёт оберегания его от скачков напряжения и работы при ненормальном режиме электроснабжения потребителей. Проще говоря, сегодня установка ИБП является синонимом повышения надёжности и никто не сомневается в том, что UPS принесёт пользу любому компьютеру. В этой маленькой статье я расскажу вам, что это не так, и прежде чем покупать источник бесперебойного питания, надо хорошо подумать, потому что он может не только не добавить стабильности вашей системе, но и наоборот - сделать работу за компьютером невозможной.
Скажу честно: я никогда не считал источник бесперебойного питания необходимой частью компьютера, а потому и не стал бы покупать его, даже если бы и имелись лишние деньги. В питании компьютера я всегда был уверен, как уверен в этом и сейчас. В моём доме напряжение практически всегда составляет 230 В, иногда поднимаясь, или опускаясь. Бывает, что напряжение скачет, это видно по миганию лампочек накаливания, или по стрелке подключённого к розетке вольтметра. Всё это никогда не отражалось ни на работе монитора, ни на работе компьютера, подключенных в розетку, без всевозможных фильтров типа "пилот", и даже без заземления. Конечно, иногда если коснуться корпуса компьютера и батареи, можно почувствовать, как через тебя проходит небольшой ток, но это не смертельно и на работу компьютера пока что никак не повлияло.
Однажды в розетке, питающей компьютер с монитором, напряжение упало почти в два раза - вольт до 120. Дело было днём, поэтому свет в комнате не горел, и определить, что упало напряжение, я смог только по замедлившему ход напольному вентилятору. Его обороты сильно упали, а когда я его выключил, а затем попытался включить, пропеллер остался неподвижен. Компьютер всё это время работал нормально. Прошло несколько минут и я его выключил. Затем включил снова, а он не включается. Тут-то я и понял, что проблема в напряжении. На щитке отключил автоматы, включил заново и напряжение в линии снова составило 230 Вольт, в чём я убедился при помощи вольтметра. Дело было в неисправности щитка, но это так, к слову. Теперь я знаю, что скачки и провалы напряжения, которыми нас так пугают производители фильтров и источников бесперебойного питания, китайскому 250 Ваттному блоку питания не страшны, ровно как и монитору LG Flatron, который тоже сделан не в Штатах. Наверное, поэтому ставить что-то защищающее компьютер по питанию домой я не хотел. Но вот недавно, во время написания очередного обзора в домеотключили электричество и тут же, где-то через секунду включили. Компьютер, естественно, этого не вынес и та часть обзора, которую я не успел сохранить, канула в лету. На личном опыте я знаю, что UPS спас бы меня и я твёрдо решился установить его в компьютер.
Какой фирмы я взял UPS, говорить не буду. Потому что никаких претензий к источнику питания я не имею, и всё, сказанное дальше будет справедливо для подавляющего большинства ИБП. В общем, компьютер был подключен к этому устройству, помогающему мне бороться с недостатками нашего электроснабжения. "Первые ласточки" появились через несколько часов после начала работы компьютера. Дело в том, что UPS действительно защищает от скачков напряжения, но делает это не выравниванием напряжения за счёт регулирования трансформатора, а за счёт переключения в Backup Mode, то есть питания компьютера от аккумуляторов. Естественно, такой способ намного дешевле, а стабилизаторы напряжения в недорогих ИБП не применяются. Дело в том, что когда источник бесперебойного питания почувствовал скачок напряжения, то он переключает компьютер в питание от батареек на некоторое время. Обычно, это несколько секунд. По истечение этого срока, если скачков напряжения, или других аномалий не было, компьютер переключается обратно, на питание от сети. В разных моделях UPS чувствительность разная. Некоторые допускают отклонение напряжения в 10 процентов, другие - в 15. Чувствительность может не совпадать с заявленной, хотя для проверки этого придётся воспользоваться измерительными приборами. Ну да разговор не об этом. Через несколько часов работы в сети начались незначительные скачки и провалы напряжения. Свет не моргал, а вот ИБП переключил компьютер в Backup режим.
Первый период запитки от аккумуляторов длился недолго - около тридцати секунд. После этого датчики источника бесперебойного питания определили, что напряжение в розетке полностью соответствует норме, и компьютер был переключён на питание от розетки, а аккумуляторные батареи стали заряжаться, восполняя частичный разряд. Прошёл час и наступило тёмное время суток, ночь. Ночью число потребителей электроэнергии значительно падает, а нагрузка на сеть сокращается за счёт прекращения работы предприятий, электротранспорта, да и обычные потребители, если они не сидят в интернете, или не работают в ночную смену, просто спят. Поэтому ночью напряжение в розетке чуть повышается. А это значит, что оно уже подходит к тому порогу, при котором источник бесперебойного питания переводит компьютер в работу от батарей аккумуляторов. И уже небольшие скачки могут запросто заставить компьютер работать от запасённой ранее энергии. Вот тут-то и началось самое интересное. UPS снова запищал, сигнализируя о том, что компьютер работает от аккумуляторов. Но на этот раз период такой запитки длился дольше - около трёх минут. UPS был слабеньким, а потому мог продержать системный блок всего несколько минут. Честно говоря, стало немного страшно. Здесь я поясню: ночью очень удобно скачивать различные большие файлы из сети, особенно по обычному модему, учитывая, что качество аналоговых линий хорошо возрастает. Тут как раз подвернулся файл размером с десяток-другой мегабайт на сервере, не поддерживающем докачку (есть ещё такие). Понятное дело, что отключение компьютера заставило бы меня заново загружать систему, устанавливать связь с провайдером и качать файл с начала. Последнее меня не пугало, так как скачено было всего процентов 10.
Шло время. Аккумуляторы источника бесперебойного питания заряжались, а я работал в интернете. И снова знакомый щелчок реле и писк источника бесперебойного питания. Но теперь я понимаю, что батареи истощены и ИБП не протянет и трёх минут. Сохраняя все данные на диск, я смотрю на статус закачки файла. Почти 90 процентов. Очень бы не хотелось качать его снова. Конечно, можно было бы заставить компьютер перейти в Sleep Mode, но винчестер бы не отключился, процессор бы стал потреблять не намного меньше. И толку это бы не дало. Всё, что остаётся - это смотреть на экран, не двигать мышь и надеяться, что напряжение восстановится раньше, чем аккумуляторы сядут. Через минуту UPS извещает, что аккумуляторы близки к разряду. Это значит, что в запасе осталась от силы минута. Самое интересное, это то, что начинаешь понимать безысходность ситуации. Напряжение в розетке есть, и оно даже нормальное, чуть выше, возможно, чем нужно, но компьютер бы от него работал как по маслу. А этот "источник" считает по-другому. И сделать ничего нельзя. Принудительной запитки от розетки в нём не предусмотрено. Переткнуть компьютер в розетку нельзя. А вытаскивание вилки UPS из розетки, а потом подключение её обратно ничего не даёт. UPS не реагирует. Примерно через минуту экран монитора гаснет. Компьютер выключился. Конечно, файл придётся качать с самого начала. Нужно ли описывать мои чувства в этот момент?
Как видно, в моей ситуации установка источника бесперебойного питания не только не повысила стабильность системы, но и наоборот - понизила её. Днём иногда ИБП также болезненно реагирует на аномалии напряжения, переключаясь на аккумуляторы. Поэтому оставлять компьютер без присмотра становится страшно. Ведь я знаю, что блоку питания ATX такие скачки не страшны, а вот UPS - вещь чувствительная, и может неправильно понять наше напряжение. Два-три переключения длительностью в две минуты, и на третьем компьютер не протянет и тридцати секунд. Вам оно надо?
Что делать?
Поэтому, прежде чем покупать источник бесперебойного питания, подумайте, так ли часто у вас отключают электричество? Именно отключают, потому что скачков напряжения вы можете и не замечать. Благо, с частотой, которую не видно даже по первому признаку - морганию света, у нас в России пока что порядок. Если свет отключают редко, прежде чем брать источник бесперебойного питания присмотритесь к напряжению. Не мигают ли лампы накаливания? Можете попросить UPS на некоторое время у друзей, живущих в другом районе. В крайнем случае, договоритесь с продавцом о возврате денег сроком на две недели. Конечно, можно найти UPS со стабилизатором напряжения, который будет стоить дороже. Можно подключить и внешний стабилизатор напряжения. Но есть и другой выход.
В источниках бесперебойного питания предусмотрена регулировка чувствительности. С помощью специальных резисторов можно выбрать нижнее и верхнее значения напряжения, при которых UPS будет срабатывать и переводить компьютер на питание от батарей. Подняв верхний предел Вольт на 10-20, и опустив нижний на столько же, можно добиться того, что ИБП не будет впустую реагировать на незначительные скачки. Лишние 10-20 Вольт компьютеру не повредят, а вот сделать вашу жизнь спокойнее смогут. Обычно, такую операцию над источниками бесперебойного питания проводят те, кто их продаёт. Вполне возможно, что покупая новый UPS, вы уже берёте себе настроенный под наши линии блок, характеристики которого отличаются от заявленных, потому что в сервис-центре фирмы-продавца над этим UPS-ом уже поработали. В случае, если вы берёте ИБП для запитки очень чувствительной к перемене напряжения электроники, вам нужно обязательно узнать, соответствует ли источник заявленным данным. Обычно, если сказать, что в случае, если что не так, то продавец будет нести ответственность за всё, они сами признаются, ковырялись в нём, или нет. Ну а напоследок хочется пожелать вам надёжного электроснабжения и качественных UPS-ов.