Кто придумал первый компьютерный вирус? Как программисты пишут программы? (4 фото) Человек создавший первую программу

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

Центральный процессор вашего компьютера понимает только программы, написанные на языке ноликов и единичек. Например, команда «прибавить константу 5 к числу, записанному в регистре AL» записывается так:

0000 0100 0000 0101

Здесь 0000 0100 - код операции «прибавить число к регистру AL», а 0000 0101 - двоичное представление числа 5.

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

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

Можно один раз хорошенько помучиться и написать на языке ноликов и единичек вспомогательную программу, которая называется ассемблер («сборщик»). Этот волшебный ассемблер принимает на вход человеко-читаемый текст и преобразует его в нолики и единички. Например, та же самая команда «прибавить константу 5 к числу, записанному в регистре AL» записывается на языке ассемблера x86 так:

Думаю, вы согласитесь, что это всё-таки более читаемо, чем 0000 0100 0000 0101. Здесь хотя бы понятно, что речь идёт о сложении (ADD) и числе 5. Теперь уже дело ассемблера преобразовать эту строчку в 0000 0100 0000 0101. На языке ассемблера сложно писать большие программы, процессоры разных производителей могут требовать разных ассемблеров, но всё равно это был большой шаг вперёд.

Дальше инженерную мысль было не остановить. Нужно один раз помучиться, чтобы написать на ассемблере компилятор языка программирования, например Фортрана. Потом ещё немного помучиться, чтобы написать на Фортране компилятор Алгола. Затем передохнуть, помучиться и написать на Алголе компилятор языка CPL. Ещё немного мучений, и можно на основе CPL написать компилятор языка C. Дальше можно уже не мучиться и в свое удовольствие писать на C компиляторы C++, Java, C# и других современных языков. Впрочем, никто не запретит использовать Java чтобы написать ассемблер x86 и замкнуть рекурсию.

Графиня
Ада Лавлейс

На технологической выставке в 1834 г. Чарльз Бэббидж впервые публично заявил о своей новой разработке – , прабабушке современного компьютера.

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

А Ада Лавлейс (1815-1852) не только все поняла, но и забросала Чарльза вопросами по существу проблемы.

Бэббидж был поражен остротой ума девушки, к тому же, Ада была почти ровесницей его рано умершей дочери.

Кто же была эта девушка?

Ада Августа Лавлейс, урожденная Байрон, родилась 10 декабря 1815 года в семье известного английского поэта лорда Байрона и его жены Анабеллы. Через месяц после рождения ребенка лорд Байрон покинул семью и никогда больше не видел свою дочь.

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

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

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

В 1835 году Ада выходит замуж за лорда Кинга, который впоследствии получил титул графа Лавлейса. У них родилось два сына и дочь, но ни дети, ни муж, ни светская жизнь не могли оторвать Аду от ее любимой математики. Не зря ее называли «Повелительницей чисел»!

В 1842 г. итальянский математик Луис Менебреа, преподаватель баллистики Туринской артиллеристской академии, опубликовал “Очерк Аналитической машины, изобретенной Чарльзом Бэббиджем”. Книга была написана на французском языке, и Бэббидж обратился к Аде Августе с просьбой перевести ее на английский язык.

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

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

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

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

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

“Примечания” Лавлейс заложили основы современного программирования. Одним из важнейших понятий программирования служит понятие цикла, которому она дает следующее определение:

“Под циклом операций следует понимать любую группу операций, которая повторяется более одного раза”.

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

«Можно с полным основанием сказать, Аналитическая машина точно так же плетет алгебраические узоры, как ткацкий станок Жаккарда воспроизводит цветы и листья»

– писала графиня Лавлейс. Она была одна из немногих, кто понимал, как работает машина и каковы ее перспективы.

Уже в то время Ада Лавлейс отдавала себе полный отчет в колоссальных возможностях универсальной вычислительной машины.

Вместе с тем она прекрасно понимала границы этих возможностей:

“Желательно предостеречь против преувеличения возможностей аналитической машины. Аналитическая машина не претендует на то, чтобы создавать что-то действительно новое. Машина может выполнить все то, что мы умеем ей предписать. Она может следовать анализу; но она не может предугадать какие-либо аналитические зависимости или истины. Функции машины заключаются в том, чтобы помочь нам получить то, с чем мы уже знакомы”.

Вместе с тем уже в 40-х годах 19 века она разглядела в машине то, о чем боялся думать ее изобретатель Бэббидж: «Суть и предназначение машины изменятся от того, какую информацию мы в нее вложим. Машина сможет писать музыку, рисовать картины и покажет науке такие пути, которые мы никогда и нигде не видели».

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

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


Сюрпризы реновации. Обсуждение законопроекта

Тем не менее у тех жителей столицы, кто внимательно изучил законопроект, сразу же возникло огромное количество вопросов к нему. И самый главный из них: не нарушает ли решение о массовом сносе находящегося в собственности жилья конституционные права москвичей? Все "за" и "против" в студии "Правды.Ру" обсудили депутат Московской городской думы Елена Шувалова и член комитета кредиторов коммерческого банка "Гагаринский", активист Сергей Хабаров.

— Что же не так в этой программе реновации?

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

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

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

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

Е. Ш.: Я бы сказала гораздо жестче: там попираются все нормы судопроизводства.

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

С. Х.: В феврале проходил девятый отчетный выборный съезд Совета муниципальных образований города Москвы, где был поднят вопрос о пятиэтажках, о второй волне сноса. На него был получен ответ от Марата Хуснуллина, который руководит строительным комплексом Москвы: "У нас сейчас нет возможности реализовать эту программу по трем причинам. Первая — это требует грандиозных ресурсов, которых у Москвы просто нет. Второе: порядка 20% от стоимости программы уходит на суды, люди против, с ними приходится как-то договариваться. Наконец, отсутствуют стартовые площадки". В феврале всего этого не было, а 10 марта внезапно был внесен данный проект закона. Разработать проект закона — это не такое простое занятие, его на коленке не напишешь, а тут люди сработали с какой-то уникальной скоростью.

— Есть еще такой момент: если в течение шестидесяти дней со дня направления предложения заключить договор, и он не будет подписан, то столичные власти имеют право обратиться в суд с требованием о принуждении заключения договора. А как же тогда быть с утверждением, что договор — это продукт непротивления двух сторон?

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

— А как принадлежность к району отражена в этом законопроекте? То есть, если человек проживает на Кутузовском проспекте, а его дом попал в эту программу, где ему тогда будет предоставляться альтернативное жилье?

Е. Ш.: Для разных районов по-разному. Кто-то получает в своем же районе или в смежных. Особенно не повезло в этом плане жителям Центрального округа и территории Новой Москвы. Кроме того, там есть формулировка "в пределах района", но никто не задумывается на тему того, что уже очень давно идут разговоры об укрупнении отдельных районов Москвы. Какие районы имеются в виду? До каких размеров их будут укрупнять? Где в итоге окажется новый дом, в котором предложат квартиру москвичам?

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

С. Х.: Нельзя отрицать такую возможность, учитывая, что сам по себе снос пятиэтажных домов на протяжении двадцать лет проходил довольно успешно. В первой программе сноса пятиэтажек дома были совсем плохие, с убитыми коммуникациями и дырявыми стенами. Во вторую волну включены дома, построенные в 50-е годы ХХ века, у них срок годности составляет 100-150 лет. Это хорошие, крепкие дома, просто несколько обшарпанные. У них стены и фундамент в отличном состоянии. Если он водой не заливается, то все, дом может стоять. Главное, что нужно в них сделать — это переложить коммуникации и вместо деревянных рам поставить пластиковые. Но, например, в Очакове эти дома сносят в большом количестве, чуть ли не кварталами. Нужно понимать, что это просто освобождается земля для нового массового строительства.

К публикации подготовила Мария Сныткова

Dr.Web - один из первых антивирусов в истории

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

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

Идеи витали в воздухе...

Идею самовоспроизводящихся программ изложил «отец» компьютера Джон фон Нейман. Материалы лекций на эту тему, которые он читал начиная с 1949 года, Нейман обобщил в научном труде «Теория самовоспроизводящихся автоматических устройств» более 60 лет назад - в 1951 году.

Появление термина «вирус» по отношению к компьютерной программе было неизбежно. Кто употребил его первым - сказать сложно. Есть мнение, что впервые он применен в фантастическом рассказе писателя и ученого Грегори Бенфорда «Человек в шрамах», опубликованном в 1970 году. Кстати, в этом же рассказе упоминается и программа борьбы с вирусом - «Вакцина»!

Первые вирусы

В 1961 году была создана игра Darwin, в которой несколько программ, названных «организмами», загружались в память компьютера. Организмы одного вида, созданные одним игроком, должны были уничтожать представителей другого вида и захватывать жизненное пространство.

В 1971 году появилась первая программа, которую можно считать вирусом в современном понимании - The Creeper. Она не причиняла вреда, а лишь выводила сообщение на экран:

I`M THE CREEPER: CATCH ME IF YOU CAN

Но она уже умела самостоятельно распространяться по сети, став первым сетевым вирусом в истории.

Она же породила и первый антивирус - программу Reaper, являющуюся по сути таким же сетевым вирусом. Reaper распространялась по сетям, никак себя не проявляя, а если ей удавалось найти на компьютере The Creeper - она его стирала.

Вирусы распространяются

А это уже серьезно


Первыми известными настоящими вирусами являются Virus 1,2,3 и Elk Cloner для ПК Apple II - того самого будущего «мака», вирусов для которых, якобы, не существует. Оба вируса появились в 1981 году.

Первая эпидемия

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

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

Исследования начинаются

В дипломной работе по теме «Самовоспроизводящиеся программы», подготовленной студентом Дортмундского университета Юргеном Краусом в 1980 году, наряду с теоретическими выкладками перечислялись и реально существовавшие на тот момент самовоспроизводящиеся программы для компьютера Siemens. Именно в этой работе впервые была проведена параллель между живой клеткой и самовоспроизводящейся компьютерной программой.

Ясное определение термина «компьютерный вирус» было дано в 1983 году Фредом Коэном, на тот момент - аспирантом Университета Южной Калифорнии:

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

Фред Коэн, «Компьютерные вирусы, теория и эксперименты»

Незадолго до Dr.Web

В 1988 году была разработана первая версия отечественного антивируса Aidstest. Автор этой легендарной программы - Д.Н. Лозинский. Она использовалась практически на всех персональных компьютерах в СССР, а затем в странах СНГ, оставаясь вне конкуренции долгие годы. Разработка Лозинского помогла многим пользователям, в частности в государственном и коммерческом секторах, справиться с вирусной проблемой на начальном этапе ее появления. Сегодня Д.Н. Лозинский является заместителем генерального директора «Доктор Веб».

Дмитрий Николаевич Лозинский - один из тех, кто определил развитие отечественного программирования и стоял у истоков первых российских антивирусных решений.

В СССР у истоков компьютерной вирусологии (с 1989 года) стоял Н.Н. Безруков. Его семинар «Системное программирование» и электронный бюллетень «Софтпанорама» в значительной степени были посвящены вопросам компьютерной вирусологии. В нем были представлены разработчики тогдашних отечественных антивирусов, включая Д.Н. Лозинского.

Позже Н.Н. Безруков написал фундаментальный труд «Компьютерная вирусология», который вышел в 1991 году и оказал большое влияние на Игоря Данилова.

Первая версия Spider’s Web

В 1992 году была разработана первая версия антивирусной системы Spider’s Web, включавшая в себя резидентный сторож Spider и доктор (сканер по современной терминологии) Web.