Сегодня, 1 апреля, мы решили навестить творческую лабораторию известного российского программного разработчика Андрея Бабушкина, чтобы узнать последние подробности о знаменитом Архиваторе Бабушкина из первых рук. Ранее Андрей стал широко известен своим инновационным антивирусом, поэтому мы особенно заинтересовались его объявлением о начале разработки принципиально нового архиватора на базе недавно открытого «кипринг-эффекта» и хорошо известных в математике цепных дробей. Андрей стал ярким олицетворением отечественной реформы образования, на деле демонстрируя инновационный вектор развития для всего молодого ИТ-поколения.
И пока сырой концепт его уже работающего OpenSource-кода выложен на Github, а специалисты до хрипоты спорят о возможности и целесообразности подобного необычного архиватора, мы решили узнать все подробности непосредственно у первоисточника — самого разработчика Babushkin Arch.
— Как было анонсировано, архиватор Бабушкина будет полностью базироваться на недавно открытом европейскими специалистами «эффекте кипринга». Не могли бы вы рассказать нагим читателям более подробно, в чем суть кипринга?
— Любой современный файл — это последовательность байт. Из-за сложнотехнической специфики, в которую я сейчас не буду углубляться, какая-то часть этих байтов является «мусорной». Это попросту служебно-сервисная информация, которая на самом деле не несёт никакой полезной нагрузки и является лишь отражением энтропии окружающей среды. При этом заведомо известно, что реально ценная информация более-менее равномерно распределена по всему объёму файла. Таким образом, если отсеять этот «мусор», мы можем безболезненно избавиться примерно от
Единственное ограничение: данный эффект применим лишь для больших файлов с размером более 100 000 Кб. Кроме того, в рамках логического развития открытого «кипринг-эффекта» применяются и другие, более радикальные методы. Как пример, наш архиватор сразу после установки рекурсивно обходит файловую систему компьютера, после чего деинсталлирует всё обнаруженное избыточное программное обеспечение. Все делается в приятном фоновом режиме под ненавязчивую музыку, поэтому пользователям нет никаких причин волноваться или опасаться каких-то «тормозов» или негативных последствий.
— Можно более подробно начет последнего: что в первую очередь подвергается «кипрингу»?
— Например, мои личные исследования показывают, что .Net Framework на 96% компьютеров из тех, что я видел — совершенно не нужен. Далее, Internet Explorer 9/10/11 — ими же всё равно никто не пользуется, тем более ими нарушается антимонопольное законодательство! Поэтому мы всё это дело аккуратно удаляем из пользовательской системы во благо самого пользователя. Или вот зачем в системе файл размером 2Gb, если атрибуты доступа файла показывают, что к нему обращались в последний раз 5 лет назад?
В среднем, каждый новый запуск нашего архиватора освобождает около 30% объема винчестера.
Заархивированные методом кипринга видеоданные
— Я правильно понимаю, что при работе архиватора сжимаемые файлы можно не указывать?
— Совершенно верно! Это так называемый «тихий режим работы», то есть при недостатке места на «винте» достаточно просто запустить наш архиватор, через пару минут его можно закрыть и продолжить работу дальше. Ну, разве, может иногда на перезагрузку компьютера запрос поступить — многие лишние файлы, к сожалению, «лочатся» самой системой, — мы сейчас работаем над этой проблемой.
Но это в режиме «по умолчанию». А так, конечно, можно указать конкретный файл, чтобы сжать и его. Сначала всё сжималось до 10%, потом удалось повысить плотность архивации до 30%, ну а теперь — мы вышли на
— Можно ещё немного про .Net: сейчас на нём много чего понаписано, к примеру, тот же 1С .Net...
— Нужно настроить список исключений... вообще, наша эвристика позволяет «задетектить» установленные в системе специализированные продукты типа Visual Stusio и так далее, при наличии которых удаление .Net автоматически признаётся нецелесообразным. Если мы видим, что подобных вещей много — включается блок пользовательских предпочтений, который подстраивается под вкусы конкретного пользователя.
Ну, а вообще говоря — я за нативный код, так сказать за традиционную ориентацию. Современному программисту нужно быть проще, поближе к процессору... я все эти новомодные виртуальные надстройки не приемлю — всё это «ложные ценности».
Процесс кипринга видеоданных в динамике...
— А что с Java, тоже удалять?
— Да вы не волнуйтесь так, Ява у нас и так эмулируется на уровне ядра архиватора, что же мы совсем звери что ли? (улыбается)
(после паузы, серьёзно). Тем не менее, у нас есть все основания не доверять безопасности импликации родной виртуальной Java-машины, поэтому я переписал её на Visual Basic’е.
— Как насчет разархивирования данных обратно? Обратим ли назад эффект кипринга?
(нервно барабанит пальцами по столу) — Этот вопрос сейчас находится на заключительной стадии проработки, давайте просто подождём, не будем торопить события.
Художественное применение эффекта кипринга
в клипе на ремикс к песне Ma Bicyclette
— Иначе говоря, как скоро пользователи смогут «пощупать» готовую публичную версию вашего архиватора?
— Надо честно признаться, что продукт ещё сырой и пока не совсем готов, изучение «эффекта кипринга» ещё в полном разгаре. Так, архивация больших объемов данных время от времени приводит к неприятным сбоям в файловой системе, например альтернативные потоки данных мы используем для хранения тех самых
К сожалению, пока этот метод не всегда срабатывает должным образом, но мы не теряем надежды.
Что касается сроков выхода — думаю, что в конце 2013 года наш архиватор выйдет сразу на всех крупных торрент-трекерах мира.
— В самом общем виде: что из себя представляет ваш архиватор?
— Также как и наш антивирус, новый Архиватор Бабушкина будет состоять из большого количества сторонних модулей-утилит, найденных мною и моими друзьями из ВКонтакта в интернете. Это так называемая «оверлейная модель построения» больших программ. Сложность в том, что не все из найденных утилит поставляются с документированными ключами и спецификациями, поэтому у нас они сначала подвергаются reverse engineering с целью определения полного списка доступных в них команд.
Для примера, на фотографии ниже демонстрируется повседневная работа специалиста по перебору всех возможных команд очередной консольной компоненты будущего архиватора.
— Скорость работы традиционных архиваторов, конечно, никуда не годится.
Ну, поймите: у меня канал подключения к интернету 10Mbp/s, получается, чтобы отправить видеофайл в 100 мегабайт своему коллеге мне нужно около 10 секунд, а чтобы заархивировать его через устаревший WinRar — может понадобиться несколько десятков минут. Ассиметрия очевидна, поэтому именно архиватор сейчас узкое место современной компьютерной индустрии.
— Кстати о видеофайлах. Вы публично пообещали, что Babushkin Arch будет сжимать стандартные 2Gb-фильмы в файлы-архивы размером 20Kb. Как это будет выглядеть в реальной жизни?
— Это действительно так, видео поддаётся кипрингу наиболее эффективно. Больше того: 80% всего существующего видео можно вообще безвозвратно удалить без потери какого-то особого смысла или последствий для своей жизни. Технологическая тонкость в том, чтобы автоматически точно выделить именно эти 80% видео.
Уверен, в следующей версии архиватора мы сможем решить и эту задачу, высвободив не только ещё больше места на компьютере пользователя, но и дав ему больше свободного времени.
— Продолжая тему практических приложений вашего архиватора — я знаю, Google уже лицензировал Babushkin Arch Engine. Можно рассказать об этом интересном совместном проекте?
— Да, многие, наверное, уже видели версию Google Maps сгенерированную моим архиватором для различных
На самом деле тут предстоит ещё очень много работы, я думаю, вы уже слышали о новых разработках фирм Apple и Google — высокоинтеллектуальных наручных часах, последние из которых будут работать на Android и использовать принципиально новую версию высокоэффективного кипринга контента, сжимающей данные до
Пока не могу рассказать об этом подробней, но поверьте — настоящий кипринг ещё ждёт нас впереди.
— Кстати, Андрей, как практикующий программист, что предпочитаете больше: аутсорс или продуктовое направление?
— Я, конечно, понимаю весь тревожный подтекст этого вопроса, но попробую ответить откровенно. Конечно, с одной стороны в аутсорсе сейчас квартиры выдают в кредит чтобы лучше зафиксировать человека в пространстве, и если чуточку потерпеть ещё лет 5, думаю, будут и более серьёзные вещи предлагать... опять же, лично я считаю, что нужно было сразу честно переходить к бартеру, а то всё это какие-то полумеры.
Но, с другой стороны: много ли вы видели антивирусов и архиваторов написанных по аутсорс-модели? И опять же... у меня своя исследовательская работа, кипринг-эффект, бюджетники у меня есть... нет, мне в аутсорс нельзя.
— Хорошо, тогда давайте сменим тему. Почему-то когда я читаю новости о Денисе Попове, о ваших антивирусах и архиваторе, или самое свежее — о московских преподавателях информатики, основавших клуб бессмертных и облучающих друг друга рентгеновским излучением, — я почему-то сразу вспоминаю о нашей реформе образования.
Как вы считаете, эта реформа удалась?
— Без образования никак нельзя — это аксиома. Если бы не эта реформа, я не думаю, что мне удалось бы добиться всех поставленных перед собой целей. Взять, например, связывание GUI написанного на Visual Basic’е и ядра антивируса, созданного мною на пакетном языке .bat.
Текущие пользователи Архиватора Бабушкина
по типу собственности
От коллег я слышал про «симблер» (прим. автора: написание программ на Си с множеством ассемблерных вставок), мною же по полной аналогии были реализованы .bat-вставки в P-код языка Visual Basic. Можно сказать, что старый-добрый «васик» теперь обрёл второе дыхание, будучи столь удачно расширенный перспективным языком программирования.
— Специалисты при анализе вашего антивируса насчитали использование в рамках одного проекта более 5 языков: Ассемблер, bat, Visual Basic, C++, VBS . С чем связана такая гремучая какофония из самых разных технологий?
— Как я уже говорил, само ядро моего антивируса написано на языке .bat, оно интегрируется глубоко в операционную систему — самые серьёзные вещи я предпочитаю писать на наиболее высокоуровневом языке из доступных, чтобы исключить любые логические ошибки в принципе. Все остальные обвязки создавались под каждое конкретное направление — например, листинг системных процессов лучше реализовать на С, графическую оболочку я решил сваять на «васике»...
— Для чего был задействован ассемблер?
— Для наиболее критичных, узких мест в программе. У меня он по принципиально новому алгоритму динамически генерирует батник-ядро, которое уникально для каждой отдельной машины и инсталляции. Ассемблер переводит процессор в режим трассировки, перехватывая отладочное прерывание Int1h
, и в пошаговом режиме генерирует машинозависимый код, чтобы предотвратить несанкционированный перенос bat-ядра архиватора на другой компьютер и попутно пресечь попытку реверса алгоритма этого процесса под отладчиком потенциальным злоумышленником.
Кроме того в систему инсталлируется резидентный драйвер, который контролирует целостность кода батника, сверяя CRC файла после каждого обращения к нему (перехватывая на низком уровне BIOS Int13h
), предотвращая любую его правку и повреждение (функция самовосстановления).
#pragma once #include stdio.h #include windows.h main () { int time=170 int inetscreen=1 int confirmver=1 int acttime=60 int flashantiv=1 }
Из описания приведенного выше алгоритма очевидно, что на каждой конкретной машине, а также после изменения любых настроек, происходит динамическая перекомпиляция проекта на С++, чтобы добиться максимально-возможной оптимизации к данной конкретной конфигурации/железу пользователя.
— Что насчет деления на 0? Вы говорили ранее, что «тоже утилизировали эту операцию»?
— Это прерывание перехватывается, устанавливается наш собственный обработчик для нужд процесса дешифровки основного кода.
— Если позвольте ещё один деликатный вопрос — откуда такая страсть к пакетному языку .bat?
— С детства являюсь сторонником массиво-ориентированного программирования, посему считаю, что в этом пакетном языке эта парадигма реализована наиболее удачно, никаких альтернатив не вижу (задумывается), разве что может ещё PHP...
— Андрей, в связи с этим серьёзный вопрос. Есть такое распространенное мнение, что если студент компьютерных наук рано начинает работу (например, с
Как вы считаете, столь ранний старт не станет для этого специалиста в будущем, когда уже действительно нужно будет работать на полную катушку и времени на туже комбинаторику не будет, фальстартом в его карьере?
— Лично я считаю, что нужно сразу учиться зарабатывать деньги. Знания того же языка .bat нужно сразу конвертировать в «наличку», потому что вкусы публики очень переменчивы. Короче — «куй железо пока горячо» (Андрей загадочно улыбается, помахивая своим знаменитым USB-фломастером).
— Андрей, хочется пожелать не обращать внимания на критику, а научиться на неё реагировать конструктивно. Не хотелось бы, что вы, как и ранее затравленный изобретатель «принципиально новой BolgenOS» Денис Попов, решили совсем уйти из ИТ. Кстати, и на гитаре вы тоже, играете, как и Денис...
— Гитара подождёт, а пока я «как один из разработчиков Windows 8» , заинтересован в постоянном развитии. В частности, буду обязательно выходить за пределы чистого программирования, потому что сам по себе кипринг имеет невероятные масштабы практического применения.
Например, по примеру Ричарда Столлмана решил заняться производством стильной одежды для программистов, в частности выдам небольшой секрет — мною налаживается выпуск специальных кипринговых галстуков для программистов. Экономический секрет в том, что мы смогли сэкономить на дизайнере, так как дизайн и расцветка галстуков динамически генерируется ещё одной моей принципиально новой разработкой, написанной на стыке промышленного дизайна и программирования.
Второе узкое место закрытое нами — программисты не любят шопинг и редко когда вылазят из-за своего компьютера. И если у женатых ещё не всё так плохо, то холостякам приходится совсем туго. Именно с учетом этого тренда мы собираемся работать по принципиально новому алгоритму доставки — мы предлагаем распечатывать наш галстук прямо на рабочем месте, используя подручный 3D-принтер.
Наши галстуки не только улучшат внешний вид и повысят корпоративную культуру, но и произведут революцию в традиционном текстильном бизнесе.
— Только галстуки у вас какие-то
— Обсчет оригинальной модели пока занимает слишком много времени, поэтому именно тут и пригодились наработки моего архиватора и его принципиально новый алгоритм Laiki.
— Хорошо, а для девушек-программисток, что стильного с кипрингом предложить можете?
— Пока лишь бантик, на что-то большое пока вычислительных ресурсов не хватает. Юноши, кстати, тоже могут воспользоваться.
— Андрей, напоследок: как вы вообще относитесь к ИТ-сообществу, которое очень зло раскритиковало вашу флешку-фломастер (антивирус, я считаю, пострадал уже из-за флешки, просто попав под горячую руку)?
— Я очень уважаю всех айтишников, среди них много по-настоящему умных и талантливых людей, но есть и одна распространенная слабость, жертвой которой я стал — практически никто не разбирается в совершенно новых алгоритмах, именно которыми я очень плотно и занимаюсь. И это в то время, когда правительство провозгласило новый курс на модернизацию и инновации?!
Думаю со временем, должно сформироваться принципиально новое комьюнити, где будут публично разбираться все операционные системы созданные школьниками «с нуля», все их совершенно новые алгоритмы, а также все другие, порой неожиданные для людей «старой закалки» технические решения (я имею ввиду, например, свою USB-флешку).
Осталось только дождаться этого благословенного времени — новое реформированное образование, уверен, нам в этом всемерно поспособствует...
p.s.:
11 комментариев
Почему Андрей, а не Алексей?
Андрей: вопрос конечно справедливый, но... мне бы не хотелось обижать или как-то травить конкретного человека или реальную личность, в частности Алексея, поэтому здесь у нас в беседке мифический Андрей Бабушкин - это как собирательный образ, олицетворение своего знаменитого прообраза, которое к сожалению через пару лет может стать уже нормой.
Вы сделали мой день!
Спасибо =)))
Уверен со мной согласится каждый, автор блога - лучший интервьюер в мире! Более тактичного разговора на такую тонкую тему я еще не встречал...
Хочу дополнить свое интервью новыми "горячими" новостями:
От фирмы Apple мне пришел сертификат на право использования буквы i перед своей фамилией и предложение на покупку эксклюзивных прав на мой архиватор (теперь он будет называться iPacbab).
"Не могли бы вы рассказать нагим читателям более подробно, в чем суть кипринга?"
Щас разденусь, почитаю...
Отлично например. Прочитал на одном дыхании. Хе-хе
Меня зовут не Андрей
Опа, тут тоже кипринг:
http://www.echo.msk.ru/blog/kurvimetr/1033628-echo/
я пользуюсь архиватором типа бабушкинского
называется Dropbox
сжимает несколько гигабайт уникальной информации в два слова
потом прихожу на любой компьютер, устанавливаю разархиватор, ввожу эти два слова - и вуаля! - гигабайты бесценного груза появляются на новом компьютере
хотя вектор иронии понятен,
айтишникам не мешало бы всё таки точнее формулировать претензии
и одновременно мыслить более интересно
в данном случае термин "архивация" однозначно воспринимается как "перекодирование данных с целью уменьшения их объёма". Но у "архивации" есть и другие значения, а конечному юзеру без разницы, действительно ли сжимается 2 гигабайта в 2 слова или они хранятся на сервере, а двумя словами ты просто обеспечиваешь доступ к ним.
в общем, если кто будет писать клон Дропбокса - ловите идею маркетинговой кампании. "Сжимаем ваши гигабайты в 1 слово".