Житомирский школьник Денис Пирогов разработал виртуальную машину, которая снижает нагрузку на компьютер. Его проект недавно получил «серебро» на финале Международного конкурса компьютерных проектов Infomatrix. И парень, уже поступив в университет, продолжает работать над проектом.
Об истории житомирского вундеркинда, для которого мировое признание — не первая награда, рассказывает
dev.ua.
Уже не школьник
Денису Пирогову 19 лет. Сейчас он студент первого курса Житомирского политеха. Правда, парень решил поступить на заочное отделение, чтобы больше времени заниматься своей разработкой — виртуальной машиной, которая оптимизирует работу компьютера.
«Учеба должна быть не только по программе, а и по личному опыту. Заочная форма позволяет иметь более гибкий график», — аргументирует Денис.
Парень рассказывает, что увлекся компьютерами и программированием лет с девяти.
«Когда именно я научился кодить — не знаю. Это формировалось постепенно, из интереса к компьютерам, лет с девяти и по сегодняшний день», — говорит он.
Дениса, по его словам, сначала интересовало создание игр.
«В 14 лет я написал 2D игру, схожую по сеттингу с Half-Life Deathmatch, вскоре пришел к „взрослому“ кодингу — работе с сетями, операционными системами, микроконтроллерами, графикой», — рассказывает парень.
К концу 2020 года у Пирогова появился, как он сам говорит, недюжинный интерес к внутреннему устройству процессоров, дизайну ISA (а в особенности RISC-V).
«Я написал небольшой на тот момент эмулятор, использовавшийся „в узких кругах ради науки“, но вскоре обрел несколько контрибуторов, тестеров», — рассказывает парень.
Что такое RISC-V
Проект, по словам Дениса, программно эмулирует работу реального компьютера, совместимого с архитектурой RISC-V, и позволяет использовать его для тестирования и использования программ в изолированной и переносимой среде.
RISC-V — это новый, открытый стандарт процессорной архитектуры, во многом схожий с ARM (ARM на данный момент применяется в подавляющем большинстве телефонов, планшетов, и прочих небольших устройств). Однако, как рассказывает Денис, RISC-V имеет некоторые технологические преимущества: он более прост в реализации и понимании, позволяет достичь большей энергоэффективности.
«Кроме того, стандарт RISC-V не является достоянием отдельно взятой компании, а доступен каждому для реализации, изучения и улучшения — не нужно платить за патент, подписывать NDA, или в каком-то ином виде обязываться перед иным юрлицом», — говорит Пирогов.
Это, по словам парня, упрощает жизнь небольшим компаниям, инженерам-самоучкам, повышает уровень мировых технологий.
Аналогичные разработке Дениса проекты в мире существуют.
«Но они явно преследуют несколько иные цели. Например, проект QEMU нацелен на эмуляцию целого перечня исторических и актуальных архитектур, однако не следует принципу „делай одно, но делай хорошо“, имеет большие накладные расходы, в том числе из-за более раздутого транслятора TCG/TCI (множество уровней абстракции между виртуальной машиной и средой исполнения)», — приводит пример парень.
Разработанные конкуренты проекта Пирогова, по словам разработчика, не до конца проходят официальные тесты от RISC-V Foundation. Кроме того, нет качественного аналога Machine API, позволяющего встраивать виртуальные машины в любое приложение», — отмечает парень.
Энтузиасты в действии
Сейчас над проектом работает небольшая команда энтузиастов. Денис рассказывает, что благодаря своей разработке познакомился с программистом, который занялся работой виртуальной периферии (устройства ввода, жесткие диски, сеть). А наработки Дениса вертятся вокруг симуляции процессора, подсистемы памяти, производительности, инфраструктуры проекта.
«Мы делаем почти всю крупную работу, но еще пара десятков людей занимаются тестированием, периодически присылают небольшие доработки и заметки», — признается парень.
Денег в свой проект Пирогов не привлекал.
«В основном разработка ведется на энтузиазме, но с поддержкой (в том числе ресурсами и идеями) со стороны сообщества и единомышленников наподобие: «Ребят, я вам новые патчи и доработки отправил», «Вот вам железка для тестов», — поясняет Денис.
Где полезен The RISC-V Virtual Machine
С помощью разработки житомирянина можно сильно упростить работу с компьютером.
В частности, по словам Дениса, его проект полезен при:
- симуляции полноценных систем на основе Linux, Android, FreeBSD и использовании их в практических или учебных целях, в полной изоляции ради безопасности, и имея неограниченную власть над виртуальной системой;
- разработке и отлаживании драйверов, ядра операционных систем и прочего ПО;
- в развлекательных целях — возможна интеграция реалистичных компьютеров в игровой мир, создающая некую инженерную песочницу с кодовыми дверями на микроконтроллерах, роботами, компьютерами;
- в образовательных целях.
Также проект Дениса помог разработать учебную операционную систему, а некоторые программы и игры получили поддержку устройств на базе RISC-V благодаря данному инструменту.
Инструмент можно использовать всем безоплатно.
«Использование в личных целях свободное с возможностью изучать внутреннее устройство в академических или практичных целях, но лицензия GPL также обязует делать доступными любые модификации для их возможного принятия в проект и поддержания свободы — в этом вся философия», — говорит Денис.
Также, по словам парня, возможно лицензирование проекта и для встраивания в коммерческие проекты, либо реализация необходимого vendor-specific функционала на платной основе.
«Стоимость, как правило, зависит от сложности реализации», — говорит он.
Мировое признание
В ноябре 2021 года проект Дениса вышел в мировой финал международного конкурса компьютерных проектов Infomatrix и взял серебряную медаль.
«Будем надеяться, что это только начало интересных соревнований», — вдохновенно говорит парень.
Его руководитель, житомирский учитель Николай Тарасюк, рассказывал, что код в этом проекте был идеальным, и почему у парня не «золото», ему невдомек.
Сам Денис относится к этому философски.
«По поводу „идеального кода“ — проект регулярно анализируется различными инструментами для поиска возможных багов и уязвимостей, стабильно держит планку качества по меркам Valgrind, GCC Sanitizer, Clang-Analyze, PVS Studio, Looks Good to Me, Control Flag. Каждое изменение проходит внимательное ревью и документируется. Эмулируемая система проходит формальную верификацию соответствия стандарту RISC-V, а я являюсь сертифицированным специалистом», — рассказывает парень.
«Серебро» на Infomatrix — не единственная награда Пирогова. Его проекты занимали призовые места и на других конкурсах. В частности, в активе Дениса первое место по Украине в конкурсе iTalent, призовое место в региональном конкурсе GoldenByte летом 2019 года с проектом сетевой библиотеки для игр и коммуникаций.
«На сегодня тот самый проект используется для нескольких онлайн игр, как альтернатива инструментарию в фреймворках love2D и Clickteam Fusion», — рассказывает он.
Что дальше?
На вопрос о том, кем Денис хочет стать, когда вырастет, он отшучивается: «А разве я уже не вырос?».
«Разработанный инструмент отлично пригодится в сфере embedded разработки и прочем хитро-железячном мире, а именно такую работу мне бы и хотелось иметь», — признается житомирский вундеркинд.
Но и планы у парня амбициозные.
«Из идей — в будущем, используя полученные знания, можно реализовать транслятор x86 приложений для платформ ARM и RISC-V, близкий по производительности с Rosetta, либо присоединиться к перспективному проекту box86 и расширить его возможности», — признается Денис.