Мы решили поздравить всех читателей блога с наступившим Новым годом и подвести итоги прошедшего. Конец 2015 года ознаменовался круглыми числами — 6000-й билд в SVN и 5000-й участник группы https://vk.com/kolibri_os социальной сети ВКонтакте.



Материал дайджеста подготовлен W__W при моем скромном участии.



Изменения были почти по всем направлениям:
  • приходили и уходили разработчики;
  • дополнялось API операционной системы;
  • улучшались программы, драйверы и библиотеки;
  • появились новые средства разработки;
  • проводились акции и конкурсы.


Разработчики

В 2015 году к нам присоединились несколько программистов, из которых особую активность проявили Pathoswithin и pavelyakov. Pathoswithin занимался улучшением поддержки файловых систем, в том числе NTFS (удаление и создание файлов и папок, запись и перезапись файлов без изменения их размеров), масштабируемыми шрифтами, исправлениями программ — всего 58 ревизий. pavelyakov занимался созданием библиотек для языка C--, исправлениями программ — всего 66 ревизий. Также он разрабатывал интерпретатор высокоуровневого ассемблера и визуальный редактор интерфейса программы с последующей трансляцией в код языка С--.

Проект покинули или ушли в длительный отпуск:
Mario — человек, стоявший у истоков KolibriOS, и один из ведущих разработчиков ядра, драйверов и программ.
SoUrcerer — разработчик, портировавший множество программ и написавший тестовый драйвер для принтеров.
yogev_ezra — PR-менеджер, организатор конкурсов, программист для процессоров семейства Vortex86.

API и возможности ядра KolibriOS

Отметим следующие достижения:
Pathoswithin — повышение скорости работы с IDE-дисками.
Pathoswithin — улучшение поддержки файловой системы NTFS. Комментарий к первой версии кода 7мая
… В общем, дело идёт гораздо медленнее чем я ожидал, но всё-таки, обществу с отсутствующей ответственностью для осторожного тестирования представляется код с ограниченными возможностями. Поддерживается создание (копирование) файлов если есть место в файловой таблице и в узле каталога, иначе вежливо отправляет дописывать. Также, карта раздела кэшируется кусками по 32кб, что эквивалентно 1гб дискового пространства (не тестировалось)...
Текущие возможности
Создание файлов/папок, если есть место в файловой таблице и в узле папки.
Удаление, если индекс файла в папке не указывает на подузел.
Редактирование/перезапись без изменения размера.

Pathoswithin — новый системный шрифт с возможностью масштабирования.
Pathoswithin — новые события мыши.
Serge — поддержка HPET.
Serge — ускорение загрузки ядра.
GerdtR — функция сделать окно поверх всех, позади всех или на уровне рабочего стола (самый нижний «слой»).
hidnplayr — работа с любой из поддерживаемых сетевых карт, а не только с первой обнаруженной.

Новые функции и подфункции:
Функция 18.19.6 — получить задержку для двойного нажатия мышью;
Функция 18.19.7 — установить задержку для двойного нажатия мышью;
Функция 18.25.1 — узнать положение окна относительно других окон;
Функция 18.25.2 — установить положение окна относительно других окон;
Функция 26.10 — получить значение высокоточного счётчика времени;
Функция 37.3 — состояния и события кнопок мыши;
Функция 48.9 — узнать режим сглаживания шрифтов;
Функция 48.10 — установка режима сглаживания шрифтов;
Функция 48.11 — узнать размер шрифта;
Функция 48.12 — установить размер шрифта;
Функция 74.4 — узнать указатель на сетевое устройство;
Функция 74.6 — узнать значение счётчика пакетов TX;
Функция 74.7 — узнать значение счётчика пакетов RX;
Функция 74.8 — узнать значение счётчика байтов TX;
Функция 74.9 — узнать значение счётчика байтов RX;
Функция 74.10 — узнать статус соединения;
Функция 76 — настройки и статистика сетевых протоколов.

Программы, драйверы и библиотеки

Переработан файл macros.inc, который используется во многих программах.

Создан файл KOSfuncs.inc с именами функций и констант, позиционируемыми как стандартные и рекомендуемые к использованию в программах, написанных на FASM.
Предыстория.
Начинающий разработчик ALEXS1983 11 декабря создал тему «Названия системных функций» для обсуждения нечисловых, а буквенных названий функций, которые бы стали в дальнейшем стандартом. ALEXS1983 предложил несколько вариантов, которые активно обсуждались. Далее Pathoswithin 18 декабря предложил вариант, рассматриваемый как кандидат на утверждение. Данный вариант был принят с некоторыми поправками и 22 декабря был сделан коммит, который как нельзя лучше подходил юбилейному числу — 6000.
Далее по плану будет утверждение имен функций для ЯВУ и Style Guide для С--.

Из новых программ отметим следующие:
"@open" (разработчик e-andrew) — системная утилита, служащая для открытия файлов по ассоциации. Это был первый шаг от избавления зоопарка файлов ассоциаций у файловых менеджеров и других программ. С ревизии 5396 программа в составе ночных сборок.

image

«Pixie Player» (разработчик Leency) — музыкальный плеер (фронтэнд для MiniMP3).

image

«FB2 Reader» (разработчик akron1) — читалка fb2-книг

image

Средства разработки

В конце года большой интерес вызвали проекты участника pavelyakov:

Интерпретатор программ на высокоуровневом ассемблере

image

Визуальный редактор интерфейса приложения с последующей трансляцией в С--



Акции и конкурсы

18 января были подведены итоги конкурса игр:

Победители конкурса:
1. LaserTank — разработчик ZblCoder. Язык программирования: C++. Компилятор: MSVC (VS2013). image

2-3. N-sider — разработчик eugene455. Язык программирования: C. Компилятор: TinyC / GCC. image

2-3. Dungeons of Augastes — разработчик Anton_K. Язык программирования: Assembler.
Компилятор: FASM. image

4. 21days — разработчик igevorse. Язык программирования: C++. Компилятор: GCC. image

21 февраля начат конкурс «Нарисуй или улучши иконку Колибри»

4 мая открыт приём материалов для блога компании на Хабрахабре. Пишите Punk_Joker о предполагаемых темах статей для координации работы над ними и составления графика публикаций.

Статистика юбилейных ревизий:
билд 6000 — 22 декабря 2015 — Pathoswithin — 523 дня
билд 5000 — 17 июля 2014 — Clevermouse (на Хабре CleverMouse) — 281 день
билд 4000 — 9 октября 2013 — Mario79 (на Хабре Mario_Z) — 339 дней
билд 3000 — 4 ноября 2012 — Leency (на Хабре Leency) — 486 дней
билд 2000 — 7 июля 2011 — Mario79 (на Хабре Mario_Z) — 893 дня
билд 1000 — 25 января 2009 — diamond (на Хабре grechnik) — 1207 дней
билд 1 — 6 октября 2005 — halyavin (на Хабре halyavin) — начало использования SVN

Последняя тысяча далась тяжелее, чем предыдущие, из-за смены поколений участников проекта и длительного отпуска Сlevermouse.

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

Счастливого 2016 года!

Комментарии (16)


  1. halyavin
    06.01.2016 17:39
    +9

    Вот так неожиданно в один день обнаруживаешь себя автором первой ревизии. А я всего лишь настроил SVN сервер и убедил Mario79 его использовать.


    1. Punk_Joker
      06.01.2016 19:58
      +4

      Внедрение чего-то, это не такая уж и мелочь.


  1. Grammidin
    06.01.2016 18:39

    Удачи вам!
    А что планируется в этом году?


    1. Punk_Joker
      06.01.2016 20:03

      Особых планов пока нет. Но точно будет полноценная запись на NTFS, и надеюсь появится браузер (сейчас в этом направлению ведется более активная работа)


      1. Randl
        06.01.2016 22:10
        +1

        А кто работает над браузером? С нуля пишут или портируют что-то? Помниться sourcerer пытался браузер написать, но об этом два года ни слуху, ни духу.


        1. W__W
          06.01.2016 22:22

          Leency решил переписать свой браузер с нуля. И hidnplayr пишет свой тоже с нуля…


          1. Randl
            07.01.2016 02:04

            Leency hidnplayr
            А реально ли в одиночку написать браузер, на котором можно беспроблемно просматривать все (ну или хотя бы большинство) современные сайты? Тем более на ассемблере.
            Или упор будет сделан на легкость аля Links?


            1. Leency
              07.01.2016 03:49
              +2

              Привет,

              Нет. На данный момент самостоятельно написать браузер не реально. Кто-то пошутил, что любая программа в процессе своего развития стремиться стать операционной системой. Современные браузеры подошли к этому очень близко.
              Над ними работают десятки и сотри программистов. Исходники Chromium несколько лет назад «весили» 300 Мб, сейчас уже 2,2 Гб.
              2,2 Гб, Карл!!!

              > Leency решил переписать свой браузер с нуля.
              Основной дистрибутив Колибри — это img образ размером 1.44 Мб. Сейчас в нем есть браузер WebView, который был одной из моих первых программ для Колибри, потому код в нем не ахти. Я делаю попытку исправить ошибки прошлого и переписать его, т.е. сделать тот же текстовый браузер, но уже с хорошим кодом. Мне это просто интересно, ничего более.
              Грустная история WebView http://kolibri-n.org/inf/webview/webview
              Другие мои программы имеют более веселую судьбу.

              Один наш друг из Индии занимается портированием Netsurf, пожелаем ему удачи.


              1. Randl
                07.01.2016 05:04

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


        1. W__W
          06.01.2016 22:42

          Что касается порта NetSurf, то это был один из частично успешных проектов GSoC 2014 года. Индус, который был в GSoC студентом, время от времени заходит и обещает им снова заняться. Вот текущее состояние github.com/ashmew2/netsurf-kolibri


        1. Punk_Joker
          06.01.2016 22:50

          Помимо выше сказанного, один из студентов GSoC 2014, Ashmew2, продолжает работу над Netsurf. Сейчас он работает над нативным для Колибри интерфейсом, и внедрением наработок по портированию в основное дерево проетка Netsurf, чтобы ядро браузера оставалось вктуальным, без особых усилий со стороны команды KolibriOS.


  1. Supme
    06.01.2016 21:06
    -3

    В golang, неплохо было бы, добавить поддержку KolibriOS.


  1. Zibx
    06.01.2016 23:18

    Как пощупать визуальный редактор? Прочитал все 4 страницы форума и так и не нашел.


    1. W__W
      06.01.2016 23:28

      Нагуглил compiler.esy.es, но работоспособность неизвестна.


      1. W__W
        08.01.2016 22:30

        Немного потестировал: в Firefox сайт грузит, но добавление компонентов неработает; в Chrome нормально добавляются компоненты, события компонентов (можно писать обработчики событий), можно менять текст, цвет и прочие параметры для компонентов, но с компиляцией проблемы. Можно скачать описание формы в неком формате *.kcm.


    1. Punk_Joker
      07.01.2016 02:46

      Он все еще в разработке, потому автор его и не выкладывал. Но сейчас у него времени поубавилось, в связи с тем, что сейчас он в армии.