Новости

21-летний разработчик исправил 27-летний баг в Linux, который был старше её самой

В оконном менеджере Enlightenment E16 для Linux была исправлена ошибка, которая приводила к зависаниям и сохранялась в системе на протяжении десятилетий. Как сообщает The Register, решение проблемы нашла разработчица программного обеспечения Камилла Шевчик (Kamila Szewczyk). Она обнаружила неисправность во время подготовки материалов для своего курса, который читает, будучи аспиранткой Саарландского университета в Германии.

На момент публикации материала Камилле был 21 год. Точное время появления этого бага остается загадкой, однако есть вероятность, что он старше самой Камиллы, так как первая версия Enlightenment E16 вышла за семь лет до ее рождения — в 1997 году. По данным The Register, ошибка проникла в код менеджера 20 лет назад, но разработчики этого не подтверждают.

Enlightenment E16 распространяется как открытое программное обеспечение и до сих пор получает относительно активную поддержку от сообщества разработчиков, к которому принадлежит и Камилла. Последняя версия на момент написания статьи датируется августом 2024 года и имеет номер 1.0.30.

Enlightenment E16 не следует путать с более современным оконным менеджером Enlightenment E25. Е16 можно установить на многие актуальные дистрибутивы Linux, включая Ubuntu, Debian, Fedora, Mandriva и OpenSUSE.

В своем блоге 21-летняя Камилла рассказала, что неожиданно столкнулась с зависаниями Е16. «У меня было несколько PDF-файлов со слайдами лекций и листом упражнений, набранных в LaTeX. В какой-то момент я открыла один из них в Atril (программа для просмотра документов в среде MATE — прим. CNews), и весь рабочий стол перестал отвечать», — поделилась она.

По ее словам, впоследствии проблема возникала еще несколько раз, но поначалу Камилле не удавалось выяснить причину ее появления.

Однако в конечном счете источник сбоя был найден. Оказалось, что E16 зависал только тогда, когда пытался сократить слишком длинное имя файла, с которым работала Камилла.

Проведя небольшой анализ кода Е16, Камилла пришла к выводу, что используемый в нем алгоритм усечения заголовка окна не имеет ограничения на количество итераций. Из-за отсутствия этого ограничения поиск по многоточию мог бесконечно переключаться между точками усечения, вызывая зависание рабочего стола в процессе поиска заголовка.

Обнаружив причину неполадки, Камилла подготовила патч для сборки 1.0.30. Исправление вносит в код оконного менеджера три изменения, которые в совокупности гарантируют, что проблема не повторится.

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

Камилла рассказала The Register, что предпочитает именно Е16 современным оконным менеджерам, так как считает его более законченным и надежным. Она также убеждена, что более новые версии Е16 содержат схожие ошибки в своем коде.

«Вне всяких сомнений, такие же ошибки прячутся в миллионах строк кода, которые обеспечивают работу актуальных сред рабочего стола и оконных менеджеров», — отметила она в письме изданию The Register.

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

«Мне кажется, мы немного сбились с верного пути, — заявила Камилла The Register. — Мы недостаточно заинтересованы в том, чтобы признать: разработка программного обеспечения может быть в определенный момент более или менее завершена».

В качестве примера она привела именно Е16. По ее словам, за 29 лет он получил множество обновлений, однако разработчики делали упор на исправление ошибок, а не на добавление множества новых и ненужных функций.

Поделиться:

0 Комментариев

Оставить комментарий

Обязательные поля помечены *
Ваш комментарий *
Категории
Популярные новости