e-mail Пароль запомнить меня
Mac Service
Новый пользователь
Последние записи из журналов
Журналы пользователя
Связаться
Максим Сохацкий
Software Engineer в International Land Systems, Inc.

Бесплатный член сообщества с 29 мая. 2006 г.  (последний раз был в системе 14 янв. 2008 г.)
 
Информация о пользователе    Интервью   
Журналы
Максим Сохацкий имеет бизнес-контактов: 182

Рейтинг пользователя: 3 (3128 баллов)
Добавить в круг общения

Подписаться
Как я писал Браузер из журнала пользователя Операционные системы
(Разместил Максим Сохацкий 13 июл. 2006 г)

 

KHTML/BeOS
Много вопросов задают почему именно WebCore взялся за основу для проекта Nirvana. Если коротко ответить, то скажу что это было стихийным и интуитивным решением. Если отвечать развернуто, то, потому, что это наиболее приемлемое решение, но для этого надо привести некоторые аргументы. Для начала вспомним историю KHTML.

KDE 1. Первый HTML виджет назывался KHTMLW.
Gnome. Проект Gnome адаптировал KHTMLW для Gtk+ версти GtkHTML для свого браузера Galeon.
KDE 2.  1998: Начаты работы над новой версией KHTML для KDE 2.
KJS. 1999: Новый banned интерпретатор KJS добавленый в дерево KHTML.
KonqE. Embedded версия KHTML использующая Qt/Embedded, но все же завязанного на KDE библиотеках. Эта версия  пошла в основу ABrowse.
ABrowse. 2001: Курт Скауен портировал Qt/KDE и собственно KHTML. Проект ABrowse. Этот случай вдохнових многих разработчиков альтернативных систем.
WebCore. 2003: Apple анонсировала Safari, браузер основанный на KHTML и KJS библиотеках. Это переломный момент в истории KHTML, после этого Apple начала перетягивать простыню на себя по удержанию направления развития KHTML.
NOKIA. 2004: Нокиа представила свою версию  KHTML основанную на WebCore. Фактически Нокиа проделала большую работу по переносу Objective-C KWQ слоя из WebCore в С++ вид. В этом участвовала Apple. Основная заинтересованность Apple в этом – это расширить сферу применения WebCore, сделать WebCore платформенно назависимым, и перенять инициативу управления проектом в свои руки.
QT4. 2005: Портирование на Qt 4. Внутренние работы в KDE лагере по осовремениванию KHTML. Теперь KDOM, KCSS, KXML вынесены как отдельные самостоятельные проекты.
WebKit. 2005: Создался единый проект призванный объединить и развивать наработки по WebCore.
Nirvana. 2006: Портирование KHTML на BeOS.

KonqE

После того как Gnome пересадили KHTML на Gtk, это можна называть вторым вариантом портирования где Qt бэк-енд был заменен на Qt/Embedded. Но все таки KDE Core, KDE IO тягаются за собой.

ABrowse

В этом проекте были слиты Free Qt под лизензией QPL, которая позволяет включать Qt в опен соурные проекты отличные от GPL и KonqE. Сам же KHTML здесь не первой свежести, 1999-2001 год. Ходят слухи, что в Syllable вообще хотят отказаться от применение этой наработки и перейти на Geko вариант. Едиственное чем может пригодится ABrowse при портировании на BeOS это схожесть InterfaceKit в AtheOS и BeOS.

WebCore

Построенный на основе последнего KHTML, максимально избавленны зависимости от KDE библиотек IO и Core. Единственный недостаток что обертка вокруг Qt написана на Objective-C, это было сделано потому что удобнее врапится вокруг нативных котнролов именно с помощью Objective-C. Фактически это уже не Qt, так как Qt сам отвечает за прорисовку контролов, как и Gtk. Это просто набор классов похожий на Qt который враппится на нативные контролы.

NRCore

Выступая в роли консультанта Apple помогала портировать WebCore для NOKIA. Стояло две задачи: заменить Cocoa контролы на Gtk, т.е. враппер Qt->Gtk; вторая – избавится от Objective-C кода в KWQ. По тестовым скриншотам можно понять что результат кое-какого они добились.

WebKit

Фактически совместный с НОКИА проект проект дал толчок к организации единого центра развития и продвижения WebCore – webkit.opendarwin.org. Это самый современный на сегодняшний момент репозиторий KHTML который синхронизирован с KDE, задачей которого является объединить все современные проекты на базе KHTML в один. Так сейчас в планах сделать так, что бы из единого дерева собирался как Safari так и NOKIA Engine. KJS уже собирается из Microsoft Visual Studio.

Резюме

Итак, если бы начинать проект делать прямо сейчас то лучше всего было бы взять WebKit, так как это проект который «на гребне волны». Но исторически сложилось так что за основу был взят Apple WebCore, когда еще не был доступен публично NRCore. Фактически НОКИА и Аппл проделали половину необходимой работы, они избавились от Objective-C кода. Сам WebCore – это выжимка KHTML, там нету ничего лишнего, WebKit – же это репозиторий всех наработок, вместе с встроенными редакторами, визуальными расширениями, плагинами, это все уже влилось в WebKit из Safari и обновленого KHTML из KDE, и этого явно «за много» для целевой платформы  S60. В силу пуристичекого духа BeOS было бы логичным взять именно «мобильную» версию KHTML. Кроме того всегда доступен самый современный репозиторий KHTML – WebKit, а также ABrowse AtheOS back-end, который может пригодится. Сам код ABrowse устарелый, этот проект годится только для того что бы подсматривать в него но не брать за основу. NRCore – это фактически замороженная версия WebCore полностью избавленная от С++, уже в WebKit даже мало осталось Objective-C кода, Apple осознанно переходит на С++ что бы завлечь максимальное количество проектов на базе WebKit. То из чего строится Nirvana фактически построено на NRCore/WebCore.

Статус

В проекте Нирвана участвует не много программистов, все они занимаются проектом исключительно в свободное время, однако на сегодняшний день полностью собирается и проходит тесты KJS, а также собирается KHTML, осталось только портировать KWQ слой (Qt -> BeOS InterfaceKit), который уже на С++ и не есть очень сложным, так как уже по сути придется идти по протоптаным стопам.

--

Maxim E. Sokhatsky - http://nirvana.berlios.de
Статья публикуется впервые на Атласкит. Написано специально для Атласкит. Все права принадлежат Атласкит.



Ключевые слова: open source | браузеры

Добавить комментарий