Хотите дальше читать devby? 📝
Support us

Архиватор Бабушкина: неизвестные подробности

Оставить комментарий
Архиватор Бабушкина: неизвестные подробности

В этот весенний день мы решили навестить творческую лабораторию известного российского программного разработчика Андрея Бабушкина, чтобы узнать последние подробности о знаменитом Архиваторе Бабушкина из первых рук. Ранее Андрей стал широко известен своим инновационным антивирусом, поэтому мы особенно заинтересовались его объявлением о начале разработки принципиально нового архиватора на базе недавно открытого «кипринг-эффекта» и хорошо известных в математике цепных дробей. Андрей стал ярким олицетворением отечественной реформы образования, на деле демонстрируя инновационный вектор развития для всего молодого ИТ-поколения.

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

Предлагаем наше эксклюзивное интервью с Андреем под катом

 Как было анонсировано, архиватор Бабушкина будет полностью базироваться на недавно открытом европейскими специалистами «эффекте кипринга». Не могли бы вы рассказать читателям dev.by более подробно, в чем суть кипринга?

— Любой современный файл — это последовательность байт. Из-за сложнотехнической специфики, в которую я сейчас не буду углубляться, какая-то часть этих байт является «мусорной». Это попросту служебно-сервисная информация, которая на самом деле не несет никакой полезной нагрузки и является лишь отражением энтропии окружающей среды. При этом заведомо известно, что реально ценная информация более-менее равномерно распределена по всему объему файла. Таким образом, если отсеять этот «мусор», мы можем безболезненно избавиться примерно от 30—40% содержимого файлов. Для этого и понадобился «эффект кипринга», который и позволяет, образно говоря, «отделить мух от котлет».

Единственное ограничение: данный эффект применим лишь для больших файлов с размером более 100 000 Кб. Кроме того, в рамках логического развития открытого «кипринг-эффекта» применяются и другие, более радикальные методы. Как пример: наш архиватор сразу после установки рекурсивно обходит файловую систему компьютера, после чего деинсталлирует все обнаруженное избыточное программное обеспечение. Все делается в приятном фоновом режиме под ненавязчивую музыку, поэтому пользователям нет никаких причин волноваться или опасаться каких-то «тормозов» или негативных последствий.

 Можно более подробно насчет последнего: что в первую очередь подвергается кипрингу?

— Например, мои личные исследования показывают, что .Net Framework на 96% компьютеров из тех, что я видел, совершенно не нужен. Далее, Internet Explorer 9/10 — ими же все равно никто не пользуется, тем более ими нарушается антимонопольное законодательство! Поэтому мы все это дело аккуратно удаляем из пользовательской системы во благо самого пользователя. Или вот зачем в системе файл размером 2 Гб, если атрибуты доступа файла показывают, что к нему обращались в последний раз 5 лет назад?

В среднем каждый новый запуск нашего архиватора освобождает около 30% объема винчестера.

Заархивированные методом кипринга видеоданные

 Я правильно понимаю, что при работе архиватора сжимаемые файлы можно не указывать?

— Совершенно верно! Это так называемый «тихий режим работы», то есть при нехватке места на «винте» достаточно просто запустить наш архиватор, через пару минут его можно закрыть и продолжить работу дальше. Разве что может иногда на перезагрузку компьютера запрос поступить — многие лишние файлы, к сожалению, «лочатся» самой системой; мы сейчас работаем над этой проблемой.

Но это в режиме «по умолчанию». А так, конечно, можно указать конкретный файл, чтобы сжать и его. Сначала все сжималось до 10%, потом удалось повысить плотность архивации до 30%, ну а теперь мы вышли на 80—90%.

 Можно еще немного про .Net: сейчас на нем много чего понаписано, к примеру тот же 1С .Net…

— Нужно настроить список исключений… вообще, наша эвристика позволяет «задетектить» установленные в системе специализированные продукты типа Visual Stusio и так далее, при наличии которых удаление .Net автоматически признается нецелесообразным. Если мы видим, что подобных вещей много, включается блок пользовательских предпочтений, который подстраивается под вкусы конкретного пользователя.

Ну, а вообще говоря — я за нативный код, так сказать за традиционную ориентацию. Современному программисту нужно быть проще, поближе к процессору...  я все эти новомодные виртуальные надстройки не приемлю — все это «ложные ценности».

Процесс кипринга видеоданных в динамике

 А что с Java, тоже удалять?

— Да вы не волнуйтесь так, Ява у нас и так эмулируется на уровне ядра архиватора, что же мы совсем звери, что ли? (улыбается, после паузы, серьезно). Тем не менее у нас есть все основания не доверять безопасности импликации родной виртуальной Java-машины, поэтому я переписал ее на Visual Basic’е.

 Как насчет разархивирования данных обратно? Обратим ли «эффект кипринга»?

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

 Иначе говоря, как скоро пользователи смогут «пощупать» готовую публичную версию вашего архиватора?

— Надо честно признаться, что продукт еще сырой и пока не совсем готов, изучение «эффекта кипринга» еще в полном разгаре. Так, архивация больших объемов данных время от времени приводит к неприятным сбоям в файловой системе, например, альтернативные потоки данных мы используем для хранения тех самых 30—40% «лишней информации». К сожалению, пока этот метод не всегда срабатывает должным образом, но мы не теряем надежды.

Что касается сроков выхода — думаю, что в конце 2013 года наш архиватор выйдет сразу на всех крупных торрент-трекерах мира.

 В самом общем виде: что из себя представляет ваш архиватор?

— Так же, как и наш антивирус, новый Архиватор Бабушкина будет состоять из большого количества сторонних модулей-утилит, найденных мною и моими друзьями из «ВКонтакта» в интернете. Это так называемая «оверлейная модель построения» больших программ. Сложность в том, что не все из найденных утилит поставляются с документированными ключами и спецификациями, поэтому у нас они сначала подвергаются reverse engineering с целью определения полного списка доступных в них команд. Для примера: на фотографии ниже демонстрируется повседневная работа специалиста по перебору всех возможных команд очередной консольной компоненты будущего архиватора.

 Хорошо, кипринг позволяет драматически увеличить процент сжатия файлов, но не увеличит ли это время архивирования?

— Скорость работы традиционных архиваторов, конечно, никуда не годится. Ну, поймите: у меня канал подключения к интернету 10 Mбит/с, получается, чтобы отправить видеофайл в 100 Мб своему коллеге, мне нужно около 10 секунд, а чтобы заархивировать его через устаревший WinRar — может понадобиться несколько десятков минут. Ассиметрия очевидна, поэтому именно архиватор сейчас — узкое место современной компьютерной индустрии.

 Кстати, о видеофайлах. Вы публично пообещали, что Babushkin Arch будет сжимать стандартные 2 Гб-фильмы в файлы-архивы размером 20 Кб. Как это будет выглядеть в реальной жизни?

– Это действительно так, видео поддается кипрингу наиболее эффективно. Больше того: 80% всего существующего видео можно вообще безвозвратно удалить без потери какого-то особого смысла или последствий для своей жизни. Технологическая тонкость в том, чтобы автоматически точно выделить именно эти 80% видео. Уверен, в следующей версии архиватора мы сможем решить и эту задачу, высвободив не только еще больше места на компьютере пользователя, но и дав ему больше свободного времени.


 Продолжая тему практических приложений вашего архиватора: я знаю, Google уже лицензировал Babushkin Arch Engine. Можно рассказать об этом интересном совместном проекте?

— Да, многие, наверное, уже видели версию Google Maps, сгенерированную моим архиватором для различных 8-битовых устройств на базе популярной ОС Android. Карты — это достаточно тяжелый контент, и попытки как-то ужать их в 8 бит делались и раньше, но только кипринг позволил генерить «на лету» весь картографический сервис в версии, приемлемой даже для подобных маломощных устройств.

На самом деле тут предстоит еще очень много работы, я думаю, вы уже слышали о новых разработках фирм Apple и Google — высокоинтеллектуальных наручных часах, последние из которых будут работать на Android и использовать принципиально новую версию высокоэффективного кипринга контента, сжимающую данные до 80—90% и продвигаемую нами под эксклюзивным брендом Laiki. Пока не могу рассказать об этом подробней, но поверьте — настоящий кипринг еще ждет нас впереди.

 Кстати, Андрей, как практикующий программист что предпочитаете больше: аутсорс или продуктовое направление?

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

Но, с другой стороны — много ли вы видели антивирусов и архиваторов, написанных по аутсорс-модели? И опять же… у меня своя исследовательская работа, «кипринг-эффект», бюджетники у меня есть… нет, мне в аутсорс нельзя.

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

— Без образования никак нельзя — это аксиома. Если бы не эта реформа, я не думаю, что мне удалось бы добиться всех поставленных перед собой целей. Взять, например, связывание GUI, написанного на Visual Basic'е, и ядра антивируса, созданного мною на пакетном языке .bat. От коллег я слышал про «симблер» (прим. автора: написание программ на Си с множеством ассемблерных вставок), мною же по полной аналогии были реализованы .bat-вставки в P-код языка Visual Basic. Можно сказать, что старый-добрый «васик» теперь обрел второе дыхание, столь удачно расширенный перспективным языком программирования.

 Специалисты при анализе вашего антивируса насчитали использование в рамках одного проекта более 5 языков: ассемблер, .bat, Visual Basic, C++, VBS. С чем связана такая гремучая «какофония» самых разных технологий?

— Как я уже говорил, само ядро моего антивируса написано на языке .bat, оно интегрируется глубоко в операционную систему — самые серьезные вещи я предпочитаю писать на наиболее высокоуровневом языке из доступных, чтобы исключить любые логические ошибки в принципе. Все остальные обвязки создавались под каждое конкретное направление — например, листинг системных процессов лучше реализовать на С, графическую оболочку я решил сваять на «васике»…

 Для чего был задействован ассемблер?

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

Кстати говоря, у меня часто спрашивают, почему я сохраняю все настройки в своих программах в cpp-файлах, например, так:

#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…

 Андрей, в связи с этим серьезный вопрос. Есть такое распространенное мнение, что если студент компьютерных наук рано начинает работу (например, со 23 курса), этим он допускает стратегическую ошибку. То есть когда у него есть реальный выбор и возможность  посетить лекции по математике или «покрюнчить» курс комбинаторики, он, пользуясь своими тактическими интересами, халтурит начинающим кодером в какой-нибудь сомнительной софт-компании либо вообще, как и вы, «создает свой собственный продуктовый бизнес». Как вы считаете, столь ранний старт не станет для этого специалиста в будущем, когда уже действительно нужно будет работать на полную катушку и времени на ту же комбинаторику не будет, фальстартом в его карьере?

— Лично я считаю, что нужно сразу учиться зарабатывать деньги. Знания того же языка .bat нужно сразу конвертировать в «наличку», потому что вкусы публики очень переменчивы. Короче — «куй железо, пока горячо» (Андрей загадочно улыбается, помахивая своим знаменитым USB-фломастером).

 Андрей, хочется пожелать не обращать внимания на критику, а научиться на нее реагировать конструктивно. Не хотелось бы, что вы, как и ранее затравленный изобретатель «принципиально новой BolgenOS» Денис Попов, решили совсем уйти из ИТ. Кстати, и на гитаре вы тоже играете, как и Денис…

— Гитара подождет, а пока я «как один из разработчиков Windows 8» заинтересован в постоянном развитии. В частности, буду обязательно выходить за пределы чистого программирования, потому что сам по себе кипринг имеет невероятные масштабы практического применения. Например, по примеру Ричарда Столлмана решил заняться производством стильной одежды для программистов, в частности, выдам небольшой секрет — мною налаживается выпуск специальных кипринговых галстуков для программистов. Экономический секрет в том, что мы смогли сэкономить на дизайнере, так как дизайн и расцветка галстуков динамически генерируется еще одной моей принципиально новой разработкой, написанной на стыке промышленного дизайна и программирования.

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


 Только галстуки у вас какие-то 8-битовые получились, игру Mario напоминает сразу…

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

 Хорошо, а для девушек-программисток что стильного с кипрингом предложить можете?

— Пока лишь бантик, на что-то сложное вычислительных ресурсов не хватает. Юноши, кстати, тоже могут воспользоваться.


 Андрей, напоследок: как вы вообще относитесь к ИТ-сообществу, которое очень зло раскритиковало вашу флешку-фломастер (антивирус, я считаю, пострадал уже из-за флешки, просто попав под горячую руку)?

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

Думаю, со временем должно сформироваться принципиально новое комьюнити, где будут публично разбираться все операционные системы, созданные школьниками «с нуля», все их совершенно новые алгоритмы, а также все другие, порой неожиданные для людей старой закалки технические решения (я имею в виду, например, свою USB-флешку).

Осталось только дождаться этого благословенного времени — новое реформированное образование, уверен, нам в этом всемерно поспособствует…

Помогаете devby = помогаете ИТ-комьюнити.

Засапортить сейчас.

Читайте также
Цукерберг: сотрудники Facebook влияли на выдачу рекомендаций в ленте соцсети
Цукерберг: сотрудники Facebook влияли на выдачу рекомендаций в ленте соцсети
Цукерберг: сотрудники Facebook влияли на выдачу рекомендаций в ленте соцсети
1 комментарий
BBC: система распознавания лиц в Москве состоит из четырех алгоритмов. Они определяют эмоции
BBC: система распознавания лиц в Москве состоит из четырех алгоритмов. Они определяют эмоции
BBC: система распознавания лиц в Москве состоит из четырех алгоритмов. Они определяют эмоции
Уволены 60 модераторов Facebook — алгоритм выбрал их случайным образом
Уволены 60 модераторов Facebook — алгоритм выбрал их случайным образом
Уволены 60 модераторов Facebook — алгоритм выбрал их случайным образом
«Яндекс» и VK выступили против законопроекта о рекомендательных алгоритмах
«Яндекс» и VK выступили против законопроекта о рекомендательных алгоритмах
«Яндекс» и VK выступили против законопроекта о рекомендательных алгоритмах

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.