«Мне нужно было встретиться с Горбачевым»: как Руст оправдывал свой полет к Кремлю
28 мая 1987 года молодой западногерманский пилот-любитель Матиас Руст навсегда вошел в историю, сумев беспрепятственно пролететь от Хельсинки до Москвы сквозь глубокоэшелонированную систему ПВО советского государства, считавшуюся тогда самой надежной в мире. Он посадил свой легкомоторный самолет Cessna 172 Skyhawk на Большом Москворецком мосту, докатившись затем до Васильевского спуска к Храму Василия Блаженного. Его «подвиг» немедленно послужил источником мемов — вроде переименования Красной площади в «Шереметьево-3», о нем слагали песни перестроечные барды, им невольно восхищались даже те, кто называл его не иначе как «злостным и безответственным авиахулиганом». Он, возможно, ускорил перестройку, дав удачный повод генсеку Михаилу Горбачеву показательно уволить сотни высокопоставленных несговорчивых военных во главе с министром обороны Сергеем Соколовым, проведя тем самым самую масштабную чистку со времен сталинских репрессий 1930-х годов, но при этом пилот никогда не был принят самим Горбачевым, на встречу с которым он искренне надеялся.
«Мне необходимо было встретиться с Михаилом Горбачевым», — заявит он затем на суде в ответ на вопрос: «Зачем вы прилетели в Москву?»
close
28 мая 1987 года в 18:15 гражданский самолет «Цессна-172» беспрепятственно прилетел из Германии в сердце Советского Союза на Красную площадь Представители советских Вооруженных сил придерживались версии о том, что полет был акцией иностранных спецслужб, причем проведенной с согласия руководства СССР. Впоследствии даже якобы появились признания высокопоставленных военных, что эта операция проводилась по указу Горбачева именно с целью чистки Произошедшее повлекло за собой многочисленные перестановки в составе высшего и среднего генералитета. Должностей лишились министр обороны СССР маршал Соколов, главный маршал авиации СССР Колдунов, главком ВВС страны маршал авиации Ефимов и еще около 300 генералов и старших офицеров.На фото: Матиас Руст на Красной площади В суде Матиас Руст должен был отвечать за нарушение советской государственной границы, нарушение международных правил полетов и тяжкое хулиганство Обеденный перерыв Матиаса Руста во время суда, Москва, 1987 год Полную галерею можно посмореть
в отдельном репортажеСмотреть фото
Невероятное стечение обстоятельств, связанных с полетом Руста, вполне предсказуемым образом стало подпитывать разного рода теории заговора, в которых фигурировали и НАТО, и ЦРУ, и сам Горбачев, отдавший якобы соответствующие тайные указания председателю КГБ СССР Владимиру Крючкову, и даже чья-то подводная лодка, создавшая странное масляное пятно на месте мнимой аварии самолета Руста в Финском заливе. Однако время не оставило от этих предположений практически ничего, в полном соответствии с известным тезисом: «Никогда не приписывайте злому умыслу то, что вполне можно объяснить глупостью».
Спустя 35 лет этого бывшего отчаянного подростка — на момент посадки Матиасу Русту не исполнилось даже 19 лет — никто особенно не чествует, столкновения с законом лишили его былого морального авторитета; книга воспоминаний, написанная им в 2012 году, провалилась в продаже, новых откровений от него не ждут. Когда-то западная пресса восхищенно называла его «новым Красным Бароном» и «Дон Кихотом небес». В Эстонии на месте пересечения Рустом границы советского государства на днях даже открыли памятник в виде посадочной полосы, но это всего лишь частная инициатива.
В России Руста тоже вспоминали без симпатии. «Руст пробуравил спортивной «Сессной» воздушную границу СССР; хваленое ПВО ядерной сверхдержавы обнаружило полную беспомощность системы в целом; через брешь, пробитую Рустом, вышел воздух, и шарик начал неумолимо сдуваться», — писал пятнадцать лет назад Александр Архангельский.
«Я просто хотел выжить»: как советский летчик сбежал на «кукурузнике» в Швецию
Ранним утром 27 мая 1987 года бывший летчик из Николаева Роман Свистунов угнал самолет…
27 мая 10:40
Итальянская газета La Repubblica тогда же взяла интервью у отчаянного пилота, где он признавался: «С помощью маленькой «Ceссны» я решил осуществить мечту: прилететь с Запада прямо на Красную площадь. Как жест мира: полет в качестве символического моста между двумя мирами». Так или иначе, но встряску испытала не только советская система, но и западный мир. Для населяющих его обывателей Советский Союз из мощной «Империи Зла» (Evil Empire), как его называл Рональд Рейган после сбитого в 1984 году южнокорейского «Боинга» с 269 жертвами, внезапно превратился во вполне доброжелательного соседа, не решающегося сбить даже явного нарушителя, направлявшегося к сердцу столицы, — то ли из-за всеобщего развала, то ли просто из-за нерешительности военных, по рукам и ногам связанных инструкцией до последнего не применять оружие.
В другом интервью, взятом у Руста американскими научными журналистами в июле 2005-го, пилот также говорит о своей идее «построить воображаемый мост», прилетев в Москву, и о 20-страничном манифесте, который он планировал передать Горбачеву и в котором говорилось о том, как добиться мира во всем мире. «И как бы Рейган продолжал говорить, что это «Империя Зла», если я на маленьком самолете могу прилететь туда и остаться целым и невредимым?» — спрашивал Руст.
В ходе своего полета он видел советский МиГ-23 и пилота в нем, старшего лейтенанта Пучнина, готового немедленно применить оружие или, как сам старлей потом признавался, сжечь самолетик огнем из сопла, включив форсаж, — но МиГ был отозван, тревогу в очередной раз не объявили, а «Ceссну» в очередной раз потеряли.
«Я летел в облаках и практически ничего не видел под собой, когда впереди появился серебристый МиГ — самолет наводящей страх советской системы ПВО, — рассказывал Руст той же La Repubblica. — Было очень сложно держать нервы под контролем.
..» Скорее всего, пилота-хулигана спасло не исключительное миролюбие русских, а очередная случайность: его «Ceссну» приняли за самолет местного аэроклуба. Одномоторный советский спортивный самолет Як-12 с высокорасположенным крылом действительно издалека похож на «Ceссну», однако ни по регистрационному номеру, нанесенному на борт самолета (D-ECJB), ни по наклейке с западногерманским флагом на его хвосте никак нельзя было заключить, что летящий борт — советский Як. Маршал Сергей Ахромеев, начальник Генерального штаба ВС СССР, признался в интервью 1990 года, что командование тогда либо не поверило отчету пилота, либо не подумало, что происшествие — нечто важное, потому что информация не передавалась дальше по служебной цепочке.Оказавшись над Москвой, Руст долго не мог найти Красную площадь, поскольку привык, что центры западных городов отмечают ряды сверкающих офисных башен. Но наконец он увидел характерную стену с башенками, окружающую Кремль. После этого он начал кружить, выбирая место для посадки.
«Сначала я думал, что, может быть, мне следует приземлиться внутри кремлевской стены, но потом понял, что, хотя места там предостаточно, КГБ может со мной сделать там нечто ужасное, — вспоминает он. — И если бы я приземлился за стеной, меня увидели бы от силы лишь несколько человек, они могли бы просто забрать меня и все потом отрицать. Приземлившись на открытой площади, я показался множеству людей, и в КГБ не могли арестовать меня незаметно и лгать потом об этом. Так что ради собственной безопасности я и отказался от этой идеи».
Кружа над Кремлем, Руст заметил подходящий шестиполосный мост через Москву-реку, ведущий на Красную площадь. Единственными препятствием были провода, натянутые с обоих концов моста и по его середине. Раст прикинул, что места там достаточно, чтобы пройти над первой линией проводов и затем, приземлившись, подрулить под другими проводами на площадь. Но выкатываясь из-под средней линии проводов, Руст заметил перед собой старую «Волгу». «Я двинулся влево, чтобы обойти ее, — рассказывал он, — и когда я это проделал, то увидел старика с таким выражением лица, как будто он не мог поверить в то, что наблюдает. Я понадеялся, что он не запаникует, не потеряет контроль над машиной и не врежется в меня».
Наконец «Сессна» прошла под последней линией проводов и выкатилась на площадь. Притормозив, Руст стал искать место для парковки. Он хотел поставить самолет на середину площади, перед Мавзолеем. Но Храм Василия Блаженного окружал небольшой забор с натянутой цепью, преграждавшей путь, поэтому «Сессна» так и осталась перед церковью.
Руст заглушил двигатель, затем на мгновение закрыл глаза и глубоко вдохнул. «Я помню это огромное чувство облегчения, как будто сбросил с себя большой груз». Он посмотрел на кремлевскую башню с часами. Было 18:43, прошло почти пять с половиной часов с тех пор, как он покинул Хельсинки. Выйдя из самолета и прислонившись к нему, пилот стал ждать штурма, однако его не последовало. Люди на Красной площади казались ошеломленными и не понимали, что происходит. Некоторые из них могли полагать, что самолет Руста был личным транспортом Горбачева или что все это — часть съемок какой-нибудь кинокартины. Но как только толпа поняла, что Руст и его «Сессна» прибыли с Запада, совершив один из самых сенсационных перелетов, свидетелями которого они все оказались, к нему приблизились.
«Вокруг меня собралась большая толпа, — говорил Руст. — Люди улыбались и подходили, чтобы пожать мне руку или попросить автограф. Там был молодой русский парень, который говорил по-английски. Он спросил меня, откуда я родом. Я сказал ему, что прибыл с Запада и хочу поговорить с Горбачевым, чтобы передать мирное послание, которое поможет ему убедить всех на Западе в том, что страна изменилась». Атмосфера была праздничной. Одна женщина дала ему кусок хлеба в знак дружбы. По словам Руста, какой-то курсант сказал ему, что «он восхищается моей инициативой, но что я должен был подать заявление на получение визы и договориться о встрече с Горбачевым, однако при этом он согласился, что меня, скорее всего, не пустили бы».
Руст не заметил, когда через толпу двинулись агенты КГБ, опрашивая людей и изымая фотоаппараты.
Руста прикрыли облака
28 мая исполняется 30 лет со дня исторического полета Матиаса Руста, посадившего свой легкомоторный самолет…
29 мая 08:47
Из черного седана вышли трое мужчин и представились. Младший, переводчик, вежливо попросил у Руста паспорт и спросил, нет ли у него оружия. Затем они решили осмотреть самолет. После еще нескольких вопросов пилота попросили сесть в машину. Атмосфера встречи, по словам Руста, оставалась очень дружелюбной. «Сессну» доставили в московский международный аэропорт «Шереметьево» и разобрали для осмотра, а Руста отправили в Лефортовскую тюрьму.
Оказывается, Руст даже и не знал, что прилетел в Россию в День пограничника. Многие полагали, что он выбрал этот день, считая, что граница в это время будет менее защищенной, или, возможно, чтобы максимально досадить военным.
«Я не знал об этом, — говорит Раст. — Я сказал им: «Я западный немец. Откуда мне знать о ваших праздниках? Это было просто удачное стечение обстоятельств».
Следователи показали ему также фотографии моста, на который он приземлился. На этих снимках через мост было протянуто множество линий проводов, через которые невозможно было пробиться. Они спросили, как же прилетевший смог их все обойти? Озадаченный, Руст объяснил, что во время посадки он видел только три линии проводов. В ходе дальнейшего разбирательства выяснилось, что утром в тот день бригада рабочих временно сняла большую часть проводов из-за ремонтных работ; их заменили буквально на следующий же день. «Говорили, что я, должно быть, родился в рубашке — это русское выражение, означающее «рожденный счастливчиком», — признавался Руст. Хотя, конечно, это обстоятельство также хорошо легло в «теорию заговора».
В одном немецком периодическом издании была опубликована статья, в которой говорилось, что Руст совершил свой полет на спор. Другое издание сообщало, что он это сделал, чтобы произвести впечатление на свою девушку. Еще в одном материале говорилось, что пилот собирался разбрасывать листовки с призывом освободить из тюрьмы Рудольфа Гесса — приближенного Гитлера, все еще сидевшего тогда в тюрьме в Западном Берлине. Советская газета «Правда» объясняла странности причастностью Руста к международному заговору, в ходе которого он якобы должен был быть сбит, что спровоцировало бы новый международный конфликт. Какими бы нелепыми ни были все эти слухи, каждое такое предположение проверялось следователями, которые, впрочем, все равно закончили свою работу чрезвычайно быстро — к 23 июня 1987 года.
4 сентября, после трехдневного судебного разбирательства, коллегия из трех судей признала Руста виновным по всем пунктам обвинения и приговорила его к четырем годам заключения. Но уже 3 августа 1988 года, через два месяца после того, как Рейган и Горбачев согласовали договор о ликвидации ядерного оружия средней дальности в Европе, Верховный Совет в качестве «жеста доброй воли» решил освободить Руста из тюрьмы.
После возвращения в Германию Руст был лишен лицензии пилота, а в ноябре 1989 года, проходя альтернативную службу в больнице, серьезно ранил ножницами медсестру за то, что она отказалась проявить к нему благосклонность. За это его приговорили к 2,5 годам лишения свободы, освободив спустя 15 месяцев. Затем он торговал обувью, жертвуя деньги детскому дому, а в 1994 году вновь поехал в Россию, пытаясь встретиться с Горбачевым и организовать свою фирму — но ни то, ни другое ему не удалось. В 1997 году обратился в индуизм и женился на индийской девушке по имени Гита, дочери торговца чаем из Бомбея, но позже с ней развелся. В апреле 2001 года Руст снова предстал перед судом — на этот раз его обвинили в краже кашемирового свитера в универмаге и приговорили к большому штрафу, который впоследствии уменьшили. Еще одно столкновение с законом у него случилось в 2005 году: он был признан виновным в мошенничестве, но отделался штрафом в размере €1500. На жизнь он зарабатывал также игрой в покер, преподаванием йоги и, по его собственным словам, работая в качестве аналитика инвестиционного банка в Цюрихе.
Как 30 лет назад немец Матиас Руст преодолел систему ПВО СССР
28 мая исполняется 30 лет со дня исторического полета Матиаса Руста, посадившего свой легкомоторный самолет возле Кремля. До сих пор не утихают споры о том, почему немецкому авантюристу удалось «взломать» признававшуюся надежной систему ПВО СССР. Военный обозреватель «Газеты.Ru», экс-офицер Главного штаба Войск ПВО страны полковник Михаил Ходаренок напоминает, как такое стало возможным.
Утром 28 мая 1987 года немецкий авиатор-любитель Матиас Руст взлетел на моноплане Cessna 172R с аэродрома возле Хельсинки, на котором за сутки до этого он прилетел из Гамбурга. В полетных документах конечной точкой маршрута значился Стокгольм.
В 13.10, получив разрешение, Руст поднял свою машину в воздух и направился по запланированному маршруту. Через 20 минут полета он доложил диспетчеру, что на борту у него порядок, и традиционно попрощался. После чего, выключив бортовую радиостанцию, круто развернул самолет в сторону Финского залива и начал снижение до высоты 80–100 м. Этот запланированный
маневр должен был обеспечить надежный выход самолета из зоны наблюдения диспетчерского радара и скрыть истинный маршрут полета.
На этой высоте Матиас направился в расчетную точку Финского залива вблизи воздушной трассы Хельсинки — Москва. Развернув самолет в сторону первого наземного ориентира на побережье Советского Союза (сланцевый комбинат города Кохтла-Ярве с его дымами, которые были видны за сто километров) и сверив показания радиокомпаса с расчетными, Руст лег на «боевой курс».
close
100%
Замеченный на подлете нарушитель государственной границы СССР следовал по международной воздушной трассе. Информация о нем была выдана на КП радиотехнического батальона в эстонском городке Тапа, 4-й радиотехнической бригады и Разведывательного информационного центра 14-й дивизии. Фактически информация о цели уже с 14.31 была отображена на экранах автоматизированных рабочих мест дежурного боевого расчета КП дивизии.
Оперативный дежурный КП бригады майор Криницкий не стал сразу объявлять цель нарушителем госграницы и продолжил уточнение характеристик объекта и его принадлежность, пока Руст не вышел из зон видимости РЛС бригады. Заместитель дежурного
майор Черных, согласно донесению, зная реальную обстановку и то, что цель идет со стороны Финского залива к береговой черте, «действовал безответственно»
и присвоил ей номер только в 14.37.
Оперативный дежурный КП дивизии подполковник Карпец не потребовал четких докладов и уточнения типа и характера цели, «нарушив тем самым требования о немедленной выдаче цели на оповещение», а также порядок принятия решения о взлете дежурных экипажей для опознавания цели.
По сути, было принято решение: до полного выяснения ситуации информацию «наверх» не выдавать. Над территорией Эстонии в этот момент находилось не менее десяти легкомоторных самолетов самой разной ведомственной принадлежности. Ни один из них не был оборудован системой государственного опознавания.
В 14.28 окончательно выясняется, что гражданских самолетов малой авиации в этом районе нет. В 14.29 оперативный дежурный командного пункта 14-й дивизии ПВО принял решение о присвоении нарушителю «боевого номера» 8255, о выдаче информации «наверх» и объявлении готовности №1.
Только в 14.45 о движении Руста сообщили на вышестоящий КП 6-й отдельной армии ПВО.
«Таким образом, по вине КП 14-й дивизии ПВО было потеряно 16 минут времени, а главное — исчезла острота восприятия воздушной обстановки КП армии, исходя из того, что цель шла со стороны Финского залива и вошла в границы СССР», — утверждается в донесении.
При этом дежурный КП 656-го истребительного авиационного полка в городе Тапа лейтенант Филатов еще в 14.33 привел в готовность №1 дежурные истребители, неоднократно запрашивая разрешение на их подъем, однако в дивизии дали добро только в 14.47.
Самолет Руста тем временем приближался к Чудскому озеру. В 14.30 по маршруту полета Cessna 172R погода резко ухудшилась. Руст принял решение уйти со снижением под нижнюю кромку облаков и изменить курс в район запасного ориентира: железнодорожного узла станции Дно.
close
100%
Цель фактически уже проходила зону сплошного дежурного радиолокационного поля на малых высотах и зоны поражения дежурных зенитных ракетных дивизионов. Было упущено драгоценное для перехвата время.
Позже командование расценило промедление расчетов 14-й дивизии как «ничем не объяснимые, кроме как полной безответственностью, граничащей с преступлением».
Прибывшему на КП в 14.53 командиру 14-й дивизии было доложено, что для уточнения типа цели в районе коридора №1 трассы Хельсинки — Москва был поднят истребитель. О том, что цель была обнаружена еще вблизи госграницы над Финским заливом, дежурный офицер умолчал.
Оперативный дежурный на КП 6-й армии полковник Воронков, получив информацию о цели, спустя минуту — в 14.46 — привел в готовность №1 дежурные силы 54-го корпуса ПВО и разрешил наконец подъем дежурной пары истребителей 656-го полка в воздух с задачей одному из них перекрыть границу, другому — опознать нарушителя режима полетов.
Спустя еще пять минут на КП армии прибыл ее командующий — генерал Герман Кромин, который взял на себя руководство дежурными силами. Он привел в готовность №1 все соединения и части 54-го корпуса ПВО. Командиры трех зенитных ракетных дивизионов 204-й гвардейской бригады в Керстово, находившихся на маршруте полета Руста, доложили, что цель наблюдают и готовы к пуску ракет.
Поднятый в воздух МиГ-23 старшего лейтенанта Пучнина до 15.00 ждал, пока начальник смены Регионального центра единой системы управления воздушным движением зоны ответственности ВВС Ленинградского военного округа полковник Тимошин даст разрешение на вход в район воздушного пространства.
Только в 15.23 при управлении с пункта наведения 54-го корпуса ПВО летчик был подведен к цели для ее опознавания. «МиГ» подлетал к цели на высоте 2 тыс. м в условиях 10-балльной облачности с нижней кромкой 500–600 и верхней 2,5–2,9 тыс. м. Руст шел почти на 1,5 км ниже, прямо под облаками — на высоте 600 м.
При первом заходе Пучнин цель не обнаружил. При повторном заходе уже на высоте 600 м летчик визуально обнаружил цель ниже себя на 30–50 м и в 15.28 передал на пункт наведения ее характеристику: «Легкомоторный самолет белого цвета типа Як-12».
О типе цели было доложено командованию 6-й армии, однако там не приняли никакого решения, одобрив увод истребителя. При этом у «МиГа» оставалось топливо для еще одного захода и более точного опознавания цели и, главное, определения ее государственной принадлежности.
close
100%
«Сигнал «Ковер» (требование немедленной посадки. — «Газета.Ru») объявлен не был», — подчеркивается в официальных документах.
В ходе следствия Русту задавали вопрос о том, видели ли он истребитель. Немец подтвердил и говорил, что даже поприветствовал советского летчика, но никаких ответных сигналов не получил. Радиостанция самолета Cessna 172R была выключена.
Доклад пилота МиГ-23 остался без внимания, так как посчитали, что обнаруженный самолет принадлежит одному из местных аэроклубов, где в это время шли плановые полеты.
В это время уже почти в течение двух часов продолжались спасательные поиски Руста финской стороной. В связи с неожиданным исчезновением с экрана диспетчерского радара аэропорта отметки от взлетевшего самолета диспетчер попытался связаться с Матиасом Рустом. После нескольких безуспешных попыток самолет был объявлен терпящим бедствие, а в предполагаемый район падения направлены спасатели.
Поиски продолжались несколько часов. Позже с Руста взыщут около $100 тыс. за «оказанные услуги».
В 15.31 с аэродрома Тапа был поднят второй истребитель. Повторился прежний порядок наведения с задержкой перед зоной ответственности ВВС Ленинградского военного округа. Только в 15.58 на высоте 1,5 тыс. м советский летчик оказался в районе цели, но визуально ее не обнаружил и вернулся на аэродром базирования без результата. К тому моменту советские радары потеряли слабый сигнал от низколетящего одномоторного самолета Руста и переключились на сопровождение напоминавших его отражений от метеообразований.
Здесь требуются некоторые пояснения. В середине 70-х, когда на вооружение РТВ ПВО начали поступать мощные высокопотенциальные локаторы, уже в ходе их полигонных испытаний стали обнаруживаться отметки с параметрами движения, соизмеримыми с характеристиками легкомоторных самолетов. Их шутливо окрестили эхо-ангелами. Это явление вызвало серьезные трудности при автоматизированной обработке информации. Если даже оператор их плохо различает, как научить «автомат» работать без ошибок?
В ходе серьезных исследований и массы экспериментов было установлено, что РЛС за счет высокого излучающего потенциала могут наблюдать специфические метеорологические объекты. Это явление характерно для весеннего периода в средних широтах и при движении мощного теплого фронта. Кроме того, очень похожий эффект создает сезонная миграция плотных стай птиц. Операторам РЛС требовалась помощь в распознавании объектов такого класса. Для органов управления Войск ПВО были разработаны подробные методики и инструкции.
Произошедшие в определенный момент значительные изменения параметров цели в течение всего лишь одной минуты не насторожили расчет и остались без должного внимания. Операторам явно не хватило квалификации. Кроме того, утрата радиолокационного контакта с самолетом Руста произошла на стыке границ ответственности двух соединений ПВО — 14-й дивизии и 54-го корпуса, где слаженность расчетов командных пунктов играет важную, если не решающую роль.
Поднявшиеся в дальнейшем последовательно в 15.54 и 16.25 истребители с аэродрома Лодейное Поле в Ленобласти заходили уже на ложные цели.
В это время по маршруту Руста теплый воздушный фронт передвигался на юго-восток. Наблюдалась сплошная облачность, местами дожди, нижний край облаков — 200–400 м, верхний край — 2,5–3 тыс. м. Поиск осуществлялся в течение 30 минут. Опускаться в облака истребителям запретили, это было слишком опасно.
Лишь в 16.30 командующий 6-й армии лично информировал о сложившейся ситуации дежурного на КП Московского округа ПВО, сделав вывод, что цель 8255 представляет собой плотную стаю птиц. При этом в действующих методиках и инструкциях содержались необходимые сведения о том, какие виды птиц и в какое время суток могут летать в тумане и облаках, а также при каких обстоятельствах плотная стая может изменить направление полета.
Если руководствоваться этими рекомендациями, то самолет Руста никак нельзя было отождествить с птичьей стаей.
После получения сведений от 6-й армии Московским округом ПВО в 16. 32 были включены РЛС 2266-го радиотехнического батальона в городе Старая Русса Новгородской области, а в готовность №1 переведены дежурные экипажи на тверских аэродромах Андреаполь и Хотилово. Подъем двух истребителей оттуда к обнаружению цели не привел: летчиков продолжали наводить на призрачные метеообразования.
close
100%
Как выяснилось позже, потерянный самолет-нарушитель в 16.16 был обнаружен дежурной РЛС 1074-й отдельной радиолокационной роты 3-й радиотехнической бригады 2-го корпуса ПВО в Тверской области. Данные цели до 16.47 в автоматическом режиме выдавались на КП вышестоящего радиотехнического батальона.
На КП 2-го корпуса ПВО на специальной аппаратуре «Протон-2» позже нашлись данные проводки самолета-нарушителя с 16.18 до 16.28, однако из-за низкой подготовленности соответствующих расчетов информация не была использована.
Матиас в это время находился в 40 км западнее города Торжок, где накануне произошла авиакатастрофа.
В воздухе столкнулись два самолета — Ту-22 и МиГ-25. На месте падения фрагментов машин работали несколько групп спасателей и специалистов по расследованию происшествия. К месту катастрофы люди и грузы доставлялись вертолетами авиационной части в районе города Торжок. Один из вертолетов находился в воздухе в роли связного ретранслятора. В 16.30 самолет Руста отождествили с вертолетом, поэтому никакого беспокойства он на этом участке полета ни у кого не вызвал.
Воздушная обстановка в зоне обнаружения следующего подразделения, куда вошел самолет Матиаса, была тоже напряженной. Здесь боролись с пресловутыми долгоживущими метеорологическими объектами. Они наблюдались на экранах индикаторов РЛС уже в течение 40 минут (причем по нескольку одновременно). Все объекты двигались на юго-восток. Здесь Руст вновь попал «под амнистию» — был снят с сопровождения как метеорологический объект. Это случилось уже на выходе из зоны обнаружения подразделения.
Тем не менее на командном пункте заметили курсовое отличие этой трассы от ранее сбрасываемых с сопровождения воздушных объектов. В 16.48 решением командира 2-го корпуса ПВО были подняты два дежурных истребителя с аэродрома Ржев с задачей — поиск самолетов малой авиации или других летательных аппаратов юго-восточнее города Старица. Поиск результатов не дал.
К 17.36 на КП Московского округа ПВО появился заместитель командующего МО ПВО генерал-лейтенант Бражников, который, оценив обстановку, в течение нескольких минут поставил задачу на приведение в готовность №1 дежурных сил зенитных ракетных войск 2-го корпуса ПВО и приказал искать цель радиолокаторами подсвета цели комплексов С-200. Это тоже не принесло результатов, так как к этому времени Руст прошел границу ответственности вышеназванного корпуса. Задачи прикрывающей Москву 1-й армии ПВО особого назначения поставлены не были.
В 17.40 самолет Матиаса попал в зону действия гражданских радаров Московского аэроузла. В плане самолет не значился, осуществлял полет с нарушениями правил, связи с экипажем не было. Это серьезно угрожало безопасности воздушного движения в Московской авиационной зоне. До выяснения ситуации администрация аэропорта Шереметьево прекратила прием и отправку пассажирских лайнеров.
При согласовании плана совместных действий с командованием Московского округа ПВО было принято решение о том, что гражданские специалисты сами разберутся с нарушителем режима полетов.
Когда же обнаружилось, что нарушитель уже над городской застройкой Москвы, где полеты вообще запрещены, предпринимать что-либо было поздно.
В 18.30 самолет Руста появился над Ходынским полем и продолжил полет к центру города. Решив, что приземлиться на Ивановской площади Кремля невозможно, Матиас предпринял три безуспешные попытки приземлиться на Красной площади. Размеры последней позволяли это сделать, но на брусчатке находилось много людей.
После этого немец принял рискованное решение — приземлиться на Москворецком мосту. Развернувшись над гостиницей «Россия», он начал снижение над улицей Большая Ордынка, включив посадочные огни. Постовой службы ГАИ во избежание аварии на мосту включил красный свет светофора.
Посадку Руст выполнил мастерски, если учесть, что ему пришлось снайперски попасть в область между растяжками контактной троллейбусной сети.
Это произошло в 18.55. Подрулив к Покровскому собору и выключив двигатель, Матиас вышел из самолета в новеньком красном комбинезоне, поставил колодки под шасси и начал раздавать автографы.
close
100%
Уже на первом этапе начали проявляться последствия реформы — расчленения единой системы управления Войсками ПВО страны между военными округами в 1978 году.
Войска противовоздушной обороны СССР во второй половине 70-х развивались настолько активными темпами, что на Западе признавали их превосходство над подобными системами других стран мира.
Завершалось переоснащение Войск ПВО на новейшие по тем временам вооружение и военную технику. Система ПВО страны в этот период представляла собой единый автоматизированный организационно-технический комплекс, который находился в постоянной боевой готовности и непрерывно совершенствовался.
Воздушные рубежи СССР в годы «холодной войны» постоянно подвергались проверкам на прочность. Кстати,
еще в середине 70-х настоящим бичом системы ПВО СССР в Северо-Западном регионе стали нарушения госграницы легкомоторными самолетами (типа Cessna, Beechcraft, Piperи др.) со стороны Финляндии.
Как правило, причиной таких инцидентов была потеря ориентировки летчиками-любителями.
Однако этим дело не обходилось. 20 апреля 1978 года в районе Кольского полуострова госграницу пересек пассажирский самолет Воеing 707 южнокорейской авиакомпании KAL. После безуспешных попыток принудить самолет к посадке командующий 10-й армией ПВО принял решение применить оружие. Истребитель ПВО Су-15 открыл огонь на поражение и повредил левую консоль крыла лайнера. Тот совершил вынужденную посадку на лед озера Колпиярви в районе города Кемь. Погибли два пассажира, несколько человек получили ранения. Действия командования ПВО впоследствии были признаны правильными, а все участники перехвата представлены к государственным наградам.
К тому времени влиятельная группа высших руководителей Министерства обороны замыслила реформу ПВО СССР, которая предусматривала передачу большей, лучшей и наиболее боеспособной части Войск ПВО в состав приграничных военных округов. Решительно против этого выступал главнокомандующий Войсками ПВО страны маршал Советского Союза Павел Батицкий.
Летом 1978 года вредное решение было принято. Корпуса и дивизии ПВО отдавались в распоряжение административно-хозяйственных структур, каковыми на практике были военные округа. Реформа проходила в неоправданной суете. Через несколько лет было все-таки принято решение вернуть войска в исходное состояние, но ущерб в ПВО вспоминают до сих пор.
Тем временем напряженность в сфере охраны госграницы не спадала. Только на Дальнем Востоке в начале 80-х операторы радиотехнических войск сопровождали на экранах PЛC вблизи границ более трех тысяч воздушных объектов ежегодно.
Трагической кульминацией стал сбитый 1 сентября 1983 года после проникновения в воздушное пространство СССР южнокорейский авиалайнер Boeing 747.
Именно после этого Советский Союз был объявлен «империей зла», а на внеочередной сессии ИКАО было принято дополнение к третьей статье Чикагской конвенции 1944 года «О международной гражданской авиации», которое запрещало сбивать гражданские самолеты вне зависимости от того, над территорией какого государства они оказались. Советским руководством принимается политическое решение об ограничении применения оружия Войсками ПВО. Приказ министра обороны предписывал всеми силами и средствами принуждать нарушителей к посадке. Этот документ ситуацию не упростил, а скорее усложнил.
close
100%
Офицеры ПВО стали заложниками принятых решений политического характера. И процедура принуждения к посадке таких нарушителей госграницы однозначно не определена до сих пор.
Во время подлета Руста к территории СССР был нарушен и «святой принцип границы» — немедленная выдача информации по цели до выяснения ситуации. Однако вместо рационального анализа случившегося провала начался поиск виновных, которые обнаружились почти сразу.
Руководством страны были сняты со своих постов три маршала Советского Союза и около трехсот генералов и офицеров. Такого кадрового погрома армия не знала буквально с 1937 года.
В итоге к руководству Вооруженных сил и видов ВС пришли люди, на порядок (а то и на два) уступающие по своим профессионально-деловым и моральным качествам снятым маршалам и генералам.
Как Rust превратился из побочного проекта в самый любимый в мире язык программирования
Вычисления
На протяжении десятилетий программисты писали критически важные системы на C и C++. Теперь они обращаются к Rust.
Автор:- Страница архива Клайва Томпсона
14 февраля 2023 г.
Jinhwa JangМногие программные проекты возникают потому, что где-то там у программиста возникла личная проблема, которую нужно решить.
Примерно так и случилось с Грейдоном Хоаром. В 2006 году Хоару было 29 лет.-летний программист, работающий в Mozilla, компании-разработчике браузеров с открытым исходным кодом. Вернувшись домой в свою квартиру в Ванкувере, он обнаружил, что лифт не работает; его программное обеспечение потерпело крах. Это тоже было не в первый раз.
Хоар жил на 21 этаже, и когда он поднимался по лестнице, то раздражался. «Смешно, — подумал он, — что мы, компьютерщики, не можем даже сделать лифт , который работает без сбоев! » Хоар знал, что многие такие сбои происходят из-за проблем с тем, как программа использует память. Программное обеспечение внутри таких устройств, как лифты, часто написано на таких языках, как C++ или C, которые известны тем, что позволяют программистам писать код, который работает очень быстро и достаточно компактен. Проблема в том, что эти языки также позволяют легко случайно ввести ошибки памяти — ошибки, которые приведут к сбою. По оценкам Microsoft, 70% уязвимостей в ее коде связаны с ошибками памяти в коде, написанном на этих языках.
Большинство из нас, если бы нам пришлось подниматься на 21 лестничный пролет, просто разозлились бы и оставили это там. Но Хоар решил что-то с этим сделать. Он открыл свой ноутбук и начал разрабатывать новый компьютерный язык, который, как он надеялся, позволит писать небольшой и быстрый код без ошибок памяти. Он назвал его ржавчиной в честь группы удивительно выносливых грибов, которые, по его словам, «сделаны для выживания».
Семнадцать лет спустя Rust стал одним из самых популярных новых языков на планете — может быть, самый горячий из . На Rust пишут 2,8 миллиона программистов, и компании от Microsoft до Amazon считают его ключом к своему будущему. Чат-платформа Discord использовала Rust для ускорения своей системы, Dropbox использует его для синхронизации файлов с вашим компьютером, а Cloudflare использует его для обработки более 20% всего интернет-трафика.
Когда форум программистов Stack Overflow проводит ежегодный опрос разработчиков по всему миру, Rust уже семь лет подряд признается самым «любимым» языком программирования. Даже правительство США активно продвигает программное обеспечение на Rust, чтобы сделать свои процессы более безопасными. Язык стал, как и многие успешные проекты с открытым исходным кодом, амбаром: теперь есть сотни стойких участников, многие из которых добровольцы. Сам Хоар отказался от проекта в 2013 году, с радостью передав его другим инженерам, в том числе основной команде Mozilla.
Нередко кто-то создает новый компьютерный язык. Многие программисты постоянно создают небольшие проекты в качестве побочных проектов. Но редко случается так, что один из них удерживает место и становится частью пантеона хорошо известных языков наряду, скажем, с JavaScript, Python или Java. Как Раст это сделал?
Чтобы понять, что делает Rust таким полезным, стоит заглянуть под капот и понять, как языки программирования взаимодействуют с компьютерной памятью.
Грубо говоря, динамическую память компьютера можно представить как классную доску. Когда программа работает, она постоянно записывает на доску небольшие фрагменты данных, отслеживая, где они находятся, и стирая их, когда они больше не нужны. Однако разные компьютерные языки управляют этим по-разному. Более старые языки, такие как C или C++, предназначены для того, чтобы дать программисту большую власть над тем, как и когда программное обеспечение использует классную доску. Эта сила полезна: имея такой большой контроль над динамической памятью, программист может заставить программу работать очень быстро. Вот почему C и C++ часто используются для написания «голого» кода, который напрямую взаимодействует с оборудованием. Машины без операционной системы, такой как Windows или Linux, включая все, от аппаратов для диализа до кассовых аппаратов, работают на таком коде. (Он также используется для более сложных вычислений: в какой-то момент операционной системе необходимо взаимодействовать с оборудованием. Ядра Windows, Linux и MacOS в значительной степени написаны на C.)
« приятно писать на Rust, что может быть странно говорить, но это просто фантастический язык. Это весело. Ты чувствуешь себя волшебником, чего никогда не бывает в других языках».
Паркер Тиммерман, инженер-программист
Но какими бы быстрыми ни были языки вроде C и C++, приходится идти на компромисс. Они требуют от кодировщика тщательного отслеживания того, в какую память записывается и когда ее стирать. А если случайно забыть что-то стереть? Вы можете вызвать сбой: программное обеспечение позже может попытаться использовать место в памяти, которое оно считает пустым, хотя на самом деле там что-то есть. Или вы можете дать цифровому взломщику способ проникнуть внутрь. Хакер может обнаружить, что программа неправильно очищает свою память — информация, которая , если были стерты (пароли, финансовая информация), все еще висит где-то рядом — и украдкой захватите эти данные. По мере того, как фрагмент кода C или C++ становится все больше и больше, даже самый осторожный программист может сделать много ошибок памяти, заполнив программу ошибками.
«В C или C++ у вас всегда есть этот страх, что ваш код просто случайно взорвется», — говорит Мара Бос, соучредитель фирмы Fusion Engineering, производящей дроны, и руководитель группы библиотеки Rust.
В 90-х годах стал популярным новый набор языков, таких как Java, JavaScript и Python. Они использовали совсем другой подход. Чтобы уменьшить нагрузку на программистов, они автоматически управляли памятью с помощью «сборщиков мусора», компонентов, которые периодически очищали память во время работы программного обеспечения. Presto: вы можете написать код, в котором не будет ошибок памяти. Но недостатком была потеря этого мелкозернистого контроля. Ваши программы также работали медленнее (поскольку сборка мусора занимает решающее время обработки). И программное обеспечение, написанное на этих языках, использовало гораздо больше памяти. Таким образом, мир программирования разделился, грубо говоря, на два племени. Если программное обеспечение должно было работать быстро или на крошечном чипе встроенного устройства, оно, скорее всего, было написано на C или C++. Если это было веб-приложение или приложение для мобильного телефона — а это все большая часть мира кода, — то вы использовали более новый язык со сборкой мусора.
В Rust Хоар стремился создать язык, который разделил бы разницу между этими подходами. Программистам не нужно было бы вручную выяснять, в какую часть памяти они помещают данные; Раст сделал бы это. Но это наложило бы множество строгих правил на то, как данные могут использоваться или копироваться внутри программы. Вам придется выучить эти правила кодирования, которые будут более обременительными, чем в Python или JavaScript. Ваш код будет сложнее писать, но он будет «безопасен для памяти» — не будет опасений, что вы случайно вставите смертельные ошибки памяти. Важно отметить, что Rust также предлагает «безопасность параллелизма». Современные программы делают несколько вещей одновременно — другими словами, одновременно — и иногда эти разные потоки кода пытаются изменить один и тот же фрагмент памяти почти в одно и то же время. Система памяти Rust предотвратит это.
Когда он впервые открыл свой ноутбук, чтобы начать разработку Rust, Хоар уже был ветераном программного обеспечения с 10-летним стажем, работая полный рабочий день в Mozilla. Сначала Rust был просто побочным проектом. Хоар корпел над ним несколько лет, и когда он показал его другим кодерам, реакция была неоднозначной. «Некоторый энтузиазм», — сказал он мне по электронной почте. «Много закатывания глаз и «Это никогда не сработает» или «Это никогда не будет пригодно для использования».
Однако руководство Mozilla было заинтриговано. Они поняли, что Rust может помочь им создать лучший движок браузера. Браузеры — общеизвестно сложные части программного обеспечения с множеством возможностей для опасных ошибок памяти.
Одним из сотрудников, который принял участие, был Патрик Уолтон, который присоединился к Mozilla после того, как решил оставить учебу в докторантуре по языкам программирования. Он помнит, как Брендан Эйх, изобретатель JavaScript, позвал его на встречу в Mozilla: «Он сказал: «Почему бы вам не зайти в эту комнату, где мы собираемся обсудить проектные решения для Rust?» Уолтон подумал, что Rust звучит более звучно. фантастика; он присоединился к Хоару и растущей группе инженеров в разработке языка. Многие, например инженеры Mozilla Нико Мацакис и Феликс Клок, имели академический опыт исследования памяти и языков программирования.
Руководители Mozilla поняли, что Rust может помочь им создать лучший движок браузера, и привлекли к проекту нескольких инженеров. Среди них были Патрик Уолтон (1), который присоединился к Mozilla после того, как решил оставить аспирантуру по языкам программирования; Нико Мацакис (2) и Феликс Клок (3), оба имеют академический опыт исследования памяти и языков программирования; и Маниш Горегаокар (4), который в настоящее время руководит командой разработчиков инструментов Rust.ФОТОГРАФИИ
В 2009 году Mozilla решила официально спонсировать Rust. Язык будет с открытым исходным кодом и подотчетен только тем, кто его создаст, но Mozilla была готова запустить его, заплатив инженерам. Группа Rust заняла конференц-зал в компании; Дэйв Херман, соучредитель Mozilla Research, назвал его «пещерой ботаников» и повесил табличку за дверью. По оценке Хоара, в течение следующих 10 лет Mozilla наняла более дюжины инженеров для работы над Rust на постоянной основе.
«Все действительно чувствовали, что работают над чем-то действительно большим, — вспоминает Уолтон. Это волнение распространилось и за пределы здания Mozilla. К началу 2010-х Rust привлекал добровольцев со всего мира, из каждого уголка технологий. Некоторые работали в крупных технологических фирмах. Одним из основных участников был ученик средней школы в Германии. На конференции Mozilla в Британской Колумбии в 2010 году Эйх встал, чтобы сказать, что будет разговор об экспериментальном языке, и «не приходите, если вы не настоящий знаток языков программирования», — вспоминает Уолтон. «И, конечно же, это заполнило комнату».
В начале 2010-х инженеры Mozilla и волонтеры Rust по всему миру постепенно оттачивали ядро Rust — то, как оно предназначено для управления памятью. Они создали систему «владения», так что на часть данных может ссылаться только одна переменная; это значительно снижает вероятность проблем с памятью. Компилятор Rust, который берет строки кода, которые вы пишете, и превращает их в программное обеспечение, работающее на компьютере, строго следит за соблюдением правил владения. Если кодер нарушал правила, компилятор отказывался компилировать код и превращал его в исполняемую программу.
Многие приемы, которые использовал Rust, не были новыми идеями: «В основном это исследования десятилетней давности», — говорит Маниш Горегаокар, который руководит командой разработчиков инструментов Rust и в те ранние годы работал в Mozilla. Но инженеры Rust умело находили эти отточенные концепции и превращали их в практичные, полезные функции.
По мере того, как команда улучшала систему управления памятью, Rust все меньше нуждался в собственном сборщике мусора, и к 2013 году команда удалила его. Программы, написанные на Rust, теперь будут работать еще быстрее: никаких периодических остановок, пока компьютер выполняет очистку. Хоар указывает, что некоторые инженеры-программисты утверждают, что в Rust все еще есть элементы, которые чем-то напоминают сборку мусора — его система «подсчета ссылок», часть того, как работает его механика владения памятью. Но в любом случае, производительность Rust стала удивительно эффективной. Он нырнул ближе к металлу, туда, где были C и C++, но при этом был безопасен для памяти.
Удаление сборки мусора «привело к тому, что язык стал более компактным и подлым», — говорит Стив Клабник, программист, который начал работать с Rust в 2012 году и писал для него документацию в течение следующих 10 лет.
Параллельно с этим сообщество Rust формировало культуру, известную как необыкновенно дружелюбная и открытая для новичков. «Никто никогда не называет вас нубом », — говорит Нелл Шамрелл-Харрингтон, главный инженер Microsoft, которая в то время работала над Rust в Mozilla. «Ни один вопрос не считается глупым вопросом».
Частично это, по ее словам, заключается в том, что Хоар очень рано опубликовал «кодекс поведения», запрещающий домогательства, которого должен был придерживаться любой, кто вносил свой вклад в Rust. Сообщество приняло его, и это, по словам давних членов сообщества Rust, привлекло квир- и транскодеров к участию в Rust в большей степени, чем к другим языкам. Даже сообщения об ошибках, которые компилятор создает, когда кодер делает ошибку, необычайно заботливы; они описывают ошибку, а также вежливо подсказывают, как ее исправить.
«Компилятор[ы] C и C++, когда я делаю ошибки, заставляют меня чувствовать себя ужасным человеком», — со смехом говорит Шамрелл-Харрингтон. «Компилятор Rust скорее помогает вам писать сверхбезопасный код».
К 2015 году команда была одержима идеей наконец выпустить «стабильную» версию Rust, достаточно надежную, чтобы компании могли использовать ее для создания программного обеспечения для реальных клиентов. Прошло шесть лет с тех пор, как Mozilla взяла Rust под свое крыло, и в течение этого долгого времени разработки программисты стремились попробовать демо-версии, даже если они могли быть дрянными: «Компилятор все время ломался», — говорит Горегаокар. Теперь пришло время выпустить «1.0» в мир.
Уолтон вспоминает, как часами сидел, сгорбившись над ноутбуком. Клабник «за последние две недели написал порядка 45 страниц документации», — вспоминает он. 15 мая 2015 года группа наконец выпустила первую версию, и группы фанатов Rust собрались на вечеринки по всему миру, чтобы отпраздновать это событие.
Инвестиции Mozilla вскоре начали окупаться. В 2016 году группа Mozilla выпустила Servo, новый браузерный движок, созданный с использованием Rust. В следующем году другая группа использовала Rust для перезаписи той части Firefox, которая отображала CSS — язык, используемый для определения внешнего вида веб-сайтов. Это изменение дало браузеру заметный прирост производительности. Компания также использовала Rust для перезаписи кода, который обрабатывал мультимедийные файлы MP4, и рисковала допустить наличие небезопасного вредоносного кода.
Разработчики Rust — «Rustaceans», как они начали называть себя — вскоре получили известие от других компаний, которые опробовали свой новый язык.
Программисты Samsung сообщили Клоку, который работал в офисе Mozilla во Франции, что они начали его использовать. Facebook (позже известный как Meta) использовал Rust для перепроектирования программного обеспечения, которое его программисты используют для управления своим внутренним исходным кодом. «Насколько это важно, трудно переоценить, — говорит Уолтон, который сегодня работает в Meta.
Вскоре Rust появился в основе некоторых очень важных программ. В 2020 году Dropbox представила новую версию своего «механизма синхронизации» — программного обеспечения, отвечающего за синхронизацию файлов между компьютерами пользователей и облачным хранилищем Dropbox, — которое инженеры переписали на Rust. Первоначально система была написана на Python, но теперь она обрабатывала миллиарды файлов (и триллионы файлов, синхронизированных онлайн). По словам Паркера Тиммермана, инженера-программиста, недавно покинувшего Dropbox, Rust упростил и даже доставил удовольствие.
« приятно писать на Rust, что может быть странно говорить, но это просто фантастический язык. Это весело. Вы чувствуете себя волшебником, чего никогда не бывает в других языках», — говорит он. «Мы определенно сделали большую ставку — это новая технология».
Некоторые фирмы обнаружили, что Rust ослабил их опасения по поводу ошибок памяти; Мара Бос использовала Rust, чтобы полностью переписать программное обеспечение своей компании для управления дронами, которое изначально было написано на C++.
Другие открывали для себя радость отказа от сбора мусора. В Discord инженеров давно раздражало, что сборщик мусора в Go — языке, который они использовали для создания критически важных частей своего программного обеспечения, — замедлял работу. Их программное обеспечение Go выполняло эту процедуру примерно каждые две минуты, несмотря на то, что инженеры Discord прописали все так тщательно, что мусор не собирался. В 2020 году они переписали эту систему на Rust и обнаружили, что теперь она работает в 10 раз быстрее.
Даже руководители и инженеры Amazon Web Services, платформы облачных вычислений технологического гиганта, все больше убеждаются в том, что Rust может помочь им писать более безопасный и быстрый код. «У Rust есть уникальная возможность дать преимущества, которые я не могу получить от других языков. Это дает вам несколько суперспособностей на одном языке», — говорит Шейн Миллер, который создал команду Rust в AWS, прежде чем покинуть фирму в прошлом году.
Возможно, самое важное для гиганта облачных вычислений то, что исследование кода на основе Rust показало, что он работает настолько эффективно, что потребляет вдвое меньше электроэнергии, чем аналогичная программа, написанная на Java, языке, обычно используемом в AWS. «Поэтому я мог бы создать центр обработки данных, способный выполнять в два раза больше рабочих нагрузок, чем сегодня», — говорит Миллер. Или выполните ту же работу в центре обработки данных, который вдвое меньше, что позволит вам разместить его в городе, а не в загородном поле.
Некоторые давние участники немного нервничают из-за успеха Rust. По мере того, как технологические гиганты перенимают этот язык, они также приобретают все большее влияние на него. У них достаточно денег, чтобы платить инженерам за полный рабочий день разработки Rust; например, несколько руководителей команд Rust являются сотрудниками Amazon и Microsoft. Другие ценные участники должны выполнять свою работу над Rust в свободное время; Бос, например, работает по контракту над Rust для Huawei, в дополнение к запуску своего стартапа по дронам, но ее роль главы команды библиотеки Rust не оплачивается.
Это обычная динамика проектов с открытым исходным кодом, говорит Бос: крупные компании могут позволить себе более активное участие, и они могут подтолкнуть проект к решению проблем, которые их волнуют, а небольшие фирмы — нет. «Это дает им некоторое влияние», — говорит она. Но до сих пор, по ее словам, ни одна из фирм не сделала ничего, что могло бы забить тревогу. Клабник, который выразил обеспокоенность по поводу причастности Amazon к Rust (и который покинул Rust в прошлом году), соглашается. «Я беспокоюсь об этом? Ага. Считаю ли я, что там особенно плохо или в худшем месте, чем во многих других местах? Нет.”
В 2021 году крупные технологические фирмы заплатили за создание некоммерческого фонда Rust Foundation для поддержки программистов-добровольцев. Первые два года возглавляемый Миллером, он предлагает гранты в размере 20 000 долларов США для программистов, которые хотят работать над некоторыми важными функциями Rust, и гранты для «тяжелых условий» для участников, нуждающихся в краткосрочных финансовых средствах. Он также финансирует серверы, на которых размещен код Rust, и платит технической фирме за то, чтобы они работали круглосуточно и без выходных. В классическом стиле с открытым исходным кодом эта работа ранее выполнялась «двумя добровольцами, которые в основном были на связи 50% своей жизни», — говорит Миллер. «Один из них был студентом в Италии».
Язык невероятно быстро вырос. Если Rust родился в 2006 году, сейчас он выходит из подросткового возраста и становится зрелым. Автомобильные фирмы используют Rust для создания важного кода, управляющего автомобилями; аэрокосмические компании также берутся за это. «Он будет использоваться повсеместно», — предсказывает Тиммерман из Dropbox. Руководители Microsoft даже публично заявили о том, над чем многие другие технологические фирмы, вероятно, размышляют за закрытыми дверями: они будут все больше и больше использовать Rust для нового кода, а C и C++ — все меньше и меньше. В конце концов, может быть, никогда.
Весь этот старый код C и C++, который уже работает, не исчезнет; он будет использоваться, вероятно, в течение многих десятилетий. Но если Rust станет обычным способом написания new кода, который должен быть быстрым и «голым», мы можем начать замечать, что — очень постепенно, год за годом — наш программный ландшафт будет становиться все более и более надежным: меньше отказов. склонный, менее неуверенный.
Это никого не удивило бы больше, чем Хора. «Большинство языков, — говорит он, — просто умирают на корню».
Клайв Томпсон — журналист, работающий в области науки и техники, из Нью-Йорка и автор книги «Кодеры : создание нового племени и переделка мира ».
Глубокое погружение
Компьютеры
Оставайтесь на связи
Иллюстрация Роуз Вонг
Узнайте о специальных предложениях, главных новостях, предстоящие события и многое другое.
Введите адрес электронной почты
Политика конфиденциальностиСпасибо за отправку вашего электронного письма!
Ознакомьтесь с другими информационными бюллетенямиПохоже, что-то пошло не так.
У нас возникли проблемы с сохранением ваших настроек. Попробуйте обновить эту страницу и обновить их один раз больше времени. Если вы продолжаете получать это сообщение, свяжитесь с нами по адресу customer-service@technologyreview. com со списком информационных бюллетеней, которые вы хотели бы получать.
Язык программирования Rust – для чего используется rust и почему он так популярен?
Rust был создан для обеспечения высокой производительности, аналогичной предлагаемой C и C++, но с упором на безопасность кода, отсутствие которой является ахиллесовой пятой этих двух языков. Тем не менее, Rust имеет больше, чем просто безопасность памяти. Высокая производительность при обработке больших объемов данных, поддержка параллельного программирования, а это вместе с эффективным компилятором — другие причины, по которым известные тяжеловесы программного обеспечения теперь используют этот язык программирования. Firefox, Dropbox, Cloudflare и многие другие компании, от стартапов до крупных корпораций, используют Ржавчина в производстве.
В этой статье вы можете узнать больше об основных характеристиках Rust, о том, для чего он используется и почему вам следует подумать о его внедрении в свои программные проекты.
Растущая популярность Rust
Согласно опросу разработчиков Stack Overflow 2022, проведенному среди более чем 80 000 разработчиков, Rust является самым любимым языком программирования. И он выиграл титул седьмой год подряд.
В 2020 году разработчики ядра Linux предложили написать новый код ядра Linux на Rust. Чтобы было ясно, они не хотели переписывать все ядро, которое изначально было написано на C, а добавить новый код на Rust, который будет работать с существующей инфраструктурой. Не кто иной, как Линус Торвальдс, отец операционной системы с открытым исходным кодом Linux, приветствовал эту идею и очень хочет увидеть результаты проекта. Эта идея находится в постоянной разработке — на данный момент она все еще описывается как экспериментальная, но «достаточно хорошая, чтобы разработчики ядра могли начать работать над абстракциями Rust для подсистем и писать драйверы и другие модули».
Кроме того, Google также планирует использовать Rust в ядре Linux после поддержки языка системного программирования Rust в Android. Вся операция направлена на устранение недостатков безопасности. Тем временем Microsoft обратилась к Rust, чтобы уменьшить количество ошибок, связанных с памятью, в компонентах Windows.
Facebook также наладил более тесные связи с Rust, присоединившись к Rust Foundation, организации, созданной в 2021 году для развития Rust и превращения его в «основной язык для системного программирования и не только». Facebook присоединяется к Amazon Web Services, Google, Huawei, Microsoft и Mozilla в использовании Rust в некотором качестве.
Все это явные признаки того, что Ржавчина набирает обороты в последние несколько лет . Но не очередная ли это хайповая технология, которая много обещает, но скоро исчезнет?
Что особенного в языке Rust?
Rust — это язык программирования со статической типизацией, разработанный для повышения производительности и безопасности , особенно безопасного параллелизма и управления памятью. Его синтаксис похож на синтаксис C++. Это проект с открытым исходным кодом, изначально разработанный в Mozilla Research. В 2021 году Rust Foundation взяла эстафету и стала движущей силой развития языка.
Rust решает проблемы, с которыми долгое время боролись разработчики C/C++: ошибки памяти и параллельное программирование. Это считается его основным преимуществом. Однако это не единственные примеры того, чем Rust отличается от C++.
Конечно, можно утверждать, что современный C++ уделяет больше внимания безопасности памяти (например, за счет реализации интеллектуальных указателей), но многие проблемы остаются нерешенными. Один из них — «использовать после освобождения ошибок», которые случаются, когда программа продолжает использовать указатель после того, как он был освобожден, например. вызов лямбда-функции после освобождения захваченных объектов ссылки.
С другой стороны, в Rust у вас есть средство проверки заимствования — часть компилятора, которая следит за тем, чтобы ссылки не пережили данные, на которые они ссылаются. Эта функция помогает устранить ошибки нарушения памяти. Такие проблемы обнаруживаются во время компиляции, и сборка мусора не требуется.
Кроме того, в Rust у каждой ссылки есть время жизни, где вы можете установить область, для которой эта ссылка действительна. Эта функция решает проблему с более недействительными ссылками, а также отличает Rust от C и C++.
Важность правильного управления памятью становится очевидной, когда вы понимаете, что за последние 12 лет около 70% всех ошибок безопасности в продуктах Microsoft были связаны с безопасностью памяти. Такой же номер сообщается и для Google Chrome.
В Rust есть два режима написания кода: безопасный Rust и небезопасный Rust. Safe Rust накладывает на программиста дополнительные ограничения (например, управление владением объектами), тем самым обеспечивая правильную работу кода. Небезопасный Rust дает программисту больше автономии (например, он может работать с необработанными C-подобными указателями), но код может сломаться.
Небезопасный режим Rust открывает больше возможностей, но вам нужно проявлять особую осторожность, чтобы убедиться, что ваш код действительно безопасен. Для этого вы можете обернуть его абстракциями более высокого уровня, которые гарантируют безопасность всех применений абстракции. Как и в случае с другими языками программирования, к использованию небезопасного кода следует подходить с осторожностью, чтобы избежать неопределенного поведения и свести к минимуму риск segfault и уязвимостей, возникающих из-за небезопасности памяти.
Двухрежимная модель Rust — одно из его самых больших преимуществ. С другой стороны, в C++ вы никогда не узнаете, что написали небезопасный код, пока где-то в будущем ваше программное обеспечение не выйдет из строя или не возникнет брешь в системе безопасности.
Параллельное программирование стало проще
Rust также упрощает написание параллельных программ, предотвращая гонки данных во время компиляции. Гонка данных происходит, когда по крайней мере две разные инструкции из разных потоков пытаются одновременно получить доступ к одной и той же ячейке памяти, в то время как по крайней мере одна из них пытается что-то записать, и нет никакой синхронизации, которая могла бы установить какой-то определенный порядок среди различных доступов. Доступ к памяти без синхронизации не определен.
В Rust обнаружены гонки данных . Если данный доступ к объекту не поддерживает множество потоков (т. е. не помечен соответствующим признаком), его необходимо синхронизировать с помощью мьютекса, который заблокирует доступ к этому конкретному объекту для других потоков. Чтобы гарантировать, что операции, выполняемые над объектом, не сломают его, к нему имеет доступ только один поток.
С точки зрения других потоков операции над этим объектом являются атомарными, что означает, что наблюдаемое состояние объекта всегда корректно, и вы не можете наблюдать какое-либо промежуточное состояние, возникающее в результате операции, выполняемой над этим объектом другим потоком. Язык Rust может проверить, выполняем ли мы какие-либо неправильные операции с такими объектами, и сообщить нам об этом во время компиляции .
Другие языки используют методы синхронизации, но они не связаны с объектами, на которые ссылаются. Именно разработчик должен позаботиться о том, чтобы заблокировать объект перед его использованием. Например, в C компилятор позволяет разработчику писать код с ошибками. В результате ошибки обнаруживаются, когда программа уже находится в продакшне, или, что еще хуже, когда кто-то пытается ее взломать.
В языке Rust многие (хотя и не все) проблемы, связанные с параллельным программированием, решены, так как они обнаруживаются сразу во время компиляции.
Инструменты и библиотеки для разработки на Rust
Каждый разработчик знает, что для того, чтобы в полной мере воспользоваться конкретной технологией или решением, крайне важно знать их набор инструментов. Приведенный ниже список является нашей рекомендацией для основы, которая может сделать использование Rust еще более эффективным и продуктивным.
Инструменты Rust
- Rustup — инструмент командной строки, используемый для управления установками Rust в вашей системе. Его можно использовать для установки новых версий Rust, переключения между разными версиями Rust и обновления существующих установок.
- Cargo — официальный менеджер пакетов и инструмент сборки Rust. Он используется для управления проектами Rust, включая зависимости, сборку, тестирование и упаковку. Cargo упрощает многие распространенные задачи программирования на Rust, такие как управление внешними библиотеками и публикация ваших собственных пакетов Rust на crates.io.
- Rustfmt — автоматически форматирует код Rust, чтобы он соответствовал рекомендациям по стилю сообщества Rust. Его можно использовать для обеспечения соответствия кода лучшим практикам сообщества Rust и упрощения его чтения и поддержки.
- Clippy — линтер Rust — инструмент, который анализирует код и дает предложения по улучшению. Это может помочь отловить ошибки, повысить производительность и написать более идиоматический код на Rust. Clippy легко настраивается, поэтому его предложения легко подходят для разных стилей кодирования и предпочтений.
Библиотеки и фреймворки Rust
- Actix — высокопроизводительный веб-фреймворк на основе акторов. Он предназначен для обеспечения быстрых и масштабируемых веб-приложений, используя безопасность и производительность Rust. Actix предлагает модель параллелизма на основе акторов, которая может улучшить масштабируемость и производительность веб-приложений за счет изоляции и параллелизации запросов.
- Rocket — веб-фреймворк для Rust, призванный обеспечить простой, безопасный и интуитивно понятный процесс разработки. Он использует систему типов Rust для обеспечения безопасности и корректности, а также предоставляет набор макросов и абстракций для упрощения веб-разработки. Эта структура известна своей простой в использовании маршрутизацией запросов и обработкой ответов.
- Serde — библиотека Rust, которая обеспечивает сериализацию и десериализацию структур данных Rust в различные форматы данных, включая JSON, TOML и YAML, и из них. Он разработан, чтобы быть быстрым, гибким и надежным, с поддержкой пользовательских форматов данных и расширяемыми возможностями сериализации и десериализации.
- Diesel — высокопроизводительный, безопасный и компонуемый ORM (объектно-реляционное сопоставление) и построитель запросов. Он предоставляет набор макросов и абстракций для упрощения взаимодействия с базой данных и обеспечения безопасности и корректности. Кроме того, Diesel поддерживает несколько серверных баз данных, таких как PostgreSQL, MySQL и SQLite, и предоставляет расширенные функции, такие как миграция схем и проверка запросов во время компиляции.
Все вышеперечисленные инструменты популярны и широко используются в экосистеме Rust, и они могут помочь вам легче и эффективнее разрабатывать приложения Rust.
Некоторые препятствия, которые необходимо преодолеть при программировании на Rust
Конечно, это еще не все розы. Rust — относительно новая технология , поэтому некоторые нужные библиотеки могут быть еще недоступны. Тем не менее, библиотека пакетов Rust crates.io быстро растет с 2016 года, и активное сообщество разработчиков Rust является хорошим предзнаменованием для дальнейшего развития.
Кроме того, разработчиков, не привыкших работать с языком, в котором ошибки в коде обнаруживаются во время компиляции, может раздражать получение большого количества сообщений об ошибках. В результате разработка кода происходит не так быстро, как на более популярных языках, таких как Python. Однако Разработчики Rust делают все возможное, чтобы сделать эти сообщения об ошибках как можно более информативными и действенными .
Даже если получение такого количества сообщений об ошибках при кодировании может несколько раздражать, сосредоточьтесь на более широкой картине. Безопасность памяти, обеспечиваемая во время компиляции, предотвращает появление ошибок и уязвимостей безопасности, когда ваше программное обеспечение уже находится в рабочей среде. Их исправление на этом этапе определенно будет стоить вам нервов и денег.
И последнее, но не менее важное: написание кода на Rust требует больше усилий, так как порог входа довольно высок. Вам нужно потратить некоторое время на освоение языка. Также требуется хорошее знание C++ или любого другого объектно-ориентированного языка программирования.
Но если вы преодолеете все эти препятствия, преимущества использования Rust станут лучшей наградой за ваши усилия.
Вы также можете прочитать сравнение Rust и Go.
Для чего используется Rust
Rust — это уже зрелая технология, которая используется в производстве. Как язык системного программирования, он позволяет вам контролировать детали низкого уровня. Вы можете выбрать, хранить ли данные в стеке (используется для статического выделения памяти) или в куче (используется для динамического выделения памяти). Здесь важно упомянуть RAII (Resource Acquisition Is Initialization), идиому кода, которая в основном связана с C++, но также присутствует в Rust: каждый раз, когда объект выходит за пределы области видимости, вызывается его деструктор и освобождаются принадлежащие ему ресурсы. . Вам не нужно делать это вручную, и вы защищены от ошибок утечки ресурсов.
В конечном итоге это позволяет более эффективно использовать память. Tilde использовала Rust в своем продукте Skylight, в частности, для перезаписи определенных конечных точек Java HTTP. Это позволило им сократить использование памяти с 5 ГБ до 50 МБ.
Поскольку в Rust нет постоянно работающего сборщика мусора, его проекты могут использоваться в качестве библиотек другими языками программирования через интерфейсы сторонних функций. Это идеальный сценарий для существующих проектов, где важно обеспечить высокую производительность при сохранении безопасности памяти. В таких проектах 9Код 0041 Rust может заменить некоторые части программного обеспечения , где производительность играет решающую роль, без необходимости переписывать весь продукт.
Rust — это низкоуровневый язык программирования с прямым доступом к оборудованию и памяти , что делает его отличным решением для разработки встраиваемых систем и «голого железа». Вы можете использовать Rust для написания операционных систем или приложений для микроконтроллеров. На самом деле, на Rust написано несколько операционных систем, таких как: Redox, intermezzOS, QuiltOS, Rux и Tock. Mozilla, где изначально был разработан этот язык, использует его в своих браузерных движках.
Высокая производительность и безопасность — вот функции, которые сделали Rust таким привлекательным для ученых, которые начали использовать его для анализа больших объемов данных. Rust невероятно быстр, что делает его идеальным выбором для вычислительной биологии и машинного обучения, где вам нужно очень быстро обрабатывать большие объемы данных.
В CodiLime мы также экспериментируем, чтобы определить, может ли Rust заменить C по производительности в сетевых сценариях, требующих высокой пропускной способности данных . В нашем PoC мы создали приложение на Rust, используя библиотеки DPDK (написанные на C), чтобы обеспечить производительность, а также обеспечить безопасность памяти.
>> Ознакомьтесь с нашими услугами по разработке Rust
Типы приложений, которые можно писать на Rust
Rust можно использовать для различных типов приложений. Однако в некоторых областях этот язык программирования особенно популярен. Узнайте, для каких типов проектов и областей промышленности может подойти Rust.
Программирование на системном уровне
Язык программирования Rust использовался при разработке операционных систем благодаря его низкоуровневому контролю, эффективности и безопасности памяти. Он обеспечивает безопасный доступ к памяти и предотвращает неопределенное поведение, упрощая создание безопасных операционных систем.
Драйверы устройств
Rust хорошо подходит для разработки драйверов устройств, особенно во встроенных системах, благодаря низкоуровневому контролю, производительности и безопасности памяти. Система типов Rust и средство проверки заимствования упрощают написание безопасных и эффективных драйверов устройств, которые без проблем работают с базовым оборудованием.
Встроенные системы
Этот язык также все чаще используется для встраиваемых систем благодаря таким функциям, как отличный низкоуровневый контроль и высокая производительность. Средство проверки заимствования в Rust обеспечивает безопасное управление памятью и устраняет риск разыменования нулевого указателя, что делает его безопасным и эффективным выбором для разработки встраиваемых систем.
Веб-разработка
Базовые службы
Здесь наиболее важными особенностями Rust являются производительность, масштабируемость и безопасность — его поддержка async/await обеспечивает простой параллелизм для создания высокопроизводительных серверных сервисов.
Веб-приложения
Rust часто выбирают для веб-приложений, так как он предлагает эффективное управление памятью. Это позволяет разработчикам писать высокопроизводительные и безопасные для памяти приложения.
Наука о данных
Поддержка параллелизма в Rust и его шаблон асинхронности/ожидания облегчает создание эффективных и безопасных параллельных программ.
На данный момент Rust не самый распространенный выбор для проектов, связанных с машинным обучением, но он предоставляет некоторые библиотеки, такие как rusty-machine и tch-rs, которые предоставляют полезные инструменты для построения моделей машинного обучения.
Почему стоит использовать Rust
Подводя итог, можно сказать, что основных причин использования Rust в вашем следующем программном проекте включают :
- Высокая производительность при обеспечении безопасности памяти.
- Поддержка параллельного программирования.
- Растущее количество пакетов Rust в репозитории crates.io.
- Активное сообщество, способствующее развитию языка.
- Обеспечена обратная совместимость и стабильность (Rust был разработан на следующие 40 лет).
Заключение
У Rust отличная производительность, инструменты и активное сообщество, которое постоянно работает над улучшением языка. Более того, если вам нужно решение с большим вниманием к безопасности, чем C и C++, и вы не хотите идти на компромисс в скорости, Rust — хороший выбор для вас. Если вы беспокоитесь, что Rust может быть недостаточно «зрелым» для вашего проекта разработки программного обеспечения, будьте уверены, что это уже не так.