Практическая информатика

Основы информатики

Разбить на страницы
Показывать лекцию целиком

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

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

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

Информационные процессы

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

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

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

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

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

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

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

    Накопление человечеством опыта и знаний при освоении природы смешалось с освоением информации. Именно этот процесс и привел к образованию инфосферы. Такое понятие, как обработка информации, появилось совсем недавно, но обрабатывать информацию люди начали еще в древние времена.

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

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

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

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

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

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

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

    Технические средства хранения информации

    Основной принцип хранения информации можно сформулировать следующим образом: сохраненная информация всегда имеет форму "следа", оттиска на каком-нибудь носителе.

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

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

    Характерной чертой всех этих типов носителей является необходимость наличия специальных технических устройств как для записи, так и для считывания информации. Это означает возможность механизации и автоматизации процессов записи и чтения информации, делает их независимыми от присутствия человека.

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

    Такие современные материалы, как фотопленка и магнитная лента, способны удовлетворить большинству требований, но они не лишены недостатков. Общеизвестно, что со временем фотоснимки темнеют, прослушивание грампластинок сопровождается потрескиванием, а магнитные записи начинают "шуметь" после многократного проигрывания. Сегодня самый распространенный способ хранения информации - магнитная запись. Но и она может быть испорчена под воздействием температуры или магнита. Для хранения небольших порций информации используют гибкие магнитные диски (floppy disks), на смену которым приходят Zip дискеты. Для хранения больших объемов информации применяют " жесткие " диски (hard disks), иногда называемые винчестерами.

    Со временем объем информации, с которой работал человек и которую ему надо передать другому человеку, возрастал. Это привело к созданию нового типа носителя - лазерного диска.

    Лазерный диск - трехслойный диск, изготовленный из стекла или прочной пластмассы. В нем между двумя тонкими защитными слоями пластмассы (стекла) помещен тонкий слой металлической фольги из серебра или даже из золота. Запись информации на такой диск осуществляется лучом лазера. Но записать информацию на лазерный диск можно всего один раз.

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

    Подробнее об устройствах, предназначенных для хранения информации на ЭВМ, рассказывается в разделе "Периферийные и внутренние устройства".

    Кодирование информации

    Кодирование информации - это процесс формирования определенного представления информации.

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

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

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

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

    Единицы измерения информации

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

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

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

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

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

    Единица измерения информации называется бит (bit) - сокращение от английских слов binary digit, что означает двоичная цифра.

    В компьютерной технике бит соответствует физическому состоянию носителя информации: намагничено - не намагничено, есть отверстие - нет отверстия. При этом одно состояние принято обозначать цифрой 0, а другое - цифрой 1. Выбор одного из двух возможных вариантов позволяет также различать логические истину и ложь. Последовательностью битов можно закодировать текст, изображение, звук или какую-либо другую информацию. Такой метод представления информации называется двоичным кодированием (binary encoding).

    В информатике часто используется величина, называемая байтом (byte) и равная 8 битам. И если бит позволяет выбрать один вариант из двух возможных, то байт, соответственно, 1 из 256 (28). В большинстве современных ЭВМ при кодировании каждому символу соответствует своя последовательность из восьми нулей и единиц, т. е. байт. Соответствие байтов и символов задается с помощью таблицы, в которой для каждого кода указывается свой символ. Так, например, в широко распространенной кодировке Koi8-R буква "М" имеет код 11101101, буква "И" - код 11101001, а пробел - код 00100000.

    Наряду с байтами для измерения количества информации используются более крупные единицы:

    1 Кбайт (один килобайт) = 210 байт = 1024 байта;

    1 Мбайт (один мегабайт) = 210 Кбайт = 1024 Кбайта;

    1 Гбайт (один гигабайт) = 210 Мбайт = 1024 Мбайта.

    Пример. Книга содержит 100 страниц; на каждой странице - 35 строк, в каждой строке - 50 символов. Рассчитаем объем информации, содержащийся в книге.

    Страница содержит 35 x 50 = 1750 байт информации. Объем всей информации в книге (в разных единицах):

    1750 x 100 = 175000 байт.

    175000 / 1024 = 170,8984 Кбайт.

    170,8984 / 1024 = 0,166893 Мбайт.

    Задания

  • Сколько Кб составляет сообщение, содержащее 12288 битов?
  • Письмо занимает 2 страницы по 25 строк. В каждой строке записано по 40 символов. Каков объем информации в письме?
  • Форматы файлов

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

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

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

    Unix оказал очень большое влияние на другие операционные системы персональных компьютеров. Почти все они поддерживают идею Unix о том, что файл - это просто последовательность байтов. Файлы, представляющие собой поток данных, стали использоваться при обмене информацией между компьютерными системами. Если используется более сложная структура файла (как в операционных системах OS/2 и Macintosh), она всегда может быть преобразована в поток байтов, передана и на другом конце канала связи воссоздана в исходном виде.

    Итак, мы можем считать, что файл - это поименованная последовательность байтов.

    Файловая структура представляет собой систему хранения файлов на запоминающем устройстве, например, диске. Файлы организованы в каталоги (иногда называемые директориями или папками). Любой каталог может содержать произвольное число подкаталогов, в каждом из которых могут храниться файлы и другие каталоги.

    Способ, которым данные организованы в файлы, называется форматом файла.

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

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

    Все файлы условно можно разделить на две части - текстовые и двоичные.

    Текстовые файлы - наиболее распространенный тип данных во всем компьютерном мире. Для хранения каждого символа чаще всего отводится один байт, а кодирование текстовых файлов выполняют с помощью специальных таблиц, в которых каждому символу соответствует определенное число, не превышающее 255. Файл, для кодировки которого используется только 127 первых чисел, называется ASCII-файлом (сокращение от American Standard Code for Information Interchange - американский стандартный код для обмена информацией), но в таком файле не могут быть представлены буквы, отличные от латиницы (в том числе и русские). Большинство национальных алфавитов можно закодировать с помощью восьмибитной таблицы. Для русского языка наиболее популярны на данный момент три кодировки: Koi8-R, Windows-1251 и, так называемая, альтернативная (alt) кодировка. Подробнее о кодировании русского текста рассказано в главе "Обработка документов".

    Такие языки, как китайский, содержат значительно больше 256 символов, поэтому для кодирования каждого из них используют несколько байтов. Для экономии места зачастую применяется следующий прием: некоторые символы кодируются с помощью одного байта, в то время как для других используются два или более байтов. Одной из попыток обобщения такого подхода является стандарт Unicode, в котором для кодирования символов используется диапазон чисел от нуля до 65 536. Такой широкий диапазон позволяет представлять в численном виде символы языка людей из любого уголка планеты.

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

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

    Системы счисления

    Разнообразные системы счисления, которые существовали раньше и которые используются в наше время, можно разделить на непозиционные и позиционные. Знаки, используемые при записи чисел, называются цифрами.

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

    I V X L C D M
    1 5 10 50 100 500 1000

    Например, VI = 5 + 1 = 6, а IX = 10 - 1 = 9.

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

    Однако наибольшую ценность для нас имеет индо-арабская десятичная система. Индийцы первыми использовали ноль для указания позиционной значимости величины в строке цифр. Эта система получила название десятичной, так как в ней десять цифр.

    Для того чтобы лучше понять различие позиционной и непозиционной систем счисления, рассмотрим пример сравнения двух чисел. В позиционной системе счисления сравнение двух чисел происходит следующим образом: в рассматриваемых числах слева направо сравниваются цифры, стоящие в одинаковых позициях. Большая цифра соответствует большему значению числа. Например, для чисел 123 и 234, 1 меньше 2, поэтому число 234 больше, чем число 123. В непозиционной системе счисления это правило не действует. Примером этого может служить сравнение двух чисел IX и VI. Несмотря на то, что I меньше, чем V, число IX больше, чем число VI.

    Далее мы будем рассматривать только позиционные системы счисления.

    Основание системы счисления, в которой записано число, обычно обозначается нижним индексом. Например, 5557 - число, записанное в семеричной системе счисления. Если число записано в десятичной системе, то основание, как правило, не указывается. Основание системы - это тоже число, и его мы будем указывать в обычной десятичной системе. Вообще, число x может быть представлено в системе с основанием p, как x=an*pn+an-1*pn-1+ a1*p1+a0*p0, где an...a0 - цифры в представлении данного числа. Так, например,

    103510=1*103+0*102+3*101+5*100;

    10102 = 1*23+0*22+1*21+0*20 = 10.

    Наибольший интерес при работе на ЭВМ представляют системы счисления с основаниями 2, 8 и 16. Вообще говоря, этих систем счисления обычно хватает для полноценной работы как человека, так и вычислительной машины. Однако иногда в силу различных обстоятельств все-таки приходится обращаться к другим системам счисления, например к троичной, семеричной или системе счисления по основанию 32.

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

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

    Часто в информатике используют шестнадцатеричную систему, так как запись чисел в ней значительно короче записи чисел в двоичной системе. Может возникнуть вопрос: почему бы не использовать для записи очень больших чисел систему счисления, например по основанию 50? Для такой системы счисления необходимы 10 обычных цифр плюс 40 знаков, которые соответствовали бы числам от 10 до 49 и вряд ли кому-нибудь понравится работать с этими сорока знаками. Поэтому в реальной жизни системы счисления по основанию, большему 16, практически не используются.

    Двоичная система счисления

    Люди предпочитают десятичную систему, вероятно, потому, что с древних времен считали по пальцам. Но, не всегда и не везде люди пользовались десятичной системой счисления. В Китае, например, долгое время применялась пятеричная система счисления. В ЭВМ используют двоичную систему потому, что она имеет ряд преимуществ перед другими:

  • для ее реализации используются технические элементы с двумя возможными состояниями (есть ток - нет тока, намагничен - ненамагничен);
  • представление информации посредством только двух состояний надежно и помехоустойчиво ;
  • возможно применение аппарата булевой алгебры для выполнения логических преобразований информации;
  • двоичная арифметика проще десятичной (двоичные таблицы сложения и умножения предельно просты).
  • В двоичной системе счисления всего две цифры, называемые двоичными (binary digits). Сокращение этого наименования привело к появлению термина бит, ставшего названием разряда двоичного числа. Веса разрядов в двоичной системе изменяются по степеням двойки. Поскольку вес каждого разряда умножается либо на 0, либо на 1, то в результате значение числа определяется как сумма соответствующих значений степеней двойки. Если какой-либо разряд двоичного числа равен 1, то он называется значащим разрядом. Запись числа в двоичном виде намного длиннее записи в десятичной системе счисления.

    Арифметические действия, выполняемые в двоичной системе, подчиняются тем же правилам, что и в десятичной системе. Только в двоичной системе перенос единиц в старший разряд возникает чаще, чем в десятичной. Вот как выглядит таблица сложения в двоичной системе:

    0 + 0 = 0 0 + 1 = 1
    1 + 0 = 1 1 + 1 = 0 (перенос в старший разряд)

    Таблица умножения для двоичных чисел еще проще:

    0 * 0 = 0 0 * 1 = 0 1 * 0 = 0 1 * 1 = 1

    Рассмотрим подробнее, как происходит процесс умножения двоичных чисел. Пусть надо умножить число 1101 на 101 (оба числа в двоичной системе счисления). Машина делает это следующим образом: она берет число 1101 и, если первый элемент второго множителя равен 1, то она заносит его в сумму. Затем сдвигает число 1101 влево на одну позицию, получая тем самым 11010, и если, второй элемент второго множителя равен единице, то тоже заносит его в сумму. Если элемент второго множителя равен нулю, то сумма не изменяется.

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

    Следует отметить, что большинство калькуляторов, реализованных на ЭВМ (в том числе и KCalc) позволяют осуществлять работу в системах счисления с основаниями 2, 8, 16 и, конечно, 10.

    8-ная и 16-ная системы счисления

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

    Для облегчения восприятия двоичного числа решили разбивать его на группы разрядов, например, по три или четыре разряда. Эта идея оказалась очень удачной, так как последовательность из трех бит имеет 8 комбинаций, а последовательность из 4 бит - 16. Числа 8 и 16 являются степенями двойки, поэтому легко находить соответствие с двоичными числами. Развивая эту идею, пришли к выводу, что группы разрядов можно закодировать, сократив при этом длину последовательности знаков. Для кодировки трех битов требуется восемь цифр, поэтому взяли цифры от 0 до 7 десятичной системы. Для кодировки же четырех битов необходимо шестнадцать знаков; для этого взяли 10 цифр десятичной системы и 6 букв латинского алфавита: A, B, C, D, E, F. Полученные системы, имеющие основания 8 и 16, назвали соответственно восьмеричной и шестнадцатеричной.

    В восьмеричной (octal) системе счисления используются восемь различных цифр 0, 1, 2, 3, 4, 5, 6, 7. Основание системы - 8. При записи отрицательных чисел перед последовательностью цифр ставят знак минус. Сложение, вычитание, умножение и деление чисел, представленных в восьмеричной системе, выполняются весьма просто подобно тому, как это делают в общеизвестной десятичной системе счисления.

    В шестнадцатеричной (hexadecimal) системе счисления применяется десять различных цифр и шесть первых букв латинского алфавита. При записи отрицательных чисел слева от последовательности цифр ставят знак минус. Для того чтобы при написании компьютерных программ отличить числа, записанные в шестнадцатеричной системе, от других, перед числом ставят 0x. То есть 0x11 и 11 - это разные числа. В других случаях можно указать основание системы счисления нижним индексом.

    Шестнадцатеричная система счисления широко используется при задании различных оттенков цвета при кодировании графической информации (модель RGB). Так, в редакторе гипертекста Netscape Composer можно задавать цвета для фона или текста как в десятичной, так и шестнадцатеричной системах счисления.

    Перевод чисел из одной системы счисления в другую

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

    Пусть требуется перевести число 567 из десятичной в двоичную систему. Сначала определим максимальную степень двойки, такую, чтобы два в этой степени было меньше или равно исходному числу. В нашем случае это 9, т. к. 29=512, а 210=1024, что больше начального числа. Таким образом, мы получим число разрядов результата. Оно равно 9+1=10. Поэтому результат будет иметь вид 1ххххххххх, где вместо х могут стоять любые двоичные цифры. Найдем вторую цифру результата. Возведем двойку в степень 9 и вычтем из исходного числа: 567-29=55. Остаток сравним с числом 28=256. Так как 55 меньше 256, то девятый разряд будет нулем, т. е. результат примет вид 10хххххххх. Рассмотрим восьмой разряд. Так как 27=128>55, то и он будет нулевым.

    Седьмой разряд также оказывается нулевым. Искомая двоичная запись числа принимает вид 1000хххххх. 25=32<55, поэтому шестой разряд равен 1 (результат 10001ххххх). Для остатка 55-32=23 справедливо неравенство 24=16<23, что означает равенство единице пятого разряда. Действуя аналогично, получаем в результате число 1000110111. Мы разложили данное число по степеням двойки:

    567=1*29+0*28+0*27+0*26+1*25+1*24+0*23+1*22 +1*21+1*20

    При другом способe перевода чисел используется операция деления в столбик. Рассмотрим то же самое число 567. Разделив его на 2, получим частное 283 и остаток 1. Проведем ту же самую операцию с числом 283. Получим частное 141, остаток 1. Опять делим полученное частное на 2, и так до тех пор, пока частное не станет меньше делителя. Теперь для того, чтобы получить число в двоичной системе счисления, достаточно записать последнее частное, то есть 1, и приписать к нему в обратном порядке все полученные в процессе деления остатки.

    Результат, естественно, не изменился: 567 в двоичной системе счисления записывается как 1000110111.

    Эти два способа применимы при переводе числа из десятичной системы в систему с любым основанием. Для закрепления навыков рассмотрим перевод числа 567 в систему счисления с основанием 16.

    Сначала осуществим разложение данного числа по степеням основания. Искомое число будет состоять из трех цифр, т. к. 162=256 < 567 < 163=4096. Определим цифру старшего разряда. 2*162=512<567<3*162=768, следовательно искомое число имеет вид 2хх, где вместо х могут стоять любые шестнадцатеричные цифры. Остается распределить по следующим разрядам число 55 (567-512). 3*16=48<55<4*16=64, значит во втором разряде находится цифра 3. Последняя цифра равна 7 (55-48). Искомое шестнадцатеричное число равно 237.

    Второй способ состоит в осуществлении последовательного деления в столбик, с единственным отличием в том, что делить надо не на 2, а на 16, и процесс деления заканчивается, когда частное становится строго меньше 16.

    Конечно, не надо забывать и о том, что для записи числа в шестнадцатеричной системе счисления, необходимо заменить 10 на A, 11 на B и так далее.

    Операция перевода в десятичную систему выглядит гораздо проще, так как любое десятичное число можно представить в виде x = a0*pn + a1*pn-1 + ... + an-1*p1 + an*p0, где a0 ... an - это цифры данного числа в системе счисления с основанием p.

    Пример. Переведем число 4A3F в десятичную систему. По определению, 4A3F= 4*163+A*162+3*16+F. Заменив A на 10, а F на 15, получим 4*163+10*162+3*16+15= 19007.

    Пожалуй, проще всего осуществляется перевод чисел из двоичной системы в системы с основанием, равным степеням двойки (8 и 16), и наоборот. Для того чтобы целое двоичное число записать в системе счисления с основанием 2n, нужно

  • данное двоичное число разбить справа налево на группы по n-цифр в каждой;
  • если в последней левой группе окажется меньше n разрядов, то дополнить ее нулями до нужного числа разрядов;
  • рассмотреть каждую группу, как n-разрядное двоичное число, и заменить ее соответствующей цифрой в системе счисления с основанием 2n.
  • Двоично-шестнадцатеричная таблица
    2-ная 0000 0001 0010 0011 0100 0101 0110 0111
    16-ная 0 1 2 3 4 5 6 7
    2-ная 1000 1001 1010 1011 1100 1101 1110 1111
    16-ная 8 9 A B C D E F
    Двоично-восьмеричная таблица
    2-ная 000 001 010 011 100 101 110 111
    8-ная 0 1 2 3 4 5 6 7

    Задания

  • Переведите в десятичную систему счисления:

    а) 100011102; б) 123458; в) AA02D34B16.

  • Сравните два числа:

    а) 10268 и 21616; б) 111112 и 111113.

  • Примеры двоичного кодирования информации

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

    Кодирование чисел

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

    Множество целых чисел, представимых в памяти ЭВМ, ограничено. Диапазон значений зависит от размера области памяти, используемой для размещения чисел. В k-разрядной ячейке может храниться 2k различных значений целых чисел.

    Чтобы получить внутреннее представление целого положительного числа N, хранящегося в k-разрядном машинном слове, необходимо:

  • перевести число N в двоичную систему счисления;
  • полученный результат дополнить слева незначащими нулями до k разрядов.
  • Пример. Получить внутреннее представление целого числа 1607 в 2-х байтовой ячейке.

    Переведем число в двоичную систему: 160710 = 110010001112. Внутреннее представление этого числа в ячейке будет следующим: 0000 0110 0100 0111.

    Для записи внутреннего представления целого отрицательного числа (-N) необходимо:

  • получить внутреннее представление положительного числа N;
  • обратный код этого числа заменой 0 на 1 и 1 на 0;
  • полученному числу прибавить 1.
  • Пример. Получим внутреннее представление целого отрицательного числа -1607. Воспользуемся результатом предыдущего примера и запишем внутреннее представление положительного числа 1607: 0000 0110 0100 0111. Инвертированием получим обратный код: 1111 1001 1011 1000. Добавим единицу: 1111 1001 1011 1001 - это и есть внутреннее двоичное представление числа -1607.

    Формат с плавающей точкой использует представление вещественного числа R в виде произведения мантиссы m на основание системы счисления n в некоторой целой степени p, которую называют порядком: R = m * n p.

    Представление числа в форме с плавающей точкой неоднозначно. Например, справедливы следующие равенства:

    12.345 = 0.0012345 x 104 = 1234.5 x 10-2 = 0.12345 x 102

    Чаще всего в ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в таком представлении должна удовлетворять условию: 0.1p <= m < 1p. Иначе говоря, мантисса меньше 1 и первая значащая цифра - не ноль (p - основание системы счисления).

    В памяти компьютера мантисса представляется как целое число, содержащее только значащие цифры (0 целых и запятая не хранятся), так для числа 12.345 в ячейке памяти, отведенной для хранения мантиссы, будет сохранено число 12345. Для однозначного восстановления исходного числа остается сохранить только его порядок, в данном примере - это 2.

    Кодирование текста

    Множество символов, используемых при записи текста, называется алфавитом. Количество символов в алфавите называется его мощностью.

    Для представления текстовой информации в компьютере чаще всего используется алфавит мощностью 256 символов. Один символ из такого алфавита несет 8 бит информации, т. к. 28 = 256. Но 8 бит составляют один байт, следовательно, двоичный код каждого символа занимает 1 байт памяти ЭВМ.

    Все символы такого алфавита пронумерованы от 0 до 255, а каждому номеру соответствует 8-разрядный двоичный код от 00000000 до 11111111. Этот код является порядковым номером символа в двоичной системе счисления.

    Для разных типов ЭВМ и операционных систем используются различные таблицы кодировки, отличающиеся порядком размещения символов алфавита в кодовой таблице. Международным стандартом на персональных компьютерах является уже упоминавшаяся таблица кодировки ASCII.

    Принцип последовательного кодирования алфавита заключается в том, что в кодовой таблице ASCII латинские буквы (прописные и строчные) располагаются в алфавитном порядке. Расположение цифр также упорядочено по возрастанию значений.

    Стандартными в этой таблице являются только первые 128 символов, т. е. символы с номерами от нуля (двоичный код 00000000) до 127 (01111111). Сюда входят буквы латинского алфавита, цифры, знаки препинания, скобки и некоторые другие символы. Остальные 128 кодов, начиная со 128 (двоичный код 10000000) и кончая 255 (11111111), используются для кодировки букв национальных алфавитов, символов псевдографики и научных символов. О кодировании символов русского алфавита рассказывается в главе "Обработка документов".

    Кодирование графической информации

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

    Растровые изображения представляют собой однослойную сетку точек, называемых пикселами (pixel, от англ. picture element). Код пиксела содержит информацию о его цвете.

    Для черно-белого изображения (без полутонов) пиксел может принимать только два значения: белый и черный (светится - не светится), а для его кодирования достаточно одного бита памяти: 1 - белый, 0 - черный.

    Пиксел на цветном дисплее может иметь различную окраску, поэтому одного бита на пиксел недостаточно. Для кодирования 4-цветного изображения требуются два бита на пиксел, поскольку два бита могут принимать 4 различных состояния. Может использоваться, например, такой вариант кодировки цветов: 00 - черный, 10 - зеленый, 01 - красный, 11 - коричневый.

    На RGB-мониторах все разнообразие цветов получается сочетанием базовых цветов - красного (Red), зеленого (Green), синего (Blue), из которых можно получить 8 основных комбинаций:

    R G B цвет
    0 0 0 черный
    0 0 1 синий
    0 1 0 зеленый
    0 1 1 голубой

    R G B цвет
    1 0 0 красный
    1 0 1 розовый
    1 1 0 коричневый
    1 1 1 белый

    Разумеется, если иметь возможность управлять интенсивностью (яркостью) свечения базовых цветов, то количество различных вариантов их сочетаний, порождающих разнообразные оттенки, увеличивается. Количество различных цветов - К и количество битов для их кодировки - N связаны между собой простой формулой: 2N = К.

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

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

    Кодирование звука

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

    Поступим следующим образом. Будем измерять напряжение через равные промежутки времени и записывать полученные значения в память компьютера. Этот процесс называется дискретизацией (или оцифровкой), а устройство, выполняющее его - аналого-цифровым преобразователем (АЦП).

    Для того чтобы воспроизвести закодированный таким образом звук, нужно выполнить обратное преобразование (для него служит цифро-аналоговый преобразователь - ЦАП), а затем сгладить получившийся ступенчатый сигнал.

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

    Описанный способ кодирования звуковой информации достаточно универсален, он позволяет представить любой звук и преобразовывать его самыми разными способами. Но бывают случаи, когда выгодней действовать по-иному.

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

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

    Заметим, что существуют и другие, чисто компьютерные, форматы записи музыки. Среди них следует отметить формат MP3, позволяющий с очень большим качеством и степенью сжатия кодировать музыку. При этом вместо 18-20 музыкальных композиций на стандартный компакт-диск (CDROM) помещается около 200. Одна песня занимает примерно 3,5 Mb, что позволяет пользователям сети Интернет легко обмениваться музыкальными композициями.

    Компьютер - универсальная информационная машина

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

    История развития ЭВМ

    Всякая новая техника создается, когда возникает большая общественная потребность в ней. К середине нашего века научно-технический прогресс привел к необходимости облегчить труд ученых и инженеров, ускорить выполнение громоздких расчетов и повысить их точность. Автоматизация вычислений, создание мощного, быстродействующего и точного электронного арифмометра - вот о чем думали специалисты - творцы первых ЭВМ. Никто в те далекие теперь годы и не помышлял о будущем информационном перевороте; решалась скромная, на первый взгляд чисто техническая задача. Да и возможности первых образцов вычислительных машин оказались небольшими.

    Еще в годы второй мировой войны в США была собрана из обычных электромагнитных реле, которых тогда были тысячи на любой телефонной станции, вычислительная машина "Марк-1". Считала она в привычной десятичной системе счисления - телефонные реле имели как раз десять позиций своих контактов. Работала машина неторопливо - пока реле отщелкают свое, можно было вручную все посчитать. Поэтому вскоре после войны появились машины на электронных лампах: в США - ENIAC, а в СССР - МЭСМ (малая электронно-счетная машина), которую создал коллектив под руководством С.А. Лебедева. Ламповые ЭВМ уже оказались в состоянии выполнять сотни и тысячи арифметических или логических операций за одну секунду. Они могли обеспечить высокую точность вычислений. Человек уже не мог соперничать с такой машиной.

    Жизнь первого поколения ЭВМ оказалась короткой - около десяти лет. Электронные лампы грелись, потребляли много электроэнергии, были громоздки (так, например, машина ENIAC весила 30 тонн, имела 18 тысяч электронных ламп и потребляла 150 киловатт). И что еще хуже - часто выходили из строя. Над компьютерщиками продолжали посмеиваться: чтобы сложить, скажем, два числа, требовалось написать программу из многих машинных команд. Например, такую: "Ввести в машину первое слагаемое; ввести второе; переслать из памяти первое слагаемое в арифметическое устройство (arithmetic unit); переслать в арифметическое устройство второе слагаемое и вычислить сумму; переслать результат в память; вывести это число из памяти машины и напечатать его". Каждую команду и оба слагаемых "набивали" на перфокарты и только потом вводили колоду перфокарт в компьютер и ждали, когда протарахтит печатающее устройство (printing device) и на выползающей из него бумажной ленте будет виден результат - искомая сумма.

    В конце пятидесятых - начале шестидесятых годов на смену электронной лампе пришел компактный и экономичный прибор - транзистор (transistor). Компьютеры сразу стали производительнее и компактнее, уменьшилось потребление электроэнергии. ЭВМ второго поколения "научились" программировать сами для себя. Появились системы автоматизации программирования, состоящие из алгоритмических языков (algorithmic language) и трансляторов (translator) для них. Теперь пользователь изучал язык ЭВМ, приближенный к языку научных, инженерных или экономических расчетов. Например, Фортран или Алгол-60.

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

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

    Развитие микроэлектроники позволило создать и освоить технологию интегральных схем с особо большой плотностью компоновки. На одном кристалле размером меньше ногтя стали размещать не десятки и сотни, а десятки тысяч транзисторов и других элементов. Большие интегральные схемы (very large scale integration) составили техническую основу, элементную базу ЭВМ четвертого поколения. Их производительность возросла фантастически - до сотен миллионов операций в секунду.

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

    ЭВМ третьего-четвертого поколения стали многоязычными и многопрограммными: они получили возможность вести диалог со многими пользователями одновременно и решать задачи, запрограммированные на разных языках.

    Основное направление в развитии современных компьютеров (пятого и шестого поколения) - разработка машины, более похожей на человека по способам ввода и хранения информации и методам решения задач. Различные области информатики занимаются изучением этих проблем - задач искусственного интеллекта (artificial intelligence), экспертных систем (expert systems) и представления информации (information presentation).

    Типы и назначение компьютеров

    Существование различных типов компьютеров определяется различием задач, для решения которых они предназначены. С течением времени появляются новые типы задач, что приводит к появлению новых типов компьютеров. Поэтому приведенное ниже деление очень условно.

    Различают:

  • суперкомпьютеры;
  • специализированные компьютеры-серверы;
  • встроенные компьютеры-невидимки (микропроцессоры);
  • персональные компьютеры.
  • Для выполнения изначального назначения компьютеров - вычислений - на рубеже 60-70 годов были созданы специализированные ЭВМ, так называемые суперкомпьютеры.

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

    Одной из ведущих компаний мира в производстве суперкомпьютеров является компания Cray Research. Ее основатель, человек-легенда Сеймур Крей, уже в середине 70-х годов построил компьютер Cray-1, который поражал мир своим быстродействием: десятки и даже сотни миллионов арифметических операций в секунду.

    Как известно, скорость распространения любого сигнала не превышает скорости света в вакууме - 300 тысяч километров в секунду, или 300 миллионов метров в секунду. Если компьютер выполняет 300 миллионов операций в секунду, то за время выполнения одной операции сигнал успевает пройти не более одного метра. Отсюда следует, что расстояние между частями суперкомпьютера, выполняющими одну операцию, не может превосходить нескольких десятков сантиметров. И действительно, суперкомпьютеры компании Cray были очень компактны и выглядели как "бублик" диаметром менее двух метров. Этот "бублик" занимался только вычислениями. Для общения с человеком и доставки данных для вычислений к "бублику" были подключены несколько достаточно производительных обычных компьютеров.

    Компьютер, работающий в локальной или глобальной сети, может специализироваться на оказании информационных услуг другим компьютерам, на обслуживании других компьютеров. Такой компьютер называется сервером от английского слова serve (в переводе - обслуживать, управлять). В локальной сети один из компьютеров может выполнять функции файлового сервера, т. е. использоваться для долговременного хранения файлов.

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

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

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

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

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

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

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

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

    Магистрально-модульный принцип построения компьютера

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

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

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

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

    Разрядность шины данных задается разрядностью процессора, т. е. количеством двоичных разрядов, которые процессор обрабатывает за один такт.

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

    Выбор абонента по обмену данными производит процессор, который формирует код адреса данного устройства, а для ОЗУ - код адреса ячейки памяти. Код адреса передается по адресной шине, причем сигналы передаются в одном направлении, от процессора к устройствам, т. е. эта шина является однонаправленной.

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

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

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

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

    Разработка нового в области ПК всегда базируется на старых стандартах и принципах. Поэтому знание их является основополагающим фактором для (или против) выбора новой системы.

    В состав ЭВМ входят следующие компоненты:

  • центральный процессор (CPU);
  • оперативная память (memory);
  • устройства хранения информации (storage devices);
  • устройства ввода (input devices);
  • устройства вывода (output devices);
  • устройства связи (communication devices).
  • Во всех вычислительных машинах до середины 50-х годов устройства обработки и управления представляли собой отдельные блоки, и только с появлением компьютеров, построенных на транзисторах, удалось объединить их в один блок, названный процессором.

    Процессор - это мозг ЭВМ. Он контролирует действия всех остальных устройств (devices) компьютера и координирует выполнение программ. Процессор имеет свою внутреннюю память, называемую регистрами, управляющее и арифметико-логическое устройства.

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

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

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

    Существует два типа оперативной памяти - память с произвольным доступом (RAM или random access memory) и память, доступная только на чтение (ROM или read only memory). Процессор ЭВМ может обмениваться данными с оперативной памятью с очень высокой скоростью, на несколько порядков превышающей скорость доступа к другим носителям информации, например дискам.

    Оперативная память с произвольным доступом (RAM) служит для размещения программ, данных и промежуточных результатов вычислений в процессе работы компьютера. Данные могут выбираться из памяти в произвольном порядке, а не строго последовательно, как это имеет место, например, при работе с магнитной лентой. Память, доступная только на чтение (ROM) используется для постоянного размещения определенных программ (например, программы начальной загрузки ЭВМ). В процессе работы компьютера содержимое этой памяти не может быть изменено.

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

    В настоящее время отдельные микросхемы памяти не устанавливаются на материнскую плату. Они объединяются в специальных печатных платах, образуя вместе с некоторыми дополнительными элементами модули памяти (SIMM- и DIMM-модули).

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

    Винчестеры (hard discs)

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

    Емкость диска современного персонального компьютера составляет десятки гигабайт. В одной ЭВМ может быть установлено несколько винчестеров.

    Оптические диски (cdroms)

    Лазерные диски, как их еще называют, имеют емкость около 600 мегабайт и обеспечивают только считывание записанной на них однажды информации в режиме произвольного доступа. Скорость считывания информации определяется устройством, в которое вставляется компакт-диск (cdrom drive).

    Магнито-оптические диски

    В отличие от оптических дисков магнито-оптические диски позволяют не только читать, но и записывать информацию.

    Флоппи диски (floppy discs)

    В основе этих устройств хранения лежит гибкий магнитный диск, помещенный в твердую оболочку. Для того чтобы прочитать информацию, хранящуюся на дискете, ее необходимо вставить в дисковод (floppy disc drive) компьютера. Емкость современных дискет всего 1.44 мегабайта. По способу доступа дискета подобна винчестеру.

    Zip and Jaz Iomega discs

    Это относительно новые носители информации, которые призваны заменить гибкие магнитные диски. Их можно рассматривать, как быстрые и большие по емкости (100 мегабайт - Zip, 1 гигабайт - Jaz) дискеты.

    Магнитные ленты (magnetic tapes)

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

    Устройства ввода передают информацию в ЭВМ от различных внешних источников. Информация может быть представлена в весьма различных формах: текст - для клавиатуры (keyboard), звук - для микрофона (microphone), изображение - для сканера (scanner).

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

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

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

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

    Мышь не позволяет вводить числовую и буквенную информацию, но удобна для работы с графическими объектами, изображенными на экране.

    Сканер - устройство ввода графической информации. Его особенность - способность считывать изображение непосредственно с листа бумаги.

    Принцип действия сканера напоминает работу человеческого глаза. Освещенный специальным источником света, находящимся в самом сканере, лист бумаги с текстом или рисунком "осматривается" микроскопическим "электронным глазом". Диаметр участка изображения, воспринимаемого таким "глазом", составляет 1/20 миллиметра и соответствует диаметру человеческого волоса. Яркость считываемой в данный момент точки изображения кодируется двоичным числом и передается в компьютер. Для того чтобы осмотреть стандартный лист бумаги, "электронному глазу" приходится строку за строкой обходить его, передавая закодированную информацию об освещенности каждой точки изображения в компьютер.

    Монитор - устройство вывода на экран текстовой и графической информации. Мониторы бывают цветными и монохромными. Они могут работать в одном из двух режимов: текстовом или графическом.

    В текстовом режиме экран монитора условно разбивается на отдельные участки - знакоместа, чаще всего на 25 строк по 80 символов (знакомест). В каждое знакоместо может быть выведен один из 256 заранее определенных символов. В число этих символов входят большие и малые латинские буквы, цифры, определенные символы, а также псевдографические символы, используемые для вывода на экран таблиц и диаграмм, построения рамок вокруг участков экрана и так далее. В число символов, изображаемых на экране в текстовом режиме, могут входить и символы кириллицы.

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

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

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

    Принтер - устройство для вывода результатов работы компьютера на бумагу. Само название произошло от английского слова printer, означающего "печатник" (печатающий).

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

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

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

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

    Существуют как черно-белые, так и цветные струйные принтеры. Последние, кроме головки с черными чернилами, имеют еще печатную головку с чернилами трех цветов.

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

    Устройства связи необходимы для организации взаимодействия отдельных компьютеров между собой, доступа к удаленным принтерам и подключения локальных сетей к общемировой сети Интернет. Примерами таких устройств являются сетевые карты (ethernet cards) и модемы (modems). Скорость передачи данных устройствами связи измеряется в битах в секунду (а также в кбит/с и мбит/с). Модем, используемый для подключения домашнего компьютера к сети Интернет, обычно обеспечивает пропускную способность до 56 кбит/c, а сетевая карта - до 100 мбит/с.

    Программный принцип управления компьютером

    В XIX веке английским математиком и инженером Чарльзом Бэббиджем был разработан проект вычислительной машины, которая предназначалась для автоматического проведения длинных цепочек вычислений. Конструкция его аналитической машины включала 50 тысяч деталей: зубчатых колес, рычагов и пружин, взаимодействовавших определенным образом. Совершенствуя и уточняя конструкцию машины, Бэббидж первым смог выделить необходимые для ее работы части:

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

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

    Главной особенностью конструкции этой машины является программный принцип работы.

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

  • программа вычислений вводится в память ЭВМ и хранится в ней наравне с исходными числами;
  • команды, составляющие программу, представлены в числовом коде по форме ничем не отличающемся от чисел.
  • Компьютерные вирусы

    Как уже отмечалось, компьютер работает исключительно под управлением программ (программного обеспечения). Это делает его по-настоящему универсальным устройством, которое может выполнять роль музыкального центра, телевизора, пишущей машинки и т. д. Программы пишут программисты и у некоторых из них появляется желание придумать что-то эдакое. Иногда это - невинные шалости, в других случаях они имеют явную зловещую направленность. До тех пор, пока человек, сидящий за компьютером, мог контролировать работу всех программ и знал, что и зачем он запустил, все было нормально. Но потом появились программы, которые, не спрашивая ничьего разрешения, запускались, копировались в разные места диска и "заражали" другие программы (заменяли часть полезного кода рабочей программы своим или изменяли его). С этого момента и нужно начинать разговор о "компьютерных вирусах".

    Отдельно хочется подчеркнуть, что практически все вирусы функционируют в операционных системах семейства MS Windows и в MS DOS.

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

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

    Заражается компьютер "снаружи", когда человек запускает на исполнение некую программу, которая либо заражена вирусом (т. е. при ее выполнении запускается и вирус), либо сама является вирусом.

    Поведение вирусов разнообразно. Некоторые вирусы просто "осыпали" буквы с монитора или рисовали безобидные рисунки. Такие считаются наиболее безвредными. Другие могут переименовывать файлы на диске, стирать их. Эти, без сомнения, гораздо опаснее. А вирус "Win95.CIH" может испортить микросхему BIOS компьютера. Трудно сказать, что хуже - потеря информации или выход из строя компьютера.

    И, наконец, вирус размножается, то есть дописывает себя везде, где он имеет шанс выполниться.

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

    Появились вирусы, использующие возможности внутреннего языка программ серии Microsoft Office. Они содержатся в файлах, подготовленных в редакторе Word или в электронных таблицах Excel. Для заражения компьютера достаточно открыть такой документ.

    Так как все больше людей использует Интернет, то последний все чаще становится рассадником заразы. Теперь достаточно зайти на некий сайт и нажать на кнопку формы, чтобы заполучить какой-нибудь вирус.

    В последнее время широко распространился вид почтовых вирусов, играющих на любопытстве людей. Например, вам приходит письмо с признанием в любви и приложенными фотографиями. Первое движение - посмотреть содержимое письма. И как результат, - все фотографии и музыка на вашей машине пропали, а вместо них - злобный вирус "I Love You" (или подобный ему). Кроме того, он еще и пошлет себя всем, кто записан в вашей адресной книге.

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

    Методы борьбы с вирусами и троянцами описаны во многих местах. К сожалению, единственный действенный метод - не включать компьютер вовсе. Можно еще посоветовать ничего не устанавливать и ничего не запускать. Только тогда какой смысл иметь компьютер?

    Поэтому широко используются антивирусы - программы, призванные обнаруживать и удалять известные им "нехорошие программы". Наиболее представительными являются DrWeb, Antiviral Toolkit Pro (AVP), ADInf. При использовании таких программ главное - постоянное обновление антивирусных баз.

    И все-таки очень важно не запускать неизвестно что. Или установить антивирусный монитор (который отличается от антивирусного сканера, занимающегося тотальной проверкой файлов). Когда вы запускаете тот же DrWeb на проверку дисков - это антивирусный сканер. А в комплекте с ним идет некий Spider - вот это антивирусный монитор.

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

    Основные признаки появления в системе вируса:

  • замедление работы некоторых программ;
  • увеличение размеров файлов (особенно выполняемых), хотя это достаточно сложно заметить (попробуйте Adinf);
  • появление не существовавших ранее "странных" файлов, особенно в каталоге Windows или корневом;
  • уменьшение объема доступной оперативной памяти;
  • внезапно возникающие разнообразные видео и звуковые эффекты;
  • заметное снижение скорости работы в Интернете (вирус или троянец могут передавать информацию по сети);
  • жалобы от друзей (или провайдера) о том, что к ним приходят всякие непонятные письма - вирусы любят рассылать себя по почте.
  • В операционной системе Linux вирусы были выявлены только в лабораторных условиях. Несмотря на то, что некоторые образцы Linix-вирусов действительно обладали всеми необходимыми способностями к размножению и автономной жизни, ни один из них так и не был зафиксирован в "диком" виде.

    Использование ОС Linux защищает от вирусов гораздо лучше, чем любые антивирусные программы в MS Windows.

    Правовая охрана программ и GPL

    Говоря о создании и распространении программного обеспечения, следует отметить две основных стратегии, применяемых в этой области. Одна - стратегия copyright, подразумевающая оплату при покупке каждой копии программного продукта и запрет на распространения этих копий. В законодательствах многих стран имеются законы, охраняющие авторское право на программные продукты и данные. Наиболее известен Digital Millennium Copyright Act (DMCA), принятый правительством США, хотя многие считают, что он уже стал орудием торможения развития компьютерной среды.

    Но, программирование - это такая же наука, как и химия, физика, математика. Все достижения в этих областях обнародованы. Не нужно открывать еще раз теорему Пифагора и изобретать заново колесо. Если человек живет в обществе, то все его открытия должны стать достоянием этого общества, ведь именно так происходит прогресс. То же можно сказать и о программном обеспечении. Развитие программного обеспечения невозможно, если мы не можем разделить свои достижения с другими специалистами, чтобы они продолжили наше дело, чтобы развивали и исходили уже из того, что развили другие. Эта точка зрения отражена в лицензии GPL, в соответствии с которой разрабатывалась и развивалась ОС Linux. Говоря о такой стратегии часто используют термин copyleft. Свободное программное обеспечение часто более надежно, чем несвободное.

    В семидесятых годах 20 века программное обеспечение зачастую разрабатывалось свободными объединениями программистов и бесплатно передавалось другим нуждающимся в нем пользователям. Нередко этим занимались даже крупные фирмы. К 1983 году положение изменилось - наступила эра персональных компьютеров, коммерческие программы и операционные системы (в частности, DOS от Microsoft) начали свое победное шествие по миру. Чуть позже идея коммерциализации проникла и в мир "больших" машин и "серьезного" программирования. Ричард Столлмен, один из основателей Unix, основал проект GNU (www.gnu.org), целью которого было вернуть прежние взаимоотношения производителей и потребителей программного обеспечения. GNU (расшифровывается как "GNU is not Unix") - не Unix, потому что GNU не ограничивает свободу.

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

    сколько угодно копировать, как угодно широко ее распространять ;

    изменять или совершенствовать ее исходный код (программа, распространяемая по "публичной лицензии" GNU, всегда поставляется вместе с исходным кодом разработчика - этой самой строго охраняемой и никогда не раскрываемой частью коммерческих программ);

    и, наконец, свободно распоряжаться измененной версией - хоть раздавать ее даром, хоть запрашивать за нее миллиард.

    Только на одну вещь пользователь такого программного обеспечения не имеет права ни в коем случае. Он не может при дальнейшем распространении скрыть исходный код программы, объявив себя его "владельцем", и остановить таким образом ее, программы, свободное совершенствование и развитие. Специально для таких программ проект GNU ввел в обиход понятие copyleft (в отличие от copyright, когда создатель продукта сохраняет на него практически все авторские и имущественные права при любых обстоятельствах - даже если и распространяет его совершенно бесплатно).

    Итак, свобода программного обеспечения состоит из

  • свободы читать (изучать) код;
  • свободы писать (модифицировать) код;
  • свободы распространять (публиковать, тиражировать) код.
  • Очевидно, что проблемы пиратства в случае со свободными программами просто не существует.

    Страницы:

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

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

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

    Информационные процессы

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

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

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

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

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

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

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

    Накопление человечеством опыта и знаний при освоении природы смешалось с освоением информации. Именно этот процесс и привел к образованию инфосферы. Такое понятие, как обработка информации, появилось совсем недавно, но обрабатывать информацию люди начали еще в древние времена.

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

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

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

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

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

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

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

    Технические средства хранения информации

    Основной принцип хранения информации можно сформулировать следующим образом: сохраненная информация всегда имеет форму "следа", оттиска на каком-нибудь носителе.

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

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

    Характерной чертой всех этих типов носителей является необходимость наличия специальных технических устройств как для записи, так и для считывания информации. Это означает возможность механизации и автоматизации процессов записи и чтения информации, делает их независимыми от присутствия человека.

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

    Такие современные материалы, как фотопленка и магнитная лента, способны удовлетворить большинству требований, но они не лишены недостатков. Общеизвестно, что со временем фотоснимки темнеют, прослушивание грампластинок сопровождается потрескиванием, а магнитные записи начинают "шуметь" после многократного проигрывания. Сегодня самый распространенный способ хранения информации - магнитная запись. Но и она может быть испорчена под воздействием температуры или магнита. Для хранения небольших порций информации используют гибкие магнитные диски (floppy disks), на смену которым приходят Zip дискеты. Для хранения больших объемов информации применяют " жесткие " диски (hard disks), иногда называемые винчестерами.

    Со временем объем информации, с которой работал человек и которую ему надо передать другому человеку, возрастал. Это привело к созданию нового типа носителя - лазерного диска.

    Лазерный диск - трехслойный диск, изготовленный из стекла или прочной пластмассы. В нем между двумя тонкими защитными слоями пластмассы (стекла) помещен тонкий слой металлической фольги из серебра или даже из золота. Запись информации на такой диск осуществляется лучом лазера. Но записать информацию на лазерный диск можно всего один раз.

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

    Подробнее об устройствах, предназначенных для хранения информации на ЭВМ, рассказывается в разделе "Периферийные и внутренние устройства".

    Кодирование информации

    Кодирование информации - это процесс формирования определенного представления информации.

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

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

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

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

    Единицы измерения информации

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

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

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

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

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

    Единица измерения информации называется бит (bit) - сокращение от английских слов binary digit, что означает двоичная цифра.

    В компьютерной технике бит соответствует физическому состоянию носителя информации: намагничено - не намагничено, есть отверстие - нет отверстия. При этом одно состояние принято обозначать цифрой 0, а другое - цифрой 1. Выбор одного из двух возможных вариантов позволяет также различать логические истину и ложь. Последовательностью битов можно закодировать текст, изображение, звук или какую-либо другую информацию. Такой метод представления информации называется двоичным кодированием (binary encoding).

    В информатике часто используется величина, называемая байтом (byte) и равная 8 битам. И если бит позволяет выбрать один вариант из двух возможных, то байт, соответственно, 1 из 256 (28). В большинстве современных ЭВМ при кодировании каждому символу соответствует своя последовательность из восьми нулей и единиц, т. е. байт. Соответствие байтов и символов задается с помощью таблицы, в которой для каждого кода указывается свой символ. Так, например, в широко распространенной кодировке Koi8-R буква "М" имеет код 11101101, буква "И" - код 11101001, а пробел - код 00100000.

    Наряду с байтами для измерения количества информации используются более крупные единицы:

    1 Кбайт (один килобайт) = 210 байт = 1024 байта;

    1 Мбайт (один мегабайт) = 210 Кбайт = 1024 Кбайта;

    1 Гбайт (один гигабайт) = 210 Мбайт = 1024 Мбайта.

    Пример. Книга содержит 100 страниц; на каждой странице - 35 строк, в каждой строке - 50 символов. Рассчитаем объем информации, содержащийся в книге.

    Страница содержит 35 x 50 = 1750 байт информации. Объем всей информации в книге (в разных единицах):

    1750 x 100 = 175000 байт.

    175000 / 1024 = 170,8984 Кбайт.

    170,8984 / 1024 = 0,166893 Мбайт.

    Задания

  • Сколько Кб составляет сообщение, содержащее 12288 битов?
  • Письмо занимает 2 страницы по 25 строк. В каждой строке записано по 40 символов. Каков объем информации в письме?
  • Форматы файлов

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

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

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

    Unix оказал очень большое влияние на другие операционные системы персональных компьютеров. Почти все они поддерживают идею Unix о том, что файл - это просто последовательность байтов. Файлы, представляющие собой поток данных, стали использоваться при обмене информацией между компьютерными системами. Если используется более сложная структура файла (как в операционных системах OS/2 и Macintosh), она всегда может быть преобразована в поток байтов, передана и на другом конце канала связи воссоздана в исходном виде.

    Итак, мы можем считать, что файл - это поименованная последовательность байтов.

    Файловая структура представляет собой систему хранения файлов на запоминающем устройстве, например, диске. Файлы организованы в каталоги (иногда называемые директориями или папками). Любой каталог может содержать произвольное число подкаталогов, в каждом из которых могут храниться файлы и другие каталоги.

    Способ, которым данные организованы в файлы, называется форматом файла.

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

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

    Все файлы условно можно разделить на две части - текстовые и двоичные.

    Текстовые файлы - наиболее распространенный тип данных во всем компьютерном мире. Для хранения каждого символа чаще всего отводится один байт, а кодирование текстовых файлов выполняют с помощью специальных таблиц, в которых каждому символу соответствует определенное число, не превышающее 255. Файл, для кодировки которого используется только 127 первых чисел, называется ASCII-файлом (сокращение от American Standard Code for Information Interchange - американский стандартный код для обмена информацией), но в таком файле не могут быть представлены буквы, отличные от латиницы (в том числе и русские). Большинство национальных алфавитов можно закодировать с помощью восьмибитной таблицы. Для русского языка наиболее популярны на данный момент три кодировки: Koi8-R, Windows-1251 и, так называемая, альтернативная (alt) кодировка. Подробнее о кодировании русского текста рассказано в главе "Обработка документов".

    Такие языки, как китайский, содержат значительно больше 256 символов, поэтому для кодирования каждого из них используют несколько байтов. Для экономии места зачастую применяется следующий прием: некоторые символы кодируются с помощью одного байта, в то время как для других используются два или более байтов. Одной из попыток обобщения такого подхода является стандарт Unicode, в котором для кодирования символов используется диапазон чисел от нуля до 65 536. Такой широкий диапазон позволяет представлять в численном виде символы языка людей из любого уголка планеты.

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

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

    Системы счисления

    Разнообразные системы счисления, которые существовали раньше и которые используются в наше время, можно разделить на непозиционные и позиционные. Знаки, используемые при записи чисел, называются цифрами.

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

    I V X L C D M
    1 5 10 50 100 500 1000

    Например, VI = 5 + 1 = 6, а IX = 10 - 1 = 9.

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

    Однако наибольшую ценность для нас имеет индо-арабская десятичная система. Индийцы первыми использовали ноль для указания позиционной значимости величины в строке цифр. Эта система получила название десятичной, так как в ней десять цифр.

    Для того чтобы лучше понять различие позиционной и непозиционной систем счисления, рассмотрим пример сравнения двух чисел. В позиционной системе счисления сравнение двух чисел происходит следующим образом: в рассматриваемых числах слева направо сравниваются цифры, стоящие в одинаковых позициях. Большая цифра соответствует большему значению числа. Например, для чисел 123 и 234, 1 меньше 2, поэтому число 234 больше, чем число 123. В непозиционной системе счисления это правило не действует. Примером этого может служить сравнение двух чисел IX и VI. Несмотря на то, что I меньше, чем V, число IX больше, чем число VI.

    Далее мы будем рассматривать только позиционные системы счисления.

    Основание системы счисления, в которой записано число, обычно обозначается нижним индексом. Например, 5557 - число, записанное в семеричной системе счисления. Если число записано в десятичной системе, то основание, как правило, не указывается. Основание системы - это тоже число, и его мы будем указывать в обычной десятичной системе. Вообще, число x может быть представлено в системе с основанием p, как x=an*pn+an-1*pn-1+ a1*p1+a0*p0, где an...a0 - цифры в представлении данного числа. Так, например,

    103510=1*103+0*102+3*101+5*100;

    10102 = 1*23+0*22+1*21+0*20 = 10.

    Наибольший интерес при работе на ЭВМ представляют системы счисления с основаниями 2, 8 и 16. Вообще говоря, этих систем счисления обычно хватает для полноценной работы как человека, так и вычислительной машины. Однако иногда в силу различных обстоятельств все-таки приходится обращаться к другим системам счисления, например к троичной, семеричной или системе счисления по основанию 32.

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

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

    Часто в информатике используют шестнадцатеричную систему, так как запись чисел в ней значительно короче записи чисел в двоичной системе. Может возникнуть вопрос: почему бы не использовать для записи очень больших чисел систему счисления, например по основанию 50? Для такой системы счисления необходимы 10 обычных цифр плюс 40 знаков, которые соответствовали бы числам от 10 до 49 и вряд ли кому-нибудь понравится работать с этими сорока знаками. Поэтому в реальной жизни системы счисления по основанию, большему 16, практически не используются.

    Двоичная система счисления

    Люди предпочитают десятичную систему, вероятно, потому, что с древних времен считали по пальцам. Но, не всегда и не везде люди пользовались десятичной системой счисления. В Китае, например, долгое время применялась пятеричная система счисления. В ЭВМ используют двоичную систему потому, что она имеет ряд преимуществ перед другими:

  • для ее реализации используются технические элементы с двумя возможными состояниями (есть ток - нет тока, намагничен - ненамагничен);
  • представление информации посредством только двух состояний надежно и помехоустойчиво ;
  • возможно применение аппарата булевой алгебры для выполнения логических преобразований информации;
  • двоичная арифметика проще десятичной (двоичные таблицы сложения и умножения предельно просты).
  • В двоичной системе счисления всего две цифры, называемые двоичными (binary digits). Сокращение этого наименования привело к появлению термина бит, ставшего названием разряда двоичного числа. Веса разрядов в двоичной системе изменяются по степеням двойки. Поскольку вес каждого разряда умножается либо на 0, либо на 1, то в результате значение числа определяется как сумма соответствующих значений степеней двойки. Если какой-либо разряд двоичного числа равен 1, то он называется значащим разрядом. Запись числа в двоичном виде намного длиннее записи в десятичной системе счисления.

    Арифметические действия, выполняемые в двоичной системе, подчиняются тем же правилам, что и в десятичной системе. Только в двоичной системе перенос единиц в старший разряд возникает чаще, чем в десятичной. Вот как выглядит таблица сложения в двоичной системе:

    0 + 0 = 0 0 + 1 = 1
    1 + 0 = 1 1 + 1 = 0 (перенос в старший разряд)

    Таблица умножения для двоичных чисел еще проще:

    0 * 0 = 0 0 * 1 = 0 1 * 0 = 0 1 * 1 = 1

    Рассмотрим подробнее, как происходит процесс умножения двоичных чисел. Пусть надо умножить число 1101 на 101 (оба числа в двоичной системе счисления). Машина делает это следующим образом: она берет число 1101 и, если первый элемент второго множителя равен 1, то она заносит его в сумму. Затем сдвигает число 1101 влево на одну позицию, получая тем самым 11010, и если, второй элемент второго множителя равен единице, то тоже заносит его в сумму. Если элемент второго множителя равен нулю, то сумма не изменяется.

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

    Следует отметить, что большинство калькуляторов, реализованных на ЭВМ (в том числе и KCalc) позволяют осуществлять работу в системах счисления с основаниями 2, 8, 16 и, конечно, 10.

    8-ная и 16-ная системы счисления

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

    Для облегчения восприятия двоичного числа решили разбивать его на группы разрядов, например, по три или четыре разряда. Эта идея оказалась очень удачной, так как последовательность из трех бит имеет 8 комбинаций, а последовательность из 4 бит - 16. Числа 8 и 16 являются степенями двойки, поэтому легко находить соответствие с двоичными числами. Развивая эту идею, пришли к выводу, что группы разрядов можно закодировать, сократив при этом длину последовательности знаков. Для кодировки трех битов требуется восемь цифр, поэтому взяли цифры от 0 до 7 десятичной системы. Для кодировки же четырех битов необходимо шестнадцать знаков; для этого взяли 10 цифр десятичной системы и 6 букв латинского алфавита: A, B, C, D, E, F. Полученные системы, имеющие основания 8 и 16, назвали соответственно восьмеричной и шестнадцатеричной.

    В восьмеричной (octal) системе счисления используются восемь различных цифр 0, 1, 2, 3, 4, 5, 6, 7. Основание системы - 8. При записи отрицательных чисел перед последовательностью цифр ставят знак минус. Сложение, вычитание, умножение и деление чисел, представленных в восьмеричной системе, выполняются весьма просто подобно тому, как это делают в общеизвестной десятичной системе счисления.

    В шестнадцатеричной (hexadecimal) системе счисления применяется десять различных цифр и шесть первых букв латинского алфавита. При записи отрицательных чисел слева от последовательности цифр ставят знак минус. Для того чтобы при написании компьютерных программ отличить числа, записанные в шестнадцатеричной системе, от других, перед числом ставят 0x. То есть 0x11 и 11 - это разные числа. В других случаях можно указать основание системы счисления нижним индексом.

    Шестнадцатеричная система счисления широко используется при задании различных оттенков цвета при кодировании графической информации (модель RGB). Так, в редакторе гипертекста Netscape Composer можно задавать цвета для фона или текста как в десятичной, так и шестнадцатеричной системах счисления.

    Перевод чисел из одной системы счисления в другую

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

    Пусть требуется перевести число 567 из десятичной в двоичную систему. Сначала определим максимальную степень двойки, такую, чтобы два в этой степени было меньше или равно исходному числу. В нашем случае это 9, т. к. 29=512, а 210=1024, что больше начального числа. Таким образом, мы получим число разрядов результата. Оно равно 9+1=10. Поэтому результат будет иметь вид 1ххххххххх, где вместо х могут стоять любые двоичные цифры. Найдем вторую цифру результата. Возведем двойку в степень 9 и вычтем из исходного числа: 567-29=55. Остаток сравним с числом 28=256. Так как 55 меньше 256, то девятый разряд будет нулем, т. е. результат примет вид 10хххххххх. Рассмотрим восьмой разряд. Так как 27=128>55, то и он будет нулевым.

    Седьмой разряд также оказывается нулевым. Искомая двоичная запись числа принимает вид 1000хххххх. 25=32<55, поэтому шестой разряд равен 1 (результат 10001ххххх). Для остатка 55-32=23 справедливо неравенство 24=16<23, что означает равенство единице пятого разряда. Действуя аналогично, получаем в результате число 1000110111. Мы разложили данное число по степеням двойки:

    567=1*29+0*28+0*27+0*26+1*25+1*24+0*23+1*22 +1*21+1*20

    При другом способe перевода чисел используется операция деления в столбик. Рассмотрим то же самое число 567. Разделив его на 2, получим частное 283 и остаток 1. Проведем ту же самую операцию с числом 283. Получим частное 141, остаток 1. Опять делим полученное частное на 2, и так до тех пор, пока частное не станет меньше делителя. Теперь для того, чтобы получить число в двоичной системе счисления, достаточно записать последнее частное, то есть 1, и приписать к нему в обратном порядке все полученные в процессе деления остатки.

    Результат, естественно, не изменился: 567 в двоичной системе счисления записывается как 1000110111.

    Эти два способа применимы при переводе числа из десятичной системы в систему с любым основанием. Для закрепления навыков рассмотрим перевод числа 567 в систему счисления с основанием 16.

    Сначала осуществим разложение данного числа по степеням основания. Искомое число будет состоять из трех цифр, т. к. 162=256 < 567 < 163=4096. Определим цифру старшего разряда. 2*162=512<567<3*162=768, следовательно искомое число имеет вид 2хх, где вместо х могут стоять любые шестнадцатеричные цифры. Остается распределить по следующим разрядам число 55 (567-512). 3*16=48<55<4*16=64, значит во втором разряде находится цифра 3. Последняя цифра равна 7 (55-48). Искомое шестнадцатеричное число равно 237.

    Второй способ состоит в осуществлении последовательного деления в столбик, с единственным отличием в том, что делить надо не на 2, а на 16, и процесс деления заканчивается, когда частное становится строго меньше 16.

    Конечно, не надо забывать и о том, что для записи числа в шестнадцатеричной системе счисления, необходимо заменить 10 на A, 11 на B и так далее.

    Операция перевода в десятичную систему выглядит гораздо проще, так как любое десятичное число можно представить в виде x = a0*pn + a1*pn-1 + ... + an-1*p1 + an*p0, где a0 ... an - это цифры данного числа в системе счисления с основанием p.

    Пример. Переведем число 4A3F в десятичную систему. По определению, 4A3F= 4*163+A*162+3*16+F. Заменив A на 10, а F на 15, получим 4*163+10*162+3*16+15= 19007.

    Пожалуй, проще всего осуществляется перевод чисел из двоичной системы в системы с основанием, равным степеням двойки (8 и 16), и наоборот. Для того чтобы целое двоичное число записать в системе счисления с основанием 2n, нужно

  • данное двоичное число разбить справа налево на группы по n-цифр в каждой;
  • если в последней левой группе окажется меньше n разрядов, то дополнить ее нулями до нужного числа разрядов;
  • рассмотреть каждую группу, как n-разрядное двоичное число, и заменить ее соответствующей цифрой в системе счисления с основанием 2n.
  • Двоично-шестнадцатеричная таблица
    2-ная 0000 0001 0010 0011 0100 0101 0110 0111
    16-ная 0 1 2 3 4 5 6 7
    2-ная 1000 1001 1010 1011 1100 1101 1110 1111
    16-ная 8 9 A B C D E F
    Двоично-восьмеричная таблица
    2-ная 000 001 010 011 100 101 110 111
    8-ная 0 1 2 3 4 5 6 7

    Задания

  • Переведите в десятичную систему счисления:

    а) 100011102; б) 123458; в) AA02D34B16.

  • Сравните два числа:

    а) 10268 и 21616; б) 111112 и 111113.

  • Примеры двоичного кодирования информации

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

    Кодирование чисел

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

    Множество целых чисел, представимых в памяти ЭВМ, ограничено. Диапазон значений зависит от размера области памяти, используемой для размещения чисел. В k-разрядной ячейке может храниться 2k различных значений целых чисел.

    Чтобы получить внутреннее представление целого положительного числа N, хранящегося в k-разрядном машинном слове, необходимо:

  • перевести число N в двоичную систему счисления;
  • полученный результат дополнить слева незначащими нулями до k разрядов.
  • Пример. Получить внутреннее представление целого числа 1607 в 2-х байтовой ячейке.

    Переведем число в двоичную систему: 160710 = 110010001112. Внутреннее представление этого числа в ячейке будет следующим: 0000 0110 0100 0111.

    Для записи внутреннего представления целого отрицательного числа (-N) необходимо:

  • получить внутреннее представление положительного числа N;
  • обратный код этого числа заменой 0 на 1 и 1 на 0;
  • полученному числу прибавить 1.
  • Пример. Получим внутреннее представление целого отрицательного числа -1607. Воспользуемся результатом предыдущего примера и запишем внутреннее представление положительного числа 1607: 0000 0110 0100 0111. Инвертированием получим обратный код: 1111 1001 1011 1000. Добавим единицу: 1111 1001 1011 1001 - это и есть внутреннее двоичное представление числа -1607.

    Формат с плавающей точкой использует представление вещественного числа R в виде произведения мантиссы m на основание системы счисления n в некоторой целой степени p, которую называют порядком: R = m * n p.

    Представление числа в форме с плавающей точкой неоднозначно. Например, справедливы следующие равенства:

    12.345 = 0.0012345 x 104 = 1234.5 x 10-2 = 0.12345 x 102

    Чаще всего в ЭВМ используют нормализованное представление числа в форме с плавающей точкой. Мантисса в таком представлении должна удовлетворять условию: 0.1p <= m < 1p. Иначе говоря, мантисса меньше 1 и первая значащая цифра - не ноль (p - основание системы счисления).

    В памяти компьютера мантисса представляется как целое число, содержащее только значащие цифры (0 целых и запятая не хранятся), так для числа 12.345 в ячейке памяти, отведенной для хранения мантиссы, будет сохранено число 12345. Для однозначного восстановления исходного числа остается сохранить только его порядок, в данном примере - это 2.

    Кодирование текста

    Множество символов, используемых при записи текста, называется алфавитом. Количество символов в алфавите называется его мощностью.

    Для представления текстовой информации в компьютере чаще всего используется алфавит мощностью 256 символов. Один символ из такого алфавита несет 8 бит информации, т. к. 28 = 256. Но 8 бит составляют один байт, следовательно, двоичный код каждого символа занимает 1 байт памяти ЭВМ.

    Все символы такого алфавита пронумерованы от 0 до 255, а каждому номеру соответствует 8-разрядный двоичный код от 00000000 до 11111111. Этот код является порядковым номером символа в двоичной системе счисления.

    Для разных типов ЭВМ и операционных систем используются различные таблицы кодировки, отличающиеся порядком размещения символов алфавита в кодовой таблице. Международным стандартом на персональных компьютерах является уже упоминавшаяся таблица кодировки ASCII.

    Принцип последовательного кодирования алфавита заключается в том, что в кодовой таблице ASCII латинские буквы (прописные и строчные) располагаются в алфавитном порядке. Расположение цифр также упорядочено по возрастанию значений.

    Стандартными в этой таблице являются только первые 128 символов, т. е. символы с номерами от нуля (двоичный код 00000000) до 127 (01111111). Сюда входят буквы латинского алфавита, цифры, знаки препинания, скобки и некоторые другие символы. Остальные 128 кодов, начиная со 128 (двоичный код 10000000) и кончая 255 (11111111), используются для кодировки букв национальных алфавитов, символов псевдографики и научных символов. О кодировании символов русского алфавита рассказывается в главе "Обработка документов".

    Кодирование графической информации

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

    Растровые изображения представляют собой однослойную сетку точек, называемых пикселами (pixel, от англ. picture element). Код пиксела содержит информацию о его цвете.

    Для черно-белого изображения (без полутонов) пиксел может принимать только два значения: белый и черный (светится - не светится), а для его кодирования достаточно одного бита памяти: 1 - белый, 0 - черный.

    Пиксел на цветном дисплее может иметь различную окраску, поэтому одного бита на пиксел недостаточно. Для кодирования 4-цветного изображения требуются два бита на пиксел, поскольку два бита могут принимать 4 различных состояния. Может использоваться, например, такой вариант кодировки цветов: 00 - черный, 10 - зеленый, 01 - красный, 11 - коричневый.

    На RGB-мониторах все разнообразие цветов получается сочетанием базовых цветов - красного (Red), зеленого (Green), синего (Blue), из которых можно получить 8 основных комбинаций:

    R G B цвет
    0 0 0 черный
    0 0 1 синий
    0 1 0 зеленый
    0 1 1 голубой

    R G B цвет
    1 0 0 красный
    1 0 1 розовый
    1 1 0 коричневый
    1 1 1 белый

    Разумеется, если иметь возможность управлять интенсивностью (яркостью) свечения базовых цветов, то количество различных вариантов их сочетаний, порождающих разнообразные оттенки, увеличивается. Количество различных цветов - К и количество битов для их кодировки - N связаны между собой простой формулой: 2N = К.

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

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

    Кодирование звука

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

    Поступим следующим образом. Будем измерять напряжение через равные промежутки времени и записывать полученные значения в память компьютера. Этот процесс называется дискретизацией (или оцифровкой), а устройство, выполняющее его - аналого-цифровым преобразователем (АЦП).

    Для того чтобы воспроизвести закодированный таким образом звук, нужно выполнить обратное преобразование (для него служит цифро-аналоговый преобразователь - ЦАП), а затем сгладить получившийся ступенчатый сигнал.

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

    Описанный способ кодирования звуковой информации достаточно универсален, он позволяет представить любой звук и преобразовывать его самыми разными способами. Но бывают случаи, когда выгодней действовать по-иному.

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

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

    Заметим, что существуют и другие, чисто компьютерные, форматы записи музыки. Среди них следует отметить формат MP3, позволяющий с очень большим качеством и степенью сжатия кодировать музыку. При этом вместо 18-20 музыкальных композиций на стандартный компакт-диск (CDROM) помещается около 200. Одна песня занимает примерно 3,5 Mb, что позволяет пользователям сети Интернет легко обмениваться музыкальными композициями.

    Компьютер - универсальная информационная машина

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

    История развития ЭВМ

    Всякая новая техника создается, когда возникает большая общественная потребность в ней. К середине нашего века научно-технический прогресс привел к необходимости облегчить труд ученых и инженеров, ускорить выполнение громоздких расчетов и повысить их точность. Автоматизация вычислений, создание мощного, быстродействующего и точного электронного арифмометра - вот о чем думали специалисты - творцы первых ЭВМ. Никто в те далекие теперь годы и не помышлял о будущем информационном перевороте; решалась скромная, на первый взгляд чисто техническая задача. Да и возможности первых образцов вычислительных машин оказались небольшими.

    Еще в годы второй мировой войны в США была собрана из обычных электромагнитных реле, которых тогда были тысячи на любой телефонной станции, вычислительная машина "Марк-1". Считала она в привычной десятичной системе счисления - телефонные реле имели как раз десять позиций своих контактов. Работала машина неторопливо - пока реле отщелкают свое, можно было вручную все посчитать. Поэтому вскоре после войны появились машины на электронных лампах: в США - ENIAC, а в СССР - МЭСМ (малая электронно-счетная машина), которую создал коллектив под руководством С.А. Лебедева. Ламповые ЭВМ уже оказались в состоянии выполнять сотни и тысячи арифметических или логических операций за одну секунду. Они могли обеспечить высокую точность вычислений. Человек уже не мог соперничать с такой машиной.

    Жизнь первого поколения ЭВМ оказалась короткой - около десяти лет. Электронные лампы грелись, потребляли много электроэнергии, были громоздки (так, например, машина ENIAC весила 30 тонн, имела 18 тысяч электронных ламп и потребляла 150 киловатт). И что еще хуже - часто выходили из строя. Над компьютерщиками продолжали посмеиваться: чтобы сложить, скажем, два числа, требовалось написать программу из многих машинных команд. Например, такую: "Ввести в машину первое слагаемое; ввести второе; переслать из памяти первое слагаемое в арифметическое устройство (arithmetic unit); переслать в арифметическое устройство второе слагаемое и вычислить сумму; переслать результат в память; вывести это число из памяти машины и напечатать его". Каждую команду и оба слагаемых "набивали" на перфокарты и только потом вводили колоду перфокарт в компьютер и ждали, когда протарахтит печатающее устройство (printing device) и на выползающей из него бумажной ленте будет виден результат - искомая сумма.

    В конце пятидесятых - начале шестидесятых годов на смену электронной лампе пришел компактный и экономичный прибор - транзистор (transistor). Компьютеры сразу стали производительнее и компактнее, уменьшилось потребление электроэнергии. ЭВМ второго поколения "научились" программировать сами для себя. Появились системы автоматизации программирования, состоящие из алгоритмических языков (algorithmic language) и трансляторов (translator) для них. Теперь пользователь изучал язык ЭВМ, приближенный к языку научных, инженерных или экономических расчетов. Например, Фортран или Алгол-60.

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

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

    Развитие микроэлектроники позволило создать и освоить технологию интегральных схем с особо большой плотностью компоновки. На одном кристалле размером меньше ногтя стали размещать не десятки и сотни, а десятки тысяч транзисторов и других элементов. Большие интегральные схемы (very large scale integration) составили техническую основу, элементную базу ЭВМ четвертого поколения. Их производительность возросла фантастически - до сотен миллионов операций в секунду.

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

    ЭВМ третьего-четвертого поколения стали многоязычными и многопрограммными: они получили возможность вести диалог со многими пользователями одновременно и решать задачи, запрограммированные на разных языках.

    Основное направление в развитии современных компьютеров (пятого и шестого поколения) - разработка машины, более похожей на человека по способам ввода и хранения информации и методам решения задач. Различные области информатики занимаются изучением этих проблем - задач искусственного интеллекта (artificial intelligence), экспертных систем (expert systems) и представления информации (information presentation).

    Типы и назначение компьютеров

    Существование различных типов компьютеров определяется различием задач, для решения которых они предназначены. С течением времени появляются новые типы задач, что приводит к появлению новых типов компьютеров. Поэтому приведенное ниже деление очень условно.

    Различают:

  • суперкомпьютеры;
  • специализированные компьютеры-серверы;
  • встроенные компьютеры-невидимки (микропроцессоры);
  • персональные компьютеры.
  • Для выполнения изначального назначения компьютеров - вычислений - на рубеже 60-70 годов были созданы специализированные ЭВМ, так называемые суперкомпьютеры.

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

    Одной из ведущих компаний мира в производстве суперкомпьютеров является компания Cray Research. Ее основатель, человек-легенда Сеймур Крей, уже в середине 70-х годов построил компьютер Cray-1, который поражал мир своим быстродействием: десятки и даже сотни миллионов арифметических операций в секунду.

    Как известно, скорость распространения любого сигнала не превышает скорости света в вакууме - 300 тысяч километров в секунду, или 300 миллионов метров в секунду. Если компьютер выполняет 300 миллионов операций в секунду, то за время выполнения одной операции сигнал успевает пройти не более одного метра. Отсюда следует, что расстояние между частями суперкомпьютера, выполняющими одну операцию, не может превосходить нескольких десятков сантиметров. И действительно, суперкомпьютеры компании Cray были очень компактны и выглядели как "бублик" диаметром менее двух метров. Этот "бублик" занимался только вычислениями. Для общения с человеком и доставки данных для вычислений к "бублику" были подключены несколько достаточно производительных обычных компьютеров.

    Компьютер, работающий в локальной или глобальной сети, может специализироваться на оказании информационных услуг другим компьютерам, на обслуживании других компьютеров. Такой компьютер называется сервером от английского слова serve (в переводе - обслуживать, управлять). В локальной сети один из компьютеров может выполнять функции файлового сервера, т. е. использоваться для долговременного хранения файлов.

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

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

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

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

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

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

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

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

    Магистрально-модульный принцип построения компьютера

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

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

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

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

    Разрядность шины данных задается разрядностью процессора, т. е. количеством двоичных разрядов, которые процессор обрабатывает за один такт.

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

    Выбор абонента по обмену данными производит процессор, который формирует код адреса данного устройства, а для ОЗУ - код адреса ячейки памяти. Код адреса передается по адресной шине, причем сигналы передаются в одном направлении, от процессора к устройствам, т. е. эта шина является однонаправленной.

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

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

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

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

    Разработка нового в области ПК всегда базируется на старых стандартах и принципах. Поэтому знание их является основополагающим фактором для (или против) выбора новой системы.

    В состав ЭВМ входят следующие компоненты:

  • центральный процессор (CPU);
  • оперативная память (memory);
  • устройства хранения информации (storage devices);
  • устройства ввода (input devices);
  • устройства вывода (output devices);
  • устройства связи (communication devices).
  • Во всех вычислительных машинах до середины 50-х годов устройства обработки и управления представляли собой отдельные блоки, и только с появлением компьютеров, построенных на транзисторах, удалось объединить их в один блок, названный процессором.

    Процессор - это мозг ЭВМ. Он контролирует действия всех остальных устройств (devices) компьютера и координирует выполнение программ. Процессор имеет свою внутреннюю память, называемую регистрами, управляющее и арифметико-логическое устройства.

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

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

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

    Существует два типа оперативной памяти - память с произвольным доступом (RAM или random access memory) и память, доступная только на чтение (ROM или read only memory). Процессор ЭВМ может обмениваться данными с оперативной памятью с очень высокой скоростью, на несколько порядков превышающей скорость доступа к другим носителям информации, например дискам.

    Оперативная память с произвольным доступом (RAM) служит для размещения программ, данных и промежуточных результатов вычислений в процессе работы компьютера. Данные могут выбираться из памяти в произвольном порядке, а не строго последовательно, как это имеет место, например, при работе с магнитной лентой. Память, доступная только на чтение (ROM) используется для постоянного размещения определенных программ (например, программы начальной загрузки ЭВМ). В процессе работы компьютера содержимое этой памяти не может быть изменено.

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

    В настоящее время отдельные микросхемы памяти не устанавливаются на материнскую плату. Они объединяются в специальных печатных платах, образуя вместе с некоторыми дополнительными элементами модули памяти (SIMM- и DIMM-модули).

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

    Винчестеры (hard discs)

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

    Емкость диска современного персонального компьютера составляет десятки гигабайт. В одной ЭВМ может быть установлено несколько винчестеров.

    Оптические диски (cdroms)

    Лазерные диски, как их еще называют, имеют емкость около 600 мегабайт и обеспечивают только считывание записанной на них однажды информации в режиме произвольного доступа. Скорость считывания информации определяется устройством, в которое вставляется компакт-диск (cdrom drive).

    Магнито-оптические диски

    В отличие от оптических дисков магнито-оптические диски позволяют не только читать, но и записывать информацию.

    Флоппи диски (floppy discs)

    В основе этих устройств хранения лежит гибкий магнитный диск, помещенный в твердую оболочку. Для того чтобы прочитать информацию, хранящуюся на дискете, ее необходимо вставить в дисковод (floppy disc drive) компьютера. Емкость современных дискет всего 1.44 мегабайта. По способу доступа дискета подобна винчестеру.

    Zip and Jaz Iomega discs

    Это относительно новые носители информации, которые призваны заменить гибкие магнитные диски. Их можно рассматривать, как быстрые и большие по емкости (100 мегабайт - Zip, 1 гигабайт - Jaz) дискеты.

    Магнитные ленты (magnetic tapes)

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

    Устройства ввода передают информацию в ЭВМ от различных внешних источников. Информация может быть представлена в весьма различных формах: текст - для клавиатуры (keyboard), звук - для микрофона (microphone), изображение - для сканера (scanner).

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

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

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

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

    Мышь не позволяет вводить числовую и буквенную информацию, но удобна для работы с графическими объектами, изображенными на экране.

    Сканер - устройство ввода графической информации. Его особенность - способность считывать изображение непосредственно с листа бумаги.

    Принцип действия сканера напоминает работу человеческого глаза. Освещенный специальным источником света, находящимся в самом сканере, лист бумаги с текстом или рисунком "осматривается" микроскопическим "электронным глазом". Диаметр участка изображения, воспринимаемого таким "глазом", составляет 1/20 миллиметра и соответствует диаметру человеческого волоса. Яркость считываемой в данный момент точки изображения кодируется двоичным числом и передается в компьютер. Для того чтобы осмотреть стандартный лист бумаги, "электронному глазу" приходится строку за строкой обходить его, передавая закодированную информацию об освещенности каждой точки изображения в компьютер.

    Монитор - устройство вывода на экран текстовой и графической информации. Мониторы бывают цветными и монохромными. Они могут работать в одном из двух режимов: текстовом или графическом.

    В текстовом режиме экран монитора условно разбивается на отдельные участки - знакоместа, чаще всего на 25 строк по 80 символов (знакомест). В каждое знакоместо может быть выведен один из 256 заранее определенных символов. В число этих символов входят большие и малые латинские буквы, цифры, определенные символы, а также псевдографические символы, используемые для вывода на экран таблиц и диаграмм, построения рамок вокруг участков экрана и так далее. В число символов, изображаемых на экране в текстовом режиме, могут входить и символы кириллицы.

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

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

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

    Принтер - устройство для вывода результатов работы компьютера на бумагу. Само название произошло от английского слова printer, означающего "печатник" (печатающий).

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

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

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

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

    Существуют как черно-белые, так и цветные струйные принтеры. Последние, кроме головки с черными чернилами, имеют еще печатную головку с чернилами трех цветов.

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

    Устройства связи необходимы для организации взаимодействия отдельных компьютеров между собой, доступа к удаленным принтерам и подключения локальных сетей к общемировой сети Интернет. Примерами таких устройств являются сетевые карты (ethernet cards) и модемы (modems). Скорость передачи данных устройствами связи измеряется в битах в секунду (а также в кбит/с и мбит/с). Модем, используемый для подключения домашнего компьютера к сети Интернет, обычно обеспечивает пропускную способность до 56 кбит/c, а сетевая карта - до 100 мбит/с.

    Программный принцип управления компьютером

    В XIX веке английским математиком и инженером Чарльзом Бэббиджем был разработан проект вычислительной машины, которая предназначалась для автоматического проведения длинных цепочек вычислений. Конструкция его аналитической машины включала 50 тысяч деталей: зубчатых колес, рычагов и пружин, взаимодействовавших определенным образом. Совершенствуя и уточняя конструкцию машины, Бэббидж первым смог выделить необходимые для ее работы части:

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

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

    Главной особенностью конструкции этой машины является программный принцип работы.

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

  • программа вычислений вводится в память ЭВМ и хранится в ней наравне с исходными числами;
  • команды, составляющие программу, представлены в числовом коде по форме ничем не отличающемся от чисел.
  • Компьютерные вирусы

    Как уже отмечалось, компьютер работает исключительно под управлением программ (программного обеспечения). Это делает его по-настоящему универсальным устройством, которое может выполнять роль музыкального центра, телевизора, пишущей машинки и т. д. Программы пишут программисты и у некоторых из них появляется желание придумать что-то эдакое. Иногда это - невинные шалости, в других случаях они имеют явную зловещую направленность. До тех пор, пока человек, сидящий за компьютером, мог контролировать работу всех программ и знал, что и зачем он запустил, все было нормально. Но потом появились программы, которые, не спрашивая ничьего разрешения, запускались, копировались в разные места диска и "заражали" другие программы (заменяли часть полезного кода рабочей программы своим или изменяли его). С этого момента и нужно начинать разговор о "компьютерных вирусах".

    Отдельно хочется подчеркнуть, что практически все вирусы функционируют в операционных системах семейства MS Windows и в MS DOS.

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

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

    Заражается компьютер "снаружи", когда человек запускает на исполнение некую программу, которая либо заражена вирусом (т. е. при ее выполнении запускается и вирус), либо сама является вирусом.

    Поведение вирусов разнообразно. Некоторые вирусы просто "осыпали" буквы с монитора или рисовали безобидные рисунки. Такие считаются наиболее безвредными. Другие могут переименовывать файлы на диске, стирать их. Эти, без сомнения, гораздо опаснее. А вирус "Win95.CIH" может испортить микросхему BIOS компьютера. Трудно сказать, что хуже - потеря информации или выход из строя компьютера.

    И, наконец, вирус размножается, то есть дописывает себя везде, где он имеет шанс выполниться.

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

    Появились вирусы, использующие возможности внутреннего языка программ серии Microsoft Office. Они содержатся в файлах, подготовленных в редакторе Word или в электронных таблицах Excel. Для заражения компьютера достаточно открыть такой документ.

    Так как все больше людей использует Интернет, то последний все чаще становится рассадником заразы. Теперь достаточно зайти на некий сайт и нажать на кнопку формы, чтобы заполучить какой-нибудь вирус.

    В последнее время широко распространился вид почтовых вирусов, играющих на любопытстве людей. Например, вам приходит письмо с признанием в любви и приложенными фотографиями. Первое движение - посмотреть содержимое письма. И как результат, - все фотографии и музыка на вашей машине пропали, а вместо них - злобный вирус "I Love You" (или подобный ему). Кроме того, он еще и пошлет себя всем, кто записан в вашей адресной книге.

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

    Методы борьбы с вирусами и троянцами описаны во многих местах. К сожалению, единственный действенный метод - не включать компьютер вовсе. Можно еще посоветовать ничего не устанавливать и ничего не запускать. Только тогда какой смысл иметь компьютер?

    Поэтому широко используются антивирусы - программы, призванные обнаруживать и удалять известные им "нехорошие программы". Наиболее представительными являются DrWeb, Antiviral Toolkit Pro (AVP), ADInf. При использовании таких программ главное - постоянное обновление антивирусных баз.

    И все-таки очень важно не запускать неизвестно что. Или установить антивирусный монитор (который отличается от антивирусного сканера, занимающегося тотальной проверкой файлов). Когда вы запускаете тот же DrWeb на проверку дисков - это антивирусный сканер. А в комплекте с ним идет некий Spider - вот это антивирусный монитор.

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

    Основные признаки появления в системе вируса:

  • замедление работы некоторых программ;
  • увеличение размеров файлов (особенно выполняемых), хотя это достаточно сложно заметить (попробуйте Adinf);
  • появление не существовавших ранее "странных" файлов, особенно в каталоге Windows или корневом;
  • уменьшение объема доступной оперативной памяти;
  • внезапно возникающие разнообразные видео и звуковые эффекты;
  • заметное снижение скорости работы в Интернете (вирус или троянец могут передавать информацию по сети);
  • жалобы от друзей (или провайдера) о том, что к ним приходят всякие непонятные письма - вирусы любят рассылать себя по почте.
  • В операционной системе Linux вирусы были выявлены только в лабораторных условиях. Несмотря на то, что некоторые образцы Linix-вирусов действительно обладали всеми необходимыми способностями к размножению и автономной жизни, ни один из них так и не был зафиксирован в "диком" виде.

    Использование ОС Linux защищает от вирусов гораздо лучше, чем любые антивирусные программы в MS Windows.

    Правовая охрана программ и GPL

    Говоря о создании и распространении программного обеспечения, следует отметить две основных стратегии, применяемых в этой области. Одна - стратегия copyright, подразумевающая оплату при покупке каждой копии программного продукта и запрет на распространения этих копий. В законодательствах многих стран имеются законы, охраняющие авторское право на программные продукты и данные. Наиболее известен Digital Millennium Copyright Act (DMCA), принятый правительством США, хотя многие считают, что он уже стал орудием торможения развития компьютерной среды.

    Но, программирование - это такая же наука, как и химия, физика, математика. Все достижения в этих областях обнародованы. Не нужно открывать еще раз теорему Пифагора и изобретать заново колесо. Если человек живет в обществе, то все его открытия должны стать достоянием этого общества, ведь именно так происходит прогресс. То же можно сказать и о программном обеспечении. Развитие программного обеспечения невозможно, если мы не можем разделить свои достижения с другими специалистами, чтобы они продолжили наше дело, чтобы развивали и исходили уже из того, что развили другие. Эта точка зрения отражена в лицензии GPL, в соответствии с которой разрабатывалась и развивалась ОС Linux. Говоря о такой стратегии часто используют термин copyleft. Свободное программное обеспечение часто более надежно, чем несвободное.

    В семидесятых годах 20 века программное обеспечение зачастую разрабатывалось свободными объединениями программистов и бесплатно передавалось другим нуждающимся в нем пользователям. Нередко этим занимались даже крупные фирмы. К 1983 году положение изменилось - наступила эра персональных компьютеров, коммерческие программы и операционные системы (в частности, DOS от Microsoft) начали свое победное шествие по миру. Чуть позже идея коммерциализации проникла и в мир "больших" машин и "серьезного" программирования. Ричард Столлмен, один из основателей Unix, основал проект GNU (www.gnu.org), целью которого было вернуть прежние взаимоотношения производителей и потребителей программного обеспечения. GNU (расшифровывается как "GNU is not Unix") - не Unix, потому что GNU не ограничивает свободу.

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

    сколько угодно копировать, как угодно широко ее распространять ;

    изменять или совершенствовать ее исходный код (программа, распространяемая по "публичной лицензии" GNU, всегда поставляется вместе с исходным кодом разработчика - этой самой строго охраняемой и никогда не раскрываемой частью коммерческих программ);

    и, наконец, свободно распоряжаться измененной версией - хоть раздавать ее даром, хоть запрашивать за нее миллиард.

    Только на одну вещь пользователь такого программного обеспечения не имеет права ни в коем случае. Он не может при дальнейшем распространении скрыть исходный код программы, объявив себя его "владельцем", и остановить таким образом ее, программы, свободное совершенствование и развитие. Специально для таких программ проект GNU ввел в обиход понятие copyleft (в отличие от copyright, когда создатель продукта сохраняет на него практически все авторские и имущественные права при любых обстоятельствах - даже если и распространяет его совершенно бесплатно).

    Итак, свобода программного обеспечения состоит из

  • свободы читать (изучать) код;
  • свободы писать (модифицировать) код;
  • свободы распространять (публиковать, тиражировать) код.
  • Очевидно, что проблемы пиратства в случае со свободными программами просто не существует.

    Вернуться к учебному плану