Ядра и лицензи

Операционни системи из свободния софтуер напоследък има предостатъчно. Особено ако броим всяка по-отделна дистрибуция на GNU/Linux за отделна ОС – а това е в някои отношения смешно, но в някои е оправдано. Дори ако се съсредоточим първо върху юниксоподобните, а след това само върху по-известните от тях, пак не са малко.

Ядрата обаче са (в рамките на въпросното съсредоточаване) само четири – и то със зор.

Като начало, “прадядото” на нещата – BSD ядрото. Изключително качествено написано, то обаче не се радва на подкрепата на широк кръг писачи. (Може би точно затова. 🙂 ) В свободния софтуер то е някак обособено царство – монолитно създание, рязко отграничено от околния свят. Нищо не може да го срине, нито като мрежова атака, нито като влияние на времето – но, уви, и то не повлиява света особено. (В Дебиан се кроят опити за портване на дистрибуцията върху него, но докъде са стигнали, и ще ги бъде ли, не е много ясно.)

Прочутият Linux е на другия полюс. Изключително богато на драйвери и възможности ядро (ей, ей, за качеството не съм казвал нищо лошо, ама вие веднага с изводите…). Гръбнакът на фенството в софтуерно отношение. Без съмнение пусканото върху най-голям диапазон и разнообразие ядро на операционна система на света… За него може да се говори много, така че ще си спестя труда.

Наскоро в компанията се намъкна нов член – ядрото на OpenSolaris. Една много слабо разпространена придобивка (според мен незаслужено – много добро ядро е), но с амбиции с размерите на Sun зад гърба си. За него пък е още рано да се говори – но в бъдеще това може да се промени рязко.

И, най-сетне, прословутият и вечно недописан The Hurd – оригиналният план за ядро на The GNU Project. Всъщност, Hurd еволюира не по-бавно от Linux, просто тази еволюция никога не успява да стигне до реализация – малко преди поредното пренаписване да тръгне, се налага следващото. Дълго време ядрото беше пословично за ниска производителност, заради сбърканото като концепция микроядро GNU Mach64. Много хора дори смятаха, че микроядрата по принцип няма как да са ефективни, въпреки изумителния перформанс на ядра като Neutrino (микроядрото на QNX). С прехвърлянето върху L4/Pistaccio обаче нещата тук рязко се подобриха. А преди няколко месеца Маркус Бринкман (кажи-речи единственият девелопер на Hurd) обяви практическата готовност на ядрото за работа. Лошото е, че все още си е почти единственият…

Този пейзаж е добре известен на всеки, който се интересува от свободен софтуер. Нямаше и да очаквам особени промени в него, ако не беше намесата на лицензионния фактор – и по-точно, на очакваното към края на тази година приемане на версия 3 на лиценза GPL.

По принцип не се очакваше това да промени особено пейзажа с ядрата. Идилията обаче беше нарушена от категоричното становище на Линус Торвалдс: “Linux ще си остане под GPL v2!”.

Официално, причината за това е невъзможността да се прелицензира част от кода (и нежеланието на някои девелопери, примерно лично Л.Т., да прелицензират своя). Упорито обаче се скланя и друга хипотеза – че анти-патентните и анти-DRM елементи в предлаганата версия 3 на GPL са изплашили или подразнили Линус, като демонстрация на груб идеологизъм… Каквато и да е истината, фактът е налице. А следствията са много и интересни.

Като начало, Линус контролира само ядрото на GNU/Linux – а то е много важна част от операционната система, но не много голяма, на фона на останалото. Да се пренапише ядрото би бил колосален труд; да се пренапише обаче всичко в нея, създадено от проекта GNU, за приемливо време, ще е извън възможностите на дори цялата свободна общност. А тези части са под контрола на основния автор на GPLv3 – Ричард Столмън. И той е декларирал, че след излизането на GPLv3 ще ги прелицензира под тази версия.

Оттук нататък, кашата между части на GNU/Linux под различни версии на лиценза става пълна. Компилираните вече части под различни версии могат да бъдат обединявани в една система, но в доста случаи код под различни версии не може да бъде компилиран в едно общо. А от това зависи до голяма степен какво и как ще бъде развивано.

Решението на Линус вече създава напрежения между девелоперите на ядрото. Значителен процент от тях смятат, че предлаганата версия 3 на лиценза им импонира повече от версия 2. Ако се стигне до сблъсък на възгледите, нищо чудно Linux да загуби част от девелоперите си. Друга, дори по-голяма част, вероятно с удоволствие ще лицензира кода си и под двете версии – стига да има ядро под GPLv 3, в което той да бъде включен.

Точно тук картинката става изключително интересна. Кое ядро ще попие в себе си този ресурс?

Като начало, той е огромен. Вероятно под една десета от девелоперите на Linux биха отказали да лицензират кода си под GPLv3; не е изключено тези, които ще откажат вече да го лицензират под версия 2, да са повече. Такова количество производителни и мотивирани кодери е в състояние за година-две да създаде ядро от ранга на Linux буквално от нулата. Или да допълни вече съществуващо до този ранг за дори по-кратко време… Програмистките умения на Линус не са за подценяване, но той не е единственият в свободния софтуер от тази класа – например Столмън в продължение на към две години е писал сам текстов редактор (прословутия Emacs), състезавайки се с алтернативна версия на фирма от над 100 програмисти, и не е изоставал от тях! Пак той е първоавторът на най-универсалния компилатор на света – GCC – и на още куп ключови за свободния софтуер проекти. А такива като него в тази компания има още предостатъчно.

Още по-важен е културологичният принос на тази група. GPLv3 е още по-свободолюбив и агресивен срещу “затворените” неща от v2, а културата на свободния софтуер е съградена именно върху такъв мироглед. В каквото и да се влеят тези хора, то ще се превърне бързо в еталон за тази култура. Лишено от тях пък, ядрото Linux може да се изкуши да покаже конформизъм към “затворените” неща, и с това окончателно да разбуни кошера. Не бих се учудил до не повече от 2-3 години огромният процент значими GPL-проекти в рамките на свободния софтуер да се прехвърли към версия 3 на лиценза, и активното развитие да се измести в контролираните от него зони. Не защото е “по-нова версия”, а защото повече пасва на идеологията и възгледите на хората, които пишат кода. И ядрото, за което те работят, което и да е то, да стане водещото ядро на свободния софтуер, и да измести Linux.

Това вече са го усетили, като начало, хитреците от Sun. Когато отвориха Solaris, те категорично отказаха да го лицензират под GPL, и създадоха вместо това CDDL. Ходът обаче се оказа неуспешен – не привлякоха почти никакви девелопери. Вчера прочетох тяхно изказване, че да, виждате ли, версия 2 на GPL била недостатъчно свободна по техните представи, но в момента с голямо удоволствие обсъждали версия 3, и нищо чудно да прелицензирали Solaris под нея!

Ако това стане, купонът ще е страховит. Вече писах – ядрото на OpenSolaris никак не е лошо. Ако желаещите да се прехвърлят на GPLv3 девелопери преминат към него, или дори почнат просто да портват или да разрешават портване на кода им и за него, не е никак чудно то да се окаже по-качествената и не по-зле поддържана алтернатива на Linux. Свободата на двете ядра би била на практика еднаква, но зад едното би стояла все по-намаляваща групичка отделни девелопери, а зад другото – все по-засилваща се общност, стъпила на раменете на Sun Microsystems… Звучи впечатляващо, нали?

(Едно интересно следствие би било, че Sun ще се окажат в този случай знаменосци на борбата срещу софтуерните патенти и DRM. И ако моделът на печелене от услуги започне да работи при тях така добре, както вече отдавна работи при други фирми, нищо чудно това да се окаже изгодно. А ако имат хитростта да създадат свободна технологична база за лейбълите за свободна музика и друго изкуство, и да предложат патентна защита на цялата свободна общност, която развива проекти, използваеми съвместно с техните, нищо чудно това да е началото на едно слънчево за тях бъдеще. А и за любителите на свободните неща – също. 🙂 )

Ако ли пък от Sun не се решат на хода с прелицензирането под GPLv3, масата девелопери е доста вероятно да се насочи към позабравения Hurd. Което би го превърнало за не повече от година в сериозна алтернатива на Linux. А от наличието на повече такива алтернативи според мен ще спечелят всички в свободния софтуер.

2 Responses to 'Ядра и лицензи'

  1. Илия Says:

    Ето моите наблюдения по тези ядра:

    В Debian/kFreeBSD има напредък, наскоро май бяха пуснали и LiveCD, а ако го инсталираш, ще успее да тръгне и KDE.

    Виждал съм работещ KDE и GNOME на GNU Hurd, но до там… 🙂

    В момента има разлика между ядрото на Solaris и OpenSolaris – във второто липсват драйвери и части от системата – например man-pages все още не е пуснато пред широката публика.

  2. Явор Атанасов Says:

    Не знам доколко правилни са предположенията ти, но благодаря за информацията 🙂

Leave a Reply