Portál AbcLinuxu, 9. května 2025 19:20

Dotaz: Je adresář opravdu soubor?

21.1.2015 21:54 babickamikoupilapc
Je adresář opravdu soubor?
Přečteno: 948×
Odpovědět | Admin
Dobrý den, ve svém učebním materiálu ohledně OS unix jsem našel tuto informaci:

"Adresáře v unixu jsou soubory. Soubory, které obsahují informace, že jsou s nimi spjaty (patří do nich) další soubory."

Tato informace je bohužel velmi prostá. Ne, že bych jí nevěřil, docela mi dává smysl, ale než si jí plně vštípím do paměti, rád bych požádal zde zkušenější uživatele o její potvrzení/vyvrácení.

Jestliže, budete mít nějaké doplňují a osvětlující informace, budu velmi rád, pokud se o ně podělíte. :)

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.1.2015 22:21 Aleš Kapica | skóre: 52 | blog: kenyho_stesky | Ostrava
Rozbalit Rozbalit vše Re: Je adresář opravdu soubor?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jo je. Zkus použít příkaz stat.
21.1.2015 23:54 Sten
Rozbalit Rozbalit vše Re: Je adresář opravdu soubor?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Soubory v Unixech jsou mnoha typů: prosté, bloková a znaková zařízení, roury, síťová spojení a další. A jeden z těch typů je také adresář.
22.1.2015 00:50 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Je adresář opravdu soubor?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Adresář je v podstatě soubor v jakémkoliv systému. Včetně např prastarého DOSu a jeho FAT systému souborů. (Se kterým jsem kdysi před skoro 30 lety zápolil přes Norton Disk Doctor)

V podstatě vždycky to máš tak, že ve spodu máš posloupnost základních alokačních jednotek disku - sektorů (v FAT clusterů, což bylo několik sektorů za sebou). Pak máš něco, co ti tyhle alokační jednotky seskládá za sebou, označí, že jsou obsazené, nadefinuje, jak za sebou následují a dohromady, jako celek, tvoří posloupnost sektorů(clusterů) soubor. (v linux je to inode v FAT je to její File Allocation Table) Abys se souborem mohl pracovat, musíš se k němu nějak dostat, vědětk kde je. Tím ukazatelem je položka v adresáři, která o souboru nese nějaké informace a hlavní věc, kde ho na tom disku najde - (inode v linuxu, první cluster ve FAT). (když se tohle propojení rozpadlo tak kontroly disku přes CHKDSK vyhazovaly alokované nekonzistentní clustery a generovaly z nich soubůrky)

Adresář je v podstatě stejný soubor jako jiné uživatelské soubory, stejně tak může růst a obsazovat další sektory když v adresáři budeme mít mnoho položek, rozdíl je jen v tom, že jeho struktura je pevně daná a jeho obsah a velikost řídí systém a ne uživatel. Obvykle máš na disku kořenový adresář, což je adresář, kde je přesně popsáno jak ho najít (v FAT to byla pevně definovaná oblast na disku, která mohla mít tím pádem pouze omezený počet položek. V linuxu je to konkrétní inode (inode číslo 2)) od něj se na disku vše odvíjí.

(no možná jsem to moc zjednodušil a někdo se do mne opře.)
22.1.2015 06:56 Kit | skóre: 45 | Brno
Rozbalit Rozbalit vše Re: Je adresář opravdu soubor?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Adresář v Ext2/3/4 je vlastně jen seznam názvů souborů s jejich čísly i-node. Je to soubor, ve kterém už jiné informace nejsou.
Komentáře označují místa, kde programátor udělal chybu nebo něco nedodělal.
22.1.2015 07:09 Filip Jirsák
Rozbalit Rozbalit vše Re: Je adresář opravdu soubor?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Jedna věc je obecný unixový přístup. V unixu je souborem kde co, ne jen adresář - např. i jednotlivá zařízení (mají své soubory v adresáři /dev). To, že je to soubor, znamená, že to vidíte v systému souborů a můžete na tom provádět určité základní operace. Třeba diskový oddíl nebo celý disk jsou také v systému reprezentovány jako soubory, a můžete je jako jakýkoli jiný soubor číst nebo do nich zapisovat.

Druhá věc je to, že v souborových systémech používaných na unixu je adresář na disku zpravidla reprezentován stejně, jako soubor, a tam, kde by měl normální soubor data, má adresář seznam odkazů na soubory, které jsou v tom adresáři (přičemž některé z těch souborů zase mohou být adresáře). Z toho důvodu pak třeba není možné mít v jednom adresáři soubor a adresář se stejným jménem - protože adresář je ve skutečnosti jen zvláštní typ souboru, a dva soubory se stejným jménem mít nemůžete.
23.1.2015 12:23 Peter Fodrek | skóre: 11
Rozbalit Rozbalit vše Re: Je adresář opravdu soubor?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ano je to tak.

Unixova filizofia je taka, ze to co existuje je subor a co bezi(vykonava sa) je proces.

napr. Vlakna (okrem Sunu) boli a vacsinou aj su len procesy so sparvnymi udajmi v U-oblasti... Bol pokus v linuxe iplementoavt vlakan samostatne, ale neviem ako dopadol

Kedze adresar existuje musi byt suborom.

Ono to doslo az do zasurdit. Kazdy proces ma subor typu adresar v adresari /proc, kde su udje o procese a s prislusnymi pravmi sa aj daju menit

cat /proc/1/status Name: init State: S (sleeping) Tgid: 1 Ngid: 0 Pid: 1 ... Seccomp: 0 Cpus_allowed: f Cpus_allowed_list: 0-3 Mems_allowed: 00000000,0000000

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.