В работе проект ощущается примерно так же, но зато он существует
В работе проект ощущается примерно так же, но зато он существует

Есть вещи, которые не меняются: бухгалтеры любят Excel, разработчики его терпеть не могут, а энтузиасты регулярно устраивают в этой программе шоу уровня «а давайте Doom запустим в ячейке». Но если вы думали, что видели всё, то встречайте: теперь в Excel можно запустить… Linux. Нет, это не шутка, и да, это работает (ну, почти). 

Зачем запускать Linux в Excel

Автор проекта - разработчик под ником NSG650 - не стал скромничать и сразу признался, что сделал это, потому что мог. “Ну и ради фана, конечно”, - добавил он.

В лучших традициях IT-экспериментов, всё начиналось с простой идеи: а что, если взять эмулятор Linux под архитектуру RISC-V, разместить его в DLL, а потом через макросы VBA подружить с Excel? Звучит как рецепт для пятничного вечера, когда хочется удивить коллег и проверить, насколько сильно можно нагнуть офисный софт.

В итоге родился проект LinuxInExcel. Вся соль в том, что Excel здесь выступает не просто как таблица, а как своеобразный терминал. Макросы запускают эмулятор, выводят результат прямо в ячейки, а пользователь может даже отправлять команды в виртуальный Linux. Конечно, до полноценного bash ещё далеко, но базовые команды работают, и это уже успех.

Running Linux in Microsoft Excel

Техническая кухня: как заставить Excel поверить, что он терминал

Если копнуть глубже, то схема следующая: в Excel загружается специальный файл с макросами. Эти макросы через VBA вызывают внешний DLL - внутри него крутится миниатюрный эмулятор mini-rv32ima. Макросы берут ввод пользователя (например, из ячейки C2), передают его в эмулятор, получают вывод и аккуратно раскладывают его по ячейкам - обычно в столбец A. Вроде всё логично.

Вся эта магия работает только на Windows и только в «правильных» версиях Excel (например, Office 2021), потому что макросы и DLL - это не про кроссплатформенность. В облачных или Mac-версиях ничего не выйдет.

Производительность? Ну, скажем так, если вы мечтали о скорости, как у WSL, то это не тот случай. Эмулятор запускается с помощью VBA, который, мягко говоря, не про high performance. Автор честно предупреждает: всё очень багованно, но цели доводить всё до идеала и не стояло.

Мы не знаем, что это такое. Если бы мы знали, что это такое…. но мы не знаем, что это такое
Мы не знаем, что это такое. Если бы мы знали, что это такое…. но мы не знаем, что это такое

Поэтому вопрос «зачем?» здесь неуместен. Как и многие подобные проекты, LinuxInExcel - это чистое удовольствие от эксперимента, вызов самому себе и способ развлечься в пятничный вечер. Автор прямо пишет: «Я не планирую развивать проект, практической пользы тут мало. Но если кому-то вдруг понадобится Linux в Excel - пожалуйста, берите и пользуйтесь».

Для кого-то это пример того, как можно использовать стандартные инструменты нестандартно. Для кого-то - просто повод посмеяться и удивиться тому, на что способны современные энтузиасты. А для кого-то - очередное напоминание, что границы возможного проходят там, где заканчивается фантазия.

Проблемы, ограничения и баги

Разумеется, проект не идеален. Во-первых, он работает только на Windows и только в Excel с поддержкой макросов и загрузки DLL. Во-вторых, стабильность оставляет желать лучшего: эмулятор может зависнуть, макросы - вылететь, а ввод - не всегда корректно обрабатывается. В-третьих, поддержка специальных клавиш (например, Esc для Vim) отсутствует, а сложные сценарии с Bash или скриптами пока что не реализованы.

Но, как говорится, «оно и не должно было работать идеально». Всё это - часть шарма подобных проектов: главное, что получилось запустить ядро Linux в таком неожиданном месте, а всё остальное - уже детали.

Абы какой Linux для этой цели не подойдет
Абы какой Linux для этой цели не подойдет

Если после прочтения у вас зачесались руки и захотелось попробовать - добро пожаловать! Всё, что нужно:

  • Windows с установленным Office 2021 или аналогичной версией Excel

  • Скачать файл с макросами и DLL (всё есть на GitHub автора)

  • Разрешить выполнение макросов (да, это риск, но ради науки - почему бы и нет)

  • Ввести команду в ячейку C2 и наблюдать магию

Всё остальное - вопрос фантазии и терпения. Если получится запустить что-то необычное, авторы будут только рады: кидайте свои находки в соцсети и делитесь опытом.

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

А, если вам вдруг надоело считать бюджеты или строить графики в Excel - попробуйте запустить в нём Linux. Вдруг это и есть тот самый путь к просветлению? 

Комментарии (6)


  1. eimrine
    16.05.2025 12:01

    Почему именно Risc-V, просто потому что у автора была соответствующая DLL и не было аналогов?


    1. dreams_killer
      16.05.2025 12:01

      Тоже интересует этот вопрос! А точнее: "взять эмулятор Linux ... разместить его в DLL" - а чё так можно было?! Интересно было бы почитать/ознакомиться как это сделать.


  1. unreal_undead2
    16.05.2025 12:01

    В DLL неинтересно, вот если бы эмулятор RISC V и минимального железа на арифметике в ячейках и поверх этого Linux...


    1. Skykharkov
      16.05.2025 12:01

      Да эмуляторы, естественно, давно уже в экселе есть. Чудовищная штука этот Эксель... Захватить мир, как два байта переслать, при должном умении. Просто Linux запускать никому не надо на нем.


      1. unreal_undead2
        16.05.2025 12:01

        Так статья скорее не про "надо", а про "потому что можно и прикольно". И в этом плане линукс поверх эмулятора на арифметике в ячейках выглядит извращённее интереснее.


        1. maxcat
          16.05.2025 12:01

          Вы правы. Тоже зашёл сюда с надеждой увидеть запуск прям в Экселе, а не просто общение с внешней dll