úterý 25. července 2017

Windows a Linux

K povídání o počítačovém vyděračském viru byly připojeny komentáře, že bych měl vysvětlit ony rozdíly mezi Linuxem a Windows, které považuji za významné.

Základní pojmy

Linux je základ (jádro) operačního systému, který byl vymyšlen (tehdy) studentem Linusem Torvaldsem. Požadavkem byl operační systém, který by měl vlastnosti operačních systémů odpovídajících normě pro UNIX a současně byl zdarma (později se objevily licence typu GPL).
Na úrovni příkazů, tedy jejich znění a další syntaxe, což jsou věci, které nejsou patentovány, odpovídá Linux operačnímu systému UNIXového typu, pod kapotou mu ovšem běží zcela jiný kód, který pak zajišťuje jeho chod. Protože je tento operační systém otevřený, je pro něj velice snadné (relativně a pro toho, kdo to umí) vytvářet aplikace, které operační systém "naplno" využívají.
Pojem "linux" (zpravidla s malým písmenem) se posléze používá ještě pro tzv. linuxové distribuce, což je operační systém s přidruženými programy a možností doinstalovat další, takže vzniká něco, co je použitelné pro běžného uživatele (který jaksi nemá potřebu komunikovat s jádrem operačního systému pomocí pýthických zkratek a příkazů, zadávaných z klávesnice, a jásat nad pro nezasvěceného nesrozumitelnými odezvami systému, jdoucími jako text na obrazovku nebo do tiskového terminálu.
Linuxových distribucí je velké množství. Některé jsou vzájemně kompatibilní, tj. binární kód (to, co běží v počítači) jednotlivých programů by měl být vzájemně přenositelný. Přenositelnost mezi binárně nekompatibilními distribucemi zajišťuje možnost kompilace programů ze zdrojových textů (nejčastěji v jazyce C nebo C++). Program, zkompilovaný na daném počítači, by na něm měl jet a využívat i naplno zvláštnosti jeho hardwarového vybavení (tedy běžet ještě lépe než to, co nabízí didtribuce už v předkompilované podobě). V éře silných počítačů, velkých pamětí atd. se většinou kompilace neprovádějí (mimo fandy, které to baví). Kompilací může být ovšem získán program, který v distribuci není přítomný a předchystaný do binárního kódu.
Je možné kompilovat i samotné jádro operačního systému, na míru konkrétního počítače, ale opět se to běžně nedělá. Nicméně "lepší" distribuce mají k dispozici větší počet jader a vyberou to (nebo ta), která mají vlastnoti s konkrétním počítačem nejkompatibilnější. Většinou je možnost startu počítače na jiném jádře a v jiném režimu v nabídce systému při jeho spouštění.
Některé linuxové distribuce obsahují i placený software a možnost si ho zakoupit, jiné jsou "čistě GNU-GPL", tj. neobsahují ve svém základu ani programy, které jsou sice zdarma, ale pod nějakou omezující licencí (z nejznámějších programů je takto omezen např. TeX, ale určitá omezení platí i např. pro Mozillu, např. její logo je chráněno ochrannou známkou, proto není v základní nabídce "čistě GNU-GPL" distribuce Debian).
Důležité je, že Linux má od své podstaty (tedy jádra operačního systému) a své historie, včetně "před narozením", od systému Minix, který Linus Torvalds vyvinul jako první, zafixovaná (a současně oddělená, jak od sebe, tak i pro různé uživatele) práva k jednotlivým souborům a adresářům a celý operační systém s jejich definováním a jasným oddělením a respektováním v celé hloubce systému předem počítá.
Windows jsou dědicem DOSu, který byl proti UNIXu jednoznačným krokem zpět, protože jeho vlastnosti na úrovni jádra s něčím jako různá práva pro různé uživatele nepočítala a nebyly na to ani vytvořeny podmínky v jádře operačního systému. V principu na něm šlo spustit kýmkoli cokoli a pokud byly některé funkce zaheslované, dalo se to obejít pomocí systémové diskety.
Vzpomínám v této souvislosti na dnes již mrtvou distriuci Monkey Linux, která byla určena pro souborový systém FAT16. Měla linuxové vlastnosti řešeny tak, že v každém adresáři byl speciální soubor, který obsahoval informace o dlouhých jménech souborů  adresářů a o uživatelských právech. Dalo se do toho nahlédnout z DOS, tudíž bezpečnost veškerá žádná, nicméně to názorně ukazovalo, jaké informace o souborech a adresářích má Linux oproti DOSu navíc. Její hlavní výhodou ovšem bylo, že šlo jednoduše ninstalovat a spustit na počítačí s MS DOS nebo Win 95/98 linux, bez dělení disků, jen v jednom adresáři.
Windows byly původně určeny jako grafická nádstavba nad DOSem (k nám dorazila většinou až verze 3.xx). Pozdější verze byly primárně grafické, ale pod grafickou "slupkou" stál přežíval "starý dobrý" DOS (zlí jazykové říkali, že to bylo to nejlepší od Microsoftu, a to proto, že to neprogramovali, ale koupili hotové od IBM).
Windows byly a jsou problematické tím, že vždy vytvářely binární monokulturu (tj. binární soubory určité verze určitého programu jsou na úrovni sledu jedniček a nul totožné), včetně částí operačního systému.
I laikovi musí být jasné, že je snadnější napsat virus, kterému se řekne "v souboru s názvem SXY.ZZZ v adresáři AAA přepiš byte číslo 1125 - 1238 hodnotami z následujícího seznamu, než virus, který má tyto byte aktivně hledat v souborech, které se mohou jmenovat různě a být i v různých adresářích a ty kritické byte mohou být na různých místech tohoto souboru (a nemusejí být vždy a za všech okolností zcela stejné). Lze jistě napsat virus, který "obslouží" několik desítek nejčastěji se vyskytujících variant, ale bude podstatně větší a pomalejší (se všemi důsledky pro jeho šíření) a zcela jistě neobslouží všechny existující možnosti.
Apple je ještě daleko monokulturnější, protože vytváří i monokulturu hardwarovou. Výhodou je vyšší výkon software (včetně OS), protože je vyvořeno pro jediný druh hardware a na něj je s maximální možnou mírou optimalizováno. Je to ovšem systém UNIXového typu, takže má řadu bezpečnostních prvků "zadrátovánu" v hloubi operačního systému (podobně jako Linux).
Existují pokusy převést operační systém Apple na jiný hardware (hlavně PC), ale nejsou oficiální a jejich výsledky jsou nejisté.

Další informace

Abych ještě doplnil pár věcí:
Pro linuxy existuje program wine, který umožňuje spouštění některých windowsovských programů. Funguje tak, že zachytává komunikaci programu s operačním systémem a snaží se na ni odpovídat tak, jak by to udělala windows. Lze tak např. zajistit obsluhu zařízení, pro něž neexistují v Linuxu ovladače (embryo wine vzniklo údajně tak, že se jeho autorovi nechtělo psát metodou pokus - omyl linuxový ovladač k nějaké tiskárně a tak napsal mezivrstvu mezi windowsovským ovladačem a linuxovým jádrem), ale dají se tak spouštět i některé hry a některé verze windowsích office, četl jsem i o úspěšném spuštění některých verzí Photoshopu, teoreticky by se měl dát pod wine rozchodit i Zoner.
DOS lze na Linuxu (ale i jiných operačních systémech) emulovat pomocí aplikace DOSBox. Existuje ještě DOSEMU, což je aplikace, umožňující pod Linuxem spustit samotný DOS, máte-li legální instalační média.
Pro Linux (ale i jiné OS) existuje program, který v počítači vytvoří "virtuální počítač", na němž může být jiný operační systém a lze na něj nainstalovat i windows (a taky DOS), máte-li legální instalační média. Tento virtuální počítač je oddělen od světa (včetně připojení na internet) mezivrstvou, zajišťovanou počítačem a operačním systémem, na němž to celé běží. Ten může i monitorovat komunikaci virtuálního počítače s okolím a včas ji zablokovat, shledá-li ji nějak podezřelou. Navíc se celý tento počítač instaluje do RAM (po instalaci se vyrobí programem backup jeho kopie a uloží, a ta se při dalších spouštěních obnovuje), včetně disků, za něž se vydává kus operační paměti v ROM, takže vypnutí spolehlivě zlikviduje jakékoli breberky, které do něj pronikly. Trvalejší zápisy se dějí pod kontrolou OS běžícího na pozadí a případně na externí média. Tento systém se vedle existence více operačních systémů na jednom stroji (a při současném běhu) užívá (v různých modifikacích) rovněž jako "sandbox" pro spouštění podezřelého nebo pro analýzu škodlivého (o němž to tedy explicitně víme) software.
Pokud hodlá člověk provádět na počítači nějaké "virus rizikové" aktivity, může v linuxovém systému vytvořit nového uživatele se silně očesanými právy (včetně toho, že nesmí nahlížet do adresáře "normálního" uživatele a má omezen zápis) a lze u něj nastavit i "paranoidní" bezpečnostní úroveň, kdy např. každý zápis na disk vyžaduje explicitní povolení od uživatele se zadáním hesla. Něco podobného je na windows nemožné.

Problematika kompatibility

Jako uživatele mě kompatibilita nebo podobnost toho, co se děje "pod kapotou", absolutně nemusí zajímat. Potřebuji, aby se tentýž program choval identicky na různých počítačích a pokud je to zajištěno i pro různé operační systémy, tím lépe. Potom potřebuji, aby počítač B správně načetl soubor, uložený v počítači A na externí médium, nebo na něj poslaný po internetu (v poslední době se užívá i ukládání do cloudu).
Hlavní problém je na straně windows, které používají obskurní a nikde nedefinované datové formáty, s nimiž si občas samy neporadí. Opakovaně jsem byl svědkem toho, že Word nebo Excel nedokázaly načíst soubor, který předchozí den vytvořily a uložily.
Pokud přinutíme windowsí office, aby ukládaly soubory do formátu .doc resp .xls, tak problémy zpravidla již nebudou, problémy dělají formáty .docx a .xlsx. Většinou dojde k porušení grafiky (obrázky jsou jinde, zmizí, nebo jsou přes ně barevné pruhy). Formát open document, jak pro texty tak pro tabulky a presentace, problém opět nedělá a některé windowsí ofice už umí ukládat i do něj. Stejně nedělá problém formát .pdf, do něhož novější verze Wordu také umějí exportovat dokument, přičemž některé linuxové office (např. AbiWord) ho umějí nejen zobrazit, ale i dále editovat.
Pro bitmapovou grafiku má linux GIMP (chovající se stejně jako na windows), jehož jediným nedostatkem je absence 16bitové grafiky (tvůrci programu ji uživatelské kumunitě slibují již mnoho let). Tu ovšem člověk využije málokdy, protože takovouto hloubku grafiky neumí zpracovat ani většina zobrazovacích zařízení a tiskáren. Pro běžnou úpravu fotografií (ořez, úprava jasu a kontrastu) GIMP bohatě postačuje. Pro pokročilejší grafiku je na Linuxu lepší ImageMagick, který 16bitovou grafiku umí, ale pracuje bez interaktivního rozhraní z příkazové řádky. Někomu to může vadit, ale protože se příkazy dají zapisovat (libovolným editorem "holého" textu) do souborů a opakovaně spouštět s různými úpravami a modifikacemi, je výsledek nakonec lepší než práce s myší v GIMPU nebo některém z mnoha jiných malování pro Linux (nechci-li jít "s kanonem na vrabce" a spouštět na nějakou drobnost GIMP, sáhnu nejčastěji po Xpaintu).
Pro vektorovou grafiku je zde Inkscape (stejný jako pro windows) a, přiznám se, hlavně používám rovněž vektorový metapost z balíku pro TeX.
Pro 3D grafiku je zde POVRay (kompatibilní s windowsovskou verzi), wysiwyg nádstavby pro něj (pro Linux j jich více a v různé kvlitě) a Blender (opět stejný jako pro windows), který se již od POVRaye oddělil (původně bylo možné v Blenderu vytvořený obázek uložit ve zdrojovém textu pro POVRay a v tomto programu provést finální rendering).
Pokud se týká mulimédií, tak pokud nejsou poprzněna DRM (a taková nemusejí vždy jet ani na windows), tak s nimi nejsou zpravidla problémy.
Hlavní problém Linuxu je ten, že pro něj existuje poměrně málo her, zejména těch "filmrealistických".

Hlavní problém windows

Za hlavní problém windows považuji to, že jsou, podobně jako DOS, záměrně přizpůsobovány co nejnižší vědomostní úrovni uživatele. Systém se "stará" prakticky o vše a uživateli, který by do toho chtěl nějak zasahovat, spíše překáží.
Bezpečnost je řešena naproto stejným způsobem. Systém nejenže nevede uživatele k bezpečnému chování, ale bezpečnému chování spíše systmaticky překáží. Včetně toho, že se bezpečnější nastavení (pokud jsou vůbec dostupná) přinejmenším po každé aktualizaci (ale některá i po restartu systému) sama od sebe nastaví zpět na méně bezpečnou variantu.
Navíc některé programy od Microsoftu (např. office) explicitně vyžadují aby byly spuštěny s právy superuživatele (který už je ve vyšších verzích windows odlišen od běžného uživatele), takže odlišení superuživatele od běžného uživatele v podstatě pozbývá jakýkoli smysl, protože makroviry Wordu a Excelu se šíří se superuživatelskými právy a superuživatelská práva má i kterýkoli soubor, spuštěný z elektronické pošty, pokud je používán MS officový Outlook. A to ani nemluvím o prasečině, kdy se jakákoli příloha automaticky spustí už při najetí (ne tedy kliknutí) myší na příslušnou ikonku (které jinak v systému zobrazí vlastnosti souboru). Soudruzi z Microsoftu si tak ušetřili práci tím, že tyto aplikace využívají systémové programy, ale za cenu, že běžný uživatel musí nějakou cestou získat práva k přímému kontktu s operačním systémem a zasahováním do jeho chodu, což je bezpečnostní průšvih jehož řešení je srovnatelné s kvdraturou kruhu.
Bezpečnostní prasečina je i nezobrazování přípon souboru (a nemožnost jejich změny). Takže např. příloha "Virus.pdf.exe" se zobrazí uživateli jako "Virus.pdf".
Zatímco Linux má řadu bezpečnostních prvků zabudovánu přímo v jádře operačního systému (jak jsem uvdl), windows jsou primárně nebezpečná a tato nebezpečnost je snižována dodatkovými programy a utilitami, případně záplatami, které tím, že se pohybují a pracují mimo jádro systému, pracují s podstatně nižší efektivitou a ukrajují daleko větší část výkonu počítače. Takže nejnovější windows s potřebnými antiviry, firewally a dalšími bezpečnostními programy na nejmodernějším hardware nejedou o mnoho rychleji než nebožky Windows 95 na Pentiu.
Dalším problémem je nekompatibilita jednotlivých verzí windows mezi sebou, která vede k problémům jak s konkrétními programy, tak i s různými periferiemi (tiskárny, scannery), rovněž i s některými součástmi samotného PC (grafické karty, ale nejen ty). Výsledkem je, že řada programů, které uživatel za krvavé peníze zakoupil, po upgrade windows přestane fungovat, případně přestanou fungovat periferie, nebo dokonce zatuhne celý počítač. Potom je následkem upgrade windows nucený nákup nového počítače (nebo alespoň jeho nákladná modernizace) a nákup nových periferií a také nového programového vybavení. Nebo se uživatel vrátí k funkčnímu operačnímu systému, byť staršímu.
Od toho se odvíjí i přetrvávající obliba již oficiálně nepodporovaných Windows XP, která se významná část uživatelů snaží udržet v chodu, protože (správně) předpokládá, že by upgrade jen přinesl komplikace, ale žádný přínos.
Faktem je, že za drahé peníze přinášejí windows daleko méně bezpečnosti  uživtelského komfortu než větší linuxové distribuce.
U linuxu je zpětná kompatibilita daleko lepší, včetně toho, že již nepodporované programy lze na nové verzi systému zkompilovat. Vzhledem k tomu, že na linuxu mohou, na rozdíl od windows, koexistovat různé verze těchže knihoven, není ani problém s doinstalováním starších verzí některých knihoven (pokud ty nové nejsou pro daný strší program zpětně kompatibilní). Ne, že by to byla jednoduchá práce, doporučuji něco takového spíše svěřit nějaké odborné firmě, ale v principu to jde, a to je to hlavní.

Přechod

Přechod na Linux je nejlepší pozvolný, tj. využít možnosti duálního bootování a mít na počítači jak windows tak i Linux. Doporučuji v tom případě vedle linuxového a windowsového disku (diskového oddílu) ještě disk (nebo diskový oddíl) formátovaný na souborový systém VFAT, do něhož umějí zapisovat a číst oba systémy. Windows linuxový disk nebo diskový oddíl "nevidí", Linux do windows vidí, umí z nich číst a v poslední době i zapisovat, nicméně ještě nedávno byl zápis z Linuxu do NTFS "jen na vlastní nebezpečí", takže bych se do zapisování do windowsovského disku nehrnul. Možná jsem však jen ultrakonzervativně opatrný. VFAT má omezení velikosti souboru (někde kolem 2GB), takové soubory se však, mimo filmy v HD kvalitě, u běžného uživatele zpravidla nevidí.
Na Linuxu (respektive v linuxové istribuci) pak lze provádět stále se rozšiřující spektrum úkonů (rozhodně bych začal sledováním internetu a elektronickou poštou) a aktivity pod windows postupně omezovat. Nakonec zůstanou aktivity, které na Linux převést nejdou (některé hry, některé windows only programy, pokud se bez nich člověk neobejde), případně nic.
Já sám, protože hry apod. neprovozuji, jsem asi po pěti letech existence s dual bootem konstatoval, že jsem byl ve windows naposled asi před třemi měsíci, a to ještě z lenosti a ne proto, že by daný úkon nebyl proveditelný z Linuxu. A protože jsem to konstatoval z důvodu, že mi začal harddisk decentně naznačovat svou přípravu k odebrání se na odpočinek do křemíkového nebe, a bylo nutno pořídit nový a reinstalovat systém, jsem se od windows při této akci definitivně odstřihl a zůstal na čistě linuxovém PC.

Tedy, abych to shrnul, Linux je svou podstatou a celkovou koncepcí bezpečnější. Binární nekompatbilita jednotlivých instalací nevadí, naopak je důležitou složkou vyšší bezpečnosti systému, o datovou kompatibilitu je na Linuxu postaráno podstatně lépe než na windows.

7 komentářů:

  1. MINIX nenapsal Linus, ale profesor Tanenbaum, který Linuse dodnes kritizuje. MINIX byl jediný UNIX který si Linus mohl dovolit, vzhledem k tehdejším šíleným cenám, ale protože se na něm nedalo skoro nic dělat, s pěnou u huby si radši napsal vlastní bastl. A ovládl svět.

    MS-DOS nekoupil M$ od IBM, ale přesně naopak. Bill Gates jim ho slíbil když jim nevyšel CP/M, a šel ho hned koupit od Seattle Computer Products, odkud později přetáhl i jeho pachatele, Tima Patersona.
    Nedávno jsem na netu narazil na disketu (obraz samozřejmě) s rannou předprodukční verzí, která ještě ani neuměla spouštět EXE, jenom COM. Je na ní dokonce BASIC který se speciálním příkazem umístí do RAM, a umožňuje spuštění i na počítačích bez BASICu v ROM!

    faraon

    OdpovědětVymazat
  2. ...od systému Minix, který Linus Torvalds vyvinul jako první...
    MINIX A.Tanenbauma je založen na mikrojádře, Linux používá monolitický kernel. Ti dva (Torvalds e Tanenbaum) vedli dost prudkou diskusi, který přístup je lepší. "U mne by Torvalds zkoušku z operačních systémů neudělal." (Tanenbaum je universitní profesor)
    Torvalds začal psát Linux, protože mu nevyhovovala licence Minixu - smí se používat zdarma pouze v universitním prostředí (výuka a studentské práce).

    ...a to proto, že to neprogramovali, ale koupili hotové od IBM.
    Koupili 86-DOS od SCP a prodali IBM (silně zjednodušeno)

    OdpovědětVymazat
    Odpovědi
    1. Děkuji za upřesnění, nicméně to, že MS koupil DOS od IBM jsem někde četl, to není z mé hlavy.

      Vymazat
    2. No MS koupil 86-DOS od SCP a pak ho (ve spolupráci s IBM) upravili pro tehdy nový produkt IBM - Personal Computer (PC). Že by IBM pro svůj PC získávalo operační systém od MS tak, že by jim ho nejprve prodalo, se mi zdá dost nepravděpodobné. MS se při tomto kšeftu povedl geniální tah: prodali MS-DOS neexlusivně IBM, takže jej pak mohli prodávat i jiným (jakmile se objevilo na trhu hafo klonů IBM PC). Tím vlastně začal jejich vzestup.

      Vymazat
    3. Malý a měkký si nechal vývoj DOSu v podstatě zaplatit od IBM a dík nedostatku představivosti na straně IBM, si smluvně zajistil možnost napakovat se na dalším prodeji jeho licencí dalším stranám, protože smluvně to měl ze strany IBM umožněno. Šetřílkům u IBM prostě nedocvaklo, co z toho nakonec bude. Prvoplánově se jim ale líbila ta nízká cena, za kterou ho pořídili. Právně to asi bude v pořádku, eticky asi moc ne, viz třeba tento odkaz:

      http://forwardthinking.pcmag.com/software/286148-the-rise-of-dos-how-microsoft-got-the-ibm-pc-os-contract

      Řekl bych, že co se osobních počítačů a jejich operačních systémů týká, podělali lidé kolem UNIXů snad všechno, nač sáhli, technologicky, obchodně i právně. Neblahé následky tomu odpovídají. Jsem rád, že je k mání aspoň macOS od Applu a že jsou k disposici linuxové distribuce a že ještě pořád jakž takž žijí klony BSD. Osobně by se mi velice líbil komerční UNIXový systém, který by šlo instalovat na platformu x86, jenže OS/2 a další se nejpozději v devadesátých letech přestaly vyvíjet a prodávat. Applův macOS tu sice je, ale je uzavřený (to by nebylo to nejhorší) a vázaný (to už horší je) na HW od Applu. Pokusy přenést ho na jiný HW existují, a některé jsou snad i úspěšné, ale HW musí být co nejvíce shodný s tím, co používají u Applu, což se špatně shání a hlavně se špatně zjišťuje, na čem by se to vůbec dalo zkoušet a navíc to odporuje licenčním smlouvám, takže to potenciálně hrozí problémy.

      Vymazat
  3. Aneb linux vs Windows srozumitelně. Jestli budeš mít náladu a čas, napiš pokračování. Děkuju, přesně tohle vysvětlení jsem potřeboval, leč jinde nenalezl. Linux jsem vyzkoušel, Ubuntu, Mint, chodil svižně, jenže z praktických důvodů - některých programů včetně Zoneru, jsem se vrátil k Windows. Po přečtení uvažuju, že linux zase vyzkouším. Záleží na tom, jestli bez problémů pojede na notebooku a jaký bude nový GIMP. Pak bych opustil Zoner, který mám naposled v krabicové verzi 17. Jako předplacený na rok pro mě skončil.

    OdpovědětVymazat
  4. No ja nevim... su dlouholety uzivatel Linuxu, ale stve me furt vic a vic. Sice se par veci zlepsilo, ale hodne veci se zhorsuje.

    Kdyz neco funguje, tak to funguje hned, treba tiskarnu pripojim a tisknu. Kdysi bych musel hledat ovladace a certvico... Zato kdyz neco nejde, tak s tim casto nejde udelat vubec nic.

    Moje Ubuntu 10.4, ktere jsem loni opustil jelo i po EOL bez problemu, nova instalace 16.4 me stala kopec nervu a furt to neni ono.

    Spousta veci je nedomyslenych, coz se stava vzdy, ale kdysi to slo poresit. Ted je vsechno mnohem slozitejsi a ani zkuseny uzivatel toho moc nenadela. Odhaduju ze za 10-20 let to bude jeste horsi nez Windoze.

    OdpovědětVymazat