Československá literární komunita
Tak jako generace autorů před vámi, publikujte svoji psanou tvorbu. Podělte se o svoje názory a sbírejte zpětnou vazbu na svoje díla. Inspirujte se a učte od nejlepších.
Přidejte seOtevřená náruč versus zamčené vězení
31. 03. 2006
0
0
4037
Autor
Danny
Většina z vás asi ví, co je to na počítači soubor. Zjednodušeně řečeno je to jeden dokument: jeden kus textu, obrázek, zvuková nahrávka či třeba uložená pozice v počítačové hře. Soubor má své jméno a je uložený někde na pevném disku, CDčku či jiném médiu. Je možné jej posílat a kopírovat z jednoho počítače na druhý, čili od jednoho člověka či programu (třeba toho, který jej vytvořil) k jinému člověku či programu (který jej chce třeba přečíst čili upravit). Až doposud jsem neřekl nic nového.
Podstatná, klíčová věc, kterou se budu snažit vysvětlit je jak takový soubor vypadá uvnitř, čili jak jej vnímá počítač nebo (přesněji) programy na počítači spuštěné.
Slovo "počítač" je odvozeno od slova "počítat". Nebojte se, žádnou složitou matematiku na vás nevytasím, pouze se zmíním o číslech: soubor je uložen jako množství čísel. Můžeme si jej představit jako proud malých celých čísel od nuly do 255.
O těchto číslech je známo jejich (konečný) počet, přesné pořadí a jméno, pod kterým se na ně budeme odkazovat - to je vše.
Malý příklad: máme soubor "pokus.txt" a v něm na jednom řádku napsáno "ahoj" (bez uvozovek). Pro počítač a programy je jeho obsahem proud čísel "97 104 111 106 13 10". "97" je "a", "104" je "h", "111" je "o", "106" je "j" a "13" a "10" těsně za sebou znamenají "konec řádku".
Jak a kdo určuje, které číslo odpovídá kterému písmenu? A co v případě složitějších souborů, jako jsou obrázky, hudba či animace? Jak je vykouzlit z proudu čísílek? Odpověď je překvapivá - je věcí každého programu, jakým způsobem čísla přečte či zapíše.
Zde přicházíme ke klíčovému pojmu, který musím v našem povídání definovat. Je to pojem formát souboru. Formát je právě onen předpis, který určuje, co čísla znamenají. V našem příkladu ze souborem "ahoj" byl použit formát zvaný "čistý text" nebo anglicky "plain text". Tento formát je v podstatě jednoduchý, jednomu číslu odpovídá jeden znak a několik čísel je rezervováno jako značky konce řádku či souboru. Pro hudbu, animace, obrázky či složitější texty (sestavené z různých typů písma atd.) se používají daleko komplikovanější formáty. Pokud program zná formát, dokáže soubor přečíst či vytvořit.
Jak program pozná, v jakém formátu soubor je? Existuje několik způsobů, všechny jsou v podstatě věcí dohody. Jedna taková dohoda například říká, že na konci jména souboru je přípona, čili tečka a za ní několik málo písmen určujících formát souboru: tak můžeme vidět, že například soubory "pokus.txt" a "dopis.txt" jsou čistý text, soubor "fotka.jpg" je obrázek, "krajina.jpg" rovněž obrázek stejného formátu, "neco.pcx" taky obrázek, jiného formátu... většinou to bývají tři písmena která jsou zkratkou pro něco, co souviselo se vznikem či funkcí daného formátu... Existují i jiné způsoby jak určit formát, ale nebudu je pro jednoduchost uvádět.
Až doposud bylo všechno v pořádku - ale nyní přichází zásadní kámen úrazu: Pokud program zná formát, dokáže soubor přečíst či vytvořit. "Znát formát" však znamená "znát přesně způsob, specifikaci, klíč, jakým čísílkům přiřadit význam, obsah". Totiž, a hlavně, ne u všech formátů je tato specifikace veřejně známa. Pokud program neví které číslo co znamená (je to utajeno), nemá jak odkrýt, co v souboru vlastně je. Formáty podle toho dělíme na otevřené - je veřejně známa specifikace a uzavřené specifikace známa není.
Hypotetický příklad, na kterém je vidět hlavní problém celé věci: máme dva programy, pojmenujeme je pro ilustraci "Hodný" a "Zlý". Oba slouží například ke kreslení obrázků. Program "Hodný" umí (synonyma: podporuje, zná) tři formáty: PCX, JPG a PNG. Program "Zlý" umí čtyři formáty PCX, JPG, PNG a ZLY.
Formáty PCX, JPG a PNG jsou otevřené - čili je veřejně známo, jak jsou data uložena a jak je číst/zapisovat. Editor "Zlý" však navíc používá formát ZLY, který vymysleli tvůrci tohoto programu a jeho specifikaci utajují.
Také si představme, že program "Zlý" je udělán tak, že pokud uživatel zadá, že chce uložit soubor, uloží se právě ve formátu "ZLY" - a pokud chce uživatel uložit soubor třeba jako PNG, musí složitě klikat přes tři menu a možná ani neví, že to jde.
Jdeme dál: předpokládejme, že máme skupinu uživatelů používající program "Zlý" a posílají si mezi sebou obrázky - zdá se jim, že je všechno v pořádku. Objeví se uživatel programu "Hodný" a chce se s nimi také bavit: uživatelé mu pošlou například soubor "MocDobryObraz.zly" . Uživatel programu "Hodný" se snaží obrázek otevřít - což se mu nepodaří, protože program "Hodný" vidí - jako všechny programy - pouze čísílka a bez specifikace formátu ZLY nedokáže určit, co znamenají. Uživatel "Hodného" programu napíše tedy tvůrcům programu něco ve stylu " Váš program Hodný je moc super, ale nedokázal otevřít soubor MocDobryObraz.zly . Mohli byste to opravit?" Tvůrci programu "Hodný" však nevědí, jak je specifikován formát ZLY protože tvůrci programu "Zlý" to tají a tím pádem našemu uživateli nemohou pomoci.
Všimněte si: navenek (pro normální uživatele) to vypadá, že je to program "Hodný", který nefunguje, zlobí, je neschopný... protože nedokáže otevřít soubor. Je to ale "vina" programu "Zlý", protože napsal data "tajným" způsobem, který nikdo jiný neumí přečíst.
Pokud náš uživatel chce otevřít soubor s uzavřeným formátem ZLY, je tedy nucen program "Zlý" a jedině právě ten si koupit - a tím jeho autoři vydělají! Pokud by se jim například podařilo rozšířit program "Zlý" mezi větší množství lidí, ten zbytek by byl "diskriminován" nemožností otevřít spoustu obrázků...
Uzavřených formátů je bohužel velké množství. Vytvářejí je zejména komerční programy některých velkých firem, které mají většinový podíl na trhu: nutí ten zbytek, aby používal jejich programy a třeba i jejich hardware či jiné technologie. Jde o velké zlo, které se však obtížně vysvětluje netechnickým, "obyčejným" uživatelům, kteří se diví "co máte proti systému XY" - vidíte, kolik jsem musel popsat odstavců, abych to vysvětlil.
Pokud se uzavřené formáty příliš rozšíří, bude to znamenat větší "ždímání" peněz z uživatelů: mimo souborů se může jednat třeba o způsobu připojení k síti: představte si, že pokud byste si nekoupili např. drahý prohlížeč XY, viděli byste z Internetu třeba jen polovinu stránek... zatím tomu tak není, protože Internet je v podstatě postaven na otevřených řešeních.
Takže - snad jste pochopili o co se jedná. Záměrně jsem nepoužíval konkrétní jména existujících programů a firem, aby článek nezaváněl reklamou či antireklamou. Tož tak.
Podstatná, klíčová věc, kterou se budu snažit vysvětlit je jak takový soubor vypadá uvnitř, čili jak jej vnímá počítač nebo (přesněji) programy na počítači spuštěné.
Slovo "počítač" je odvozeno od slova "počítat". Nebojte se, žádnou složitou matematiku na vás nevytasím, pouze se zmíním o číslech: soubor je uložen jako množství čísel. Můžeme si jej představit jako proud malých celých čísel od nuly do 255.
O těchto číslech je známo jejich (konečný) počet, přesné pořadí a jméno, pod kterým se na ně budeme odkazovat - to je vše.
Malý příklad: máme soubor "pokus.txt" a v něm na jednom řádku napsáno "ahoj" (bez uvozovek). Pro počítač a programy je jeho obsahem proud čísel "97 104 111 106 13 10". "97" je "a", "104" je "h", "111" je "o", "106" je "j" a "13" a "10" těsně za sebou znamenají "konec řádku".
Jak a kdo určuje, které číslo odpovídá kterému písmenu? A co v případě složitějších souborů, jako jsou obrázky, hudba či animace? Jak je vykouzlit z proudu čísílek? Odpověď je překvapivá - je věcí každého programu, jakým způsobem čísla přečte či zapíše.
Zde přicházíme ke klíčovému pojmu, který musím v našem povídání definovat. Je to pojem formát souboru. Formát je právě onen předpis, který určuje, co čísla znamenají. V našem příkladu ze souborem "ahoj" byl použit formát zvaný "čistý text" nebo anglicky "plain text". Tento formát je v podstatě jednoduchý, jednomu číslu odpovídá jeden znak a několik čísel je rezervováno jako značky konce řádku či souboru. Pro hudbu, animace, obrázky či složitější texty (sestavené z různých typů písma atd.) se používají daleko komplikovanější formáty. Pokud program zná formát, dokáže soubor přečíst či vytvořit.
Jak program pozná, v jakém formátu soubor je? Existuje několik způsobů, všechny jsou v podstatě věcí dohody. Jedna taková dohoda například říká, že na konci jména souboru je přípona, čili tečka a za ní několik málo písmen určujících formát souboru: tak můžeme vidět, že například soubory "pokus.txt" a "dopis.txt" jsou čistý text, soubor "fotka.jpg" je obrázek, "krajina.jpg" rovněž obrázek stejného formátu, "neco.pcx" taky obrázek, jiného formátu... většinou to bývají tři písmena která jsou zkratkou pro něco, co souviselo se vznikem či funkcí daného formátu... Existují i jiné způsoby jak určit formát, ale nebudu je pro jednoduchost uvádět.
Až doposud bylo všechno v pořádku - ale nyní přichází zásadní kámen úrazu: Pokud program zná formát, dokáže soubor přečíst či vytvořit. "Znát formát" však znamená "znát přesně způsob, specifikaci, klíč, jakým čísílkům přiřadit význam, obsah". Totiž, a hlavně, ne u všech formátů je tato specifikace veřejně známa. Pokud program neví které číslo co znamená (je to utajeno), nemá jak odkrýt, co v souboru vlastně je. Formáty podle toho dělíme na otevřené - je veřejně známa specifikace a uzavřené specifikace známa není.
Hypotetický příklad, na kterém je vidět hlavní problém celé věci: máme dva programy, pojmenujeme je pro ilustraci "Hodný" a "Zlý". Oba slouží například ke kreslení obrázků. Program "Hodný" umí (synonyma: podporuje, zná) tři formáty: PCX, JPG a PNG. Program "Zlý" umí čtyři formáty PCX, JPG, PNG a ZLY.
Formáty PCX, JPG a PNG jsou otevřené - čili je veřejně známo, jak jsou data uložena a jak je číst/zapisovat. Editor "Zlý" však navíc používá formát ZLY, který vymysleli tvůrci tohoto programu a jeho specifikaci utajují.
Také si představme, že program "Zlý" je udělán tak, že pokud uživatel zadá, že chce uložit soubor, uloží se právě ve formátu "ZLY" - a pokud chce uživatel uložit soubor třeba jako PNG, musí složitě klikat přes tři menu a možná ani neví, že to jde.
Jdeme dál: předpokládejme, že máme skupinu uživatelů používající program "Zlý" a posílají si mezi sebou obrázky - zdá se jim, že je všechno v pořádku. Objeví se uživatel programu "Hodný" a chce se s nimi také bavit: uživatelé mu pošlou například soubor "MocDobryObraz.zly" . Uživatel programu "Hodný" se snaží obrázek otevřít - což se mu nepodaří, protože program "Hodný" vidí - jako všechny programy - pouze čísílka a bez specifikace formátu ZLY nedokáže určit, co znamenají. Uživatel "Hodného" programu napíše tedy tvůrcům programu něco ve stylu " Váš program Hodný je moc super, ale nedokázal otevřít soubor MocDobryObraz.zly . Mohli byste to opravit?" Tvůrci programu "Hodný" však nevědí, jak je specifikován formát ZLY protože tvůrci programu "Zlý" to tají a tím pádem našemu uživateli nemohou pomoci.
Všimněte si: navenek (pro normální uživatele) to vypadá, že je to program "Hodný", který nefunguje, zlobí, je neschopný... protože nedokáže otevřít soubor. Je to ale "vina" programu "Zlý", protože napsal data "tajným" způsobem, který nikdo jiný neumí přečíst.
Pokud náš uživatel chce otevřít soubor s uzavřeným formátem ZLY, je tedy nucen program "Zlý" a jedině právě ten si koupit - a tím jeho autoři vydělají! Pokud by se jim například podařilo rozšířit program "Zlý" mezi větší množství lidí, ten zbytek by byl "diskriminován" nemožností otevřít spoustu obrázků...
Uzavřených formátů je bohužel velké množství. Vytvářejí je zejména komerční programy některých velkých firem, které mají většinový podíl na trhu: nutí ten zbytek, aby používal jejich programy a třeba i jejich hardware či jiné technologie. Jde o velké zlo, které se však obtížně vysvětluje netechnickým, "obyčejným" uživatelům, kteří se diví "co máte proti systému XY" - vidíte, kolik jsem musel popsat odstavců, abych to vysvětlil.
Pokud se uzavřené formáty příliš rozšíří, bude to znamenat větší "ždímání" peněz z uživatelů: mimo souborů se může jednat třeba o způsobu připojení k síti: představte si, že pokud byste si nekoupili např. drahý prohlížeč XY, viděli byste z Internetu třeba jen polovinu stránek... zatím tomu tak není, protože Internet je v podstatě postaven na otevřených řešeních.
Takže - snad jste pochopili o co se jedná. Záměrně jsem nepoužíval konkrétní jména existujících programů a firem, aby článek nezaváněl reklamou či antireklamou. Tož tak.