Fórum Root.cz
Hlavní témata => Hardware => Téma založeno: Libor Kopřiva 14. 08. 2015, 22:16:54
-
Nevite nekdo, co se fyzicky deje se souborem pri jeho prejmenovani? Smaze se a vytvori se novy, jak by napovidal popis prikazu mv? A pokud uz existuje soubor daneho jmena, co se fyzicky stane s nim?
-
Si vemte soubor tak 1 GB. Zkuste mv na jiny FS a mv do jineho adresare na temze FS. Schvalne, co myslite, ze se stane?
-
Nevite nekdo, co se fyzicky deje se souborem pri jeho prejmenovani? Smaze se a vytvori se novy, jak by napovidal popis prikazu mv? A pokud uz existuje soubor daneho jmena, co se fyzicky stane s nim?
Při přejmenování v rámci jednoho souboru se pouze změní jeho název. Totéž se děje při přesunu mezi adresáři v rámci souborového systému.
Pokud cílový název souboru již existuje, je odebrán původnímu souboru a přidělen novému souboru. Pokud byl jediným názvem původního souboru, bude tímto smazán. Je to atomická operace - dá se tímto způsobem simulovat transakce.
-
Diky. Je to pro me trochu prekvapive. Myslel bych si, ze pri delsim novem nazvu nebo presunu do jineho adresare, dojde k preskupeni (realokaci) dat.
Jen bych jeste dodal, ze fyzicky se to vlastne nemaze.
-
v ramci jednoho fs se jen pocachruje s metadaty o souboru a s vlastnimi daty se nedeje nic.
-
Diky. Je to pro me trochu prekvapive. Myslel bych si, ze pri delsim novem nazvu nebo presunu do jineho adresare, dojde k preskupeni (realokaci) dat.
Jen bych jeste dodal, ze fyzicky se to vlastne nemaze.
V ext3 je soubor uložen pod číslem, a ne pod jménem. Říká se mu inode. Jméno není nic jiného, než záznam v adresáři, že se váže k nějakému inode. Přejmenování, či přesunutí v rámcí filesystému tedy neznamená nic jiného, než vytvoření nového záznamu se stejným odkazem na inode a smazání starého záznamu, přičemž soubor stále existuje pod stejným inode, tam se nic nemění.
Takhle to funguje i ve FAT. Tam je místo inode číslo prvního sektoru, kde se soubor fyzicky na disku nachází. Další číslo sektoru si pak OS odvodí právě z tabulky FAT, podle níž byl tento filesystem pojmenován.
Při přesunu na jiný filesystém je ovšem nutné soubor fyzicky zkopírovat a následně na původním místě smazat. Během této operace tedy soubor částečně existuje na dvou místech současně, což může být problém.
-
Metadata o souborech (název, velikost, datum vytvoření, oprávnění atd.) jsou v souborovém systému uložena zvlášť, samotná data souboru také zvlášť. A adresář je v unixových systémech jenom zvláštní typ souboru, který v datech má uložen seznam souborů (tj. i adresářů), které jsou v něm. Takže někde na disku je uložen seznam souborů v adresáři A, a v tom seznamu je uvedeno například "soubor se jmenuje X, byl vytvořen tehdy a tehdy, vlastníkem je uživatel U, samotná data souboru začínají na disku na pozici P a soubor je dlouhý S bajtů". Takže když soubor přesouváte v rámci jednoho souborového systému, vezme se tenhle záznam a přesune se do jiného adresáře - se samotnými daty na disku se ale nijak nehýbe.
Tolik ten nejjednodušší popis, ve skutečnosti je to komplikovanější - např. data souboru nemusí být uložena souvisle, takže tam nebude jen "začíná na pozici P", ale musí tam být seznam, kde jsou jednotlivé části. A dále ve skutečnosti není v adresáři přímo odkaz na ten soubor, ale je tam jen jeho jméno a odkaz na tzv. inode, což je unikátní číslo souboru v rámci souborového systému. A těch odkazů na jeden inode může být víc (to jsou v unixu pevné odkazy, hardlinky - víc názvů souboru odkazuje na jeden inode a tedy na jeden soubor). Ty odkazy na inody nemusí být jen v souborovém systému, může je mít třeba také aplikace v paměti. A když zanikne poslední odkaz na inode, přestane daný soubor být dosažitelný a operační systém si místo, které zabírala jeho data, označí jako volné. Takže když přejmenujete soubor na jméno jiného existujícího souboru, smaže se v adresáři ten záznam se jménem, který odkazuje na nějaké inode, a místo něj se vloží nový, se stejným jménem, který odkazuje na inode toho přejmenovávaného souboru. Pokud byl ten původní odkaz na soubor poslední, ten původní soubor se smaže. Je ale možné, že na ten soubor odkazoval ještě jiný záznam v souborovém systému, pak bude ten původní soubor dostupný pod tímto jiným jménem. Nebo ten soubor mohla mít otevřený nějaká aplikace, pak pro ni bude stále dostupný, až do uzavření toho souboru nebo ukončení aplikace. A také může nastat případ, že ten soubor už nebyl dostupný z jiného adresáře, ale pouze byl otevřený v aplikaci - takže pro všechny jakoby zmizel a zůstává viditelný jen pro tu aplikaci. Ta aplikace ale může zase do nějaké adresáře zapsat odkaz na ten soubor, a tím se ten soubor zase "objeví" i pro ostatní.
Pokud soubor přesouváte na jiný souborový systém, soubor se nejprve zkopíruje a na konci se ten původní smaže. (Jak plyne z předchozího, kopírovací aplikace by si ho mohla nejprve otevřít, pak smazat a pak teprve kopírovat - dokud by jej měla otevřený, může z něj pořád číst a k jeho fyzickému smazání nedojde. Jenže pak by hrozilo, že se něco pokazí, aplikace například havaruje, a pak byste původní soubor neměl a v cílovém souborovém systému by byla jen jeho část.)
-
Metadata o souborech (název, velikost, datum vytvoření, oprávnění atd.) jsou v souborovém systému uložena zvlášť, samotná data souboru také zvlášť. A adresář je v unixových systémech jenom zvláštní typ souboru, který v datech má uložen seznam souborů (tj. i adresářů), které jsou v něm. Takže někde na disku je uložen seznam souborů v adresáři A, a v tom seznamu je uvedeno například "soubor se jmenuje X, byl vytvořen tehdy a tehdy, vlastníkem je uživatel U, samotná data souboru začínají na disku na pozici P a soubor je dlouhý S bajtů". Takže když soubor přesouváte v rámci jednoho souborového systému, vezme se tenhle záznam a přesune se do jiného adresáře - se samotnými daty na disku se ale nijak nehýbe.
Tohle možná platí u některých FS, ale třeba u EXT2/3/4 to neplatí: Data jsou zvlášť, metadata jsou zvlášť a názvy souborů v adresářích jsou také zvlášť. Při změně názvu souboru nebo přesunu mezi adresáři se nemění data ani metadata (inode) - pouze název souboru je vymazán z jednoho adresáře a vložen do jiného adresáře.
-
Tohle možná platí u některých FS, ale třeba u EXT2/3/4 to neplatí: Data jsou zvlášť, metadata jsou zvlášť a názvy souborů v adresářích jsou také zvlášť.
Některé souborové systémy (např. ReiserFS) zase ukládají data malých souborů přímo do metadat. To jsou ale implementační detaily. Podstatné je to, že uložení dat na disku nevypadá tak, že by byl uložen adresář, v něm název souboru, pak jeho data, pak název dalšího souboru v adresáři, zase jeho data atd. Takže když se přesouvá soubor v rámci jednoho souborového systému, obsah souboru (obvykle) zůstává na svém místě a šíbuje se jen s metadaty.
-
Takže když se přesouvá soubor v rámci jednoho souborového systému, obsah souboru (obvykle) zůstává na svém místě a šíbuje se jen s metadaty.
Právěže s metadaty souboru se také nehýbe. Název souboru totiž v těch metadatech vůbec není - je v datech adresáře.
-
Proč se adresáři říká zrovna "adresář"?
-
Proč se adresáři říká zrovna "adresář"?
Možná proto, že jsou v něm uloženy adresy fyzického uložení souborů a podadresářů. Ve své podstatě je to KVS, tedy slovník.
Proč se adresářům někdy říká "složka" (angl. "folder")?
-
"jsou v něm uloženy adresy fyzického uložení"
To je ale velice user unfriendly název. BFU by pod tím označením mohl očekávat třeba seznam emailových adres. BFU nebude studovat implementační detaily aby mu ten název něco řekl...
Složka je uživatelskému chápání mnohem bližší, protože odpovídá obvyklému uspořádání papírových dokumentů. Včetně toho že ve složce můžou být podsložky.
-
Složka je uživatelskému chápání mnohem bližší, protože odpovídá obvyklému uspořádání papírových dokumentů. Včetně toho že ve složce můžou být podsložky.
Jenže soubory v adresáři nejsou - dokonce tam nejsou ani jejich metadata. Pouze názvy a adresy na i-node. Proto adresář.
Je to podobné, jako kdybych si udělal kartičkový systém, na kterém by byl název součástky a údaj o tom, kde se fyzicky nachází. Pak bych ten systém nemohl pojmenovat "skříň", ale "kartotéka".
-
Složka je uživatelskému chápání mnohem bližší, protože odpovídá obvyklému uspořádání papírových dokumentů. Včetně toho že ve složce můžou být podsložky.
Bližší možná, ale jako popis reality je to naprosto mimo. Zatímco adresářů se stejnou adresou můžu mít víc, těžko nastane situace kdy bych měl v několika papírových složkách fyzicky identický dokument.
-
"Jenže soubory v adresáři nejsou - dokonce tam nejsou ani jejich metadata. Pouze názvy a adresy na i-node. Proto adresář."
Já to zopakuju - běžný Franta uživatel implementační detaily nezná. Ten vidí soubory a hierarchickou strukturu, v níž jsou soubory v jeho aplikacích dostupné (pokud se vůbec dokáže odpoutat od paradigmatu "všechno nacpu na plochu").
Takže proč tomu dávat laicky nepřívětivé názvy.
-
"Jenže soubory v adresáři nejsou - dokonce tam nejsou ani jejich metadata. Pouze názvy a adresy na i-node. Proto adresář."
Já to zopakuju - běžný Franta uživatel implementační detaily nezná. Ten vidí soubory a hierarchickou strukturu, v níž jsou soubory v jeho aplikacích dostupné (pokud se vůbec dokáže odpoutat od paradigmatu "všechno nacpu na plochu").
Takže proč tomu dávat laicky nepřívětivé názvy.
Pojem "složka" se používá pouze v grafických nadstavbách, tzn. KDE, Gnome, Windows, IDE, ... V operačním systému se stále používá původní pojem, tedy "adresář".
-
Název souboru totiž v těch metadatech vůbec není - je v datech adresáře.
Soubor je posloupnost sektorů nebo clusterů na disku a metadata je všechno ostatní, třeba název souboru + délka v bytech + časové razítka + práva/zabezpečení. Místo uložení různých metadat může být různé, některé FS to mají rozděleno mezi i-node a adresář, na FAT je společně všechno v adresáři.
Takže proč tomu dávat laicky nepřívětivé názvy.
Laikům se říká složka, odborník ví že je to adresář a k laikům se chová shovívavě :)
-
Název souboru totiž v těch metadatech vůbec není - je v datech adresáře.
Soubor je posloupnost sektorů nebo clusterů na disku a metadata je všechno ostatní, třeba název souboru + délka v bytech + časové razítka + práva/zabezpečení. Místo uložení různých metadat může být různé, některé FS to mají rozděleno mezi i-node a adresář, na FAT je společně všechno v adresáři.
Adresář je stejně jako soubor posloupností clusterů na disku. Rozdíl je pouze v jednom bitu umístěném v metadatech. Jméno souboru není součástí metadat souboru, ale je součástí dat adresáře. To umožňuje vytvářet hardlinky a mazat otevřené soubory.
-
Laikům se říká složka,
Laikum se rika BFU.
-
Adresář je stejně jako soubor posloupností clusterů na disku. Rozdíl je pouze v jednom bitu umístěném v metadatech. Jméno souboru není součástí metadat souboru, ale je součástí dat adresáře. To umožňuje vytvářet hardlinky a mazat otevřené soubory.
Na některých FS adresáře nejsou jako soubor, ale jsou v interních strukturách FS.
Jméno souboru jsou metadata z principu, to že to v tvém oblíbeném FS je rozděleno jinak na věci nic nemění.
-
Jméno souboru jsou metadata z principu, to že to v tvém oblíbeném FS je rozděleno jinak na věci nic nemění.
Pokud soubor má 5 názvů a každý z nich je v jiném adresáři: Který z těch názvů je v metadatech? Všechny?
Adresář je pouze speciální datový soubor obsahující názvy souborů. V případě FAT obsahuje ještě informace osouboru, u Ext2/3/4 už jen čísla i-node.
-
Pokud soubor má 5 názvů a každý z nich je v jiném adresáři: Který z těch názvů je v metadatech? Všechny?
Vy pořád píšete o metadatech jako o určité části informací o souboru uložených v nějakých strukturách souborového systému. Jenže „metadata“ je obecný pojem, a jméno souboru je rozhodně součástí metadat souboru. To, že metadata souboru jsou v některých souborových systémech rozdělena na více částí, a název souboru se ukládá zvlášť a ostatní metadata také zvlášť, do části nazvané „metadata“, je pouze implementační detail.
-
Pokud soubor má 5 názvů a každý z nich je v jiném adresáři: Který z těch názvů je v metadatech? Všechny?
Stále to nechápete, všechno co není posloupnost clusterů/sektorů s daty souboru, jsou metadata. Jak se s tím FS popasuje, nebo kam si uloží adresáře, je jeho interní věc.
-
Pokud soubor má 5 názvů a každý z nich je v jiném adresáři: Který z těch názvů je v metadatech? Všechny?
Stále to nechápete, všechno co není posloupnost clusterů/sektorů s daty souboru, jsou metadata. Jak se s tím FS popasuje, nebo kam si uloží adresáře, je jeho interní věc.
Adresář je posloupnost clusterů s daty. Názvy souborů v něm jsou data.
-
Takže proč tomu dávat laicky nepřívětivé názvy.
Protože ten pojem pochází z dob, kdy žádní laici s počítačem nepracovali, takže nebylo potřeba vymýšlet intuitivní metafory.
Nejspíš to bude pocházet z dob, kdy žádné soubory nebyly, byla jenom data uložená na nějakém mediu od indexu i1 do indexu i2 (-> dataset). Aby nevznikaly chyby, vymyslel se adresář (katalog), který datasetům přiděloval jména.
Hezky je to popsáno tady: http://bitsavers.trailing-edge.com/pdf/ibm/360/os/R01-08/C28-6535-0_OS360_Concepts_and_Facilities_1965.pdf strana 10
-
K tomu původnímu dotazu: asi zaleží na tom, v jakém systému (čekal bych, že ve woknousech a třeba v unixu se to liší).
A teď si vemte, že adresář může být i priečinok ...
-
Adresar - directory - byl tradicni nazev z dob MS Dos a unixu. Zhruba od Windows 95 se preslo na slozka - folder, protoze ta ikonka taky tak vypadala. Na Amiga pocitacich byl suplik - drawer, protoze taky ta ikonka vypadala jako suplik. V podstate dnes rozlisis h4x0r4 od BFU prave tim jestli rekne "adresar" nebo "slozka" :)
-
Adresář je posloupnost clusterů s daty. Názvy souborů v něm jsou data.
Mýlíte se. Jsou FS, kde nic takového jako posloupnost clusterů s názvy souborů pro adresář neexistuje, FS to má různě po disku jak se mu to zrovna hodí.
-
Adresář je posloupnost clusterů s daty. Názvy souborů v něm jsou data.
Mýlíte se. Jsou FS, kde nic takového jako posloupnost clusterů s názvy souborů pro adresář neexistuje, FS to má různě po disku jak se mu to zrovna hodí.
Stejně jako soubory, které se v takových systémech vyskytují také různě po disku, jak se to FS zrovna hodí.
-
Proč se adresáři říká zrovna "adresář"?
Proč se adresářům někdy říká "složka" (angl. "folder")?
Řekl bych, že za tím jsou čistě historické důvody. V rané době (a některých OS dodnes) se adresáři říká/lo "directory". A to některý z počítačových pionýrů u nás prostě kdysi přeložil jako adresář (asi jakože "soubor jednotlivých datových záznamů" - tehdy se asi adresář nabízel nejvíce).
Pak se ten název zažil.
Postupem času, tak, jak se počítače vymaňovaly z domény specialstů do konzumního prostředí "Frantů normálních uživatelů", někdo přemýšlel, jak jim tyto staré termíny přirozeněji přiblížit. A jednou ze změn evidentně bylo, že se z "directory" stalo "folder" - a tím česky např. "složka".
Podobně to asi bylo s diskem/svazkem - prostě někdo určitě zkoumal, co si nepolíbený uživatel pod kterými termíny představí a vybral ty, ze kterých se dotčeným nejméně svíral žaludek :)
-
Proč se adresářům někdy říká "složka" (angl. "folder")?
... A jednou ze změn evidentně bylo, že se z "directory" stalo "folder" - a tím česky např. "složka".
Podobně to asi bylo s diskem/svazkem - prostě někdo určitě zkoumal, co si nepolíbený uživatel pod kterými termíny představí a vybral ty, ze kterých se dotčeným nejméně svíral žaludek :)
Z mé strany to byla spíše řečnická otázka. Realita je taková, že jakmile si uživatel spustí konzoli, vidí adresáře a v nich soubory. V GUI vidí složky a v nich dokumenty. Mezi konzolí a GUI se prostě přepíná i náhled na datové struktury.
Podobně je to i s dvojicí disk/svazek. Když před laikem použiji pojem "svazek", bude na mne čumět. Vžil se pojem "partišna" nebo "oddíl", i když to v daném kontextu také bývá špatně. Laik obvykle rozumí pojmu "disk", i když to je úplně špatně. Jak z toho ven?
-
Proč se adresáři říká zrovna "adresář"?
Proč se adresářům někdy říká "složka" (angl. "folder")?
Řekl bych, že za tím jsou čistě historické důvody. V rané době (a některých OS dodnes) se adresáři říká/lo "directory". A to některý z počítačových pionýrů u nás prostě kdysi přeložil jako adresář (asi jakože "soubor jednotlivých datových záznamů" - tehdy se asi adresář nabízel nejvíce).
Pak se ten název zažil.
Postupem času, tak, jak se počítače vymaňovaly z domény specialstů do konzumního prostředí "Frantů normálních uživatelů", někdo přemýšlel, jak jim tyto staré termíny přirozeněji přiblížit. A jednou ze změn evidentně bylo, že se z "directory" stalo "folder" - a tím česky např. "složka".
Podobně to asi bylo s diskem/svazkem - prostě někdo určitě zkoumal, co si nepolíbený uživatel pod kterými termíny představí a vybral ty, ze kterých se dotčeným nejméně svíral žaludek :)
Jmenuje se to jinak, protože je to něco trochu jiného.
Adresáře jsou množiny souborů v souborovém systému, zatímco složky jsou obecné množiny souborů. Složka tedy může být adresář, ale může být i něco jiného jako nejčastěji používané dokumenty, výsledky hledání či třeba odkazy na webové stránce.
Svazek (volume; ve Windows XP přeloženo jako „hlasitost“ :D ) je oblast, ve které se nachází souborový systém. Svazky mohou být oddíly disku, celé disky, disková pole, soubory, LUNy iSCSI ap. (Ve Windows se to ještě často motá s výrazem „jednotka“, což je svazek, který má přiřazené písmeno.)
-
Ne, tehdy šlo právě a jen o zavedení bližšího pojmu.
-
Takže když se přesouvá soubor v rámci jednoho souborového systému, obsah souboru (obvykle) zůstává na svém místě a šíbuje se jen s metadaty.
Právěže s metadaty souboru se také nehýbe. Název souboru totiž v těch metadatech vůbec není - je v datech adresáře.
Název souboru jsou podle mě také metadata...
-
Složka je uživatelskému chápání mnohem bližší, protože odpovídá obvyklému uspořádání papírových dokumentů. Včetně toho že ve složce můžou být podsložky.
Jenže soubory v adresáři nejsou - dokonce tam nejsou ani jejich metadata. Pouze názvy a adresy na i-node. Proto adresář.
Je to podobné, jako kdybych si udělal kartičkový systém, na kterém by byl název součástky a údaj o tom, kde se fyzicky nachází. Pak bych ten systém nemohl pojmenovat "skříň", ale "kartotéka".
Názvy a adresy na inode jsou taktéž metadata ;) ... alespoň tak to chápu já.
-
Jméno souboru jsou metadata z principu, to že to v tvém oblíbeném FS je rozděleno jinak na věci nic nemění.
Pokud soubor má 5 názvů a každý z nich je v jiném adresáři: Který z těch názvů je v metadatech? Všechny?
Adresář je pouze speciální datový soubor obsahující názvy souborů. V případě FAT obsahuje ještě informace osouboru, u Ext2/3/4 už jen čísla i-node.
Implementace uložení a rozdělení metadat do více míst není pro rozlišení co to jsou a nejsou metadata důležitá.
-
Pokud soubor má 5 názvů a každý z nich je v jiném adresáři: Který z těch názvů je v metadatech? Všechny?
Stále to nechápete, všechno co není posloupnost clusterů/sektorů s daty souboru, jsou metadata. Jak se s tím FS popasuje, nebo kam si uloží adresáře, je jeho interní věc.
Adresář je posloupnost clusterů s daty. Názvy souborů v něm jsou data.
Ano a ty data s těmi názvy souborů jsou tzv. metadata. To jak jsou uložená a kde je implementační detail.
-
Ne, tehdy šlo právě a jen o zavedení bližšího pojmu.
Nešlo ;-) (http://blogs.msdn.com/b/oldnewthing/archive/2011/02/16/10129908.aspx)
-
Složka je uživatelskému chápání mnohem bližší, protože odpovídá obvyklému uspořádání papírových dokumentů. Včetně toho že ve složce můžou být podsložky.
Jenže soubory v adresáři nejsou - dokonce tam nejsou ani jejich metadata. Pouze názvy a adresy na i-node. Proto adresář.
Je to podobné, jako kdybych si udělal kartičkový systém, na kterém by byl název součástky a údaj o tom, kde se fyzicky nachází. Pak bych ten systém nemohl pojmenovat "skříň", ale "kartotéka".
Názvy a adresy na inode jsou taktéž metadata ;) ... alespoň tak to chápu já.
No, jsou to rozdílné typy metadat. i-nody jsou strukturální metadata (jak je to uložené), jméno souboru (včetně odkazu na i-node) popisná (co je uložené). Ale oboje to jsou metadata.