Главная

Отчет об активности Haiku - декабрь 2021 года

С Новым Годом!

Примечание: этот отчет охватывает изменения только в главном git репозитории Haiku. Есть много других вещей, происходящих с Haiku за пределами этого репозитория. Из последних важных новостей у нас есть уровень совместимости с X11 и работающий экспериментальный порт Wine. Однако я не могу охватить всё в этих отчетах.

Тем не менее, давайте посмотрим, что происходит в самой Haiku!

Этот отчёт охватывает ревизии от hrev55688 до hrev55768.

Статистика коммитов

По мере окончания года я также обновил графики статистики коммитов для Haiku и для haikuports. Там вы можете увидеть наиболее активных участников за время существования проекта и за каждый год, общее количество людей, отправивших исправления, а также несколько других интересных графиков и статистических данных о наших репозиториях. Несмотря на все важные новости и достигнутый прогресс, этот год был на удивление малопродуктивным для Haiku, с самым низким количеством фиксаций за всю историю, а также с самым низким количеством участников с 2016 года. Будем считать, что у нас качество выше количества?

Со стороны haikuports таких проблем нет, там растет как количество внесенных изменений, так и число участников, достигшее рекордного уровня в 75 человек. В настоящее время в haikuports существует 3037 рецептов для различного программного обеспечения. Посмотрим, добавятся ли рецепты для Xlib и Wine в следующем году.

Размер кода Haiku остается стабильным с 2015 года: около 30000 файлов на общую сумму 5,5 миллиона строк. Из них только 16000 являются исходным кодом (файлы.c, .cpp и .h), остальное–документация (включая несколько переводов руководства пользователя), файлы каталога для набора языковых стандартов, сборочные скрипты и различные файлы данных для значков, ресурсов приложений и т.д.

Драйверы

Rudolfc (с некоторой помощью Korli и KapiX) продолжает свою работу над графическим драйвером Intel с поддержкой PLL на чипах Skylake, первоначальной поддержкой интерфейса DDI и реализацией обработки прерываний для устройств новых поколений. Это улучшает поддержку современных чипсетов Intel и различных типов вывода (DVI, DisplayPort и eDP требуют определенной обработки в драйвере).

Kallisti5 (также с некоторой помощью Korli) внес некоторые обновления в графический драйвер AMD Radeon с различными исправлениями для более нового оборудования и реализацией некоторых недостающих частей. Anarchos и Nephele добавили поддержку настройки яркости экрана на ноутбуках на базе Radeon.

Lt–Henry продолжает работать над HID и модулями ввода, проделав некоторую работу по созданию драйверов клавиатуры HID для USB и I2C из одного файла. Ранее файл I2C был копией файла USB с некоторыми изменениями. Это позволит избежать разделения двух реализаций по мере внесения изменений в ту или иную сторону. Он также улучшил вывод ioctl для B_GET_DEVICE_NAME для этих драйверов и не только.

David Karoly несколько продвинулся в работе над портом ARM, в этом месяце было рассмотрено и объединено несколько исправлений для реализации обработки прерываний. Набор загрузочных пакетов теперь достаточно стабилен и загружен на наши серверы сборки. Это означает, что теперь можно запустить сборку порта ARM без сборки bootstrap пакетов. Не ожидайте слишком многого: в настоящее время вы получите только загрузочный экран с несколькими загоревшимися значками и то это было протестировано только в основном в QEMU. Следующим шагом является добавление драйвера для носителя данных для тестирования следующей части процесса загрузки. Продолжается работа по запуску драйвера virtio, хотя возможно, драйвер SDHCI для карт SD/MMC появится первым.

X512 и Kallisti5 работают над портом RISC–V, внося исправления для обеспечения сборки, а также над начальной реализацией SMP (поддержка многоядерности), которая была объединена в этом месяце.

Инструменты отладки

Korli добавил поддержку дополнительных функций в strace: вызовы poll и select, а также декодирование большего количества констант ioctl. Он также добавил поддержку нескольких системных вызовов (из разных потоков), выполняемых параллельно.

strace — это инструмент, который запускает исполняемый файл и регистрирует все вызовы ядра, позволяя понять, что делает исполняемый файл.

Система сборки

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

Waddlesplash исправил различные проблемы в коде, позволяющие собирать Haiku с помощью gcc11. Теперь он используется по умолчанию взамен устаревшему gcc 8.3. Kallisti5 и David Karoly исправили некоторые новые предупреждения компилятора, обнаруженные после этого перехода.

Mt и Korli исправили некоторые проблемы с нашей конфигурацией статического анализатора LGTM. (LGTM–это инструмент, который сканирует наш исходный код и обнаруживает в нем возможные проблемы).

Ядро

Waddlesplash исправил несколько проблем в новой реализации condition_variable. Теперь в нем должно быть меньше ошибок, и он все равно будет работать немного лучше, чем в предыдущей версии.

Korli исправил небольшую ошибку в поддержке функции “контрольная сумма метаданных” в драйвере файловой системы ext2/3/4.

Сетевой стек и совместимость с POSIX

Waddlesplash исправил ошибку двойного освобождения памяти в реализации UDP.

Korli исправил проблему в стеке TCP и проблему в реализации семафора XSI, обнаруженную при запуске набора тестов NSPR.

PulkoMandy исправил проблемы с управлением временем ожидания в DHCP–клиенте, из а которой некорректно обрабатывалось время аренды более часа, а так же иногда приводило к забиванию сети DHCP–запросами.

Загрузчик

David Karoly внес несколько исправлений в загрузчик EFI не только для порта ARM, но и для возможности создания 32–разрядной версии x86. Это будет полезно для некоторых машин, которые не обеспечивают 64–битную реализацию EFI: некоторые ранние компьютеры Apple x86 и некоторые планшеты Android x86. Это привело к рефакторингу кода, чтобы упростить перенос загрузчика EFI на новые архитектуры процессоров в будущем.

app_server

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

PulkoMandy исправил ошибку в реализации режима рисования B_OP_COPY, которая приводила к тому, что прямоугольник выделения в Wonderbrush был сплошным белым, а не прозрачным.

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

Пользовательский интерфейс и приложения

Alex Hitech исправил нахождение символа рубля на русской клавиатурной раскладке.

Nephele исправил высоту панели загрузки в WebPositive, чтобы она соответствовала строке статуса (в зависимости от размера системного шрифта).

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

PulkoMandy исправил использование пользовательских значков для каталогов в Tracker.

Adrien Destugues

Оригинал статьи: https://www.haiku-os.org/blog/pulkomandy/2022–01–06-activity–report/

Ссылка на телеграм: https://t.me/haiku_ru

С новым

С новым счастьем! :)

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

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Allowed HTML tags: <a> <em> <i> <img> <strong> <b> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Введите перечисленные символы, чтобы мы убедились, что вы не робот. Не требуется для зарегистрированных пользователей.
H
b
5
G
V
i
Enter the code without spaces and pay attention to upper/lower case.