Haiku — свободная операционная система для персональных компьютеров, первая версия которой нацелена на бинарную совместимость с операционной системой BeOS.

Haiku воплощает в себе основные идеи BeOS. Это будет модульная система, архитектурно решённая как «модульное ядро», способная динамически подгружать необходимые модули. К интересным особенностям системы следует отнести архитектуру трансляторов — системных интерпретаторов файловых форматов (например, JPEG).

О проекте

ad block

Закладки

Субпиксельное сглаживание. Отчёт #1 [GSoC]

Прошёл почти месяц с начала GSoC и настало время подвести итоги. Месяц выдался нелёгким. Я разрывался между Haiku и экзаменами. Должен признаться, что учёба отняла больше времени, чем Haiku :-) Несмотря на это, я сделал кое-что и счастлив представить первые плоды своей работы!

Благодаря большой ясности исходников app server'а и AGG, я быстро в них освоился и начал делать добавления. Я решил начать с добавления сглаживания для неизменённого текста. Сюда входят почти все тексты, которые обычно встречаются в системе, текстовых редакторах и при путешествиях в интернет. Внутренняя часть технологии уже завершена и сейчас почти уже можно сгладить все шрифты в системе. Первая картинка показывает текст с текущим сглаживанием Haiku с использованием серых тонов, а вторая показывает (почти) тот же экран с использованием субпиксельного сглаживания (кликните, чтобы увидеть полную версию и убедитесь, что картинка показывается целиком, без масштабирования).

Разница в обычном тексте не очень заметна, но, думаю, видно значительное улучшение в правом верхнем окне, где полужирный шрифт, и в нижнем левом окне, где декоративный шрифт (Lucida Calligraphy).
Рекомендую использовать программу-лупу, чтобы изучить отдельные пиксели символов :-).

Опишу вкратце технические подробности
Текст в Haiku отображается с использованием открытой библиотеки Freetype, которая делает картинку, соответствующую данному символу. Теперь эти картинки делаются в три раза шире, и каждая точка соответствует одному субпикселу

Это, конечно, вызывает определённый цветовой дисбаланс в итоге. Этого можно избежать, слегка размазав пиксель по соседним, что, с другой стороны, даст более мутную картинку. Всё это можно сделать средствами Freetype, но меня их подход не вполне устроил

Это всё потому, что Haiku использует шрифты со строгими очертаниями, то есть прибитые к пиксельной сетке, что является их характерной чертой (как, например, ножки у m). В итоге это приводит к тому, что почти каждая вертикальная линия (в большинстве шрифтов) даёт в точности один или два целых пикселя ширины, занимая ровно один или два пикселя. Такие линии, очевидно, не нуждаются ни в какой цветовой фильтрации, которое сделает их только мутным.

Моя реализация цветовой фильтрации игнорирует такие вертикальные линии и поэтому символы получаются чёткими и ясными. Оригинальная цветовая фильтрация во Freetype этого не делает, также, как не делает этого и ClearType в Windows XP. Выходит, что Haiku, с этой точки зрения, делает лучший текст, чем то, что считается стандартом на сегодняшний день!

Думаю (и мой наставник Стефан, наверное, тоже), что наиболее полезным было бы сделать фронт-энд для субпиксельного сглаживания, что позволит добавить некоторые возможности в существующие настройки. Когда это будет сделано, субпиксельное сглаживание для непреобразованных шрифтов станет доступным всем и я займусь его реализацией для векторной графики в целом.

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

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

andrej spielmann

HCD [bfs]: Отчёт #1

Прошёл почти месяц с начала самого первого Haiku Code Drive!

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

А теперь немного о моём проекте.

Как вам известно, я буду проверять стабильность файловой системы bfs. Чтобы это сделать, надо для начала реализовать семафоры XSI Posix, а затем собрать bonnie++, которая оценивает производительность файловых систем. Если честно, семафоры XSI Posix на самом деле необязательны, быстрее было бы просто портировать bonnie++ в Haiku, сделав совсем немного изменений (захват ресурсов). Однако, в дальней перспективе, Haiku только выиграет, если я эти семафоры реализую, так как она станет более Posix-совместимой.

Проще всего было сделать ту часть, которая работает в пространстве пользователя, сейчас я занимаюсь ядром. Также я создал тему в списке рассылки gsoc, за которой вы можете следить по этой ссылке.

И хотя я не закончил работу, я уже сделал кое-какие тесты без bonnie++ и нашёл первый баг. Смотрите тикет #2400.

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

Сначала я заархивировал в tarball исходники haiku под linux, положил их на usb диск, запустил vmware, и попытался распаковать 500MB архив (1.5 GB распакованный) из под Haiku. Ага... "Желаю удачи! :)"

То, что я сначала принял за баг bfs, стало багом vfs, хотя дискуссия в рассылке gsoc продолжается.

Несмотря на то, что баг не подтвердился, я пытаюсь его исправить, вместе с тем заканчивая реализацию семафоров xsi.

На этом пока всё.

emitrax

VoIP возвращается?

Со времён, когда был анонсирован мой последний проект, в котором участвовали URV, Berufsakademıe из Карлсруэ и yT, на bebits были выложены исходники BeNet, на основе которого и делался Whisper.

Я вот думал, может стоит выложить на публику свою документацию, чтобы люди, с их помощью, смогли бы из исходников benet собрать Whisper.

Я связался со своим университетом в Испании, но они не могут дать мне все права, потому что есть две других заинтересованных стороны. В Карлсруэ мне более-менее ясно дали понять, что я могу делать, что захочу, но, по некоторым соображениям, я хотел спросить оставшегося участника, Бернда Корца. Этот диалог состоялся несколько месяцев назад и я получил зелёный свет!! И нам не придётся начинать с нуля, потому что исходники Whisper-а скоро будут изданы!! спасибо ещё раз, Бернд!

То, что по-немецки называют "Mein Diplomarbeit" (мои тезисы) будет рано или поздно опубликовано, когда я соберу исходники и положу их куда-нибудь.

Для тех, кто позабыл: Whisper - это приложение, сделанное на базе BeNet для разговоров по VoIP. Оно использовала свой собственный протокол и не поддерживала никакого стандарта. Сие плохо весьма, ибо она не может соединяться с другими серверами и приложениями с других платформ.

Одним из первых шагов, с которого и стоило б начать, это поддержка стандартного и популярного протокола, чтобы можно было общаться с людьми с других платформ. Мои взоры направлены в сторону gTalk/libjingle (Skype у нас закрыт, а исходники Jabber выпущены недавно...).

Негусто пока с новостями...

С трудом удалось найти старые скриншоты: yahoo images тогда было лучше, чем google сейчас!

urnenfeld

Таймеры (GSoC) Отчёт #1

Краткое сообщение о положении вещей с поддержкой HPET в Haiku.

До сих пор мне в целом удаётся разбивать все таймеры x86 на отдельные (но до сих пор статически прилинкованные к ядру) модули, и использовать их, согласно приоритету.

В настоящий момент загрузка на моей системе невозможна (так как qemu работает на ISA таймере).

Что предстоит сделать вкратце (безо всякого порядка):

  • Разобраться какая архитектура какой таймер поддерживает
  • Перенести в модули таймеры других архитектур (с низшим приоритетом, поскольку прочие архитектуры, думаю, целиком не поддерживаются)
  • Вынести код приоритета и инициализации в общую секцию из x86 (будет сделано, как только будет сделан перенос на другие архитектуры)
  • Сделать поддержку HPET (сейчас выключена, но есть её модуль)
  • Сделать system_time()
  • Исправить проблемы с загрузкой и т.д.

    Dustin Howett

  • Архивы

    Сентябрь 2007| Октябрь 2007| Январь 2008| Февраль 2008| Март 2008| Апрель 2008| Май 2008| Июнь 2008| Июль 2008| Август 2008| Сентябрь 2008