Добавить в корзинуПозвонить
Найти в Дзене
DigiNews

Разработчик моложе самого оконного менеджера исправил баг в интерфейсе Linux, которому десятки лет

Камила Шевчик предпочитает старое ПО, поскольку тогда люди понимали, что что-то может быть действительно законченным. Она исправила 20-летнюю ошибку в Enlightenment E16. — theregister.com Никто не скажет разработчику программного обеспечения Камиле Шевчик, что новое — это лучшее: она только что исправила 20-летнюю ошибку в Enlightenment E16, оконном менеджере Linux старой школы, который она предпочитает отчасти потому, что, как она нам говорит, это уже законченное программное обеспечение. Для тех, кто не в курсе, E16 — это долгоживущая ветка DR16 проекта Enlightenment, все еще разрабатываемого оконного менеджера Linux, который впервые появился в пространстве FOSS в 1997 году. E16 был представлен в 1999 году и до сих пор поддерживается преданной командой разработчиков, таких как Шевчик, которая отметила в своей статье об обнаруженной ошибке, что она является частью небольшого сообщества «хардкорных энтузиастов», которые до сих пор используют и поддерживают этот устаревший оконный менедж

Камила Шевчик предпочитает старое ПО, поскольку тогда люди понимали, что что-то может быть действительно законченным. Она исправила 20-летнюю ошибку в Enlightenment E16. — theregister.com

Никто не скажет разработчику программного обеспечения Камиле Шевчик, что новое — это лучшее: она только что исправила 20-летнюю ошибку в Enlightenment E16, оконном менеджере Linux старой школы, который она предпочитает отчасти потому, что, как она нам говорит, это уже законченное программное обеспечение.

Для тех, кто не в курсе, E16 — это долгоживущая ветка DR16 проекта Enlightenment, все еще разрабатываемого оконного менеджера Linux, который впервые появился в пространстве FOSS в 1997 году. E16 был представлен в 1999 году и до сих пор поддерживается преданной командой разработчиков, таких как Шевчик, которая отметила в своей статье об обнаруженной ошибке, что она является частью небольшого сообщества «хардкорных энтузиастов», которые до сих пор используют и поддерживают этот устаревший оконный менеджер.

Шевчик, которой 21 год, объяснила в своем блоге, что обнаружила ошибку, занимаясь в последнюю минуту подготовкой слайдов для курса, который она ведет как аспирантка в Саарском университете в Германии.

«У меня было несколько PDF-файлов с лекционными слайдами и листом упражнений, набранных в LaTeX. В какой-то момент я открыла один из них в Atril, и весь рабочий стол завис», — написала Шевчик. Это повторялось до тех пор, пока она не выяснила коренную причину: E16 зависал всякий раз, когда пытался усечь слишком длинное имя файла, с которым она работала.

Немного покопавшись, Шевчик определила, что в E16 алгоритм усечения заголовка окна был реализован без ограничения на количество итераций. Без этого ограничения поиск многоточия в середине мог бесконечно перескакивать между точками усечения, замораживая рабочий стол, пока он пытался определиться с заголовком.

«Любое окно, у которого WM_NAME достаточно длинное, чтобы поиск многоточия в середине попал в режим перерегулирования, воспроизводит это», — пояснила Шевчик.

Исправление, которое она опубликовала в виде патча для E16 1.0.30, версии, выпущенной в августе 2024 года, вносит три изменения, чтобы предотвратить повторение проблемы: она ограничила итерации числом 32, предотвратила появление вырожденного перекрытия из-за отрицательных поправок и защитилась от ошибки деления на ноль.

Если такие ошибки существуют в 20-летнем коде, представьте, что таится в современном хламе

Это ошибка, которая, если бы ее обнаружили в современном оконном менеджере или среде рабочего стола, могла бы стать путем для отказа в обслуживании, который, хотя и не уничтожит данные и не заблокирует сервер, все равно может доставить массу неудобств.

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

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

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

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

«Мы продолжаем поставлять нестабильность, которую не обязаны поставлять», — высказала свое мнение Шевчик. Пользователям или администраторам, которые гонятся за каждой новой версией, она советует остановиться — просто оставаться на недавнем релизе с расширенной поддержкой, особенно в отношении программного обеспечения, которое склонно поставляться с большим количеством ошибок, например, веб-браузеров.

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

Та же логика применима к расширенным выпускам более крупных проектов с большей пользовательской базой, чем, скажем, E16: живите с теми функциями, которые у вас есть, следите за исправлениями безопасности, наблюдайте (надеемся) за уменьшением числа ошибок, и вы, вероятно, будете в большей безопасности, чем если бы перешли на последнюю, самую новую итерацию, которая включает функции, которые вам не нужны, и кучу ненужных ошибок. ®

Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.

Автор – Brandon Vigliarolo

Оригинал статьи