Computer Network The Hands

       

Язык программирования C++ для профессионалов

С++ является языком программирования общего назначения. Естественная для него область применения - системное программирование, понимаемое в широком смысле этого слова. Кроме того, С++ успешно используется во многих областях приложения, далеко выходящих за указанные рамки. Реализации С++ теперь есть на всех машинах, начиная с самых скромных микрокомпьютеров - до самых больших супер-ЭВМ, и практически для всех операционных систем. Поэтому книга дает лишь описание собственно языка, не объясняя особенности конкретных реализаций, среды программирования или библиотек.
Читатель найдет в книге много примеров с классами, которые, несмотря на несомненную пользу, можно считать игрушечными. Такой стиль изложения позволяет лучше выделить основные понятия и полезные приемы, тогда как в настоящих, законченных программах они были бы скрыты массой деталей. Для большинства предложенных здесь классов, как то связанные списки, массивы, строки символов, матрицы, графические классы, ассоциативные массивы и т.д., - приводятся версии "со 100% гарантией" надежности и правильности, полученные на основе классов из самых разных коммерческих и некоммерческих программ. Многие из "промышленных" классов и библиотек получились как прямые или косвенные потомки игрушечных классов, приводимых здесь как примеры.

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

Парадигмы программирования
Приведены конструкции языка, которые существенны для каждого из перечисленных стилей программирования. Свойственный С стиль программирования обсуждается в разделах "процедурное программирование и "модульное программирование". Язык С++ - "лучший вариант С". Он лучше поддерживает такой стиль программирования, чем сам С, причем это делается без потери какой-либо общности или эффективности по сравнению с С. В то же время язык C является подмножеством С++.

Область видимости
Описанием определяется область видимости имени. Это значит, что имя может использоваться только в определенной части текста программы. Если имя описано в функции (обычно его называют "локальным именем"), то область видимости имени простирается от точки описания до конца блока, в котором появилось это описание. Если имя не находится в описании функции или класса (его обычно называют "глобальным именем"), то область видимости простирается от точки описания до конца файла, в котором появилось это описание.



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

Связывание
Если явно не определено иначе, то имя, не являющееся локальным для некоторой функции или класса, должно обозначать один и тот же тип, значение, функцию или объект во всех единицах трансляции данной программы. Иными словами, в программе может быть только один нелокальный тип, значение, функция или объект с данным именем.

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

Самоучитель по Computer Network The Hands

У вас дома два компьютера? К одному подключен принтер, и вам приходится бегать с дискетой, чтобы распечатать документ, подготовленный на другом компьютере? Или вы хотите сражаться с друзьями в любимые компьютерные игры? А может быть, вам нужно работать в Интернете, но у вас нет модема, а у ближайшего соседа есть?..
Решение очевидно — ведь сегодня уже никому не нужно объяснять, насколько эффективнее можно использовать имеющиеся в распоряжении компьютеры и периферийные устройства, если объединить оборудование в локальную сеть!

Предисловие
Вы найдете: описание основ организации сети Ethernet с использованием коаксиального кабеля и витой пары; описания и характеристики основных типов кабелей; определение и описание основных типов топологии сети; объяснение принципов настройки и эксплуатации оборудования и программного обеспечения. Кроме того, вы получите множество полезных практических советов по организации и прокладке локальных сетей Ethernet.

Общие сведения о локальных сетях
Непосредственный доступ к Интернету подразумевает использование самого полного спектра услуг глобальной сети. Локальная сеть, имеющая непосредственный доступ, фактически может пользоваться Сетью с высокой скоростью и высокой эффективностью постоянно, то есть круглые сутки и в непрерывном режиме. Как уже упоминалось ранее, Интернет — это сеть, состоящая из множества локальных сетей.

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

Архитектура сетей Ethernet
В рамках этой книги мы рассмотрим локальные сети, созданные с использованием наиболее популярной и распространенной в наши дни технологии — Ethernet. Данная технология появилась в 70-е годы XX века, когда инженер-исследователь из Массачусетского технологического института Билл Меткалф, сотрудничавший также с исследовательским центром компании Xerox в г. Пало-Альто, подготовил докторскую диссертацию, посвященную методикам организации компьютерных коммуникаций.

Оборудование
Настало время побеседовать об оборудовании, используемом при построении локальных сетей. В этой главе мы обсудим технические особенности современных сетевых адаптеров, концентраторов, характеристики кабеля, изучим различные типы разъемов, с помощью которых выполняются соединения элементов локальной сети. А начнем мы, пожалуй, с рассмотрения самого важного компонента любой распределенной вычислительной системы — сетевой карты.

Прокладывание локальной сети
Постепенно мы подошли к одному из наиболее интересных разделов нашего «Самоучителя» — к разделу, посвященному прокладыванию и компоновке локальной сети. В настоящей главе мы рассмотрим два наиболее распространенных класса локальных сетей: 10Base2 и 10BaseT, а также обсудим ряд особенностей их монтажа.

Настройка локальной сети
Поскольку домашние локальные сети создаются обычно на основе двух компьютеров, один из которых, как правило, имеет более старую, а другой -более современную конфигурацию, необходимо рассмотреть принципы настройки локальной сети для нескольких различных операционных систем. И если одна из подключенных к локальной сети машин будет более совершенна по отношению к другой, вполне вероятно, что на ней будет установлена ОС Microsoft Windows XP.

Совместное использование Интернета
Одно из основных преимуществ локальной сети — это возможность совместного использования на всех сетевых компьютерах доступа в Интернет через один из узлов, который оснащен модемом либо подключен ко Всемирной Сети через высокоскоростное соединение, например, соединение ADSL или ISDN. Для этих целей используется специальное программное обеспечение, позволяющее после предварительной настройки обращаться к ресурсам Интернета через единственное подключение

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

Драйверы внешних устройств
Драйвер (driver) представляет собой специализированный программный модуль, управляющий внешним устройством. Слово driver происходит от глагола to drive (вести) и переводится с английского языка как извозчик или шофер: тот, кто ведет транспортное средство. Драйверы обеспечивают единый интерфейс для доступа к различным устройствам, тем самым устраняя зависимость пользовательских программ и ядра ОС от особенностей аппаратуры.

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

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

Глоссарий
1000BaseT (Gigabit Ethernet) - один из классов сетей Ethernet. Обеспечивает скорость передачи данных до 1000 Мбит/с (1 Гбит/с). В архитектуре сетей 1000BaseT используется топология «звезда» на базе высококачественного кабеля «витая пара» категории 5, в котором задействованы все восемь жил, причем каждая из четырех пар проводников используется как для приема, так и для передачи информации.