7 málo používaných technik v Bashi

Docela zajímavý článek s tímto titulkem se nachází na Linuxárii. Další náměty na zefektivnění práce naleznete na CommandlineFu.

Abych jen neopisoval, tedy alespoň ne jen z jednoho zdroje, mám pro vás ještě jeden drobný tip, pokud někdy budete chtít dělat kontrolní součty adresářového stromu. Pak asi záhy zjistíte, že ani v jednadvacátém století nemají nástroje typu sha1sum přepínač -r pro rekurzivní prohledávání adresářového stromu. Musíte si tedy pomoci jinak, tedy třeba takto:

find /some/path -type f -print0 | xargs -0 sha1sum

Autorem tohoto CommandLineFu je James Nylen.

Připojení virt-manageru z Arch Linuxu na RHEL 6.2

Tento blogpost je čistě technický a obsahuje řešení jednoho nepříjemného problému. O co jde? Mám stanici s RHEL 6.2 klonem (Scientific Linux), kde je rozběhnutá virtualizace (libvirtd). Na druhé stanici je Arch Linux, kde také běží libvirtd. Oba stroje jsou v lokální síti, tak proč nemít možnost přihlásit se z virt-manageru přes SSH z Arch Linuxu do Scientific Linuxu, a mít šanci ovládat virtualizaci „vzdáleně“? Problém je v tom, že to nejde. Proces dokonce ani neskončí chybou, virt-manager se jen nepřipojí. Google odhalí možný problém při absenci balíčku x11-ssh-askpass, který by měl být na klientovi (Arch Linux) nainstalován, Jenomže ani s ním to nefunguje.

Řešení je přesto velmi jednoduché, i když přijít na něj až tak triviální nebylo (musel jsem zkompilovat jinou verzi virt-manageru, která naštěstí chybu ohlásila a podle ní jsem si správně tipnul). Na stroji s RHEL 6.2 stačí vytvořit následující symbolický odkaz:

ln -s /usr/bin/nc /usr/bin/nc.openbsd

A to je celé.

Windows 9 bude postaven na FreeBSD

Minulý týden jsem nezávazně pohovořil s pracovníkem Microsoftu na jedné z jejich prezentací, které jsem se jako zaměstnanec bohužel musel zúčastnit. Ten mi sdělil velmi zajímavé informace o budoucím směřování Microsoftu, tak neuvěřitelné, že jsem to vzal jen jako žert. Jeho vážná tvář mne ale přesvědčila, abych si tuto informaci ověřil, a proto jsem se obrátil na tiskového mluvčího Microsoftu, kterým je Ing. A. Lírpa. Ten mi včera potvrdil, že Windows NT se nyní skutečně stává slepou větví vývoje, jelikož po vydání Windows 8 provede Microsoft zcela zásadní změnu – následující Windows již nebudou založeny na větvi NT, nýbrž na FreeBSD. Microsoft se tak připojí k Applu, který svůj Mac OS X také nakonec založil na BSD unixu.

Plán Microsoftu mi není zcela jasný, mám zatím pouze minimum informací, ale má komunikace s Ing. Lírpou odhalila přinejmenším to, že Microsoft hodlá FreeBSD upravovat spíše méně, pouze přidá svoje grafické rozhraní. Aero zmizí, nahradí jej efekty Compizu. Tentokrát se Microsoft nebude snažit o zachování zpětné kompatibility, jelikož mu to v minulosti přineslo mnoho problémů, a při přechodu na FreeBSD to beztak není reálné.

Volba FreeBSD byla zde celkem jasná, neboť GNU/Linux je pro Microsoft licenčně nepřijatelný (licence GPLv2 a GPLv3), zatímco FreeBSD může díky jeho licenci bez problémů použít (nějakou dobu se traduje, že z BSD Microsoft převzal mj. TCP/IP stack) a dále prodávat kopie upraveného a zproprietarizovaného BSD systému. V tuto chvíli ještě není jasné, zda-li bude Microsoft spíše asistovat vývojářům FreeBSD nebo zda-li vezme aktuální podobu FreeBSD a tu si bude dále vyvíjet sám, uzavřeně.

Flexibilita unixových systémů by měla Microsoftu dát mj. možnost snadné portace Windows na speciální zařízení jako mobilní telefony, tablety, e-book čtečky, atd., což snad sníží náskok Androidu nad současným „hitem“ Windows Phone 7, který se příliš neprodává.

Pokud někdo čeká, že se tímto krokem Microsoft obrátí k Open Source a svobodnému softwaru přívětivěji, čeká patrně marně. Patentové žaloby vůči Androidu a jeho použití budou nadále pokračovat a Microsoft nedá Open Source světu ani o řádek kódu více, než kolik je nezbytně nutné.

Je otázkou, jak bude vývoj pokračovat a jak z toho vyvázne FreeBSD, resp. zda-li to FreeBSD nějak pomůže, nebo si jen MS od nich vezme co potřebuje a jako odměnu jim neposkytne ani jednu volnou licenci na užití finálního Windows 9. Víc už se mi bohužel z Ing. Lirpy vydolovat nepodařilo, snad až na jedinou věc – kódové označení Windows 9, který bude založen na FreeBSD, je „Tsuki“ (Microsoftu se patrně zalíbila Japonština).

Na závěr nemohu než vyjádřit své rozporuplné pocity – na jednu stranu uvítám další unixový systém, ale na stranu druhou nevidím příliš rád, když se ze svobodného softwaru dělá nesvobodný, byť to jeho licence umožňuje. No, uvidíme, jak to nakonec dopadne. Třeba se z toho nakonec vyklube aprílový žertík.

Vázaný prodej notebooků s Windows

Jeden z dotazů, který obvykle pokládají začátečníci v rámci non-MS operačních systémech, je dotaz, proč mají tyto systémy výrazně nižší podíl na desktopech. Jedním z důvodů je kromě řady jiných věcí i vázaný prodej operačních systémů s notebooky. Podívejme se na toto téma blíže.

Pokud jste někdy zkoušeli vybrat vhodný laptop, a dali jste si jako jedno z kritérií, že v jeho ceně nesmí být obsažena licence MS Windows, dáte mi asi za pravdu. Zejména, pokud jste současně s tím měli i jiné požadavky (uhlopříčka obrazovky, výdrž baterie, počet jader procesoru, velikost operační paměti, velikost a rozložení klávesnice, nebo třeba kompatibilita s GNU/Linuxem). Pak totiž zjišťujete, že místo výběru z desítek modelů třeba nenajdete žádný, a zůstane vám výběr mezi tím, který by vám vyhovoval, ale bez Windows ho neseženete, a tím, který sice Windows nemá, ale také nemá některou z dalších vámi požadovaných vlastností.

V tuto chvíli si můžete říkat, že uživatelé non-MS operačních systémů to mají těžké, pokud se chtějí vyhnout koupi licence, kterou nevyužijí. Tenhle problém se ale nevyhne ani uživatelům Windows. Představme si situaci, kdy vy už licenci na Windows máte, a mohli byste ji tedy použít i na vámi pořizovaný notebook. Asi mi dáte za pravdu, že v takové situaci je zbytečné kupovat další licenci, když už jednu máte. Tento problém je ještě palčivější v případě komerčních firem nebo třeba státních institucí, které už mají s Microsoftem příslušné smlouvy a multilicence, a jediným výsledkem pak je, že zbytečně platí (souhrnně) velké sumy za instalace Windows, které pak třeba stejně přepíší svými vlastními imidži.

Jiná situace nastává, když notebook má jinou verzi/typ/edici Windows než tu, kterou chcete. Třeba máte zájem o Vistu Ultimate, ale s notebookem nabízí výrobce pouze Business edici. Nebo máte zájem provozovat na notebooku serverovou edici Windows, atd.

To, že tato situace poškozuje konkurenční operační systémy, včetně GNU/Linuxu a řady dalších, snad hovořit nemusím – to je jasné.

Naneštěstí ale tenhle problém skoro nikoho nezajímá. České právo samozřejmě zná vázaný prodej, a rozhodně se mu nezamlouvá. Jeho definice ovšem na tento případ bohužel naroubovat nejde (dominantní postavení MS vytváří z této praktiky „zvyklost“, která je v přímé kontraindikaci s touto definicí).

To, že se řada notebooků prodává s předinstalovaným OS od MS, skutečně může být odrazem typické tržní situace, zvyklosti (jinými slovy důsledkem tržní síly MS). Problém pak není ani tak v tom, že se notebooky dodávají s Windows, ale že Windows pak nelze od notebooku oddělit – výrobci/dodavatelé v tomto případě nemají vytvořeno žádné schéma pro vracení nepoužitých/odmítnutých licencí, a tak je běžnou praxí buď zákazníka odmítnout, maximálně mu nabídnout vrácení celého notebooku i s Windows, nikoliv však Windows oddělit od notebooku a poskytnout mu adekvátní slevu.

Výjimečně se zákazníkovi může podařit za pomoci díry v EULA Windows (a po mnoha urgencích a otravování manažerů příslušných výrobců) vydobít nabídku na vrácení jisté částky peněz, samozřejmě výměnou za příslib mlčenlivosti, aby se o tom nikde moc nemluvilo. Samozřejmě od té doby, co se tento případ proflákl, už někteří výrobci/distributoři tuto možnost raději nenabízejí a umožňují nanejvýš vrátit celý notebook i s Windows, patrně v naději, že to lidi odradí a notebook si nechají i s Windows.

Microsoft může být z této situace právem nadšen – jeho systém je prodáván lidem vícekrát, a jeho koupi se neubrání ani mnozí uživatelé non-MS systémů. Firmy utrácí peníze za nevyužité licence, a statistiky prodejnosti MS produktů spokojeně rostou. Evropská komise raději pokutuje Microsoft a náš Úřad na ochranu hospodářské soutěže samozřejmě na celé věci nevidí nic špatného. Ekonomové v této situaci problém také nevidí, ti vidí problém pouze ve státem garantovaných monopolech. To MS není, takže je samozřejmě všechno v pořádku.

Jistě, zákazníci by mohli lecos změnit, kdyby prostě přestali kupovat notebooky s předinstalovaným Windows, ale víme dobře, že to se nestane. Většina lidí to bere jako zcela normální věc, protože je toho názoru, že operační systém = Microsoft Windows a záležitosti jako licence a jejich působnost neřeší. Někteří uživatelé GNU/Linuxu či jiných systémů koupi nepotřebné licence ztrpí, protože je pro ně přednější HW stránka notebooku, tj. nemají příliš na výběr. A těch pár jednotlivců, co se o něco zasadí, nebo alespoň odmítne koupit notebook s předinstalovanými Windows, zůstane jako výjimka potvrzující pravidlo.

A Microsoft si mne ruce…

Operační systémy na (web)serverech

Pomocí p0f, tedy prográmku, který provádí pasivní identifikaci operačního systému, jsem provedl vlastní šetření, abych zjistil, jaký je podíl GNU/Linuxu na serverech, převážně web serverech. Za několik dní se počet prověřených serverů vytáhl na 805, což sice není mnoho, ale pro statistický snapshot to snad stačit bude. Nuže, výsledek je následující:

OS Počet serverů Podíl
GNU/Linux 612 76%
*BSD 93 12%
MS Windows 90 11%
HPUX 8 1%
Tru64 2 0%

Je jasné, že reprezentativní vzorek to asi zrovna není, navíc musíme mít na paměti, že pasivní identifikace OS není tak spolehlivá jako aktivní, nicméně, tak či onak, jak moc se budou reálná čísla lišit od těchto? Podle této statistiky to totiž vypadá, že GNU/Linux má, přinejmenším na web serverech, drtivou většinu, dokonce *BSD systémy předběhly MS Windows, který se umístil třetí s 11%. Jak moc jsou tato čísla směrodatná, to záleží na vašem zvážení, nicméně, vlastní šetření si můžete s výše zmíněným prográmkem provést sami.

Aktualizace článku

Nějakou dobu jsem prográmek p0f nechal běžet. Vzorek se nám tak podstatně rozrostl, skoro se ztrojnásobil, nyní mám k dispozici výsledky 2326 identifikovaných serverů, ale poměry mezi jednotlivými OS se příliš nezměnily:

OS Počet serverů Podíl
GNU/Linux 1676 72%
*BSD 301 13%
MS Windows 299 13%
HPUX 25 1%
Tru64 25 1%

Vidíme, že GNU/Linux si poněkud pohoršil, ale nijak výrazně, zatímco MS Windows se dostal na úroveň systémů BSD. Je to dáno tím, že jsem v zájmu objektivity brouzdal po náhodných stránkách dle výsledků vyhledávání na Googlu. Pokud bychom porovnali jednotlivé rodiny operačních systémů, dostaneme následující výsledky:

Rodina Počet serverů Podíl
Unixy 2027 87%
MS Windows 299 13%

Vezmu-li v úvahu, že se počet identifikovaných serverů zvýšil na téměř trojnásobek, ale čísla se nijak zásadně nezměnila, mohu snad s dostatečně vysokou pravděpodobností tvrdit, že majoritu na poli webserverů mají opravdu unixové systémy, v čele s GNU/Linuxem.

Update (2006-03-23):

Linux: 3437, share 80,27 %
BSD: 379, share 8,85 %
Windows: 410, share 9,57 %
HPUX: 26, share 0,61 %
Tru64: 26, share 0,61 %
Other: 4, share 0,09 %

Total: 4282

OS Families

Unices: 3868, share 90,34 %
Windows: 410, share 9,57 %
Other: 4, share 0 %

Total: 4282

Připojení na Net přes router ve Win98 OK

Tak popořadě. Proč ultra-linuxový radikál jako já vůbec na svém počítači ještě stále používá Windows? Zejména proto, že klienti, kterými se na naší škole registrují předměty a bakalářské zkoušky, funguje z nějakého důvodu pouze v nich (nefungují ani ve Wine) a soudě podle reakcí vývojářů aplikace, takto to zůstane i nadále. Tolik k reakcím typu nikdo vás přece nenutí používat Windows.

Problém je v tom, že podporu modemu GTRAN jsem do Windows neinstaloval a provádět to nehodlám (nestabilní jsou už tak dost). Navíc nyní je celá domácí síť připojena přes router, který je jako jediný k tomuto modemu připojen. Na něm běží Debian GNU/Linux a mnou speciálně vyvinutá aplikace, která udržuje spojení. Čili, Windows v tomto zapojení musí ignorovat jednu síťovku (tu, která vede hlouběji do domácí sítě), nakonfigurovat druhou síťovku a připojovat se přes router, který je na ni připojen.

Nakonec jsem se proklikal k finálnímu řešení, i když jsem musel před tím asi pětkrát restartovat a testovat různá nastavení, než jsem přišel na to správné. Místo jednoduchého příkazu ala „ifconfig eth0 192.168.0.1 netmask 255.255.255.0“ musím klikat jako zběsilý a ještě navíc x-krát restartovat. A tomu se říká uživatelská přívětivost? Berte to samozřejmě s nadsázkou, nicméně zamyšlením nad tím, jak je uživatelská přívětivost relativní, bych si rád připravil živnou půdu pro trošku delší článek, který připravuji.

Mandrakelinux se mění na Mandriva

Oficiální zdroje uvádí dva důvody. Spory o značku Mandrake a akvizici společnosti Conectiva. Abych pravdu řekl, tak tento krok nepovažuji za zrovna nejšťastnější. Soudě podle reakcí uživatelů na diskusních fórech bych řekl, že s původním názvem (Mandrake) by na tom společnost Mandriva byla lépe. Onen nový název se uživatelům totiž příliš nezamlouvá. Já osobně jsem stejného názoru.

Další problém, který nepochybně vyplyne z této situace, bude jistá ztráta postavení spojená s přejmenováním. Společnost Mandrakesoft si za dobu své existence vytvořila jistý image a její název je přeci jen záležitost, kterou řada subjektů zná a respektuje. To se však změní a Mandriva si bude muset část svého postavení opět vytvořit. Něco podobného se stalo i firmě Borland, která se přejmenovala na Inprise a následně raději opět zpátky. Inu, uvidíme, jak se nový název ujme.

LaTeX a Debian GNU/Linux

Konečně se mi podařilo vyřešit problémy s distribucí LaTeXu v Debianu. Jak se zdá, i když podpora češtiny existuje, není úplně perfektní a je třeba spáchat jeden menší zásah do tetexu. Prvním krokem by měla být modifikace souboru fmtutil.cnf, který můžete lokalizovat pomocí příkazu locate, nebo se podívat do /var/lib/texmf/web2c, kde by se měl nacházet. Odkomentujte v něm řádky obsahující cslatex, csplain, pdfcslatex, pdfcsplain. Vygenerujte znovu konfiguraci pomocí příkazu texconfig init, a to je vše. Dlužno dodat, že k obojímu potřebujete oprávnění uživatele root. A propos, relevantní informace se nacházejí v tomto threadu.

Architektura GNU/Linuxu

Trošku techničtějšího rázu, ale poměrně stručné a jasné formulace, které popisují architekturu GNU/Linuxu, potažmo Unixu, a zdůrazňují výhody, nevýhody i rozdíly, jsou k dispozici v článku, který vyšel v lednovém CHIPu z roku 2000. Je poměrně povedený a i když je web spolu s článkem neaktualizovaný posledních několik let, informace z tohoto článku jsou z velké části stále aktuální. Ne že by nebylo možné doplnit řadu nových skutečností, nicméně pro základní přehled to postačí. Aktuálnější informace by měly být k nalezení na Wikipédii.