Hlavní navigace

Microsoft Services for UNIX - Unix nad NT jádrem

Martin Culka

Microsoft není úplným ignorantem všeho, co jen trochu zavání textovým rozhraním a unixem. V článku se podíváme na unixový subsystém do Windows přímo od firmy Microsoft. Může toho nabídnout docela hodně.

Co je SFU?

Microsoft Services for UNIX (SFU) je balík zdarma stažitelný z webu Microsoftu, jehož klíčovou součástí je prostředí zvané Interix. Dále SFU obsahuje sadu linuxových a unixových nástrojů a také nástroje vývojové (gcc, make …). Jde pod ním tedy zkompilovat řada dalších linuxových programů. (Nutno mít ale na paměti, že Interix rozhodně není Linux.)

Jak to funguje?

Interix je alternativním prostředím k běžně používanému prostředí Win32. Windows NT řady si lze představit jako strom, kde kmenem je jádro NT. Nad tímto jádrem běží takzvané subsystémy, jako například výše zminované Win32 a Interix, který je kompatibilní s normou POSIX. V těchto subsystémech funguje vlastní API rozhraní a nad ním jsou již aplikace. Subsystémy běží tedy nezávisle na sobě a mají úplně rozdílná API rozhraní. Lze tedy v jednou systému spouštět jak klasické Win32 aplikace, tak i aplikace určené pro Interix.

Možná vás napadne, že projekt Cygwin se snaží o stejnou věc. Rozdíl mezi Interixem a Cygwinem je v tom, že Interix je vlasně na stejné úrovni jako Win32 subsystém, zatímco Cygwin běží nad tímto subsystémem (což skýtá jisté nevýhody, ale i výhody jako například možnost běhu pod starou řadou Windows, která není postavená na jádře NT).

Testujeme

K otestování SFU budete potřebovat nějaká novější Windows řady NT (myslím, že v dnešní době má Windows XP, bohužel leckdy třeba i nedobrovolně dodané s novým PC, skoro každý) a instalační balík, který stáhnete od Microsoftu (aktuální verze je 3.5) výměnou za registraci (jak jinak). Po stažení nainstalujete pomocí tradičního windowsovského instalátoru.

Po neodmyslitelném restartu nám v nabídce start přibyde podadresář, obsahující zástupce s pod Windows exotickými názvy jako Korn Shell. Na disku nám přibyl adresář SFU (lze zvolit i jiný), který je vlastně kořenovým adresářem Interixu (podobné jako u Cygwin). K windowsovským diskům je se možné dostat přímo přes adresář /dev/fs. Pokud jste zvolili kompletní instalaci SFU, naleznete řadu známých a užitečných nástrojů. Distribuce obsahuje třeba i nfs server nebo telnet server (dokonce s windowsovskou konfigurační utilitou). Dále je součástí také nápověda, která stylem nápadně připomíná manuálové stránky.

SFU

Co se týče vývojových nástrojů, kompletní instalace obsahuje gcc, make, perl a řadu dalších gnu nástrojů. Při kompilaci Linuxováho software je potřeba dát pozor na to, že Interix není Linux. S kompilací řady linuxových programů mohou být (a pravděpodobně také budou) potíže. Aplikace je třeba pro Interix uzpůsobit, stejně jako například pro Solaris. Snad jen aplikace ve skriptovacích jazycích by měly fungovat bez problému (jen tak na okraj – v distribuci chybí Python, jeden z nejkomplexnějších skriptovacích jazyků dnešních unixů).

Závěr a verdikt

Services for UNIX je zajímavý balík, který jistě stojí za vyzkoušení. Je důkazem, že Microsoft rozhodně Linux a ostatní Unixy nepřehlíží. SFU má firmám usnadnit přechod od Unixu k Windows, případně usnadnit spolupráci windowsovských serverů se servery unixovými. Snaží se doplnit klasické Windows o možnost provozovat na nich unixové aplikace a třeba i usnadnit jejich správu přes síť. Na stránkách Microsoftu se tradičně dočtete jen chválu a seznam výhod, které plynou z používání Interixu a především Windows.

Otázka ale zní, k čemu potom potřebujeme na serveru slavný subsystém Win32, když máme subsystém unixový, se kterým si (teoreticky) při provozování serveru vystačíme? Jenže Interix se vůbec netváří jako rovnocenné prostředí k Win32, tváří se jen jako jakýsi doplněk. Nelze ho používat jako rovnocennou alternativu, klasické Windows mají pořád navrch. Nepředstavujte si tedy, že si z Windows XP uděláte Unix s X Windows, KDE a dalšími aplikacemi a jako bonus vám tam poběží nativní windowsovské hry a jiné programy. Netvrdím ale, že tam X Windows není možné rozběhnout, jen se jaksi nezbavíme prostředí Win32.

SFU se tedy reálně dají skutečně použít jen k věcem, pro které byly určeny, a sice jako nástroj k spouštění některých unixových služeb a skriptů a usnadnit tím spolupráci mezi prostředím Windows a Unixu. Osobně dávám předost projektu Cygwin, který sice neposkytuje prostředí, které je rovnocenné s Win32, ale za to je šířeno pod svobodnou licencí (což umožnuje mnohom rychlejší rozvoj a opravu chyb) a má rozsáhlou distribuci software, čímž u mě nad SFU vítězí.

Anketa

Používáte unixové rozhraní ve Windows?

Našli jste v článku chybu?