Když se připravoval program konference LinuxDays, navrhl jsem, že by se na ní mohl ukázat i Tomáš Matějíček, autor české distribuce Slax. Ta nedávno zažila svou reinkarnaci, protože se našel investor, který do projektu vložil své peníze. Tomáš ale svou účast na konferenci odmítl s tím, že zatím není co předvádět, protože se vše zatím vyvíjí.
Nakonec jsme se tedy dohodli, že uděláme na konferenci živý rozhovor. Den před našim setkáním ale Tomáš vydal už funkční verzi nového Slaxu s KDE 4, takže ve skutečnosti bylo co ukazovat a bylo se i o čem bavit. Následující text je přepisem rozhovoru, který na LinuxDays vznikl.
Před jeho přečtením doporučuji ještě následující dva články:
- Tomáš Matějíček: Slax už nevyvíjím, nemůžu si to dovolit
- Slax nekončí, vývoj podpoří dvě švýcarské firmy
Jak se to dělá, aby se do 180 MB vešel celý operační systém včetně Konqueroru, KDE 4 a pěkného pozadí?
Dělá se to na několika frontách. Důležité je smazat všechno, co tam člověk nechce. Někdy je to práce typu pokus-omyl, zkusím něco smazat a pokud se nic nerozbije, nechám to tak. Kromě toho je potřeba také dobrá komprese. Celý Slax je zkomprimovaný algoritmem LZMA2. Ten dokáže používat až megabajtový slovník a navíc má takzvané BCJ filtry, které pomáhají tomu, že se binární kód ještě předem zoptimalizuje pro lepší kompresi. Především se skokové adresy přepíší na absolutní hodnoty, které se tím pádem v kódu často opakují a je možné je dobře komprimovat.
Další možností, jak udělat operační systém co nejmenší, je nezahrnout do něj balíčky, které nejsou bezpodmínečně potřeba. Kompletní KDE 4 se všemi závislostmi zabírají zhruba 500 MB komprimovaných balíčků. Pokud se ale rozhodnu, že některou vlastnost uživatelé nutně nepotřebují, nezahrnu ji a tím se zbavím i části závislostí. Musím si tedy vybírat, co má systém umět a co je pro mě prioritou.
Hodně lidí se ptá, proč trváš na molochovi KDE 4. Proč nepoužiješ JWM, TightWM, nějaké mikroWM nebo dokonce žádné-WM. Proč?
Protože KDE 4 dobře vypadá. Gnome 3 teď taky dobře vypadá, uvažoval jsem i nad ním. Ale styl jeho ovládání je trochu jiný a ne všichni se s ním ztotožňují. Takže jsem se rozhodl pro aktuální KDE. Celý Slax je modulární, takže je možné do něj přidávat jednotlivé vrstvy s dalším softwarem. Takže když se někdo rozhodne, že nechce KDE, má možnost smazat si jeden soubor s KDE a nahradit jej něčím jiným.
Pro mě je důležité, že KDE dobře vypadá a poskytuje ucelený balík software, který se dá používat a vypadá jednotně. Vše má stejná okýnka, stejný vzhled, aplikace používají knihovnu Qt a vypadají podobně.
Hraje svou roli i to, že KDE je hodně podobné Windows? Že pak bude lidem prostředí Slaxu známější?
Těžko říct. Nejsem si úplně jistý, že Slax cílí na uživatele Windows. Překvapivě se ukazuje, že běžným uživatelem Slaxu je spíš hardcore uživatel, který používá příkazovou řádku a vlastně desktop ani nepotřebuje. Tohle už vidím z různých ohlasů. Ale zase jsou tu uživatelé, kteří nikdy s Linuxem nedělali a pro ně je rozhodující, jak ten systém vypadá. Podívají se na screenshoty a když je to hnusné, ani si to nestáhnou. Pro tyhle lidi je třeba, aby prostředí vypadalo hezky a mělo i nějaké efekty.
Pro jaké architektury bude nový Slax k dispozici?
Slax bude k dispozici pro 32 bitů a 64 bitů x86. Chtěl jsem i verzi pro ARM, ale nakonec jsem ji zavrhl. Neexistuje univerzální způsob, jak jeden systém spustit na různých ARM zařízeních. Každé potřebuje vlastní jádro a ovladače a není to vůbec legrace. Zůstanu tedy zatím u dvou architektur.
Dělám to tak, že 32bitová varianta je optimalizovaná pro procesory 486. Asi se budete divit, ale je to tak. Spousta lidí chce Slax spouštět na hodně starých počítačích, proto je třeba zajistit co nejširší kompatibilitu.
Do nového Slaxu jsi naprogramoval nový souborový systém, který dovolí uživateli všechny změny ukládat do jednoho souboru, který se sám nafukuje. Jak to funguje?
Slax byl postaven tak, že umí běžet z read-only média. Aby mohl uživatel cokoliv měnit a zasahovat do všech souborů, potřeboval nějaký overlay systém s copy-on-write. Používám k tomu AuFS, který naprogramoval Junjiro Okajima. Díky tomu můžu přes read-only souborový systém položit další vrstvu, která už je zapisovatelná a do ní se ukládají všechny změny. Obvykle tato vrstva leží někde v paměti. Když pak ale uživatel restartuje, jsou samozřejmě změny pryč.
Pokud si chci změny uložit, musím jako zapisovatelnou vrstvu použít prostor někde na disku. Ať už přímo v počítači nebo na flash disku. Potíž ale je, že spousta lidí chce Slax startovat ze souborového systému FAT, protože je to hodně rozšířený souborový systém a uživatelé chtějí flash disk normálně dále používat, i když je na něm Slax. FAT ovšem nemá potřebné vlastnosti pro takové použití.
Proto jsem naprogramoval vlastní FUSE souborový systém, který mi umožňuje změny ukládat efektivně a použít při tom FAT. Jako overlay vrstvu používám virtuální soubor loop.fs
, což je obraz disku, který má velikost 4 GB. Pomocí mého souborového systému je ale namapován na FAT do reálného souboru changes.dat
, který je dynamicky alokovaný a bobtná podle toho, jak do něj zapisujeme data. Na souboru loop.fs
je pak vytvořen standardní souborový systém XFS, který je součástí overlaye.
Nebylo by možné něco podobného implementovat na serveru? Že by se uživatel přihlásil a měl by data k dispozici odkudkoliv?
Cloud je teď hrozně moderní věc, takže jsem tohle implementoval už před třemi lety. Nikdo to ale prakticky nepoužíval, takže jsem to nakonec zrušil.
Já jsem vůbec hodně věcí implementoval už dřív. Teď jsou třeba všude takové ty markety s aplikacemi. Něco takového Slax má už delší dobu na webu. Stačí si vybrat vhodný balíček, kliknout na „activate“ a balíček se vám na dálku bez stahování připojí a vy můžete začít aplikaci rovnou používat.
Bude něco takového umět i nový Slax?
Ne, protože to taky skoro nikdo nepoužívá.
Jak si tedy budeme doinstalovávat nové programy?
Klasickým stažením balíčku. Na webu budou k dispozici soubory, kterým teď říkám „bundle“ a budou mít příponu .sb
. Ten soubor si stáhnete a nahrajete na flash disk do adresáře ke Slaxu. On se nikam nerozbaluje a nerozkopírovává po disku, jen se připojí jako další vrstva ke stávajícímu souborovému systému. V tu chvíli se vám objeví v systému nové soubory a můžete je začít používat.
Při našem posledním rozhovoru jsi říkal, že hodláš financovat Slax pomocí reklamy na ploše. Bude to hlavní byznys model?
Zásadní problém při vývoji software nebo prakticky čehokoliv jsou peníze. Já jsem si před časem řekl, že už se Slaxu věnovat nebudu, protože na to nemám peníze a musím se věnovat rodině. Díky rozhovoru na Rootu se pak našli lidé, který řekli: ‚Pojďme vymyslet nějaký obchodní model, který nám umožní časem ty peníze získat zpátky. Nainvestujeme do projektu peníze, ale přáli bychom si, by se časem aspoň vrátily.‘ Ukázal jsem jim svůj nápad, že by si firmy mohly dávat do Slaxu reklamu v podobě upravených pozadí na plochu. Ale jen nějakých hezkých, jako byly třeba příklady v článku na Rootu. Žádné obrázky plné nějakých šíleností.
Počítáš tedy s nějakou kontrolou těch reklam?
Určitě ano. Každý bude mít možnost nahrát si tam svůj obrázek a poslat peníze. Pak ale vždycky zkontroluji, zda tam ta reklama poběží nebo ne. Byl bych rád, když tam poběží jen hezké a stylové věci.
Říkal jsi mi, že máš v plánu umožnit vkládání reklamy komukoliv. Že půjde o otevřenou nabídku. Jak si to přesně představuješ?
Kdokoliv bude moci přijít, ani to nebude muset být velká firma. Stačí, když bude mít zájem oslovit tímhle způsobem zákazníky. Zaregistruje se, pošle peníze a zvolí, kolik je ochoten dát za jedno stažení svého obrázku na pozadí. Každý si tak sám zvolí vhodnou cifru. Prioritu by pak při stahování měly ty reklamy, za které byla nabídnuta větší částka. Věřím tomu, že se najde spousta lidí, kteří si to zkusí.
Samozřejmě spousta lidí takové pozadí ve Slaxu chtít nebude. Zároveň část lidí má zájem přispět na vývoj nějakou malou částkou. Proto bude pravděpodobně existovat i možnost stažení sponzorované verze. Ještě jsem se nerozhodl, kolik přesně se bude platit, to je třeba dohodnout s mými obchodními partnery. Ale je tu i varianta známá z Humble Bundle, kdy si každý bude moci určit svou částku.
Máš ještě nějaké další nápady, jak Slax zpeněžit?
Ano, reklamy nejsou jediná možnost. Můžeme třeba prodávat nějaké hezké flash disky, kde už bude Slax připravený. Další možnosti je třeba nabízet podporu. Spousta lidí totiž pořád potřebuje pomoct s nějakým problémem nebo poptávají nějaké úpravy. V tuhle chvíli jim ale nemůžu vyhovět. Pokud by však byli ochotni zaplatit, dalo by se s tím něco dělat.
Mluvili jsme o tvých švýcarských partnerech. Mají ty firmy snahu nějak Slax samy využít nebo jde čistě o podporu projektu?
Bavili jsme se už o tom, že by Slax rozdávali i s vlastním softwarem. Nejsem si ale úplně jistý, že jsem to správně pochopil. V každém případě se jim líbila myšlenka Slaxu a chtěli, aby pokračoval dál a neumřel.
Jakou mají přesně tví partneři nad projektem moc? Nebudou na tebe moci vyvíjet nějaký nátlak?
Samozřejmě spolu máme uzavřenou smlouvu, která předem definuje jak to bude vypadat a kdy co bude hotové. Nechal jsem si dostatečnou časovou rezervu a udělal jsem dobře, protože když se na něčem zaseknu, zase ten čas navíc ztratím. Takže zatím držím plán a všechno by mělo být hotové do půlky prosince. Včetně webu a všech dalších věcí okolo.
Pokud máme dostat Slax pod stromeček, už nemáš moc času. Kolik máš vlastně testerů?
Dělám to tak, že veškerý pokrok zveřejňuji na svém blogu tomas-m.com. Denně tam píšu, co je nového, co se mi povedlo a co nepovedlo a každý den tam přijde asi 500 lidí. Nevím, kolik z nich si něco stáhne a testuje, ale vždycky je tam řada komentářů a různých názorů. Vždycky jsem to dělal tak, že jsem vydal novou verzi a čekal jsem, až to otestuje publikum.
Děkuji za rozhovor.