Первый компьютерный баг был обнаружен в гарварде в 1947 году что он представлял собой

Обновлено: 08.07.2024

В программировании баг (англ. bug — жук) — жаргонное слово, обычно обозначающее ошибку в компьютерной программе или системе, которая выдает неожиданный или неправильный результат. Большинство багов возникают из-за ошибок, допущенных разработчиками программы в её исходном коде, либо в её дизайне. Также некоторые баги возникают из-за некорректной работы компилятора, вырабатывающего некорректный код. Программу, которая содержит большое число багов и/или баги, серьёзно ограничивающие её работоспособность, называют нестабильной или, на жаргонном языке, «глючной», «глюкнутой», «забагованной», «бажной», «баг(а)нутой» (англ. unstable, buggy).

Содержание

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

«Баги» локализуются и устраняются в процессе тестирования и отладки программы.

Багом также называют определённый вид маркера на индикаторах.

Этимология

Легенда о мотыльке и день тестировщика

Широко распространена легенда, что 9 сентября 1945 года учёные Гарвардского университета, тестировавшие вычислительную машину Mark II Aiken Relay Calculator, нашли мотылька, застрявшего между контактами электромеханического реле, и Грейс Хоппер произнесла этот термин. Извлечённое насекомое было вклеено скотчем в технический дневник, с сопроводительной надписью: «First actual case of bug being found» (англ. «первый реальный случай, когда жук был найден»). Считается, что этот забавный факт положил начало использованию слова «debugging» в значении «отладка программы», однако, скорее всего, фраза является каламбуром.

Запись в тех.журнале

Файл:Баг_-_мотылек.jpg

В действительности этот случай произошёл 9 сентября 1947, а не 1945, года. Знаменитый мотылек был передан в музей вычислительной техники, где он и хранится до сих пор. Под его стендом имеется надпись, которая гласит, что этот мотылек стал первым из обнаруженных багов в истории компьютерной техники. С тех пор это слово стало широко использоваться компьютерщиками во всем мире. А тот день, когда насекомое было обнаружено, решено было сделать профессиональным праздником всех тестировщиков.

Исторические факты

Между тем, слово «bug» в современном значении употреблялось задолго до этого персоналом телеграфных и телефонных компаний в отношении неполадок с электрооборудованием и радиотехникой. В течение Второй мировой войны словом «bugs» назывались проблемы с радарной электроникой. В 1878 году Томас Эдисон писал:

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

It has been just so in all of my inventions. The first step is an intuition, and comes with a burst, then difficulties arise—this thing gives out and [it is] then that «Bugs»—as such little faults and difficulties are called—show themselves and months of intense watching, study and labor are requisite before commercial success or failure is certainly reached. [1]

Употребление

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

Поиск и исправление ошибок

Для отладки программы (англ. debugging) разработчиками ПО используются специальные программы-отладчики (англ. debugger). Например, в операционной системе Windows можно использовать программу WinDbg из пакета Microsoft Debugging Tools for Windows. Для GNU/Linux и ряда других UNIX-подобных операционных систем существует отладчик GDB (GNU Debugger).

Отчёты об ошибках

Например, в операционную систему Windows встроена утилита Dr. Watson, которая по умолчанию отлавливает ошибки в приложениях пользователя и отправляет отчёт на специальный сервер компании Microsoft. Также в качестве примера можно привести аналогичные библиотеки Breakpad [2] и CrashRpt [3] .

Какая связь между багом и компьютерной ошибкой?

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

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

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

Нет! Компьютерные ошибки, как правило, только ошибки в конструкции компьютера или программном коде. Даже хорошо написанные компьютерные программы, которые работают практически идеально, содержат ошибки. Если программы или компьютеры, имеют много проблем, часто говорят, "глючит".

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

Если интересует вопрос, когда первый компьютерный баг был обнаружен, это произошло в 1947 году, когда ученые из Гарварда имели проблемы со своим суперкомпьютером Марк II. После некоторых исследований, они обнаружили, что ошибка была в реле, в котором застрял мотылёк, что и вызывало короткое замыкание.

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

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

Получается, что компьютерные ошибки несут опасность? Да, всё может быть. В 1962 году, отсутствие дефиса в компьютерной программе привело к потере зонда "Mariner 1" — беспилотного космического аппарата, стоимость которого составляла 80 миллионов. В 1996 году ракета Европейского космического агентства "Ариан-5" — ценой более 1 миллиард долларов — была разрушена менее чем за минуту после запуска. Всё произошло из-за ошибки в бортовом навигационном компьютере.

Что такое «компьютерная баг» и откуда взялся этот термин

В ы, наверное, слышали это раньше: в программном обеспечении есть «баг», из-за которого что-то работает неправильно. Что такое компьютерный баг и откуда появился этот термин? Мы объясним.

Баг- это непреднамеренная ошибка в компьютерном программном обеспечении

Программная ошибка возникает, когда программист либо делает ошибку при написании программного обеспечения, либо пишет код, который работает, но имеет непреднамеренные последствия, которые не были предвидены программистом. Устранение ошибок в программном обеспечении называется «дебаг».

Почему мы называем их багами

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

Что такое «компьютерная баг» и откуда взялся этот термин

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

«Вы были частично правы, я действительно обнаружил «баг» в своем аппарате, но не в самом телефоне. Он принадлежал к роду callbellum. Похоже, насекомое находит условия для своего существования во всех телефонных аппаратах».

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

Отбросив на мгновение слово «баг», первым известным человеком в истории, который осознал, что программное обеспечение может работать неправильно из-за ошибок в программировании, была Ада Лавлейс. Она писала об этой проблеме еще в 1843 году в своем комментарии к аналитической машине Чарльза Бэббиджа.

Что такое «компьютерная баг» и откуда взялся этот термин

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

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

Бабочка Грейс Хоппер

На протяжении десятилетий книги, журналы и веб-сайты ошибочно сообщали, что термин «баг» был придуман легендарным компьютерным ученым Грейс Хоппер, когда моль влетела в реле компьютера Harvard Mark II и вызвала его неисправность. Как гласит история, она затем записала мотылька в журнал и сделала историческую заметку: «Первый реальный случай обнаружения бага».

Что такое «компьютерная баг» и откуда взялся этот термин

Хотя в 1947 году в Mark II действительно залетела моль, она не была источником терминов «баг» или «дебаг», которые предшествовали инциденту. Кроме того, не совсем ясно, действительно ли моль привела к неисправности компьютера, или это была просто забавная находка, пока они исправляли другие дефекты. Хоппер сделала эту историю известной, рассказав ее в широко цитируемом интервью от ноября 1968 года.

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

Интересно отметить, что Хоппер описывает мотылька Mark IV как «забитого до смерти», вероятно, из-за повреждений, вызванных движением электромеханических реле компьютера, что позволяет предположить, что компьютер продолжал функционировать, пока моль была там.

Историки не знают, был ли это дневник Хоппер или кто на самом деле написал запись, но сегодня журнал Harvard Mark II находится в Национальном музее американской истории в Смитсоновском институте в Вашингтоне, округ Колумбия.

Хотя бабочка Mark II (назовем его «Марк») не была первой компьютерной ошибкой, она, тем не менее, остается физическим и культурным символом очень реальной и сложной проблемы, с которой борются все программисты.

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

Мельница мифов: откуда взялись буки и баги?

Что означает слово "баг"?

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

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

Давным давно, 9 сентября 1945 года ученых Гарвардского университета вызвали для того, чтобы определить причину сбоя в работе вычислительной машины Mark II Aiken Relay Calculator, который произошел накануне. Покопавшись в этой громадной куче приборов, соединенных проводами, они обнаружили бабочку, застрявшую между контактами электромеханического реле. Стало ясно, что именно она и явилась причиной сбоя. Одна из сотрудниц университета Грейс Хоппер так сформулировала результат исследований: "неполадку вызвал баг". После чего извлеченное насекомое было вклеено скотчем в технический дневник, с соответствующей сопроводительной надписью. Которую, по словам моих знакомых, до сих пор можно увидеть в этом журнале, хранящемся в университетском научном музее.

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

  • Во-первых, этот случай произошел не в 1945, а в 1947 году.
  • Во-вторых, надпись в журнале гласила о том, что: "First actual case of bug being found" (англ. "первый реальный случай, когда жук был найден").

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

Баги во второй мировой войне

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

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

Кто первым употребил слово "баг" в нынешнем значении слова?

Однако, как выяснилось, на самом деле данный термин куда старше XX столетия. Его можно встретить, например, в дневниках Томаса Эдисона. Так, в 1878 году он писал о том, что:

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


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

Почему насекомое стало "багом" или помехой?

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

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

  • шуршать,
  • скрипеть
  • и вообще издавать всякие непристойные и неуместные звуки

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

Слово "баг" произошло от детского страшилища

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

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

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

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

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

Читайте также: