Что нового в Kolibri N10.1
Изменения в версии 10.1 за период с 13 января по 16 апреля 2020 года
- добавлена поддержка чтения с файловой системы XFS форматов v4 (2013) и v5 (2020)
- количество обрабатываемых прерываний увеличено с 24 до 56
- добавлена обработка более одного I/O APIC
- улучшен алгоритм перезагрузки: теперь используется Reset регистр из FADT таблицы, если он доступен
- корректное определение звука на самых новых AMD-чипах
- исправления в поиске дополнительной папки
- текстовый браузер WebView вырос с версии 1.8 до 2.46: появился кэш веб-страниц, вкладки, он-лайн обновление, динамическое выделение памяти, ручной выбор кодировки, автоопределение кодировки, поддержка DOCX файлов, переход по якорям, читать стало удобнее
- изменения в командной оболочке SHELL: улучшена вставка текста, навигация по редактируемой строке, вывод ошибок, добавлена подсветка папок в листинге
- обновлена документация
- другие мелкие изменения, улучшения и исправления
Что нового в Kolibri N10
Список изменений, приведенный ниже, описывает изменения в Kolibri N10 и охватывает период с 23 августа 2014 по 12 января 2020 года. Безусловно, он является далеко не полным и тем более не исчерпывающим — это лишь удобное представление основных изменений SVN.
Изменения в ядре
- Множество улучшений в шрифтах:
- поддержка Юникода
- возможностью пропорционального масштабирования
- новый большой системный шрифт
- поддержка сглаживания (выключить, включить обычное, субпиксельное)
- Слияние ветки kolibri-process с «транком» (основной веткой). В рамках ветки kolibri-process разрабатывалась новая модель процессов и потоков, более схожая с моделью больших ОС.
- Повышена скорость загрузки на некоторых конфигурациях
- Сетевая подсистема:
- Возможность работы с любой из установленных сетевых карт (ранее использовалась первая обнаруженная сетевая карта)
- Реализованы RAW-сокеты
- Добавлена возможность установки TTL через setsockopt
- Теперь Колибри пытается подключиться к DHCP серверу, только если кабель физически подключен (и переподключиться, если переподключен кабель, пока поддерживается не всеми драйверами). Предыдущие версии пытались подключиться всегда, что при не подсоединённом сетевом кабеле посылало ненужные пакеты и «забивало» буфер.
- Также исправлены обнаруженные утечки памяти, исправление множества багов (в драйверах сетевых карт, в утилитах)
- Звуковая подсистема Infinity: исправления для кольцевого буфера (до этого, некорректно проигрывались звуковые файлы, записанные с определённой частотой дискретизации)
- Реализация слоев отображения окон, позволяет сделать окно позади или поверх всех
- Дисковых кэш: поддержка секторов с размером отличным от 512 байт
- Расширены функции получения состояния мыши.
- Поддержка HPET
- Новая системная функция ф77 — user-space блокировки для синхронизации в приложениях (мьютексы, семафоры, условные переменные, read-write блокировки и т.п.)
- Новый загрузчик приложений
- Добавлена возможность сохранения/восстановления контекста процесса при помощи инструкций xsave/xrstor
- Добавлена возможность использования инструкций AVX/AVX2 и AVX512, в демку Firework добавлены соответствующие оптимизации
- Добавлена поддержка загрузки KolibriOS из 64-битного UEFI
Изменения в драйверах
- Поддержка записи и основных функций файловой системы в драйвере NTFS
- Чистка кода и исправление багов в драйверах файловых систем EXT2, FAT
- Поддержка Юникода при работе с файловыми системами
- Поддержка всех IDE — контроллеров (ранее поддерживались только PCI 01018x)
- Обновление драйверов для видеокарт Intel и ATI
- Конвертация всех драйверов в формат PE. Формат PE позволяет упростить загрузку драйверов и подключение библиотек в Колибри, по сравнению с форматом COFF, используемым ранее. После успешной конвертации, была удалена поддержка драйверов в COFF формате.
- Добавлена поддержка 16bpp видео-режимов (для старых видеокарт и дешёвых встроенных x86-систем, где отсутствует поддержка 24/32bpp — в частности, используется в 86duino с vortex86 VGA)
- Драйвер GPIO для 86duino
- Драйвер COM-мыши: поддержка третьей кнопки
- Исправлена поддержка драйвера SoundBlaster16 поломанная в r3727
- USBHID: перевод USB media keys в соответствующие PS/2 коды
Изменения в библиотеках
- TinyGL — воссоздание библиотеки на ассемблере
- KMenu — новая библиотека с реализацией главного и контекстного меню
- ColorDialog — новая библиотека для выбора цвета
- BoxLib — большой шрифт в EditBox, возможность использовать копирование/вырезание/вставку во всех EditBox'ах, исправление ошибок. Новый компонент ToolTip
- LibImg — добавлено сохранение файлов в PNG, изменение размера картинки со сглаживанием
- Console — добавлена поддержка скролла мышью во всех консольных приложениях
- c_layer — "обертки" библиотек Колибри для Си-подобных языков
- InputBox — библиотека, реализующая компонент InputBox: всплывающее окно со вводом текста
- KFonts — библиотека для вывода шрифтов KF формата
- Rasterworks — шрифтовая библиотека с поддержкой Unicode и разных стилей начертания
- LibIni — исправление функции ini.del_section, которая удаляла секции
Обновление программ
- Oberon-07 — обновлен компилятор языка Oberon. Разрешен экспорт структурных переменных (только для чтения). Расширены и исправлены библиотеки для KolibriOS: добавлены модули для работы с доской отладки и диалогами ("Open" и "Color"), усовершенствованы процедуры загрузки динамических библиотек, сделан единый модуль для работы с файловой системой. Полная поддержка таблиц. Использование kf-шрифтов.
- Dicty 2.0 — новая версия словарика-переводчика: "живой" поиск, переработка файлов баз словарей (без потерь информации размер словарей уменьшился на 30%), улучшен код и GUI.
- TextEdit — обновление текстового редактора с подсветкой синтаксиса. Из изменений: переделан GUI, добавлено меню, улучшена цветовая схема, поле ввода текста активно по умолчанию, используются новые системные шрифты большего размера. Добавлено выделение подсвеченного слова при двойном клике на нем.
- uPDF 1.2 — читалка PDF.
Список улучшений:- улучшен UI: кнопки, заголовок, добавлена нумерация страниц, страница отображается по центру окна, отображение схлопнутого окна, уменьшена перерисовка окна
- теперь содержимое окна "тянется" вслед за изменением размеров окна
- скролл колёсиком мыши
- улучшено управление клавиатурой: заработали кнопки вверх, вниз, pg up / pg down, home, end
- улучшена стабильность: не падает при использовании некоторых клавиш
- заработала кнопка ( i ) и теперь она отображает справку
- добавлены кнопки поворота изображения
- можно ввести страницу для перехода
- fNav — обновление файлового менеджера.
- добавлено контекстное меню
- управление горячими клавишами
- возможность копирования файлов размером более 4Gb
- переименование доступно на ФС, поддерживающих эту функцию
- отображение размеров физических и логических дисков
- Видеоплеер Fplay — обновление движка до ffmpeg-2.5, vaapi, h264 аппаратное декодирование и вывод, использование pixlib3 для рендеринга.
- Eolite — файловый менеджер, получил множество улучшений:
- возможность включить вид с двумя панелями
- окно настроек, сохранение настроек
- более приятные масштабируемые шрифты KF формата
- использование @open для открытия файлов по ассоциациям
- операции с несколькими файлами
- окно свойств файла, папки, нескольких элементов, изменение аттрибутов
- управление жестами
- отображение свойств выделенных элементов
- прогресс бар в диалоге копирования и удаления
- работа горячих клавиш на раскладках отличных от английской
- начальная реализация «хлебных крошек»
- статус бар
- подсветка текущего диска
- сохранение положения и размера окна, возможность указать стартовую папку
- удаление в отдельном потоке
- вид с большими иконками
- автообновление папки и списка устройств
- опция визуального выделения нечетных линий в списке
- копирование пути в буфер обмена кликом по строке адреса
- возможность назначить папку по умолчанию при открытии
- теперь используются системные цвета
- сортировка по спаданию, сохранение выделения файла после применения сортировки
- отображение размеров физических и логических дисков
- TmpDisk — отображение размера созданных дисков, показ сообщения с предупреждением перед удалением /tmp0
- WebView — реализована возможность загрузки файлов, поддержка крупных шрифтов, улучшен парсинг тегов, нажатие средней клавиши мыши открывает ссылку в новом окне, открытие HTTPS сайтов через прокси gate.aspero.pro.
- SHELL — обновление консольного интерпретатора команд:
- добавлена команда: waitfor
- улучшения в командах: cp, ps, ls, help
- файловые операции используют 64-bit размеры файлов
- правильная обработка папок со слешем в конце
- улучшена обработка клавиш вверх и вниз
- обновлена документация
- View3DS — просмотрщик 3D моделей получил поддержку ASC формата и растягиваемое окно.
- Аудио-проигрыватель AC97snd — исправление ошибки в обработке ID3-тегов, пересекающих границу в 64 Кб (что приводило к зависанию системы на некоторых MP3-файлах)
- Дебаггер MTDBG — поддержка всех инструкций int 3 (пользовательская точка остановки выполнения), уменьшена перерисовка окна, улучшена цветовая схема, теперь окно растягивается.
- ScrShoot — поддержка 16bpp режима.
- Calc — использование увеличенного шрифта, починен ввод с клавиатуры и работа горячих клавиш. Обработка клавиш клавиатура расширена, теперь: буквы A-F используются при наборе HEX чисел, Enter позволяет получить результат, а Delete очищает ввод. Обновление дисплея происходит при каждом нажатии знака операции +-/*
- End — новый дизайн у окна заревешения работы.
- Tinypad — в данном текстовом редакторе теперь доктопно масштабирование шрифта, исправление багов.
- Notify — системные уведомления теперь поддерживают контроллы и больше не перехватывают фокус у вызвавшей их программы.
- Appearance — увеличенный шрифт, контекстное меню, поиск по первой букве, возможность открытия папки с обоями.
- Animage — в графическом редакторе был обновлен и доработан интерфейс, обновлено меню (kmenu.obj), а также проведены множественные оптимизации, доработки и исправления багов.
- CPUID — добавлен код для использования значения расширенной модели (Extended Model) при определении кодового имени процессоров Intel, уменьшен размер программы, исправления в интерфейсе.
- Netsurf — попытка нормального портирования браузера, поддержка изображений JPEG, PNG, GIF, в тестовом режиме поддержка GET/POST запросов.
- Игровой центр — появились категории.
- Run — запускалка файлов, новая более более удобная версия с поддержкой комбинаций клавиш и кнопкой выбора файла с помощью диалога.
- KIV — сохранение данных о примененном фоне в eskin.ini для его восстановления после перезагрузки.
- Palitra — сохранение данных о примененном фоне в eskin.ini для его восстановления после перезагрузки.
- IRCc — улучшение стабильности работы и очистка данных в момент выхода
- Board — нажатие клавиши F2 открывает boardlog.ini в Tinypad
- CPU — исправлена утечка кнопок :D
- TinyC — портирована более новая версия компилятора TinyC, исправления в библиотеках
- @icon — множество исправлений и большой шрифт в окне добления и редактирования иконки
- Mp3Info — обновление старой программы, показывает информацию об mp3-файле.
- searchap — вместо мониторования папки /kolibrios/ с задержкой в 5 секунд, предпринимается две попытки: первая без задержки и вторая, в случае провала первой, с задержкой
- Table — табличный редактор, аналог Excel в Колибри, получил серьезное обновление UI и исправление множества ошибок
Новые программы
- FB2 Reader — читалка файлов формата FB2.
Поддерживаются кодировки UTF-8, Windows-1250, Windows-1251, Windows-1252, cp866, форматированный текст, выравнивание по ширине, оглавление, ссылки, примечания, картинки, поддержка тэга "description", навигация по ProgressBar, частичная поддержка таблиц. Поддерживается настройка цветовой схемы, режимы день/ночь, изменяемый размер шрифта. Сохранение настроек и места остановки в файле history.dat рядом с программой. - Pixie 2 новая версия аудиоплеера с поддержкой больших шрифтов и функций зацикливания и воспроизведения в случайном порядке. Поддержка форматов MP3, WAV и XM.
- Volume – системный регулятор громкости. Специально для Pixie была написана программа @Volume — общесистемный микшер громкости.
Управление: горячие клавиши в системе: Ctrl+Alt+Left (громкость ниже) и Ctrl+Alt+Right (громкость выше), а так же Ctrl+Alt+Home/Down (включение/выключение тишины). При открытом окне громкость так же меняется с помощью Left,PgDown(громкость ниже), Right,PgUp(громкость выше), Up/Down,Home/End (включить/выключить звук).
- Software widget — это универсальный настраиваемый виджет, который сейчас используется, как Game center и Control panel. Настройки берутся из INI файла и в их число входит название окна, его размеры, расстояние между элементами. В состав элемента входит иконка и её подпись.
- SysPanel — системная панель, аналог Панели Управления в Windows.
- PanelsConfig — утилита для настройки дока и таскбара.
- ClipView — программа для просмотра содержимого буфера обмена. В отличии от Windows, где в буфере может хранится только один слот одновременно, в Колибри он многоуровневый. Данные о слотах представлены в виде таблицы, можно удалить последний слот или все, сделать аварийный анлок. Также доступен предпросмотр данных слота в виде текста и HEX.
- @open — утилита для открытия файлов по ассоциациям с диалогом «открыть с помощью» (в дальнейшем все программы будут использовать ее для открытия файла согласно ассоциациям).
- MouseCfg — проверка мыши и настройка ее параметров.
- Unz — распаковщик архивов ZIP и 7Z на основе библиотеки archiver.obj. Если путь не указать, то сама создаст папку там же, где и архив и туда распакует. С запароленными архивами пока работать не умеет. Сжатие Deflate умеет, LZMA2 нет.
- VNC Client — поддержка TRLE, 32bpp, клавиатуры; исправление багов и рефакторинг
- Eskin — утилита установки фонового изображения, скина и стиля кнопок. Теперь все эти параметры хранятся в файле eskin.ini в директории /rd/1/settings, что должно упростить их настройку. Пока его необходимо править вручную, но вскоре появится и графическая утилита.
- AppPlus — утилита для помощи в настройке монтирования дополнительной системной директории (/kolibri).
- KF Viewer — просмотрщик шрифтов в формате kf
- Ping — поддержка -t параметра
- TextReader — читалка текста, поддерживает разные размеры шрифта, цветовых схемы, смену кодировки, использует ini-файл для сохранения настроек, открытие текущего файла в другой программе на выбор.
- VoxelEditor — новая программа редактор и вспомогательные утилиты для работы с воксельной графикой
- DrvInst — Установщик драйверов.
- CNC Editor — программа просмотра и редактирования файлов формата *.nc. Эти файлы содержат в себе специальный код (gcode) для станков с числовым программным управлением (ЧПУ/CNC).
- CNC Control — диалоговая программа для выбора подключенного устройства и передачи этому устройству одиночных команд или команд из nc-файла. На текущий момент, завершается работа над интерфейсом приложения.
- Visual Text Comparer / Diff tool — инструмент визуального сравнения двух текстовых файлов.
- Системный мониторинг — мониторинг загрузки ЦП, использования ОЗУ, свободного места на виртуальных дисках /rd/1/ и /tmp*/.
- IconEdit — редактор иконок и мелкой графики.
- Eagle — просто лаунчер файлов(не только исполняемых)/папок, а также урезанный файловый менеджер (просмотр списка файлов).
- Hot Angles — утилита позволяет запускать приложения путём наведения курсора в угол экрана. Это аналог Hot Corners в других ОС. Конфигуратор утилиты может быть вызван из System Panel.
- EasyShot — простой скриншотер.
- Notes — заметки для рабочего стола.
- FTPC — клиент для FTP с графическим интерфейсом.
- TTE (Tiny Text Editor) — порт консольного текстового редактора с подсветкой систаксиса. Для полноценного ипользования требует доработки.
- Fillscr — Заливка производится в зависимости от параметров командной строки. Программа принимает параметры вида: r,g,b, r,g,b, ... Если параметров нет, то экран просто перерисовывается.
Игры
- LaserTank — в этой головоломке вам нужно передвигать ящики таким образом, чтобы ваш танк мог доехать до выхода (отмеченного флажком). Отдалённо напоминает известную классическую игру Sokoban, в которую было добавлено несколько новых элементов механики: зеркала, вода, стрельба из лазера, вражеские пушки и т.д.
- Dungeons of Augastes — 3D RPG квест. Вам необходимо исследовать подземные лабиринты в поисках сокровищ, избегая всевозможных ловушек и решая различного рода головоломки. Движок игры полностью разработан с нуля на Ассемблере.
- 21days — текстовый квест-симулятор. Вы — человек, ставший заложником жизненных обстоятельств. Университет закончен, но вы почти ничему не научились. Сейчас вы потеряли работу и всё, что вам остаётся — эникейство. Со временем вы можете устроиться на работу в крупную компанию либо стать сооснователем успешного стартапа. Вы можете эникействовать, а можете зарабатывать миллионы и тратить их на благотворительность: всё зависит от вашего выбора. Внезапно у вас оказывается машина времени, так что игровое пространство для вас — это время. Изменяйте последствия своего выбора и проследите за всеми вариантами развития событий!
- 2048 — воссоздание популярной логический головоломки. Игровое поле имеет форму квадрата 4x4. Целью игры является получение плитки номинала "2048".
- Heliothryx — космический двухмерный скролл-шутер. Вам нужно прорваться сквозь космическую пустоту, уворачиваясь от противников или уничтожая их. В конце вас ждёт встреча с «боссом» — и переход на следующий уровень.
- Almaz — новая аркадная игра, аналог Lode Runner
- N-sider — Суть данного 2D-платформера достаточно простая: вы играете за геометрическую фигуру (на первом уровне это треугольник, затем на каждом последующем уровне к вам добавляется по одной вершине), которая может только прыгать. Казалось бы, всё элементарно, но иногда быстро принять решение, прыгать или не прыгать, бывает сложно.
- Marble Match-3 — один из множества клонов головоломки "3-в-ряд". Вам нужно поменять местами два шарика, стоящие рядом по горизонтали или по вертикали, таким образом, чтобы после перемены мест образовался ряд из как минимум трёх шариков одного цвета. Этот ряд тогда аннигилируется, оставшиеся в игре шарики опускаются вниз на освободившееся место, а на их месте появятся новые шарики.
- The Bus — Сыграйте за дерзкого маршрутчика, который несется домой после смены. У вас на пути будет 6 видов препятствий, и каждое, которое вы объехали, подвигает автобус немного вверх и увеличивает счет. При достижении 15 объеханых препятствий, позиция автобуса сбрасывается снова вниз и увеличивается скорость.
- MemoryBlocks — вместо встроенных картинок используются иконки. Размер программы уменьшен с 7Кб до 2!
- PokeMini — портирован эмулятор игровой приставки PokeMini.
- Super Star Trek — классическая компьютерная игра 1971 года. Вы командир звездолёта Enterprise и должны ликвидировать клингонскую угрозу демократии в галактике. Игра происходит в галактике разбитой на сетку 8 на 8 ячеек. Вся галактика содержит 64 квадранта, а каждый квадрант в, свою очередь, содержит 64 сектора. Звездолёт может перемещаться как между секторами, так и между целыми квадрантами с помощью текстовых команд. У корабля есть ограниченное число единиц энергии, которая используется для передвижения, питания защитных экранов, и стрельбы фазерами. Цель игры состоит в том, чтобы уничтожить все корабли клингонов в галактике и при этом не дать им разрушить Enterprise. В игре можно использовать разные виды оружия, звёзды, планеты и базы Звездофлота..
- tengine и одноименная игра Mun — самописный движок для создания 2D-игр портирован в Колибри.
Возможности:
- готовый мультиплатформенный функционал, в том числе для платформы kolibrios
- блиттер для рендеринга
- поддержка многопоточности
- возможность попиксельной проверки границ игрового объекта сложной формы
- поддержка тайловой карты, скроллинг
- поддержка полупрозрачности
- поддержка смешивания данных изображения с указанным цветом
- поддержка пропорциональных шрифтов
- Kosilka — долгожданный перевод на английский язык.
- Lights — визуальное улучшение.
Дизайн и оформление
- Новый скин Шкворка (Shkvorka)
- Общее количество иконок увеличилось с 70 до 117, также обновлены старые. Отдельное спасибо Deis Serbak, а также Aleksandr Petrov, Mikhail Chubakov и другим пользователям за их работы!
Прочее
- Уменьшено время загрузки системы
- Перевод системы автосборки на Tup (подробнее здесь). В результате почти все программы и игры из дистрибутива КолибриОС, написанные на ЯВУ, собираются из исходников (включая QUAKE и др.). Инструкция на английском языке находится здесь.
- Почищен SVN, удалены дубликаты.
- 18 января были подведены итоги конкурса игр. Победители получили денежные призы: LaserTank, N-sider, Dungeons of Augastes, 21days.
- Проведена кропотливая работа по упаковке данных и применены различные техники получения дополнительного свободного места в IMG образе: несколько конфигурационных файлов объединены в один app.ini, максимально сжаты изображения, ручное уменьшение использованых в картинках цветов без визуальной потери качества, использование сжатых ресурсов и т.д.
- Вышла SknView — смотрелка скинов Колибри под Windows. Удобно при разработке.
- Вышел KEX — эмулятор Колибри под Линукс
- Идет разработка KEM (не путать с KEX:) — эмулятора Колибри под Windows x32, в нем уже можно запустить некоторые программы.
- Поддержка кросскомпиляции для множества языков, включая даже Делфи. Смотрите статью Использование различных компиляторов в КолибриОС и обратите особенное внимание на BigSample — пример, в котором несколько исходников (uasm32, tasm32, goasm, nasm, fasm, as, c--, bcc32, dcc32) компилируются каждый с помощью своего инструмента. Затем полученные объектные файлы все вместе линкуются с помощью LD.