Hlavní navigace

Linuxu chybí univerzální konfigurační systém

Jan Molič

Mnoho světových analytiků se zabývá tím, co by měl Linux do budoucna zlepšit či přidat. Málokoho ale napadne, že mu chybí něco tak fundamentálního jako je univerzální, centrální, jednoduchý a především použitelný konfigurační nástroj. Jak by měl vypadat a jaké podmínky by měl takový nástroj splňovat?

Co opravdu chybí?

Nedávno jsem si přečetl článek o tom, co by open source komunita nejvíce potřebovala v roce 2008. Já vím, co by potřebovala, ale kupodivu jsem to v článku nenašel. Potřebovala by univerzální konfigurační systém. Říkáte si, aha, další utopický pokus o sjednocení? Nemyslím si, že je utopický. Udev, HAL či NetworkManager jsou příklady sjednocovacích pokusů, kdy to funguje.

Většina současných distribucí přichází s vlastními konfiguračními nástroji. Vyzkoušel jsem jich dostatek na to, abych mohl tvrdit, že žádný nefungoval spolehlivě. Alespoň ve smyslu konfiguračních nástrojů, jaké známe například z MS Windows. Nedivím se pak, když si přečtu, že GNU/Linux není stále „dostatečně jednoduchý pro obyčejné uživatele“.

Anketa

Postrádáte univerzální konfigurační systém?

Nemyslím si, že použitelnost systému „obyčejnými uživateli“ je v rozporu s tím, aby byl systém použitelný zároveň pokročilými. I ti by ocenili větší spolehlivost. A ke spolehlivosti vede právě jednotný konfigurační systém. Proč? Především proto, že zamezí duplicitní práci a vývojáři budou svůj čas investovat do odstraňování chyb pouze tohoto jednoho systému. Nepřijde mi efektivní, když se nastavováním Samby zabývají jak vývojáři YaST2, Mandrivy, Ubuntu, tak i vývojáři ovládacího centra KDE (které navíc musí fungovat v různých distribucích).

Jaký by měl být?

Současné konfigurační systémy bych shrnul asi takhle: dobrá myšlenka, ale špatný návrh. Jaké vlastnosti by tedy měl mít dobrý konfigurační systém?

Univerzálnost

Systém by neměl být vázán na konkrétní distribuci, konkrétní grafické prostředí či konkrétní operační systém (jedná-li se o unixový typ). Distribuci chápu spíše jako soubor programů, které jsou navzájem vyladěny k různým účelům. Konfigurační systém by měl být pouze jedním z těchto programů.

Jednoduchost

Jádro systému, neboli framework, musí být maximálně jednoduché. Stará se totiž pouze o vnitřní komunikaci a usnadňuje vývojářům řešení častých problémů.

Modulární architektura

Systém by měl být modulární. Distribucím by se tak umožnilo vytvářet vlastní moduly, pokud by nestačily ty univerzální.

Nezávislost na jazyce

Aby nedošlo k odsouzení celého systému na základě nepreferovaného jazyka, mělo by být možné psát moduly v jakémkoli jazyce – podobně, jako jsou backendy tiskového systému CUPS obyčejné procesy komunikující s CUPS pomocí standardního vstupu a výstupu.

Architektura klient-server

Konfigurační systém by měl být rozdělen na výkonnou část a množství uživatelských rozhraní. Napadají mne tato rozhraní:

  • rozhraní pro příkazovou řádku

    Je nesmírně důležité, aby šlo ovládat nastavení systému z příkazové řádky. Co je platné, že je NetworkManager klient-server, když chybí konzolový klient?

  • rozhraní v textovém režimu

    Pro ty, kteří nepreferují X Window System ani příkazovou řádku, by měl existovat nástroj v textovém režimu. Mimochodem, velmi bych uvítal, kdyby prožil renesanci TurboVision – okna v textovém režimu – port na Linux existuje. Ve srovnání s ncurses se s nimi pracuje pohodlněji, a jestli se někomu nelíbí jednotná grafika, tak je jistě prostor pro implementaci „skinů“.

  • rozhraní v grafickém režimu

    Teoreticky by mělo být možno systém koncipovat tak, aby prvky formulářů diktoval přímo server, takže by bylo uživatelské rozhraní do značné míry automatické.

  • webové rozhraní

    Znáte Webmin? Jedná se o webserver, který umožňuje nastavovat počítač přes web. Myslím, že webové rozhraní není špatný nápad, ačkoli uznávám, že dnes máme vzdálenou plochu. Jenže – připojíte si ji na mobil? Webmin však není webovým rozhraním podle mých představ. Jeho CGI moduly přímo „kreslí“ formuláře, čímž jsou svázány jen s použitím přes web.

Závěr

Ano, tento článek neměl za úkol způsobit žádný převrat. Rád bych pouze inicioval vytvoření výše načrtnutého systému. Určitě jsem neuvedl všechny vlastnosti, které by měl mít, takže bych byl rád, kdybyste se podělili i o své návrhy. Určitě by stálo za to vyjít třeba z Webminu a vypreparovat z jeho modulů funkční části. Systém však musí být komplexní, podobně jako YaST2, který nabídne instalaci balíčku, hodláme-li konfigurovat něco, co není nainstalováno.

Neznám interní procesy v YaST2, ale určitě by se v něm také našlo mnoho inspirace. Podobně by měl systém umět to, co dnes dělá NetworkManager, který by se stal jen jedním z modulů. A dále prostě vše, co souvisí s konfigurací operačního systému.

Našli jste v článku chybu?
10. 1. 2008 5:29
nanodemon (neregistrovaný)
Nechápete evoluci. Doporučuju si o tom něco přečíst - zvlášť o úloze přirozeného výběru... O 'dokonalosti' člověka a 'zbytečnosti' všech ostatních živych organizmů se raději ani nezmiňujte. Ono to spíš funguje tak, že přežívá přizpůsobivější, ne nutně 'dokonalejší'. Ať už tu 'dokonalost' definujete jak chcete. kolik lidí používá Linux a kolik Windows? Opravdu si myslíte, že se to nemůže během 10 let otočit? Počítače jsou konec konců docela novinka... zvlášť z pohl…
10. 1. 2008 13:32

A proč pořád ty textové soubory? Jak se udělá validace? Kvůli tomu budeme něco programovat? Proč nepoužít XML a schémata, kde validace funguje sama od sebe? Problém obyčejných textových souborů je rovněž v nemožnosti vyjádřit složitěji strukturovaná data.

U textu nemám možnost formální validace - to je jasné. Na druhou stranu formální validace v XML je pro řadu vazeb nedostatečná (vím o čem píši, pár xml schemat už mám za sebou), nad formální XML validací ještě občas potřebujete další aplikac…