Дайджест KolibriOS #2: что нам принёс февраль
Дайджест KolibriOS #3: начало весны
Дайджест KolibriOS #4: и весна нам не помеха
Дайджест KolibriOS #5: мы снова с вами
Дайджест KolibriOS #6: последняя осень
Дайджест KolibriOS #7: как мы зиму перезимовали
Дайджест KolibriOS #8: дары весны
Дайджест KolibriOS #9: летний урожай
Дайджест KolibriOS #10 коротко о накопившемся
Дайджест по итогам 2015 года
Дайджест KolibriOS #11 все новости с последнего выпуска и Google Summer of Code 2016
— реализация чего-либо в рамках GSoC
— ссылка на загрузку
Главная новость:
Мы приняты к участию в Google Summer of Code 2016. KolibriOS является одним из 15 проектов в категории «Операционные системы». Ознакомится со всеми проектами, принятыми в этом году можно тут.
Для всех, кто интересуется KolibriOS и хочет принять участие в GSoC'16, советую ознакомиться со списком идей или же предложить свою, и начать работу по ознакомлению с проектом и потенциальными менторами. Прием заявок от студентов начнется 14 марта и продлится до 25 марта. Подробнее с расписанием можно ознакомиться по этой ссылке. Скоро выйдет отдельная статья, посвященная GSoC'16.
Общесистемные изменения (ядро, драйверы, библиотеки):
- Новая системная функция ф77 — user-space блокировки для синхронизации в приложениях (мьютексы, семафоры, условные переменные, read-write блокировки и т.п.).
- Обновление драйверов Intel i915 и ATI Radeon.
- NTFS: базовая поддержка записи.
- ffmpeg: обновление до версии 2.8.5
- Множество фиксов в драйверах сетевых карт.
- buf2d.obj: добавлены функции для уменьшения изображений по высоте и ширине (при уменьшении учитываются цвета всех пикселей для получения усредненного цвета).
- TinyGL.obj: добавлены функции работы с текстурами в ортогональной проекции (размер текстуры может быть от 8 до 4096 пикселей, кратный числам степени 2. Ширина и высота текстуры могут быть разными. В C++ версии текстура может быть размером только 256 на 256); добавлена функция рисования цилиндра gluCulinder; немного оптимизирована скорость работы.
- layout.obj библиотека, реализующая примитивный менеджер разметки (позволяет создавать как статический, так и «резиновый» дизайн окна с вытягивающимися и плавающими элементами окна.).
- RasterWorks.obj: библиотека растрового плавно масштабируемого шрифта с поддержкой UTF-8.
Изменения в прикладном ПО:
- info3ds — добавлена пользовательская версия программы, которая дает минимум информации по структуре файла 3ds, но более удобна для просмотра самих 3d объектов.
- Eolite — начальная реализация «хлебных крошек»; увеличенные шрифты; улучшен дизайн.
Больше скриншотов
- TextEdit — фокус на текстовом поле при старте программы; исправление багов; используются новые масштабируемые системные шрифты; добавлено выделение подсвеченного слова при двойном клике на нем.
- FB2 Read — изменяемый размер окна; изменяемый размер шрифта; настройка цветовой схемы, режимы день/ночь; индикатор прогресса загрузки файла; поддержка кодировки Windows-1250; сохранение настроек и места остановки в файле history.dat рядом с программой.
- Pixie — открытие файлов через OpenDialog; Ctrl+Left/Right предыдущий следующий трек; улучшена работа со списком; исправлено множество багов.
- Oberon-07 — небольшие изменения в SYSTEM; разрешен экспорт структурных переменных (только для чтения); сделано удаление «мертвых» процедур; расширены и исправлены библиотеки для KolibriOS: добавлены модули для работы с доской отладки и диалогами («Open» и «Color»), усовершенствованы процедуры загрузки динамических библиотек, сделан единый модуль для работы с файловой системой; документация приведена в текстовый формат (CP866) и fb2.
- Appearance — увеличенный шрифт; контекстное меню; поиск по первой букве.
- AppPlus — утилита для помощи в настройке монтирования дополнительной системной директории (/kolibri).
Другие новости:
- ashmew2 доводит до логического конца портирование Netsurf под KolibriOS. Сейчас проводится улучшение инструментария для получения рабочего бинарного файла для KolibriOS. Как только это будет сделано, он займется доработкой функционала браузера. Отличием текущего порта от предыдущего является то, что сборка бинарника для KolibriOS будет внедренна в систему сборки проекта Netsurf. Таким образом браузер можно будет скачать на официальном сайте программы, и при выходе новой версии не будет необходимости в ручном обновлении порта.
- Serge продолжает работу над веткой Kolibri-ACPI, в рамках которой реализуется поддержка ACPI. На данный момент реализовано управление питанием (выключение, перезагрузка), которое успешно работает в виртуальной машине (на реальном железе все еще не работоспособно).
- Leency начал работу над Aelia — реинкарнацией WebView. Основная цель — создание браузера с нормальной кодовой базой на основе опыта разработки WebView.
Комментарии (12)
gigimon
03.03.2016 16:25+3Никогда не использовал колибри, но каждый раз с удовольствием читаю список изменений :)
dzavalishin
03.03.2016 17:19+2Привет коллегам.
Господа, пару лет тому назад я реализовал внутри ядра Фантома модуль поддержки API Kolibri OS. Но по документации понятно совсем не всё, и некоторые части API работают неидентично оригиналу. Плюс — нет сишного исходника для распаковщика приложений, поэтому загрузчик ест только распакованные исполняемые файлы. Но — некоторые программы работают.
Если бы в команде Колибри нашёлся кто-то, кто готов помочь доработать эту подсистему, наверное, было бы здорово. Если кому-то идея переносимой на другие платформы Колибри кажется интересной — дайте знать.
Код здесьion2
03.03.2016 23:30+1lzma декодер из 7z должен справиться. Первый dword сигнатура 'KPACK', второй — размер распакованного файла. Все остальное это данные сжатые lzma.
dzavalishin
04.03.2016 02:00
dzavalishin
04.03.2016 02:02У меня структура заголовка пакованного файла выглядит так:
struct kolibri_pkck_hdr { char ident[4]; u_int32_t unpacked_size; u_int32_t flags; };
Неверно? Нет там флагов?ion2
04.03.2016 03:16Да, структура такая. Флаги есть, похоже они часть заголовка файла. Распаковщик их проверяет.
dzavalishin
04.03.2016 10:19Распаковщику-то с какого смещения вход отдавать? +8 или +12, после всей этой структуры?
grechnik
04.03.2016 20:34Перед передачей LZMA-распаковщику нужно дописать впереди нулевой байт (LZMA-поток всегда начинается с нулевого байта) и, возможно, bswap-нуть первый dword (а может быть, и нет, не помню точно). Кроме того, в зависимости от флагов после LZMA-потока могут быть данные для постпроцессинга (instruction-relative offset <-> absolute address; постпроцессинг для распаковщика, препроцессинг для упаковщика) E8/E9 и 0F 8x.
FishDude
Позволю себе крохотное пожелание по FB2 ридеру: позвольте юзеру регулировать расстояние между строками; иногда это здорово снижает нагрузку на глаза.