Kde hledat a kam s tím V: Unixová hierarchie - MujMAC.cz - Apple, Mac OS X, Apple iPod

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:

Seriály

Více seriálů



Začínáme s

Kde hledat a kam s tím V: Unixová hierarchie

6. ledna 2005, 00.00 | V minulém díle jsem slíbil dotáhnout do konce popis unixové adresářové hierarchie Mac OS X a jejích zvláštností. Nyní se tedy konečně dozvíte celou pravdu o adresářové struktuře Mac OS X. Vkročíte do doposud nepoznaných adresářů, které se vám skrývaly za blýskavou skořápkou Finderu, a potkáte v nich i nějaké ty divoce žijící unixové nástroje.

V minulém díle jsem slíbil dotáhnout do konce popis unixové adresářové hierarchie Mac OS X a jejích zvláštností. Nyní se tedy konečně dozvíte celou pravdu o adresářové struktuře Mac OS X. Vkročíte do doposud nepoznaných adresářů, které se vám skrývaly za blýskavou skořápkou Finderu, a potkáte v nich i nějaké ty divoce žijící unixové nástroje.


A co je tedy v té unixové hierarchii?

Na to se možná ptáte po přečtení předchozího dílu a lákavého úvodu do dílu tohoto. To co jsme si minule načrtli, je standardní unixová adresářová hierarchie, která je v malých obměnách společná všem unixovým bratránkům Mac OS X, mimo jiné systémům BSD, Linux nebo Solaris. (No dobrá, ale co v ní je?) Pojďme to tedy vzít z opačného konce, než minule, kdy jsme si načrtli celkovou strukturu a uděláme si přehled podle druhů souborů. Mapka z minula vám při tom bude stále sloužit po orientaci a jako počáteční bod pro případné další nadstavbové studium. Přiznám se totiž, že jsem v úvodu trochu lhal, celou pravdu o adresářové struktuře se všemi souvislostmi se zřejmě v tomto článku ani nikde jinde nedozvíte.


Kam přijde unixový software?

Vězte, že pokud instalujete nástroj pro příkazovou řádku, serverovou aplikaci, nahrubo přeportovanou uživatelskou aplikaci z jiného UNIXu nebo knihovnu, nainstaluje se obvykle právě někam do této hierarchie. Slušností je ponechat uživateli možnost nastavit před instalací ze zdrojového kódu přesné umístění. To se obvykle dělá předáním parametrů configure skriptu a nastaví se tím prefix pro všechny cesty, do kterých se bude instalovat. Například v případě prefixu /usr/local se spustitelné soubory nainstalují do /usr/local/bin, knihovny do /usr/local/lib atp. Více o tom naleznete v dokumentaci daného softwaru (většinou soubor INSTALL, jde o běžný textový soubor). Pokud jde o binární (tedy již zkompilovanou) distribuci v podobě běžného instalačního balíčku je zvykem dodržovat běžný prefix /usr/local.

Pro uživatele Maců významnou výjimkou z tohoto pravidla je software nainstalovaný pomocí nástrojů projektu Fink (více v článku Marka Zády). V tom případě je prefixem /sw (připomínám, že jde o adresář sw přímo v kořenovém adresáři). Tento adresář má v sobě obdobu unixové hierarchie, mimo jiné nám už známé adresáře bin nebo lib.

Jak vidíte, unixová hierarchie je skutečně flexibilní, a přestože se zachovávají určitá pravidla, je možné téměř cokoli. Dost možná narazíte na software X11 (více v seriálu Prostředí X11 a Mac OS X), který je nainstalován do adresáře /usr/X11R6/, kde má vlastní adresáře bin, lib, include a man.

Již v základní instalaci Mac OS X je velké množství důležitého softwaru uloženo do standardní adresářové hierarchie, z nejdůležitějších lze například jmenovat software související se zaváděním systému jako mach_init a SystemStarter, software pro správu doplňků jádra (viz minulý díl) kextload a kextunload, programy pro práci souborovými systémy jako fsck , mount a autodiskmount. To všechno jsou programy nezbytné pro chod systému, mimo to jsou zde i jiné běžné nástroje.


Co jsou speciální soubory? aneb Jaktože jsou všechna zařízení a disky na mém startovacím disku?

Na starém dobrém HFS (původní formát klasického Mac OS a jediný dostupný do verze 8.0) byly dva druhy souborů (v širším smyslu toho slova): obyčejné soubory a adresáře neboli složky. Jednoduchost tohoto souborového systému spolu s dodržováním určitých konvencí nám tehdy umožňovala zazálohovat systémový svazek pouhým zkopírováním jeho obsahu ve Finderu.

V souborových systémech unixových systémů jsou navíc především symbolické odkazy a speciální soubory (v užším slova smyslu). Pokud jste byli zatím zvyklí hledat symbolické odkazy pouze v literatuře, nebo ani tam ne, můžete více pochopit z článku Ondřeje Čady. Jde o podobný koncept jako u zástupců, ale implementovaný přímo v souborovém systému, takže jim chtě nechtě rozumí každý program (nemusí vědět, že jde o odkazy na jiný soubor, přesto je může číst a zapisovat do nich).

Speciální soubory jsou soubory, které ve skutečnosti na samotném disku nezabírají žádné místo. Slouží obvykle jako určité brány k vstupním a výstupním zařízením. Jsou umístěny v adresáři /dev. Mimo jiné zde naleznete soubory odpovídající vašim pevným diskům, jednotlivým svazkům, modemu nebo terminálům. Tato část souborového systému se vytváří dynamicky a při kopírování kořenového souborového systému je nutné zachovat adresář /dev, ale kopírovat jeho obsah samozřejmě nemá smysl.

Ve skutečnosti existuje více typů unixových souborů, například pojmenované roury. Vzhledem k tomu, že většina z nás dosud vedla spokojený život, aniž by věděla o rourách ve svých počítačích, natož pojmenovaných, ponechám tyto typy pro samostudium zvláště zvídavým čtenářům.

Dalším systémem, který ve skutečnosti s různými typy souborů nesouvisí, ale s uživatelského hlediska je podobný je připojování souborových systémů. V unixových systémech je, jak jsme si říkali, jeden adresář kořenový (jde o adresář nejvyšší úrovně startovacího svazku). Veškeré připojené svazky se souborovými systémy, pevné disky, optické disky, diskety, flash paměti, které vám obvykle po vložení nebo připojení naskočí na ploše se ve skutečnosti připojí jako adresáře v hierarchii pod kořenovým adresářem. V případě Mac OS X jako podadresáře neviditelného adresáře /Volumes. Pro kopírování systémového disku platí totéž jako pro adresář /dev.


A čím se ještě Mac liší?

Při bližším prozkoumání kořenového adresáře najdeme ještě několik neviditelných souborů, které se na všech unixových systémech nevyskytují:

Network — Adresář, do kterého se připojují síťové servery.

.hidden — Soubor obsahující seznam souborů, které má Finder skrýt (i pokud nemají atribut skrytí nebo tečku na začátku názvu).

.vol — Dynamicky vytvořený adresář, pomocí nějž je zabezpečena zpětná kompatibilita s HFS.

mach_kernel — Soubor obsahující vlastní jádro systému. K němu je dynamicky vytvořen soubor mach_sym a mach. Při zálohování systémového disku je samozřejmě třeba zkopírovat i jádro.

private — Sem jsou na Macu ‚uklizené‘ adresáře etc, tmp a va. /etc, /tmp a /var jsou ve skutečnosti jen symbolické odkazy na tyto adresáře. I na těchto odkazech a jejich cílových adresářích je závislý chod systému.


Závěr

Tímto dílem jsme se dostali na konec dlouhého a spletitého putování po našich pevných discích. Ti z vás, kteří vytrvali až sem, mohou nyní obohaceni o nové znalosti, systematičtěji bojovat se problémy svého počítače.

Závěr seriálu je svým způsobem bonusový, protože se netýká problémů, které uživatelé běžně řeší. Jde spíše o skromný úvod do toho, jak věci fungují a upozornění na to, co je pro Mac specifické. Pokud jste tedy došli až sem, nemáte toho dost a rádi byste se dozvěděli víc, nejlépe vám poslouží kniha věnující se obecně Unixu.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » Informace  

 » Rubriky  » Agregator  

 » Rubriky  » Začínáme s  

Diskuse k článku

 

Vložit nový příspěvek   Sbalit příspěvky

 

Diky

Autor: Paja Muž

Založeno: 07.01.2005, 11:20
Odpovědí: 0

Díky Adame za dobrý seriál a už teď se těším na další, věřím, že téma vybereš opět dobře ...

PN

Odpovědět na příspěvek

roury?

Autor: Ja Muž

Založeno: 08.01.2005, 19:14
Odpovědí: 0

Ze sa tak pytam, ale mozete mi niekto vysvetlit co su to tie pojmenovane roury? Alebo mi dat link na nejaku mudru website?

Odpovědět na příspěvek

RE: roury?

Autor: Adam Nohejl Muž

Založeno: 08.01.2005, 21:48

Roura (obecne) je prostredek do ktereho muze z jednoho konce cpat data a z druheho konce si je brat. Pritom kazdy konec muze byt v jinem procesu (jine aplikaci treba), takze se pouzivaji obvykle pro meziprocesorovou komunikaci.

Pomenovana roura je pak reprezentace takoveho objektu v souborovem systemu. Dvema naprosto nezavislym procesum (tzn. takovym, ktere jeden o druhem nevedi) pak pro komunikaci staci znat umisteni roury v souborovem systemu.

Stejne jako u zarizeni plati, ze neni zadny zvlastni duvod, aby byly v souborovem systemu (proto jsou i nepojmenovane roury), az na to, ze je to elegantni reseni, ktere umoznuje k temto prostredkum pristup konsistentnim zpusobem (tedy vicemene stejne jako k obycejnym souborum).

Anglicky je to named pipe, vice napr. na http://en.wikipedia.org/w
iki/Named_pipe

Odpovědět na příspěvek

RE: RE: roury?

Autor: Jozo Remen Muž

Založeno: 09.01.2005, 11:20

ja by som len doplnil, ze rury patria k zakladnej filozofii Unixoidnych systemov - kopa malickych programcekov si robi svoju pracu a rury ich navzajom prepajaju, teda napr. vystup jedneho programu presmeruju na vstup druheho.
Napr prikaz:

cat subor.txt | grep 'Slovakia' > subor2.txt

urobit to, ze prikaz cat vylistuje obsah textaku subor.txt, rura (pipe) | odovzda vystup (teda text) aplikacii grep (sluzi na vyhladavanie retazcov v texte), ktora vyhlada vsetky retazce obsahujuce slovo 'Slovakia'

nasledne symbol > (specialny typ rury) ulozi vystup do suboru subor2.txt

Takto je mozne v pripade spravneho pouzitia robit absolutne komplikovane veci, ktore by bolo velmi tazke dosiahnut

Staci si predstavit, ze sef vam zada ulohu, aby ste nasli vsetky web clanky za obdobie 2 rokov, ktore obsahuju slovo "Prezident Havel" a aby ste mu tie clanky zaslali na mail
Rucna praca aj na par dni, s rurami a par prikazmi je mozne tuto ulohu vykonat automaticky v priebehu minuty, vratane skomprimovania suborov do archivu a odoslania mailom

Snad je to jasnejsie :)

Odpovědět na příspěvek

RE: RE: RE: roury?

Autor: Ja Muž

Založeno: 09.01.2005, 12:08

Dik moc.
Mala poznamocka - citat: "Staci si predstavit, ze sef vam zada ulohu, aby ste nasli vsetky web clanky za obdobie 2 rokov, ktore obsahuju slovo "Prezident Havel" a aby ste mu tie clanky zaslali na mail"

To smrdi Spotlightom a Automatorom :-)))

Odpovědět na příspěvek

/Volumes

Autor: Plane Muž

Založeno: 09.01.2005, 12:21
Odpovědí: 0

Je mozne macos prinutit, aby standartne mountoval zarizeni do jineho adresare, nez je /Volumes?
Treba do /mnt...

dik

Odpovědět na příspěvek

RE: /Volumes

Autor: Adam Nohejl Muž

Založeno: 09.01.2005, 12:41

V zasade to mozne je, protoze o montovani se stara autodiskmount a ten ma otevreny zdrojovy kod dostupny v projektu Darwin. Melo by to ale za nasledek prinejmensim zmateni programu s grafickym rozhranim (disky by zrejme nebyly na plose Finderu ani v prvni urovni dialogu pro ukladani a otvirani souboru).

Pokud jsi zvykly na jiny adresar, je mnohem elegantnejsi vytvorit si symbolicky link, napr. /mnt -> /Volumes.

Odpovědět na příspěvek

 

 

Odpověď na příspěvek:

ja by som len doplnil, ze rury patria k zakladnej filozofii Unixoidnych systemov - kopa malickych programcekov si robi svoju pracu a rury ich navzajom prepajaju, teda napr. vystup jedneho programu presmeruju na vstup druheho.
Napr prikaz:

cat subor.txt | grep 'Slovakia' > subor2.txt

urobit to, ze prikaz cat vylistuje obsah textaku subor.txt, rura (pipe) | odovzda vystup (teda text) aplikacii grep (sluzi na vyhladavanie retazcov v texte), ktora vyhlada vsetky retazce obsahujuce slovo 'Slovakia'

nasledne symbol > (specialny typ rury) ulozi vystup do suboru subor2.txt

Takto je mozne v pripade spravneho pouzitia robit absolutne komplikovane veci, ktore by bolo velmi tazke dosiahnut

Staci si predstavit, ze sef vam zada ulohu, aby ste nasli vsetky web clanky za obdobie 2 rokov, ktore obsahuju slovo "Prezident Havel" a aby ste mu tie clanky zaslali na mail
Rucna praca aj na par dni, s rurami a par prikazmi je mozne tuto ulohu vykonat automaticky v priebehu minuty, vratane skomprimovania suborov do archivu a odoslania mailom

Snad je to jasnejsie :)


Jméno:

Pohlaví:

,

E-mail:

Předmět:

Příspěvek:

 

Kontrola:

Do spodního pole opište z obrázku 5 znaků:

Kód pro ověření

 

 

 

 

Nejčtenější články
Nejlépe hodnocené články
Apple kurzy

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: