21-летняя разработчица программного обеспечения Камилла Шевчик из Германии устранила баг в оконном менеджере Enlightenment E16 для Linux, который существовал с 1997 года и вызывал зависания системы. Проблема игнорировалась разработчиками десятилетиями, пока Камилла не выявила и не исправила её в 2024 году.
- Баг присутствовал в Enlightenment E16 с 1997 года.
- Enlightenment E16 — лёгкий оконный менеджер с открытым исходным кодом.
- Проблема проявлялась при работе с длинными именами файлов.
- Исправление добавлено в версию 1.0.30, выпущенную в августе 2024 года.
- Камилла — аспирантка Саарландского университета, преподаёт курсы по программированию.
Краткое содержимое статьи:
История бага и его обнаружение
Оконный менеджер Enlightenment E16, запущенный в 1997 году, до сих пор поддерживается сообществом Linux-разработчиков, включая Камиллу Шевчик. В процессе подготовки лекционного материала и работы с PDF-файлами на рабочем столе под управлением E16 она заметила частые зависания системы.
Внимательное исследование показало, что сбои возникают при попытке усечь слишком длинное имя файла в заголовке окна. Алгоритм усечения, используемый в менеджере, не ограничивал количество повторяющихся операций, что приводило к бесконечным итерациям и зависаниям.
Как было исправлено
Камилла внесла три ключевых изменения в код Enlightenment E16, которые стали частью версии 1.0.30:
| Изменение | Описание |
|---|---|
| Ограничение итераций | Максимум 32 прохода при усечении заголовка для предотвращения зацикливания |
| Защита от вырожденного перекрытия | Исключение отрицательных значений поправок при усечении |
| Защита от деления на ноль | Добавлена проверка для предотвращения аварийного завершения |
Эти изменения позволили полностью устранить причиной зависаний, сделав работу Enlightenment E16 более стабильной.
Мнение разработчицы о современных менеджерах окон
Камилла призналась, что предпочитает Enlightenment E16 более современным оконным менеджерам, таким как Enlightenment E25. По её мнению, Е16 более завершён и надёжен, а современные среды рабочего стола часто изобилуют новыми функциями, которые могут приводить к ошибкам и снижать безопасность.
Она также отметила, что многие ошибки остаются скрытыми в коде современных проектов, и выразила мнение, что разработка ПО может и должна достигать состояния завершённости, а не бесконечного роста функционала.
- 1997 год — первая версия Enlightenment E16.
- около 2004 года — баг, по предположению, появился в коде.
- 2024 год — Камилла обнаружила и исправила баг.
- август 2024 — выпуск Enlightenment E16 версии 1.0.30 с исправлениями.
tasani.ru