XFree86, X Window, XXX

Кратка и донякъде забавна презентация за това какво е X, какво не е, има ли почва у нас и по света. Да демистифицираме абревиатурите и да ерадикираме троловете – чрез весели презентации към прогрес.

Александър Шопов

Участник в проекта за побългаряване на GNOME;

Бивш журналист списващ разни работи за Свободния софтуер (ComputerNews, Byte.bg, Internet, Linux);

Не толкова активен, колкото му се иска, но какво да се прави;

Дипломна работа в ТУ-София с GNU/Linux, SDL и gcc;

Търси си работа!!!

`

Цели на презентацията

Да представи основни неща за X Window и XFree86;

Да образова публиката, за да може тя коректно да отговаря на въпроси;

Да спести повтарянето на едни и същи неща хиляди пъти;

Да успокои страстите и да намали пламъците (ех, тези сап мечти).

Защо X Window и XFree86 са важни

Графичната среда на повечето Свободни операционни системи – GNU/Linux, GNU/Hurd, Free/Net/OpenBSD и т.н.;

Всеки иска повече – бързина, възможности, красоти и разкош;

Всеки има мнение (често лишено от база)

Геймърите ще продадат баба си за 2 кадъра в секунда повече;

X Window е различен от Microsoft Windows и потребителите трябва да знаят това.

Как се казва X Window?

X Window се казва X Window System. Прозорец е в единствено число;

Помага да се отличи от Microsoft Windows;

Това е правилното наименование – и исторически, и според стандартите;

Популярни съкращения – X Window, X11, X.

Наименованието е любима тема за безсмислени пламъци.

Какво представлява X Window?

X клиент;

X сървър;

Х протокол:

заявка 4B+данни;

отговор 4B;

грешка 4B;

събитие 4B;

Xlib;

Комплекти гра-фични обекти;

Мениджър на прозорци;

Сладко-горчиви истини

X Window е стара технология. Следователно е устояла и на времето, и на пространството;

Не е идеалната технология, но е по-добра от всичко останало;

Винаги, когато се каже – „ трябва да се започне начисто“, се забравят човеко-десетилетията, които са необходими за това. Най-често X Window се оказва, че или може да прави нещата, или е лесно да се допрограмира.

Историята набързо

Четири години еволюция (1984-1988);

Десетилетието на забвението (1988-1998):

Съвпада с масовото въвеждане на RISC архитектурата;

Silicon Graphics доказва, че X има върхови възможности;

Еволюцията се ускорява неимоверно (1998 - до днес):

Интернет бума,покрай Свободния софтуер и X се облажва;

XFree86 става водеща имплементация, GNU/ Linux по-популярен от несвободните Unix-и;

Появяват се първо KDE, след това GNOME.

Историята на X Window
Много отдавна, в една галакт...

1983г. - множество опити за графични среди:

Xerox: Alto, Dandelion, Star;

Lisp машини;

Apple: Lisa, MacIntosh;

UNIX: Blit на Роб Пайк, Andrew, системата на Sun включена в ядрото и др.

Microsoft Windows се появява на пазара на 20 ноември 1985г.

Историята на X Window
V, W, X

Системата W от Станфорд – създадена от Брайън Рейд и Пос Асенте;

Боб Шайфлер иска да има множество прозорци в проекта Argus;

Digital подарява VS100 терминали на MIT;

Шайфлер донагласява W и прави X.

Историята на X Window
Х1 – Х10

Х се ражда през юни 1984

липсва стандартен интерфейс – програмистите са се застраховали – не могат да създадат добър интерфейс;

Нововъведения:

разделяне на управлението на прозорци от графичната среда;

изключително ефективен и бърз протокол в сравнение с другите системи, до появата на тримерните ускорители първоначалният протокол е бил достатъчен.

Историята на X Window
MIT

X Window е създаден в MIT като част от проекта Athena;

Неговият пощенски списък е бил най-големият от всички към проекта;

Разработва се много отворено:

външни потребители;

разпространява се на магнитни ленти, по Arpanet;

версии 2 пъти в годината – по-често от повечето системи тогава;

Digital VAXStation - преработка X10;

Близък по дух до отворения код.

Историята на X Window
X11

Sun, HP, IBM и Digital искат стандартна система;

Спецификацията на X11 се създава преди (без) писането на сървър;

Спецификацията кодифицира не само стила, но и грешките на компаниите;

Digital създава първия X11 сървър през 1987г.

Историята на X Window
Консорциумът

Ефективно управление от повече компании;

Първоначално се справя с пропуските на Х11 – X11perf от Digital, усеща 1% изменение в производителността, Unisoft;

1992г. - излиза X11R6, лебедовата песен на консорциума;

Някои са по-равни от другите – имат право на глас;

Другите пък отиват другаде.

Историята на X Window
Междуособиците

Успех с някои разширения – Shape, input;

Пълен провал с други: XIE, PHIGS и т.н.;

Сцената се нацепя, накъдря и Х се забравя;

UNIX и X не навлизат при евтините системи!

Историята на X Window
Войните

X11 срещу NeWS (Sun):

+ PostScript;
- интерфейсът е неотделим от приложенията;

Motif срещу Open Look (Sun):

+ OpenLook по-бърз, по-малък, отворен ;
- неподходящ за X – базиран на SunView.

PHIGS срещу OpenGL (Silicon Graphics):

ANSI/ISO стандарт, днес PHIGS в/у OpenGL;

CDE – няма развитие на граф. обекти, политически и технически компромиси.

X Consortium се закрива през 1997 - Open Group, X.org – прекалено късно и малко.

Историята на XFree86
Преди XFree86 бе Х386

Томас Роел пренася официалната версия X11R4 за 33MHz 386 без копроцесор – X386 1.1;

Заедно с Стивън Гилдия (X Consortium) и Марк Снитили (SGCS) превръщат X386 в справочната имплементация за IA32. За това махат оптимизираните части на асемблер – X3861.2e;

Започва работа в SGSC. По-късно я купува и я преиминува в Xi Graphics;

Оттегля се от Свободния софтуер.

Историята на XFree86
Бандата на четиримата

Дж. Цилас, Гл. Лай, Д. Уекселблат, Д. Дюс се обединяват по разработката на X386;

7 май 1992г. - първото дърво базирано на X386 в X11R5;

1 септ. 1992г. се ражда XFree86 – X386 е ® на Т. Роел;

1993г. чрез спонсорство на Рик Адамс – президент на UUNET инкорпорират XFree86 Project Inc. в Тексас;

25 април 1993г. XFree86 3.0 базиран на X11R6.

Историята на XFree86
Самостоятелност

1 юли 1995г. управлението на X предадено на The Open Group. Промяна в лиценза и такси;

Проектът XFree86 им тегли една майна и престава да интегрира подобренията от тяхното дърво;

Open Group се осъзнава прекалено късно, пуска www.x.org. Официалната разработка замира почти напълно.

Историята на XFree86
Какавидата

Традиционният модел на разработка е труден, сложен, бавен;

Многогодишното наследство е тежко и задържа рарзработката;

Монолит-майсторлък – едно оправиш, 3 развалиш;

XFree86 е страшно затворена клика:

няма публични пощенски списъци;

няма публично дърво;

версии - „когато му дойде времето“.

Историята на XFree86
Да живей, живей тру капитала

Интернет бумът и рисковият капитал осигуряват финансирането на дългосрочен проект по преработка на архитектурата на XFree86;

Най-накрая:

модулност;

преизползване на кода;

тримерно ускорение;

същински драйвери;

основата за бъдеща разработка на разширения.

Историята на XFree86
Армагани

Metro Link дарява през 1996г. технология за зареждане на модули. Драйверите са независими от операционната система;

Precision Insight разработва от 1998г. инфраструктурата за директно изобразяване;

SGI дарява GLX – смазката между X и OpenGL, както и някои шрифтови технологии.

Историята на XFree86
Първична сила и разбиване

Най-успешната и популярна версия на X;

Март 2000г. - XFree86 4.0;

1999г. XFree86 е поканен да стане единствения почетен член на X.org.

Присъства в повечето дистрибуции на GNU/Linux, GNU/Hurd, Free/Net/OpenBSD.

Версии за OS/2, Microsoft Windows;

Популярна и при затворените Unix-и – Sun Solaris, SCO UnixWare/OpenServer, BSDi;

Най-добра шрифтова поддръжка, ново изобразяване.

Историята на XFree86
Ами сега?

Проблеми с управлението:

XFree86 е затворен кръг;

много малко хора имат права за запис в CVS хранилището;

решенията се взимат в затворен пощенски списък;

прекалено много споразумения със скриване на документацията – NDA;

редки версии на огромно дърво:

два пъти в годината максимум;

излишно повтаряне на шрифтовете, документацията, влачене на стандартните библиотеки и приложения, и т.н.;

огромно забавяне на драйверите.

Историята на XFree86
Ще има ли Вила Вилекула?

Кийт Пакард заплаши с вила – fork, кликата се стресна;

Засега няма вила на кода, никой не иска управлението на две почти еднакви дървета;

Голям проблем с управлението – някои са по-равни. „Равността“ не е базирана нито на умения, нито на мерак, а е някакси исторически-номенклатурна.

Предложенията на К. Пакард

Кой е К. Пакард?

пичага – истинската движеща сила зад най-новите възможности на X;

авторът на последното широко разпространено разширение на X преди затихването – Shape;

XFree86 да се подчинява на методологията на отворения код:

управление подобно на другите отворени проекти;

избираемо ръководство;

множество отделни проекти с диктарторчета;

пускай рано, пускай често.

Сериозно ли е положението?
Иди си, ела си...

Много често XFree86 (поне веднъж в годината) е заплашван с вила – всеки път - „Ми форкни го кат'си мъж да та вида“;

Много хора са недоволни от текущото състояние;

При допълнително отваряне на процеса на разработка нещата биха се уталожили;

Редовни конференции, най-накрая присъстват и хора от ядрото на XFree86;

Вилата е възможна, но няма да предизвика катастрофа – стандарти.

Бави ли мрежовата прозрачност?

Мрежовата прозрачност е огромен плюс, позволява да ползвате бърз компютър от слаба работна станция;

Както можем да ползваме Интернет с Internet Explorer върху MacOSX с PowerPC, а сървъра да е Apache върху Solaris със Sparc, така и X Window позволява хардуерна и софтуерна независимост;

Локалните прозорци се изграждат чрез Unix цокли – това е комуникация между процеси, не се минава през мрежата;

Абстракциите, които се налагат, така или иначе са необходими.

Грозен ли е X?

Х не, но истината доскоро – да;

Х11 – лето 1987г., а бяхме млади...

Изобразяването предназначено за:

1bit дисплей, максимум 8bit палитрен цвят;

имаше диско, имаше реге, силно липсваше SG с TrueColor;

PostScript – връо на 2D сладоледа, черно-бяло, няма оператори за обра-ботка на изображения.

Системата за изобразяване е скалъпена набързо, защото бързо щяла да се смени;

Ама се задържа и така 10г..

Екипът създал X11:

мрежови и хардуерни програмисти, нито един не е бил специалист по компютърна графика;

гонят се срокове (Digital);

базират на RedBook за PostScript, размиват примитив и имплементация (благодарим Adobe!);

Отделени прави линии и елипси с оси успоредни на координатните (патенти-легенди);

Никой не разбирал сплайнове и не ги включват.

Новото изобразяване - Render

Смесване по α канал. Често е 4-я байт в 32-битовите пиксели;

Заглаждане – намалява високочестотния шум при квантуване на сигнала:

подпикслено изобразяване и обобщаване;

замяна със смесване по α канал в много случаи;

Координатна система – традиционно 16 битово число. В Render – 32 + 8 бита;

Примитиви, минимумът за триангулация е хоризонтален трапец. Ползва се в PostScript, LibArt (Gnome 1.x);

Текст – мащабируеми шрифтове.

Заглаждане (anti-aliasing)

Математически правилното заглаждане днес изисква 192 битова аритметика;

Изиква много изчисления;

Трябват компромиси;

В XFree86 се използва компромис:

64 бита са достатъчни;

Допустими са малки грешки в граничните случаи;

Грешките могат да се минимизират чрез специална техника;

За повече подробности: „2001 Usenix Technical Conference“.

Заглаждане: ClearType срещу Render

Render

Работи с всеки цвят, текстура и ориентация на шрифта;

Справя се добре с различен фон;

Предназначена за заглаждане на всички обекти;

Може да се използва за изображения.

ClearType:

Работи с всеки цвят на шрифта;

Успехът силно зависи от фона и ориентацията;

Предназначена за шрифтове;

Не става за изображения.

Тримерно ускорение чрез DRI

За да се изстиска графичната карта, е необходим директен достъп до хардуера;

Х прави точно обратното;

Как да се предава това и по мрежата?

Как да се вмести това в Х протокола?

Проста схема на потока данни в DRI

Директно изобразяване – на същата машина;

Индиректно – през мрежата;

И двете могат да са хардуерно ускорени.

Прекалено голям ли е XFree86?

Една цялостна версия е огромна;

Включва доста модули, които често не са нужни – шрифтове, документация във вид на страници на упътването, PostSript, troff и HTML документи, разширения, които не се ползват;

top дава, че X ползва много памет.

top показва паметта своеобразно – картинката на изобразеното по принцип е на приложението;

Ако махнем стандартните библиотеки като графичните обекти Athena, X отънява много;

XFree86 за Compaq (сега HP) iPaq цифровите помощници e 600kB (100kB).

X11 e разработен на VAX 11/750 с 2MB RAM!!!

Шрифтовете
Дотук добре...

Превъзходна растеризация на базата на FreeType [+Render=заглаждане (и за LCD)]:

Adobe Type1, CID – пълна, Type42 – частична, TrueType – пълна, множество растерни формати;

OpenType – изобразяването на глифите е същото като TrueType, обогатени с таблици за комбиниране и взаимно положение на глифите – сложни, контексно зависими писмена с произволна посока на писане.

Глифи – еднобитови или еднобайтови маски. В Microsoft Windows – 5 нива;

Крайно време е растерните шрифтове да се отделят в отделни модули.

Шрифтовете
Малко остава...

Патенти на Apple (3):

засягат подобрената растеризация с подсказки на TrueType шрифтове при малки размери на очертанието;

Не се включва при стандартно компилиране;

Патентите не важат в България;

Не са необходими за изобразяването, само за разхубавяването;

Има модул заобикалящ патентите – автоматични подсказки;

Apple никога не е преследвала потребителите на FreeType, даже печели от пазара на вградени устройства.

Шрифтове
Fontconfig, Xft

Fontconfig

открива и конфигурира шрифтовете автоматично;

заменя липсващ шрифт с подходящ;

попълва кодирания, за да задоволи изискванията на език;

XML кофигур. файл

ефективно и бързо търси между шрифтовете;

заедно с Render и FreeType осигурява загладено и подпикселно изобразяване на шрифт;

не изобразява шрифта (FreeType или др.)

не зависи от X Window – може да се използва и за принтери

Xft – API за изобразяването на шрифтовете при клиента;

Ако има Render – ускорение, иначе обикновен Х;

Позволява избиране на заглаждане или не за подобряване на мрежовата бързина;

Клиентското изобразяване позволява бързо внедряване на нова шрифтова технология, а не да се чака X.

Най-нови характеристики

RandR – разширение за завъртане, отразяване и преоразмеряване на X;

Въведен с XFree86 4.3.

Не променя дълбочината на цвета:

видеокартите имат мноооого памет;

новите графичните обекти поддържат собствено мигриране от една дълбочина към друга;

старите графични обекти постепенно изпадат в забвение;

на хората не им се занимава.

Xr – разширение за векторна графика:

PDF 1.4, PostScript;

хардуерно-независимо, ускорено чрез Render

XXX

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Още малко...

Победа-а-а

Х почва и побеждава, останалото е кръгла нула!

Още информация

http://www.xfree86.org

http://www.xwin.org

http://www.x.org

http://freetype.org

http://fontconfig.org/

http://keithp.com/~keithp/talks/

http://www.linux-mag.com/2001-12/xfree86_01.html

http://alllinuxdevices.com/news_story.php3?
ltsn=2000-08-02-007-03-IN-LF-HH

http://www.usenix.org/

Анти-Х

http://www.molgen.mpg.de/~wwwutz/Unix_Haters/

История

1.1 – Оправени правописни грешки, публикуване в Интернет.

1.0 – Представена на 6-тото ежегодно събиране на Линукс потребителите в България.

2003-05-29T23:53:34