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




Обозначения
— реализация новой программы, драйвера или библиотеки
— реализация чего-либо в рамках 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)


  1. FishDude
    03.03.2016 16:17
    +1

    Позволю себе крохотное пожелание по FB2 ридеру: позвольте юзеру регулировать расстояние между строками; иногда это здорово снижает нагрузку на глаза.


  1. gigimon
    03.03.2016 16:25
    +3

    Никогда не использовал колибри, но каждый раз с удовольствием читаю список изменений :)


  1. dzavalishin
    03.03.2016 17:19
    +2

    Привет коллегам.

    Господа, пару лет тому назад я реализовал внутри ядра Фантома модуль поддержки API Kolibri OS. Но по документации понятно совсем не всё, и некоторые части API работают неидентично оригиналу. Плюс — нет сишного исходника для распаковщика приложений, поэтому загрузчик ест только распакованные исполняемые файлы. Но — некоторые программы работают.

    Если бы в команде Колибри нашёлся кто-то, кто готов помочь доработать эту подсистему, наверное, было бы здорово. Если кому-то идея переносимой на другие платформы Колибри кажется интересной — дайте знать.

    Код здесь


    1. ion2
      03.03.2016 23:30
      +1

      lzma декодер из 7z должен справиться. Первый dword сигнатура 'KPACK', второй — размер распакованного файла. Все остальное это данные сжатые lzma.


      1. dzavalishin
        04.03.2016 02:00

        Спасибо. Вот такой?

        Судя по тому, что он у меня в дереве лежит, но пакованные программы не грузятся, что-то с ним не то… :(

        Сигнатура — 'KPCK'?

        О. Он даже подключен, оказывается. Здесь.


      1. dzavalishin
        04.03.2016 02:02

        У меня структура заголовка пакованного файла выглядит так:

        struct kolibri_pkck_hdr
        {
            char                ident[4];
            u_int32_t           unpacked_size;
            u_int32_t           flags;
        };

        Неверно? Нет там флагов?


        1. ion2
          04.03.2016 03:16

          Да, структура такая. Флаги есть, похоже они часть заголовка файла. Распаковщик их проверяет.


          1. dzavalishin
            04.03.2016 10:19

            Распаковщику-то с какого смещения вход отдавать? +8 или +12, после всей этой структуры?


            1. ion2
              04.03.2016 16:08

              Скорее всего +12.


            1. grechnik
              04.03.2016 20:34

              Перед передачей LZMA-распаковщику нужно дописать впереди нулевой байт (LZMA-поток всегда начинается с нулевого байта) и, возможно, bswap-нуть первый dword (а может быть, и нет, не помню точно). Кроме того, в зависимости от флагов после LZMA-потока могут быть данные для постпроцессинга (instruction-relative offset <-> absolute address; постпроцессинг для распаковщика, препроцессинг для упаковщика) E8/E9 и 0F 8x.


              1. dzavalishin
                05.03.2016 01:15

                Может, спека есть на это всё?


                1. grechnik
                  05.03.2016 13:29

                  Нет. Те, кому нужно, просто берут готовый код.