⚡️ Девушка нашла баг в Linux, который существовал дольше неё самой
21-летняя разработчица просто готовилась к лекции. Открыла PDF - и система зависла. Не первый раз, но в этот раз она решила не перезапускать, а разобраться.
Оказалось, проблема сидит в оконном менеджере Enlightenment E16. Это код из 90-х. Баг, судя по всему, жил там больше 20 лет. И всё это время его никто не трогал.
Enlightenment E16 распространяется с открытым исходным кодом и до сих пор относительно активно поддерживается сообществом разработчиков, к числу которых себя причисляет и Камилла. Самая последняя его версия на момент выхода статьи датирована августом 2024 г. и имеет индекс 1.0.30.
cal gao / UnsplashКлассическое ПО для Linux содержит баги, которые могут скрываться десятилетиями
Enlightenment E16 не стоит путать с более современным оконным менеджером Enlightenment E25. Е16 можно установить на многие современные дистрибутивы Linux, например, на Ubuntu, Debian, Fedora, Mandriva и OpenSUSE.
В своем блоге 21-летняя Камилла написала, что внезапно столкнулась с зависаниями Е16. «У меня было несколько PDF-файлов со слайдами лекций и листом с упражнениями, набранными в LaTeX. В какой-то момент я открыла один из них в Atril (просмотрщик документов в графической среде MATE – прим. CNews), и весь рабочий стол завис», – написала она.
По ее словам, в дальнейшем проблема проявила себя еще несколько раз, но поначалу Камилле не удалось установить причину ее возникновения.
Однако в итоге источник сбоя был выявлен. Оказалось, что E16 зависал лишь в моменты, когда пытался сократить слишком длинное имя файла, с которым работала Камилла.
Она нашла причину, разобралась в старом коде и исправила ошибку, которую десятилетиями обходили стороной.
Первое нововведение - это ограничение количества итераций. Камилла посчитала, что 32 будет достаточно. Второе – она предотвратила возникновение вырожденного перекрытия из-за отрицательных исправлений. Наконец, третье изменение в коде – это защита от ошибки деления на ноль.
Можно иметь огромный open source проект, миллионы пользователей и длинную историю, но внутри всё равно будут жить старые баги, до которых просто никто не добрался.
И в какой-то момент приходит один человек, без команды и ресурсов, и закрывает этот вопрос.
Вот так на самом деле работает open source. Не за счёт корпораций и масштаба, а за счёт людей, которые готовы копаться в системе до конца.
Иногда баг живёт десятилетиями не потому что его сложно исправить. А потому что никто всерьёз не пытался это сделать.
https://www.cnews.ru/news/top/2026-04-16_yunaya_devushka_izbavila_linux
❤
42
👍
28
🔥
12
👏
5
😁
5
🎉
1