Самые сложные программы для компьютера
Операционные системы, для 3D-графики, управления чем-то или какие-то ещё?
Смотря что вы поразумеваете под "сложными программами".
В принципе, любая программа, с применением циклов, ветвлений или подпрограмм, сложная. В таком случае достаточно сложные операционные системы с какими-либо интегрированными средствами.
Если вы имеете ввиду сложная, то есть "непростая в освоении", то это чисто индивидуально для каждого пользователя. Некоторым сложно освоить проводник, но с 3D моделированием они справляются запросто.
Самая сложная - это MS Word. Ей мало кто умеет толком пользоваться. Тексты выходят кривые и не интересные. Многим даже 6 лит в литературном институте не помогает. Так что Ворд это очень сложная программа. Многие даже не осознают, что вообще не умеют им пользоваться.
В пуске найти функцию ВЫПОЛНИТЬ -> написать msconfig ->, перейти в вкладку автозапуск или автозагрузка (если не ошибають то 4я по очереди)
А вот мой (минимальный) перечень обязательных программ на каждом компьютере:
- Разумеется, операционная система, а после ее установки нужно установить:
- Хороший файл-менеджер, чтобы навсегда забыть о Проводнике (например, Total Commander)
- Антивирус + файервол (не буду советовать, хотя мог бы)
- ПО создания образов ОС для последующего ее восстановления (например, Acronis True Image)
- Программа мониторинга состояния и содержимого аппаратных средств ПК, например, AIDA64
- ПО мониторинга состояния и очистки системы от мусора, например, Advanced System Care
А все остальное - на Ваше усмотрение. Тот перечень, который я привел, обеспечит долгую и надежную работу ПК.
Поиск телефона по IMEI - это аппаратная фича. Это оператор, а не какой-то левый компьютер любопытной отроковицы, должен передать сигнал в сеть и обработать ответ от телефона. Как видите, никакие программы тут ничего сдедать не могут.
Меню Пуск и в строке поиска вводим DrWeb. Среди несокльких вариантов выбираем нужный, правой лапой мыши по значку ==> Свойства ==> Смотрим полный путь и идем туда и сносим.
Открываем Диспетчер задач (Ctrl+Shift+Esc) , ищем антивирусный запущенный процесс на вкладке Процессы (он, кстати, может немного отличаться названием), далее как выше: правая лапа==> Свойства ==> Смотрим размещение файла. Идем туда и удаляем.
Заходим в Program Files и ищем его там глазками.
Перед тем как удалить DrWeb, его нужно отключить. Это можно сделать через тот же Диспетчер задач (Завершить процесс), либо в настройках антивируса, если такой пункт там есть. Либо убрать его из Автозагрузки, перезагрузить комп и после удалять DrWeb.
Чтобы его полностью удалить антивирус, нужно запустить файл Uninstall в папке антивируса. Если такого нет, то удалите его в путях, где обнаружите, а дальше в папке Пользователи ==> Ваше Имя ==> Там , скорей всего, будет тоже папка.
Во временных папках он тоже будет, так что в папке Appliaction Data тоже ищите хвосты.
Самая сложная программа в истории была написана командой людей, имена которых нам неизвестны.
Это программа – компьютерный червь. Червь был написан, судя по всему, между 2005 и 2010 годами. Поскольку этот червь является таким сложным, я могу дать лишь общее описание того, что он делает.
Сначала червь появляется на USB диске. Кто-то мог найти диск, лежащий на земле, получить его по почте и заинтересоваться его содержанием. Как только диск вставлялся в компьютер c Windows PC, без ведома пользователя, червь автоматически запускал себя и копировал на этот компьютер. Существовало как минимум три способа, с помощью которых он мог себя запустить. Если не работал один, он пробовал другой. Как минимум два из этих методов запуска были абсолютно новыми и оба использовали две независимых, секретных ошибки в Windows о которых никто не знал до того момента, как появился этот червь.
Как только червь запускается на компьютере, он пытается получить права администратора. Его не сильно беспокоит установленное антивирусное ПО – он может игнорировать большинство таких программ. Затем, в зависимости от того, на какой версии Windows он работает, червь попробует один из двух ранее неизвестных методов получения прав администратора на компьютере. Как и ранее, до появления этого червя никто не знал об этих скрытых уязвимостях.
После этого червь способен скрыть следы своего присутствия в глубинах ОС, так что ни одна антивирусная программа не сможет его обнаружить. Он прячется так хорошо, что даже если будете искать на диске в то место, где этот червь должен быть, вы ничего не увидите. Этот червь прятался так хорошо, что ему удалось перемещаться по Интернету в течение года и ни одна компания, связанная с безопасностью не признала даже факта его существования.
После этого червь копирует себя на любое другое USB устройство, которое вам пришлось вставить. Он делает это с помощью установки аккуратно разработанного ложного драйвера диска. Этот драйвер содержал цифровую подпись Realtek. Это означает, что авторы червя каким-то образом смогли пробиться в наиболее защищённое место крупной тайваньской компании и украсть самый секретный ключ компании так, что сама компания об этом не узнала.
Позже, авторы этого драйвера начали подписывать его секретным ключом от JMicron, другой крупной тайваньской компании. И снова, авторы смогли прорваться в самое защищённое место в этой компании и украсть самый секретный ключ, которым владеет эта компания так, что они ничего об этом не узнали.
Червь, о котором мы говорим очень сложный. И мы ещё даже не начали.
После этого червь начинает использовать два недавно обнаруженных бага в Windows. Один баг связан с сетевыми принтерами, а другой – с сетевыми файлами. Червь использует эти баги, чтобы установить себя по локальной сети на все другие компьютеры в офисе.
Затем червь начинает искать конкретное ПО, разработанное Siemens для автоматизации крупных промышленных машин. Как только он находит его, он (как вы уже догадались) использует ещё один ранее неизвестный баг, чтобы скопировать себя программируемую логику промышленного контроллера. Как только червь поселился в этом компьютере, он остаётся там навсегда. Никакое количество замен или «дезинфекции» компьютера не поможет избавиться от него.
Червь ищет прикреплённые промышленные электрические моторы от двух конкретных компаний. Одна из этих компаний в Иране, а другая в Финляндии. Моторы, которые он ищет, называются «частотно-регулируемые приводы». Они используются для управления промышленными центрифугами. С помощью центрифуг можно очистить множество химических элементов.
Теперь, поскольку червь получил полный контроль над центрифугами, он может сделать с ними всё, что захочет. Он может их всех отключить. Он может немедленно все их уничтожить – достаточно крутить их на максимальной скорости до тех пор, пока они не разлетятся как бомбы, убив всех, кто по случайности оказался рядом.
Но нет. Это сложный червь. И у червя есть другие планы.
Как только он захватил все центрифуга в твоем заводе… червь просто засыпает.
Проходят дни. Или недели. Или секунды.
Когда червь решает, что время пришло, то быстро просыпается. Он случайно выбирает несколько центрифуг, когда они очищают уран. Червь блокирует их так, что если кто-то заметит, что что-то странное, он не сможет отключить эти центрифуги.
И затем, потихоньку, червь начинает крутить эти центрифуги… немножко неправильно. Совсем не намного. Просто, знаете, чуть-чуть слишком быстро. Или самую малость слишком медленно. Лишь немного за пределами безопасных параметров.
В то же время, он увеличивает давление газа в этих центрифугах. Этот газ называется UF6. Очень вредная штука. Червь изменяет давление этого газа чуть-чуть за пределами безопасных значений. Ровно для того, чтобы при попадании газа в центрифуги во время работы появлялся небольшой шанс того, что он превратится в камни.
Центрифуги не любят работать слишком быстро или слишком медленно. И камни им тоже не нравятся.
Но у червя остался последний трюк. И он гениален.
В дополнение ко всем своим действиям, червь начинал проигрывать запись данных за последние 21 секунду работы, которые он записал, когда центрифуги работали нормально.
Червь проигрывал запись снова и снова, в цикле.
В результате, данные о всех центрифугах для людей выглядели вполне нормальными. Но это были только ложные записи, созданные червем.
А теперь представьте, что вы ответственны за очистку урана с помощью этого крупного промышленного завода. И вроде бы всё работает хорошо. Может двигатели звучат немного странно, но цифры на компьютере показывают, что моторы центрифуг работают так, как и положено.
Затем центрифуги начинают ломаться. В случайном порядке, одна за другой. Обычно они умирают тихо. Впрочем, в некоторых случаях, они устраивают настоящее представление. А производство урана начинает резко падать. Уран должен быть чистым. Ваш уран не достаточно чистый, чтобы с ним можно было сделать что-то полезное.
Что бы вы делали, если бы управляли этим заводом по обогащению урана? Вы бы проверяли всё снова и снова и снова, не понимая в чем проблема. Вы могли бы при желании поменять все компьютеры в заводе.
Но центрифуги бы всё равно ломались. И у вас даже не было возможности узнать почему.
Со временем, под вашим надзором, около 1000 центрифуг ломаются или отключаются. Вы сходите с ума в попытках выяснить, почему всё работает не так, как планировалось.
Именно это и произошло на самом деле
Вы никогда не будет ожидать, что все эти проблемы были созданы компьютерным червем, самым хитрым и умным компьютерным червем в истории, написанным какой-то невероятно секретной командой с неограниченным количеством денег и времени. Червь был разработан только с одной целью: пройти через все известные способы цифровой защиты и уничтожить ядерную программу вашей страны так, чтобы его не поймали.
Создать программу, которая могла бы сделать ОДНУ из этих вещей само по себе маленькое чудо. Создать программу, которая может делать ВСЁ это и много другое…
… для этого червю Stuxnet пришлось стать самой сложной программой из когда-либо написанных.
У всех нас только и разговоров, что о C, C+, Java, Python и так далее, а между тем, в природе существуют языки, который можно назвать не просто сложными, а недоступными для понимания большинства программистов. Они называются эзотерическими языками программирования (или эзолэнгами, от скоращенного esolang).
Эзотерические языки служат не для того, чтобы выполнять обычные задачи программирования. Они создаются, чтобы провести проверку концепции или просто в развлекательных целях.
Ниже я привожу список из пяти самых головоломных языков программирования (примечание переводчиков: если у вас есть более достойные претенденты, которые не упоминаются у автора, будем рады услышать о них в комментариях). Я попытался написать программу ‘Hello World!’ на каждом из них – было весело.
Malbolge
Этот язык был придуман в 1998 году Беном Олмстедом. Его принято считать самым сложным из всех существующих. Говорят, что сам автор не написал ни единой программы на своём детище. Код, выводящий на экран слова Hello World!, появился спустя целых два года после того, как Олмстед завершил работу над языком.
Вот фрагмент кода для выведения на экран текста Hello World! на Malbolge:
И вот что он выдаёт:
INTERCAL
Джим Лайон и Джон Вудс разработали INTERCAL в 1972 году в качестве пародии на целый ряд языков программирования. Изначально он назывался «компилируемый язык, у которого нет произносимых сокращений».
В INTERCAL специально внедрялись особенности, рассчитанные на то, чтобы усложнять жизнь программисту. Например, в нём применяется модификатор PLEASE и подобные. Компилятор может забраковать код, если PLEASE встречается в нём без должной регулярности. Объяснение? «Недостаточно вежливо». Если же модификатор PLEASE появляется в коде чересчур часто, компилятор отклоняет код как «слишком вежливый».
Вот фрагмент кода для выведения на экран текста Hello World! на INTERCAL:
И вот что он выдаёт:
Brainfuck
Brainfuck появился в 1993 году стараниями Урбана Мюллера, который замышлял его как развлечение для других программистов. Уже из названия понятно, что язык ставит своей целью максимально затруднить понимание происходящего для того, кто с ним работает.
Весь язык состоит из восьми отдельных символов, которые и используются для реализации любых операций. Первый компилятор, который Мюллер разработал сам, тянул всего на 296 байт.
Вот фрагмент кода для выведения на экран текста Hello World! на Brainfuck:
А вот что он выдаёт:
COW был создан Шоном Гебером в 2003 году. Смысл названия этого языка станет вам ясен, когда вы увидите код. По уровню сложности COW сопоставим с Brainfuck. Если сравнивать количественно, в COW представлено на четыре команды больше – в общей сложности их двенадцать на целый язык.
Вот фрагмент кода для выведения на экран текста Hello World! на COW:
А вот что он выдаёт:
Whitespace
Whitespace увидел свет Даремском университете, его авторы – Крис Моррис и Эдвин Брейди. Широкой публике он был представлен на первое апреля в 2003 году.
Базовая идея в том, что для написания программ в языке комбинируются пробелы, табуляции и переводы строки. Все прочие символы интерпретатор игнорирует, рассматривая их как комментарии к коду.
Вот фрагмент кода для выведения на экран текста Hello World! на Whitespace. В нижеприведённом отрывке каждый пробел, табуляция и перевод строки предваряются символами S, T и L соответственно:
А вот что он выдаёт:
Существует и множество других эзотерических языков, похожих на эти. Вы можете пройти по ссылке, чтобы с ними ознакомиться.
Здравствуйте!
Сколько миллионов строчек кода имеет самая сложная программа в мире? Что это за программа? На каком языке она написана?
Если это большой секрет, тогда просто скажите, к какой категории относится эта программа (операционная система, экспертная система и т.д.).
tuccar: скорее я имел в виду то, что она скорее всего имеет отношение к военной промышленности ибо она зачастую двигатель прогресса, как например произошло с интернетом. А военные тайны разглашать не любят
Все субъективно. Ядро линукса например реально большое, но если оно хорошо документировано, сделано по правилам ООП или чем то таким - то вполне можно разобраться. С другой стороны - погуглите на gamedev исходники игры "Щи". Вроде и не сильно много кода, но разобраться нереально без поллитры.
Сергей Протько: Не смотря на то, что ядро Линукса написано на Си, оно в полной мере использует концепцию ООП. В его коде полно примеров наследования и полиморфизма.
понятие сложности очень субъективно в нашем мире абстракций.
даже
int main()
< coutreturn 0;
>
с определенной степенью может показаться сложной. :)
а под понятие "самая сложная с количеством строк кода" лучше тогда задать вопрос - какая самая большая программа в исчислимости строк кода?
на этот счет , по количеству строк кода тоже можно развести много дискуссий, ибо понятие SLOC тоже в разных интерпретациях встречается и определяется на практике по разному.
для прикола: "самая сложная программа это та, которая рекурсивно запускает сама себя, плодя исходный код бесконечно, заполняя все вычислительные ресурсы вселенной. "
Всё в мире относительно.
Сложные вещи могут быть и в совершенно небольшом количестве строк кода.
К примеру какой-нибудь код, который бы строил гиперболический параболоид, или другие сложные 3D фигуры по каким-то входным данным.
Хотя для кого-то это простая задача)
Ещё один вероятный кандидат - эмуляция игры "Жизнь" на ней самой (со скоростью 1/10000000). Там даже про язык сложно говорить.
Не знаю что это за программа, но заниматься её поддержкой и доработкой не пожелаю и врагу)) Можно представить себе сколько за время её написания в ней накопилось говнокода))
Самая сложная программа в истории была написана людьми, чьи имена так и остались неизвестными. Это компьютерный червь, созданный, по-видимому, в промежутке между 2005 и 2010 годами. Он настолько сложный и изощренный, что далее идет лишь поверхностное описание его работы.
Первоначально червь находится на USB-накопителе. Кто-то может обнаружить его валяющимся под ногами, или в почтовом ящике и заинтересоваться, что же на нем записано. Когда накопитель подключают к компьютеру под управлением Windows, червь запускается и копирует себя на этот компьютер, причем делает это незаметно для пользователя. У червя есть, как минимум три способа сделать это. Если один из них не срабатывает, он переходит к следующему. Как минимум два из этих способов были абсолютно новыми на момент создания червя и использовали две несвязанные друг с другом уязвимости в Windows, которые также никому не были известны ранее.
Как только червю удалось запуститься на компьютере, он пытается получить права администратора. Его не сильно волнует установленный антивирус - он в состоянии обойти большинство существующих антивирусных программ. Для этого, в зависимости от версии Windows, червь использует один из двух ранее неизвестных способов. Еще две уязвимости в Windows, которые также не были известны до появления этого червя.
Теперь червь может заметать свои следы в обход операционной системы, так что ни один антивирус не может обнаружить его присутствие. Он ведет себя крайне скрытно, так что даже если вы будете просматривать содержимое диска в его поисках, то ничего не увидите. Этот червь скрывается столь искусно, что на протяжении целого года ему удавалось распространятся по всему Интернету так, что ни одна компания, занимающаяся компьютерной безопасностью, не заподозрила даже о его существовании.
Теперь червь копирует себя на съемные носители, используя тщательно разработанный поддельный драйвер. Этот драйвер был снабжен цифровой подписью компании Realtek, а это значит, что создатели червя как-то умудрились проникнуть в самое охраняемое место в крупной Тайванской компании и украсть ее самый секретный ключ. При этом остаться незамеченными для Realtek. Позже создатели этого драйвера стали подписывать его ключами JMicron, другой крупной Тайваньской компании. И вновь, авторам пришлось проникнуть в самое охраняемое место в этой компании и украсть ее самый секретный ключ. И опять остаться незамеченными, на этот раз для JMicron.
Червь, о которым мы говорим, крайне изощренный. И ведь он еще даже не начал действовать.
Затем червь использует еще две недавно обнаруженные уязвимости в Windows. Одна из них связанна с сетевыми принтерами, вторая - с сетевыми файлами. Червь использует эти уязвимости, чтобы установить себя по всей локальной сети, на каждую доступную машину.
Далее червь начинает искать на зараженных компьютерах очень специфическое программное обеспечение, разработанное компанией Siemens для автоматизированного управления крупным промышленным оборудованием. Когда такая программа попадает в поле зрения червя (как вы уже догадались), он использует еще одну ранее неизвестную уязвимость для копирования себя в прошивку промышленного контроллера. Как только ему это удается, он остается там навсегда. Теперь ни один компьютер уже не может избавиться от червя никаким доступным способом.
Червь ищет подключенные к зараженному контроллеру промышленные электрические двигатели двух определенных производителей. Один из этих производителей находится в Иране, другой - в Финляндии. Двигатели, которые ищет червь, называются частотно-регулируемые приводы. Они используются в промышленных центрифугах. Вы можете очистить множество различных химических элементов в таких устройствах.
Например, уран.
Теперь у червя есть полный контроль над центрифугами, и он может сделать с ними всё, что угодно. Он может их выключить. Он может их мгновенно уничтожить - просто вращать их со скоростью, превышающей допустимую норму, до тех пор, пока они не разлетятся на мелкие кусочки, как бомбы, убивая каждого поблизости.
Но нет. Это изощренный червь. И у него совсем другие планы.
Как только червь возьмет под контроль каждую центрифугу на вашем производстве… он уснет. Пока вы просиживаете штаны на совещаниях, пока вы отправляете видео с котиками своим коллегам, червь просто спит, в каждом компьютере в вашем здании.
Идут дни. Недели. А может и секунды.
Когда червь решает, что пришло время, он просыпается. Он случайным образом выбирает несколько центрифуг, занимающихся очисткой урана. Червь блокирует их, так что, если вдруг кто-то заподозрит неладное, то он не сможет их отключить. А затем, незаметно, червь начинает вращать эти центрифуги… немного неправильно. Заметьте, не существенно неправильно, а всего лишь чуть-чуть быстрее нормы. Или медленнее. Лишь самую малость выходя за безопасные границы.
У червя остался еще один трюк в запасе. И он поистине дьявольски гениален.
Ко всему прочему, что он уже делает, червь начинает прокручивать на экранах компьютеров последнюю 21 секунду данных, записанных в то время, когда центрифуги еще работали нормально. Червь зацикливает эту запись, показывает ее вновь и вновь. На экранах все показатели центрифуг выглядят абсолютно нормально. Однако это лишь иллюзия, созданная червем.
Теперь представьте себя на месте человека, который отвечает за очистку урана на этом заводе. Все, вроде бы, работает как надо. Разве что некоторые двигатели звучат несколько странно, но ведь числа на компьютерах показывают, что центрифуги работают в точности так, как должны.
Затем центрифуги начинают выходить из строя. Случайным образом. Обычно тихо. Иногда с шумом. Безо всякой закономерности. Выработка урана падает. Уран должен быть чистым. Ваш же уран теперь совершенно ни на что не годится. Как бы вы поступили, попав в такую ситуацию? Вы бы проверяли всё вновь и вновь, теряясь в догадках, почему же все работает со странными небольшими отклонениями.
И вот уже на вашей совести около 1000 центрифуг, сломаны или отключены. А вы потихоньку сходите с ума в попытках понять, почему же ничего не работает.
Это в точности то, что произошло на самом деле.
Вы, несомненно, и предположить не могли бы, что причиной всех этих проблем был компьютерный червь, самый коварный и умный червь в истории, написанный невероятно секретной командой, имеющей неограниченные ресурсы, созданный с единственной целью: обойти любую известную цифровую защиту и уничтожить ядерную программу вашей страны, оставшись при это непойманным.
Компьютерную программу, делающую хотя бы одну из перечисленных выше вещей, можно считать маленьким чудом. Если же она делает их все, и даже больше… То это червь Stuxnet, самая изощренная компьютерная программа в истории.
Читайте также: