Kezdőoldal » Számítástechnika » Egyéb kérdések » Hogyan csinálja a számítógép,...

Hogyan csinálja a számítógép, hogy a FAT/MFT táblából vissza tudja keresni a fájlokat? Mi rá az eljárás?

Figyelt kérdés
Ismerem a merevlemez működését, a sávokat, szektorokat, tudom, hogy a FAT/MFT tárolja azokat a bejegyzéseket, hogy mi van a lemezen. De abból, hogy "C:\valami\valami2\izeke.txt" vagy "usr/home/valaki/akarmi.csv" hogyan képes eljutni a számítógép ahhoz, hogy összeszedi a fájl tényleges adattartalmát és beolvassa a memóriába? Mi alapján lehet rájönni egy elérési útból kiindulva arra, hogy mely szektorokat olvassa egymás után és összeszedje az összetartozó adatokat? És hogyan olvassa tényleges fizikai realitásában azokat a bizonyos szektorokat? Miket követ a számítógép, hogy kitalálja hogy melyik területre kell pozícionálni az író/olvasófejet? Az írás hogyan zajlik a valóságban a lemezre? Ha megadom a rendszernek, hogy "D:\valami\adat.doc" hogy képes "felírni" a lemezre a "fájlban levő adatokat" ? Egyáltalán egy összefüggő mágnesezhető korongon hogy tudják kialakítani ezt a struktúrát?

2015. nov. 19. 20:43
 1/7 Tengor ***** válasza:

Ez a téma nyilván összetettebb, mint hogy ide le lehessen írni. Nem kevés állomás van aközött, hogy C:\valami.txt és aközött, hogy a mágnesezhető felületen a polaritás hogyan alakul.

Szerintem gondolt újra azt a kijelentést, hogy "Ismerem a merevlemez működését" és nézz utána, hogy fizikailag hogyan működik! Aztán nézz utána a partíciós táblák, fájlrendszerek működésének.

Ha még mindig nem elég, akkor a neten ezer meg egy leírást találsz arról, hogy ténylegesen hogy működik a meghajtók vezérlése (olyan szintig, hogy a fejvezérlő tekercset mennyire kell gerjeszteni), milyen rétegek építik fel pl egy oprendszer fájlkezelő részét és hasonlók.

2015. nov. 19. 22:31
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

A c:\valami\izé\doksi.doc és a lemez mágneses felülete között több logikai réteg van, amik elég szigorúan definiáltak, és egymással kommunikálnak.


Most csak pongyolán fogalmazva írom le, nagyjából:

A legmagasabb szinten a fájlok a könyvtárstruktúrában vannak valahol, és összefüggő bájtfolyamként jelennek meg. A programok ezen a szinten látják a fájlokat, kb. így "kapják" meg az op.rendszertől, ill. az op.rendszeren keresztül írják, olvassák.


Az alcsonyabb szinteken már blokkokra vannak osztva, ami blokkok az írási-olvasási igénytől függően bekerülnek egy buffer memória területre. Az írás és olvasás első körben itt történik, és pl. íráskor innen kerül lemezre.


Még lejjebb menve eljutunk a fájlrendszerhez, ami ahány, annyiféle. Itt van kezelve a konkrét fájlrendszer szerinti könyvtárstruktúra, a különböző listák, adatstruktúrák, pl. egy könyvtárban lévő fájlok listája, mappák és fájlok egymásra hivatkozásai, stb. Pl. hogy hogy néz ki és hol van a gyökérkönyvtár a partíción, stb. (Amikor ez az alap struktúra létrejön a partíción, kb. azt hívjuk formázásnak.) Itt a fájlok is már darabokra lehetnek törve (ld. töredezettség), és itt dől el, hogy darabok hogyan állnak össze. Pl. FAT esetén (is) a FAT-táblában egy láncot alkotnak az egyen darabok, tehát az egyik darab bejegyzése hivatkozik a következőre, és ezen kell végigszaladni, hogy meglegyen minden darab. Ezt az op.rendszer, illetve az abba épített fájlrendszer kezelő "réteg" kezelő intézi.


Még lejjebb már bejön a képbe a lemez felépítése, tehát a szektorok, stb. Itt már figyelembe kell venni, hogy a fizikai lemez milyen módon érhető el, bár szerencsére szabványos felületűek. Szóval a lemezen lévő partíciós tábla alapján lehet tudni, hogy melyik szektortól meddig lehet garázdálkodni, és és ezekre kerülnek felírásra a darabokra szedett fájlok. A darabok szektor (vagy néha cluster) méretűek, és ilyen blokkok formájában írható olvasható a lemez. Kisebb darabokat nem lehet elérni. Ha egy fájl csak 5 bájt, akkor is be kell olvasni a teljes szektort, és magasabb szinten "kiszedni" belőle a szükséges részt.


Aztán hogy a lemezen hogyan tárolódik a digitális adat, az már egy még mélyebb szint:

[link]

2015. dec. 22. 13:37
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:
Köszi! A 2-es tényleg igazán hasznos volt, valami hasonlóra gondoltam, hogy el tudjak indulni, de azért jobb lenne egy még jobban a részletekbe menő leírás akár addig, hogy hogy lesz a meghajtóban az, hogy tudja, hogy meddig mozduljon a fej, stb., de ez is király volt, ment a zöld pacsi! :)
2015. dec. 23. 04:45
 4/7 anonim ***** válasza:

Még pár olvasnivaló:

[link]

[link]

[link]


Egyébként ezt a témát így egyben szerintem nem igazán fogod megtalálni (főleg magyarul), mert a részei külön is elég nagy témakörök.

Csak hogy tudj mire keresni:

- Különböző operációs rendszerek alacsony szintű fájlkezelő API-ja, rendszerhívásai,

- operációs rendszerek fájl pufferelési technikái, buffer, cache, stb.

- fájlrendszerek felépítése a lemezen, fájlrendszer szolgáltatások, naplózó fájlrendszerek, adatvédelem, jogosultságok, stb,

- partíciók felépítése (főleg a DOS partíció)

- merevlemez felépítése, utasításkészlete, szabványok (ATA (IDE), SATA, SCSI, SAS,...), bár ez már átfolyik a buszok, interface-ek témakörbe,


stb....

2015. dec. 23. 10:47
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

Ennyi hülyeséget már rég olvastam.

Köszönöm a válaszadóknak, hogy megnevettettek. :)

2016. jan. 24. 11:41
Hasznos számodra ez a válasz?
 6/7 anonim ***** válasza:

A FAT fájlrendszer kb. a legegyszerűbb.

Ez annyiból áll, hogy a formázó program azonos blokkokra osztja fel a lemezt. Egy-egy blokk (szektor) 512 byte hosszú. Ezeket a blokkokat (szektorokat) a FAT táblában sorszámozva nyilvántartja.

A FAT tábla tartalma pedig egyszerűsítve ez:


zsuzsi.jpg____ 34

naked.jpg_____ 79

hazifelad.txt_ 96


ahol a számok adott file első blokkját (szektorát) jelzik.

A progi kiolvassa a FAT táblából, a zsuzsi.jpg file kezdő szektorát (34). Oda ugrik a 34. szektorra, beolvassa a teljes szektorhosszat (512 byte, és ez tartalmazza a file tartalmát (részben), plusz a végén a köv. szektort), majd a beolvasott adat végén lévő számot, amely a file következő szektorára mutat, ezt csinálja egészen addig, amíg az éppen beolvasott szektor utolsó byte-jai nem tartalmaznak egy file vége jelet (EOF), mert ez azt jelenti, hogy a filenak ott a vége. Ekkor megszakítja az olvasást.

Ennyi.


Nincs semmiféle fejvezérlő tekercs gerjesztés, meg egyéb hülyeség. Fejvezérlő tekercs egyébként sem található az adattárolókban. Ilyen alkatrész nem létezik.

2016. jan. 24. 12:12
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:

A struktúrát meg úgy alakítják ki, hogy az adattárolókon van egy bios, amelynek elég 3 adatot megadni, ezek a C,H,S. Azaz: Cilynder, Head, Sector. (cilinder, fej, szektor) és ebből az adattároló (HDD) már tudja is, hogy melyik szektor adattartalmára kiváncsi a programozó, valamint azt is, hogy éppen írni, vagy olvasni kivánja azt.


A cilinder a fizikai, mágnesezhető korong amely az adatokat tartalmazza, a fej adott cilinderhez tartozik és alapban lehet alsó vagy felső (cilinder alja vagy teteje) és ehhez a szektor sorszáma, azaz a cilinder hanyadik blokkjára kiváncsi a fejlesztő, vagy későbbiekben az user.

2016. jan. 24. 12:20
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!