Minkä tyyppiset tiedostojärjestelmäobjektit. Tiedostojärjestelmät. Tiedostojärjestelmien tyypit. Tiedostotoiminnot. Luettelot. Toiminnot hakemistojen kanssa. (5)

Olemme tottuneet sellaisiin termeihin kuin "tiedosto" ja "kansio" tai "hakemisto". Mutta mikä on tämä mekanismi, joka hallitsee tiedostoja, tarkastaa niitä ja ohjaa niiden liikkumista?

Kuvannollisesti levytiedostojen tallennusjärjestelmää voidaan verrata valtavaan ja kaoottisesti järjestettyyn varastoon, johon toimitetaan jatkuvasti uutta tavaraa. Siellä on varastopäällikkö, joka tietää tarkalleen missä kukin tuote sijaitsee ja kuinka niihin pääsee nopeasti käsiksi. Tällaisia ​​tiedostojen tallennusjärjestelmän ylläpitäjiä ovat .

Selvitetään, miten tiedostojärjestelmä toimii, minkä tyyppisiä se on olemassa, ja tarkastellaan tiedostojärjestelmän perustoimintoja, jotka vaikuttavat järjestelmän suorituskykyyn.

Käyttöjärjestelmä antaa jokaiselle tiedostolle nimen, joka osoitteen tavoin tunnistaa sen järjestelmässä. Tämä polku on rivi, jonka alussa ilmoitetaan looginen asema, jolle tiedosto on tallennettu, ja sitten kaikki kansiot näytetään peräkkäin niiden sisäkkäisyyden asteen mukaan.

Kun ohjelma vaatii tiedoston, se lähettää käyttöjärjestelmälle pyynnön, jonka Windows-tiedostojärjestelmä käsittelee. Vastaanotetun polun avulla järjestelmä vastaanottaa tiedoston tallennuspaikan (fyysisen sijainnin) osoitteen ja välittää sen pyynnön lähettäneelle ohjelmalle.

Siten tiedostojärjestelmällä on oma tietokanta, joka toisaalta muodostaa vastaavuuden tiedoston fyysisen osoitteen ja polun välille ja toisaalta tallentaa lisätiedoston attribuutteja, kuten koon, luontipäivämäärän, tiedoston. käyttöoikeudet ja muut.

FAT32- ja NTFS-tiedostojärjestelmissä tällainen tietokanta on Master File Table (MFT).

Mitä itse asiassa tapahtuu, kun siirrät, kopioit ja poistat tiedostoja?

Niin oudolta kuin se saattaakin tuntua, kaikki tiedostojen ja kansioiden toiminnot eivät johda fyysisiin muutoksiin kiintolevyllä. Jotkut toiminnot tekevät vain muutoksia MFT:hen, ja itse tiedosto pysyy samassa paikassa.

Katsotaanpa tarkemmin tiedostojärjestelmän prosessia suoritettaessa perustoimintoja tiedostoilla. Tämä auttaa meitä ymmärtämään, kuinka käyttöjärjestelmä tukkeutuu, miksi joidenkin tiedostojen lataaminen kestää kauan ja mitä on tehtävä käyttöjärjestelmän suorituskyvyn parantamiseksi.

1. Siirrä tiedosto: Tämä toiminto edellyttää polun vaihtamista toiseen. Siksi vain päätiedostotaulukon merkintää tarvitsee muuttaa, eikä itse tiedostoa tarvitse fyysisesti siirtää. Se pysyy samassa paikassa ennallaan.

2. Kopioi tiedosto: Tämä toiminto sisältää tiedoston toisen lisätoteutuksen luomisen uuteen sijaintiin. Tässä tapauksessa MFT:ssä ei luoda vain tietuetta, vaan myös toinen todellinen kopio tiedostosta ilmestyy uuteen paikkaan.

3. Tiedoston poistaminen: Tässä tapauksessa tiedosto sijoitetaan ensin roskakoriin. Kun "Tyhjennä" roskakori -toiminto on kutsuttu, tiedostojärjestelmä poistaa merkinnän MFT:stä. Tässä tapauksessa tiedostoa ei poisteta fyysisesti, se pysyy alkuperäisessä paikassaan. Ja se on olemassa, kunnes se kirjoitetaan uudelleen. Tämä ominaisuus tulee ottaa huomioon poistaessasi luottamuksellisia tiedostoja: on parempi käyttää erityisiä ohjelmia tähän.

Nyt käy selväksi, miksi siirto on nopeampi kuin kopiointi. Toistan, että toisessa tapauksessa päätiedostotaulukkoon tehtävien muutosten lisäksi sinun on myös luotava tiedostosta fyysinen kopio.

Millaisia ​​tiedostojärjestelmiä on olemassa?

1. FAT16 (varattu tiedosto, taulukko 16). Vanha tiedostojärjestelmä, joka pystyi käsittelemään vain enintään 2 Gt:n tiedostoja, tuki enintään 4 Gt:n kiintolevyjä ja pystyi tallentamaan ja käsittelemään enintään 65 636 tiedostoa. Tekniikan kehittyessä ja käyttäjien kasvavien tarpeiden myötä tämä tiedostojärjestelmä korvattiin NTFS:llä.

2. FAT32. Tallennusvälineille tallennetun tiedon määrän kasvaessa kehitettiin ja esiteltiin uusi Windows-tiedostojärjestelmä, joka alkoi tukea jopa 4 Gt:n kokoisia tiedostoja ja asetti kiintolevyn enimmäiskapasiteetiksi 8 TB. Pääsääntöisesti FAT32:ta käytetään tällä hetkellä vain ulkoisilla tallennusvälineillä.

3.NTFS (New Technology File System). Tämä on tavallinen tiedostojärjestelmä, joka on asennettu kaikkiin nykyaikaisiin Windows-käyttöjärjestelmää käyttäviin tietokoneisiin. Tämän tiedostojärjestelmän käsittelemien tiedostojen enimmäiskoko on 16 Tt; Suurin tuettu kiintolevyn koko on 256 TB.

NTFS:n lisäominaisuus on toimintojen kirjaaminen lokiin. Aluksi kaikki muutokset syötetään erityisesti määrätylle alueelle, ja vasta sitten ne kirjataan tiedostotaulukkoon. Tämä auttaa estämään tietojen katoamisen esimerkiksi sähkökatkojen vuoksi.

4. HSF+ (Hierarchical File System+). Vakiotiedostojärjestelmä tietokoneille, joissa on MacOS-käyttöjärjestelmä. Kuten NTFS, se tukee suuria tiedostoja ja kiintolevyjä, joiden kapasiteetti on useita satoja teratavuja.

Jos haluat muuttaa tiedostojärjestelmää, sinun on alustettava kiintolevyosio. Yleensä tämä toimenpide sisältää kaikkien tämän osan olemassa olevien tietojen poistamisen kokonaan.

kuinka selvittää tiedostojärjestelmän tyyppi?

Helpoin tapa: avaa "File Explorer" -> valitse kiinnostava kiintolevyosio -> napsauta sitä hiiren oikealla painikkeella -> valitse näkyviin tulevasta valikosta "Properties" -> valitse avautuvasta ikkunasta " Yleiset” -välilehti.

Windowsin tiedostojärjestelmän ylläpito

On huomattava, että tiedostojärjestelmä ei ylläpidä "järjestystä" kiintolevyllä. Windows-käyttöjärjestelmä on suunniteltu siten, että se tallentaa uudet tiedostot ensimmäiseen kohdistamattomaan soluun, jonka se kohtaa. Lisäksi, jos tiedosto ei mahdu kokonaan tähän soluun, se jaetaan useisiin osiin (fragmentoitu). Vastaavasti tällaisen tiedoston käyttö- ja avaamisaika pitenee, mikä vaikuttaa järjestelmän yleiseen suorituskykyyn.

Tämän estämiseksi ja tiedostojärjestelmän "saamiseksi järjestykseen" sinun on eheytettävä kiintolevyosiot säännöllisesti.

Voit tehdä tämän siirtymällä uudelleen kiinnostavan kiintolevyosion ominaisuuksiin (kuten yllä on kuvattu), siirtymällä "Palvelu"-välilehteen ja napsauttamalla "Eheyttäminen" -painiketta.

Avautuvassa ikkunassa voit määrittää automaattisen levyn eheyttämisen toiminnan.

Voit eheyttää itsesi valitsemalla kiintolevyn osion, napsauttamalla "Analysoi levy" -painiketta -> ja sitten "Levyn eheytys".

Odota toiminnon valmistumista ja sulje ikkuna.

Miksi älypuhelin ei käynnistä ohjelmia muistikortilta? Miten ext4 eroaa pohjimmiltaan ext3:sta? Miksi flash-asema kestää kauemmin, jos alustat sen NTFS-muodossa FATin sijaan? Mikä on F2FS:n suurin ongelma? Vastaukset löytyvät tiedostojärjestelmien rakenteellisista ominaisuuksista. Puhumme niistä.

Johdanto

Tiedostojärjestelmät määrittelevät, kuinka tiedot tallennetaan. Ne määrittävät, mitä rajoituksia käyttäjä kohtaa, kuinka nopeasti luku- ja kirjoitustoiminnot ovat ja kuinka kauan asema toimii ilman vikoja. Tämä koskee erityisesti edullisia SSD-levyjä ja niiden nuorempia veljiä - flash-asemia. Kun tiedät nämä ominaisuudet, voit saada kaiken irti kaikista järjestelmistä ja optimoida sen käytön tiettyihin tehtäviin.

Sinun on valittava tiedostojärjestelmän tyyppi ja parametrit aina, kun sinun on tehtävä jotain ei-triviaalia. Haluat esimerkiksi nopeuttaa yleisimpiä tiedostotoimintoja. Tiedostojärjestelmätasolla tämä voidaan saavuttaa eri tavoilla: indeksointi mahdollistaa nopeat haut ja vapaan lohkon ennakkovaraus helpottaa usein vaihtuvien tiedostojen uudelleenkirjoittamista. RAM-muistin tietojen esioptimointi vähentää tarvittavien I/O-toimintojen määrää.

Sellaiset nykyaikaisten tiedostojärjestelmien ominaisuudet, kuten laiska kirjoittaminen, kopioinnin poistaminen ja muut edistyneet algoritmit, auttavat pidentämään ongelmattoman toiminnan aikaa. Ne ovat erityisen tärkeitä halvoille SSD-levyille, joissa on TLC-muistisiruja, flash-asemia ja muistikortteja.

Eri tasoisille levyryhmille on olemassa erillisiä optimointeja: esimerkiksi tiedostojärjestelmä voi tukea yksinkertaistettua äänenvoimakkuuden peilausta, välitöntä tilannekuvausta tai dynaamista skaalausta ottamatta taltiota offline-tilaan.

Musta laatikko

Käyttäjät käyttävät yleensä käyttöjärjestelmän oletusarvoisesti tarjoamaa tiedostojärjestelmää. He luovat harvoin uusia levyosioita ja ajattelevat vielä harvemmin asetuksiaan - he yksinkertaisesti käyttävät suositeltuja parametreja tai jopa ostavat valmiiksi alustettua mediaa.

Windows-faneille kaikki on yksinkertaista: NTFS kaikissa levyosioissa ja FAT32 (tai sama NTFS) flash-asemissa. Jos NAS on olemassa ja se käyttää jotain muuta tiedostojärjestelmää, se jää useimmille käsittämättömiksi. He vain muodostavat yhteyden siihen verkon kautta ja lataavat tiedostoja ikään kuin mustasta laatikosta.

Androidilla varustetuissa mobiililaitteessa ext4 löytyy useimmiten sisäisestä muistista ja FAT32 microSD-korteilta. Yabloko ei välitä yhtään millainen tiedostojärjestelmä heillä on: HFS+, HFSX, APFS, WTFS... heille on olemassa vain parhaiden suunnittelijoiden piirtämiä kauniita kansio- ja tiedostokuvakkeita. Linux-käyttäjillä on rikkain vaihtoehto, mutta voit lisätä tuen ei-natiivitiedostojärjestelmille sekä Windowsissa että macOS:ssä – siitä lisää myöhemmin.

Yhteiset juuret

Erilaisia ​​tiedostojärjestelmiä on luotu yli sata, mutta nykyaikaisina voidaan pitää hieman yli tusinaa. Vaikka ne kaikki kehitettiin omiin erityisiin sovelluksiinsa, monet liittyivät toisiinsa käsitteellisellä tasolla. Ne ovat samankaltaisia, koska ne käyttävät samantyyppistä (meta)datan esitysrakennetta - B-puita ("bi-trees").

Kuten mikä tahansa hierarkkinen järjestelmä, B-puu alkaa juuritietueella ja haarautuu sitten lehtielementteihin - tiedostojen ja niiden attribuuttien yksittäisiin tietueisiin eli "lehtiin". Pääsyy tällaisen loogisen rakenteen luomiseen oli nopeuttaa tiedostojärjestelmäobjektien etsintää suurilta dynaamilta taulukoilta - kuten usean teratavun kiintolevyiltä tai jopa suuremmilta RAID-ryhmiltä.

B-puut vaativat paljon vähemmän levykäyttöä kuin muut tasapainotetut puut samojen toimintojen suorittamiseksi. Tämä saavutetaan sillä, että B-puiden lopulliset kohteet sijaitsevat hierarkkisesti samalla korkeudella ja kaikkien toimintojen nopeus on täsmälleen verrannollinen puun korkeuteen.

Kuten muillakin tasapainoisilla puilla, B-puilla on sama polkupituus juuresta mihin tahansa lehtiin. Sen sijaan, että ne kasvaisivat ylöspäin, ne haarautuvat enemmän ja kasvavat leveämmäksi: kaikki B-puun haarapisteet tallentavat monia viittauksia lapsiobjekteihin, joten ne on helppo löytää harvemmilla puheluilla. Suuri määrä osoittimia vähentää eniten aikaa vievien levytoimintojen määrää - pään paikannusta mielivaltaisia ​​lohkoja luettaessa.

B-puiden käsite muotoiltiin 70-luvulla, ja sitä on sittemmin paranneltu. Yhdessä muodossa se on toteutettu NTFS-, BFS-, XFS-, JFS-, ReiserFS- ja monissa DBMS-järjestelmissä. Kaikki he ovat sukulaisia ​​tiedon järjestämisen perusperiaatteiden kannalta. Erot koskevat yksityiskohtia, usein varsin tärkeitä. Aiheeseen liittyvillä tiedostojärjestelmillä on myös yhteinen haittapuoli: ne kaikki luotiin toimimaan erityisesti levyjen kanssa jo ennen SSD-levyjen tuloa.

Flash-muisti edistyksen moottorina

Solid-state-asemat ovat vähitellen korvaamassa levyasemia, mutta toistaiseksi ne joutuvat käyttämään niille vieraita, periytyviä tiedostojärjestelmiä. Ne on rakennettu flash-muistiryhmille, joiden toimintaperiaatteet eroavat levylaitteiden toimintaperiaatteista. Erityisesti flash-muisti on tyhjennettävä ennen kirjoittamista, toimintoa, jota NAND-sirut eivät voi suorittaa yksittäisten solujen tasolla. Se on mahdollista vain suurille lohkoille kokonaan.

Tämä rajoitus johtuu siitä, että NAND-muistissa kaikki solut on yhdistetty lohkoiksi, joista jokaisella on vain yksi yhteinen yhteys ohjausväylään. Emme mene sivun organisaation yksityiskohtiin ja kuvaa koko hierarkiaa. Tärkeää on itse solujen ryhmätoimintojen periaate ja se, että flash-muistilohkojen koot ovat yleensä suurempia kuin missä tahansa tiedostojärjestelmässä osoitetut lohkot. Siksi kaikki NAND-flash-asemien osoitteet ja komennot on käännettävä FTL (Flash Translation Layer) -abstraktiokerroksen kautta.

Flash-muistiohjaimet tarjoavat yhteensopivuuden levylaitteiden logiikan kanssa ja tuen niiden alkuperäisten liitäntöjen komentoille. Tyypillisesti FTL on toteutettu heidän laiteohjelmistossaan, mutta se voidaan (osittain) toteuttaa isännässä - esimerkiksi Plextor kirjoittaa SSD-levyilleen ajurit, jotka nopeuttavat kirjoittamista.

Se on mahdotonta ilman FTL:ää, koska jopa yhden bitin kirjoittaminen tiettyyn soluun laukaisee koko sarjan operaatioita: ohjain löytää halutun solun sisältävän lohkon; lohko luetaan kokonaan, kirjoitetaan välimuistiin tai vapaaseen tilaan, poistetaan sitten kokonaan, minkä jälkeen se kirjoitetaan takaisin tarvittavilla muutoksilla.

Tämä lähestymistapa muistuttaa armeijan arkea: antaakseen käskyn yhdelle sotilaalle kersantti muodostaa yleismuodostelman, kutsuu köyhän joukosta ja käskee loput hajottamaan. Harvinaisessa NOR-muistissa organisaatio oli erikoisjoukkoja: jokaista solua ohjattiin itsenäisesti (jokaisella transistorilla oli oma kontakti).

Ohjainten tehtävät lisääntyvät, koska jokaisen flash-muistin sukupolven myötä sen tuotannon tekninen prosessi vähenee tiheyden lisäämiseksi ja tietojen tallennuskustannusten alentamiseksi. Teknisten standardien myötä myös hakkeen arvioitu käyttöikä lyhenee.

Yksitasoisilla SLC-soluilla varustetuilla moduuleilla oli ilmoitettu resurssi 100 tuhatta uudelleenkirjoitusjaksoa ja vielä enemmän. Monet niistä toimivat edelleen vanhoissa flash-asemissa ja CF-korteissa. Yritysluokan MLC:lle (eMLC) resurssi ilmoitettiin välillä 10-20 tuhatta, kun taas tavallisen kuluttajaluokan MLC:n arvoksi on arvioitu 3-5 tuhatta. Tämän tyyppistä muistia puristaa aktiivisesti vielä halvempi TLC, jonka resurssit tuskin saavuttavat tuhatta sykliä. Flash-muistin elinkaaren pitäminen hyväksyttävällä tasolla vaatii ohjelmistotemppuja, ja uusia tiedostojärjestelmiä on tulossa yksi niistä.

Aluksi valmistajat olettivat, että tiedostojärjestelmä ei ollut tärkeä. Itse ohjaimen on palveltava lyhytikäistä joukkoa minkä tahansa tyyppisiä muistisoluja jakaen kuormituksen niiden välillä optimaalisella tavalla. Tiedostojärjestelmän ajurissa se simuloi tavallista levyä ja itse suorittaa matalan tason optimointeja kaikille yhteyksille. Käytännössä optimointi kuitenkin vaihtelee laitteesta toiseen, maagisesta väärennökseen.

Yritysten SSD-levyissä sisäänrakennettu ohjain on pieni tietokone. Siinä on valtava muistipuskuri (puoli gigatavua tai enemmän) ja se tukee monia datatehokkuustekniikoita tarpeettomien uudelleenkirjoitusjaksojen välttämiseksi. Siru järjestää kaikki välimuistin lohkot, suorittaa laiskoja kirjoituksia, suorittaa lennossa duplikoinnin, varaa osan lohkoista ja tyhjentää toiset taustalla. Kaikki tämä taika tapahtuu täysin huomaamatta käyttöjärjestelmälle, ohjelmille ja käyttäjälle. Tällaisella SSD-levyllä ei todellakaan ole väliä, mitä tiedostojärjestelmää käytetään. Sisäisillä optimoinnilla on paljon suurempi vaikutus suorituskykyyn ja resursseihin kuin ulkoisilla optimoinnilla.

Budjetti-SSD-levyt (ja vielä enemmän flash-asemat) on varustettu paljon vähemmän älykkäillä ohjaimilla. Niiden välimuisti on rajoitettu tai puuttuu, eikä kehittyneitä palvelintekniikoita käytetä ollenkaan. Muistikorttien ohjaimet ovat niin primitiivisiä, että usein väitetään, ettei niitä ole ollenkaan. Siksi halvoille laitteille, joissa on flash-muisti, ulkoiset kuormituksen tasapainotusmenetelmät ovat edelleen merkityksellisiä - pääasiassa erikoistuneita tiedostojärjestelmiä käyttämällä.

JFFS:stä F2FS:ään

Yksi ensimmäisistä yrityksistä kirjoittaa tiedostojärjestelmä, joka ottaisi huomioon flash-muistin järjestämisen periaatteet, oli JFFS - Journaling Flash File System. Aluksi tällä ruotsalaisen Axis Communicationsin kehitystyöllä pyrittiin lisäämään Axisin 1990-luvulla valmistamien verkkolaitteiden muistitehokkuutta. JFFS:n ensimmäinen versio tuki vain NOR-muistia, mutta jo toisessa versiossa se ystävystyi NANDin kanssa.

Tällä hetkellä JFFS2:lla on rajoitettu käyttö. Sitä käytetään edelleen pääasiassa sulautettujen järjestelmien Linux-jakeluissa. Se löytyy reitittimistä, IP-kameroista, NAS:ista ja muista esineiden internetin vakituisista käyttäjistä. Yleensä aina, kun tarvitaan pieni määrä luotettavaa muistia.

Toinen yritys kehittää JFFS2:ta oli LogFS, joka tallensi inodeja erilliseen tiedostoon. Tämän idean kirjoittajat ovat IBM:n saksalaisen divisioonan työntekijä Jorn Engel ja Osnabrückin yliopiston opettaja Robert Mertens. LogFS-lähdekoodi on saatavilla GitHubissa. Sen perusteella, että viimeisin muutos siihen tehtiin neljä vuotta sitten, LogFS ei ole saavuttanut suosiota.

Mutta nämä yritykset saivat aikaan toisen erikoistuneen tiedostojärjestelmän - F2FS:n. Sen on kehittänyt Samsung Corporation, jonka osuus maailmassa tuotetusta flash-muistista on huomattava. Samsung valmistaa NAND Flash -siruja omille laitteilleen ja muille yrityksille sekä kehittää SSD-levyjä, joissa on täysin uusia rajapintoja vanhojen levyliitäntöjen sijaan. Erityisen flash-muistille optimoidun tiedostojärjestelmän luominen oli Samsungin näkökulmasta kauan odotettu välttämättömyys.

Neljä vuotta sitten, vuonna 2012, Samsung loi F2FS:n (Flash Friendly File System). Hänen ideansa oli hyvä, mutta toteutus osoittautui karkeaksi. Keskeinen tehtävä F2FS:ää luotaessa oli yksinkertainen: vähentää solujen uudelleenkirjoitustoimintojen määrää ja jakaa niiden kuormitus mahdollisimman tasaisesti. Tämä edellyttää toimintojen suorittamista useille soluille samassa lohkossa samanaikaisesti sen sijaan, että niitä pakotettaisiin yksi kerrallaan. Tämä tarkoittaa, että ei tarvita olemassa olevien lohkojen välitöntä uudelleenkirjoittamista käyttöjärjestelmän ensimmäisestä pyynnöstä, vaan komentojen ja tietojen välimuistiin tallentamista, uusien lohkojen lisäämistä vapaaseen tilaan ja solujen viivästettyä poistamista.

Nykyään F2FS-tuki on jo virallisesti otettu käyttöön Linuxissa (ja siten Androidissa), mutta käytännössä se ei vielä tarjoa erityisiä etuja. Tämän tiedostojärjestelmän pääominaisuus (laiska uudelleenkirjoitus) johti ennenaikaisiin päätelmiin sen tehokkuudesta. Vanha välimuistitemppu huijasi jopa vertailuarvojen varhaiset versiot, joissa F2FS osoitti kuvitteellista etua ei muutaman prosentin (kuten odotettiin) tai jopa useaan kertaan, vaan suuruusluokkaa. F2FS-ajuri yksinkertaisesti raportoi ohjaimen juuri suunnitteleman toimenpiteen valmistumisesta. Kuitenkin, jos todellinen suorituskyvyn lisäys F2FS:lle on pieni, kennojen kuluminen on varmasti pienempi kuin käytettäessä samaa ext4:ää. Ne optimoinnit, joita halpa ohjain ei voi tehdä, suoritetaan itse tiedostojärjestelmän tasolla.

Laajuudet ja bittikartat

Toistaiseksi F2FS:ää pidetään eksoottisena nörteille. Jopa Samsungin omat älypuhelimet käyttävät edelleen ext4:ää. Monet pitävät sitä ext3:n jatkokehityksenä, mutta tämä ei ole täysin totta. Kyse on enemmän vallankumouksesta kuin 2 TB tiedostokohtaisen rajan rikkomisesta ja muiden määrällisten indikaattoreiden lisäämisestä.

Kun tietokoneet olivat suuria ja tiedostot pieniä, osoitus ei ollut ongelma. Jokaiselle tiedostolle oli varattu tietty määrä lohkoja, joiden osoitteet syötettiin vastaavuustaulukkoon. Näin toimi ext3-tiedostojärjestelmä, joka on käytössä tähän päivään asti. Mutta ext4:ssä ilmestyi olennaisesti erilainen osoitusmenetelmä - laajuudet.

Laajuudet voidaan ajatella inodien laajennuksina erillisinä lohkojoukkoina, jotka on osoitettu kokonaan vierekkäisinä sekvensseinä. Yksi laajuus voi sisältää kokonaisen keskikokoisen tiedoston, mutta suurille tiedostoille riittää tusina tai kaksi laajuutta. Tämä on paljon tehokkaampaa kuin satojen tuhansien neljän kilotavun pienten lohkojen käsitteleminen.

Itse tallennusmekanismi on myös muuttunut ext4:ssä. Nyt lohkot jaetaan välittömästi yhdessä pyynnöstä. Eikä etukäteen, vaan välittömästi ennen tietojen kirjoittamista levylle. Laiska monen lohkon allokointi antaa sinun päästä eroon tarpeettomista toiminnoista, joihin ext3 syyllistyi: siinä lohkot uudelle tiedostolle allokoitiin välittömästi, vaikka se mahtuisi kokonaan välimuistiin ja se oli tarkoitus poistaa väliaikaisena.


Rasvarajoitettu ruokavalio

Tasapainotettujen puiden ja niiden muunnelmien lisäksi on olemassa muita suosittuja loogisia rakenteita. On olemassa tiedostojärjestelmiä, joiden organisaatio on täysin erilainen - esimerkiksi lineaarinen. Käytät todennäköisesti vähintään yhtä niistä usein.

Mysteeri

Arvaa arvoitus: 12-vuotiaana hän alkoi lihoa, kuudentoista vuotiaana hän oli tyhmä lihava ja 32-vuotiaana hän lihavoi ja pysyi yksinkertaisena. Kuka hän on?

Aivan oikein, tämä on tarina FAT-tiedostojärjestelmästä. Yhteensopivuusvaatimukset aiheuttivat hänelle huonon perinnöllisyyden. Levykkeillä se oli 12-bittinen, kiintolevyillä se oli alun perin 16-bittinen ja on säilynyt tähän päivään 32-bittisenä. Jokaisessa myöhemmässä versiossa osoitettavien lohkojen määrä kasvoi, mutta mikään ei muuttunut oleellisesti.

Edelleen suosittu FAT32-tiedostojärjestelmä ilmestyi kaksikymmentä vuotta sitten. Nykyään se on edelleen primitiivinen eikä tue pääsynhallintaluetteloita, levykiintiöitä, taustapakkausta tai muita nykyaikaisia ​​tietojen optimointitekniikoita.

Miksi FAT32:ta tarvitaan nykyään? Kaikki on edelleen vain yhteensopivuuden varmistamiseksi. Valmistajat uskovat perustellusti, että mikä tahansa käyttöjärjestelmä pystyy lukemaan FAT32-osion. Siksi he luovat sen ulkoisille kiintolevyille, USB-muistitikulle ja muistikorteille.

Kuinka vapauttaa älypuhelimen flash-muisti

Älypuhelimissa käytettävät microSD(HC)-kortit on oletusarvoisesti alustettu FAT32-muotoon. Tämä on suurin este sovellusten asentamiselle niihin ja tietojen siirtämiselle sisäisestä muistista. Voit voittaa sen luomalla kortille osion ext3:lla tai ext4:llä. Kaikki tiedostomääritteet (mukaan lukien omistaja- ja käyttöoikeudet) voidaan siirtää siihen, joten mikä tahansa sovellus voi toimia ikään kuin se olisi käynnistetty sisäisestä muistista.

Windows ei osaa luoda useamman kuin yhden osion flash-asemille, mutta tätä varten voit käyttää Linuxia (ainakin virtuaalikoneessa) tai kehittynyttä apuohjelmaa loogisen osioinnin kanssa työskentelemiseen - esimerkiksi MiniTool Partition Wizard Free. Link2SD-sovellus ja vastaavat sovellukset tarjoavat paljon enemmän vaihtoehtoja kuin yhden FAT32-osion tapauksessa.


Toinen argumentti FAT32:n valinnan puolesta mainitaan usein sen kirjaamisen puutteena, mikä tarkoittaa nopeampaa kirjoitustoimintoa ja vähemmän NAND Flash -muistisolujen kulumista. Käytännössä FAT32:n käyttö johtaa päinvastaiseen ja aiheuttaa monia muita ongelmia.

Flash-asemat ja muistikortit kuolevat nopeasti, koska kaikki muutokset FAT32:ssa aiheuttavat samojen sektoreiden ylikirjoituksen, joissa kaksi tiedostotaulukkoketjua sijaitsevat. Tallensin koko verkkosivun, ja se kirjoitettiin päälle sata kertaa - jokaisella lisäyksellä flash-asemaan toinen pieni GIF. Oletko julkaissut kannettavan ohjelmiston? Se luo väliaikaisia ​​tiedostoja ja muuttaa niitä jatkuvasti käytön aikana. Siksi on paljon parempi käyttää NTFS:ää flash-asemissa sen vikasietoisen $MFT-taulukon kanssa. Pienet tiedostot voidaan tallentaa suoraan päätiedostotaulukkoon ja sen laajennukset ja kopiot kirjoitetaan flash-muistin eri alueille. Lisäksi NTFS-indeksointi nopeuttaa hakua.

TIEDOT

FAT32:lle ja NTFS:lle ei ole määritelty teoreettisia rajoituksia sisäkkäisyyden tasolle, mutta käytännössä ne ovat samat: ensimmäisen tason hakemistoon voidaan luoda vain 7707 alihakemistoa. Ne, jotka haluavat leikkiä matryoshka-nukkeja, arvostavat sitä.

Toinen ongelma, jonka useimmat käyttäjät kohtaavat, on se, että on mahdotonta kirjoittaa FAT32-osioon yli 4 Gt:n tiedostoa. Syynä on se, että FAT32:ssa tiedostokokoa kuvaa 32 bittiä tiedostonjakotaulukossa ja 2^32 (tarkemmin sanottuna miinus yksi) on tasan neljä keikkaa. Osoittautuu, että vastikään ostetulle flash-asemalle ei voi kirjoittaa normaalilaatuista elokuvaa tai DVD-kuvaa.

Suurten tiedostojen kopioiminen ei ole niin paha asia: kun yrität tehdä niin, virhe näkyy ainakin välittömästi. Muissa tilanteissa FAT32 toimii aikapommina. Esimerkiksi kopioit kannettavan ohjelmiston flash-asemalle ja käytät sitä aluksi ongelmitta. Pitkän ajan kuluttua yksi ohjelmista (esimerkiksi kirjanpito tai sähköposti) turpoaa tietokannasta ja... se yksinkertaisesti lopettaa päivittämisen. Tiedostoa ei voi korvata, koska se on saavuttanut 4 Gt:n rajan.

Vähemmän ilmeinen ongelma on, että FAT32:ssa tiedoston tai hakemiston luontipäivämäärä voidaan määrittää kahden sekunnin sisällä. Tämä ei riitä monille aikaleimoja käyttäville salaussovelluksille. Date-attribuutin alhainen tarkkuus on toinen syy, miksi FAT32:ta ei pidetä kelvollisena tiedostojärjestelmänä turvallisuuden näkökulmasta. Sen heikkouksia voi kuitenkin käyttää myös omiin tarkoituksiin. Jos esimerkiksi kopioit tiedostoja NTFS-osiolta FAT32-taltioon, niistä poistetaan kaikki metatiedot sekä perityt ja erityisesti määritetyt käyttöoikeudet. FAT ei yksinkertaisesti tue niitä.

exFAT

Toisin kuin FAT12/16/32, exFAT on kehitetty erityisesti USB Flash -muistille ja suurille (≥ 32 Gt) muistikorteille. Laajennettu FAT eliminoi edellä mainitun FAT32:n haitan - samojen sektoreiden päällekirjoituksen mahdollisilla muutoksilla. 64-bittisenä järjestelmänä sillä ei ole käytännössä merkittäviä rajoituksia yksittäisen tiedoston koolle. Teoriassa se voi olla 2^64 tavua (16 EB) pitkä, eikä tämän kokoisia kortteja ilmesty pian.

Toinen perustavanlaatuinen ero exFATin välillä on sen tuki pääsynhallintaluetteloille (ACL). Tämä ei ole enää sama yksinkertaisuus 1990-luvulta, mutta muodon suljettu luonne estää exFATin toteuttamisen. ExFAT-tuki on täysin ja laillisesti toteutettu vain Windowsissa (alkaen XP SP2:sta) ja OS X:ssä (alkaen versiosta 10.6.5). Linuxissa ja *BSD:ssä sitä tuetaan joko rajoituksin tai ei aivan laillisesti. Microsoft vaatii lisensoinnin exFATin käyttöön, ja tällä alalla on paljon oikeudellisia kiistoja.

Btrfs

Toinen B-puihin perustuvien tiedostojärjestelmien näkyvä edustaja on nimeltään Btrfs. Tämä FS ilmestyi vuonna 2007, ja se luotiin alun perin Oraclessa SSD- ja RAID-levyjen kanssa työskentelyä varten. Sitä voidaan esimerkiksi skaalata dynaamisesti: luomalla uusia inodeja suoraan käynnissä olevaan järjestelmään tai jakamalla taltio alivolyymeihin varaamatta niille vapaata tilaa.

Btrfs:ssä toteutettu kopiointi-kirjoitusmekanismi ja täydellinen integraatio Device Mapper -ytimen moduuliin mahdollistavat lähes välittömien tilannekuvien ottamisen virtuaalisten lohkolaitteiden läpi. Esipakkaus (zlib tai lzo) ja kopioinnin poistaminen nopeuttavat perustoimintoja ja pidentää samalla flash-muistin käyttöikää. Tämä on erityisen havaittavissa työskenneltäessä tietokantojen (2-4-kertainen pakkaus saavutetaan) ja pienten tiedostojen (ne kirjoitetaan järjestyksessä suuriin lohkoihin ja ne voidaan tallentaa suoraan "lehtiin") kanssa.

Btrfs tukee myös täyttä lokitilaa (tiedot ja metatiedot), äänenvoimakkuuden tarkistusta ilman irrottamista ja monia muita nykyaikaisia ​​ominaisuuksia. Btrfs-koodi on julkaistu GPL-lisenssillä. Tätä tiedostojärjestelmää on tuettu vakaana Linuxissa ytimen versiosta 4.3.1 lähtien.

Lokikirjat

Lähes kaikki enemmän tai vähemmän nykyaikaiset tiedostojärjestelmät (ext3/ext4, NTFS, HFSX, Btrfs ja muut) kuuluvat yleiseen päiväkirjattujen tiedostojen ryhmään, koska ne pitävät kirjaa tehdyistä muutoksista erillisessä lokissa (päiväkirjassa) ja niitä tarkistetaan vikatapaus levytoimintojen aikana. Näiden tiedostojärjestelmien kirjaamisen tarkkuus ja vikasietoisuus ovat kuitenkin erilaisia.

Ext3 tukee kolmea kirjaustilaa: suljettu silmukka, tilattu ja täydellinen kirjaus. Ensimmäisessä tilassa tallennetaan vain yleiset muutokset (metadata), jotka suoritetaan asynkronisesti suhteessa itse tietoihin tapahtuviin muutoksiin. Toisessa tilassa suoritetaan sama metatietojen tallennus, mutta tarkasti ennen muutosten tekemistä. Kolmas tila vastaa täydellistä kirjaamista (muutoksia sekä metatiedoissa että itse tiedostoissa).

Vain viimeinen vaihtoehto varmistaa tietojen eheyden. Loput kaksi vain nopeuttavat virheiden havaitsemista tarkistuksen aikana ja takaavat itse tiedostojärjestelmän eheyden palauttamisen, mutta eivät tiedostojen sisältöä.

Päiväkirjaus NTFS:ssä on samanlainen kuin ext3:n toinen lokitila. Vain metatietojen muutokset kirjataan lokiin, ja itse tiedot voivat kadota vian sattuessa. Tätä kirjausmenetelmää NTFS:ssä ei ole tarkoitettu maksimaalisen luotettavuuden saavuttamiseksi, vaan vain kompromissiksi suorituskyvyn ja vikasietoisuuden välillä. Tästä syystä ihmiset, jotka ovat tottuneet työskentelemään täysin päiväkirjattujen järjestelmien kanssa, pitävät NTFS-pseudojournalointia.

NTFS:ssä toteutettu lähestymistapa on jollain tapaa jopa parempi kuin ext3:n oletusarvo. Lisäksi NTFS luo säännöllisesti tarkistuspisteitä varmistaakseen, että kaikki aiemmin lykätyt levytoiminnot on suoritettu. Tarkistuspisteillä ei ole mitään tekemistä \System Volume Information\ palautuspisteiden kanssa. Nämä ovat vain palvelulokimerkintöjä.

Käytäntö osoittaa, että tällainen osittainen NTFS-päiväkirjaus riittää useimmissa tapauksissa häiriöttömään toimintaan. Loppujen lopuksi, jopa äkillisen sähkökatkon aikana, levylaitteet eivät menetä virtaa välittömästi. Virtalähde ja useat asemien kondensaattorit tarjoavat juuri sen vähimmäismäärän energiaa, joka riittää nykyisen kirjoitustoiminnon suorittamiseen. Nykyaikaisilla SSD-levyillä, niiden nopeudella ja tehokkuudella, on yleensä sama määrä energiaa odottavien toimintojen suorittamiseen. Yritys siirtyä täyteen kirjaamiseen vähentäisi useimpien toimintojen nopeutta merkittävästi.

Kolmannen osapuolen tiedostojen yhdistäminen Windowsissa

Tiedostojärjestelmien käyttöä rajoittaa niiden käyttöjärjestelmätason tuki. Esimerkiksi Windows ei ymmärrä ext2/3/4 ja HFS+, mutta joskus niitä on pakko käyttää. Tämä voidaan tehdä lisäämällä sopiva ohjain.

VAROITUS

Useimmilla ohjaimilla ja lisäosilla, jotka tukevat kolmannen osapuolen tiedostojärjestelmiä, on rajoituksensa, eivätkä ne aina toimi vakaasti. Ne voivat olla ristiriidassa muiden ohjainten, virustentorjuntaohjelmien ja virtualisointiohjelmien kanssa.

Avoin ohjain ext2/3-osioiden lukemiseen ja kirjoittamiseen, jossa on osittainen tuki ext4:lle. Uusin versio tukee laajuuksia ja osioita 16 TB asti. LVM:ää, pääsynhallintaluetteloita ja laajennettuja määritteitä ei tueta.


Total Commanderille on ilmainen laajennus. Tukee ext2/3/4-osioiden lukemista.


coLinux on Linux-ytimen avoin ja ilmainen portti. Yhdessä 32-bittisen ohjaimen kanssa sen avulla voit käyttää Linuxia Windowsissa 2000–7 ilman virtualisointitekniikoita. Tukee vain 32-bittisiä versioita. 64-bittisen muutoksen kehitys peruutettiin. CoLinuxin avulla voit myös järjestää pääsyn ext2/3/4-osioihin Windowsista. Hankkeen tuki keskeytettiin vuonna 2014.

Windows 10:ssä voi jo olla sisäänrakennettu tuki Linux-spesifisille tiedostojärjestelmille, se on vain piilotettu. Näitä ajatuksia ehdottavat ydintason ajuri Lxcore.sys ja LxssManager-palvelu, jonka Svchost.exe-prosessi lataa kirjastona. Lisätietoja tästä on Alex Ionescun raportissa "The Linux Kernel Hidden Inside Windows 10", jonka hän antoi Black Hat 2016 -tapahtumassa.


ExtFS for Windows on Paragonin tuottama maksullinen ohjain. Se toimii Windows 7 - 10 -käyttöjärjestelmissä ja tukee ext2/3/4-taltioiden luku-/kirjoitusoikeutta. Tarjoaa lähes täydellisen tuen ext4:lle Windowsissa.

HFS+ Windows 10:lle on toinen Paragon Softwaren tuottama ohjain. Nimestään huolimatta se toimii kaikissa Windows-versioissa XP:stä alkaen. Tarjoaa täyden pääsyn HFS+/HFSX-tiedostojärjestelmiin levyillä missä tahansa asettelussa (MBR/GPT).

WinBtrfs on Btrfs-ohjaimen varhainen kehitystyö Windowsille. Jo versiossa 0.6 se tukee sekä luku- että kirjoitusoikeutta Btrfs-taltioihin. Se pystyy käsittelemään kovia ja symbolisia linkkejä, tukee vaihtoehtoisia tietovirtoja, ACL:itä, kahta pakkaustyyppiä ja asynkronista luku-/kirjoitustilaa. Vaikka WinBtrfs ei osaa käyttää mkfs.btrfs:ää, btrfs-balancea ja muita apuohjelmia tämän tiedostojärjestelmän ylläpitämiseen.

Tiedostojärjestelmien ominaisuudet ja rajoitukset: yhteenvetotaulukko

Tiedostojärjestelmä Suurin äänenvoimakkuuden koko Rajoita yhden tiedoston kokoa Oikean tiedostonimen pituus Koko tiedostonimen pituus (mukaan lukien polku juuresta) Rajoita tiedostojen ja/tai hakemistojen määrää Tiedoston/hakemiston päivämäärän tarkkuus Oikeudet dos-tu-pa Kovia linkkejä Symboliset linkit Tilannekuvat Tietojen pakkaus taustalla Tietojen salaus taustalla Isoisä-ple-ka-tion tiedot
FAT16 2 Gt 512 tavun sektoreissa tai 4 Gt 64 kt:n klustereissa 2 Gt 255 tavua LFN:llä
FAT32 8 Tt:n sektorit, kukin 2 kt 4 Gt (2^32 - 1 tavu) 255 tavua LFN:llä jopa 32 CDS-alihakemistoa 65460 10 ms (luo) / 2 s (muokkaa) Ei Ei Ei Ei Ei Ei Ei
exFAT ≈ 128 PB (2^32-1 klusteria 2^25-1 tavua) teoreettinen / 512 Tt kolmannen osapuolen rajoitusten vuoksi 16 EB (2^64 - 1 tavu) 2796202 luettelossa 10 ms ACL Ei Ei Ei Ei Ei Ei
NTFS 256 Tt 64 kt:n klustereissa tai 16 Tt 4 kt:n klustereissa 16 Tt (Win 7) / 256 Tt (Win 8) 255 Unicode-merkkiä (UTF-16) 32 760 Unicode-merkkiä, enintään 255 merkkiä elementtiä kohden 2^32-1 100 ns ACL Joo Joo Joo Joo Joo Joo
HFS+ 8 EB (2^63 tavua) 8 EB 255 Unicode-merkkiä (UTF-16) ei rajoiteta erikseen 2^32-1 1 s Unix, ACL Joo Joo Ei Joo Joo Ei
APFS 8 EB (2^63 tavua) 8 EB 255 Unicode-merkkiä (UTF-16) ei rajoiteta erikseen 2^63 1 ns Unix, ACL Joo Joo Joo Joo Joo Joo
Ext3 32 Tt (teoreettisesti) / 16 Tt 4 kt:n klustereissa (e2fs-ohjelmien rajoitusten vuoksi) 2 TB (teoreettisesti) / 16 Gt vanhemmille ohjelmille 255 Unicode-merkkiä (UTF-16) ei rajoiteta erikseen 1 s Unix, ACL Joo Joo Ei Ei Ei Ei
Ext4 1 EB (teoreettisesti) / 16 TB 4 kt:n klustereissa (e2fs-ohjelmien rajoitusten vuoksi) 16 TB 255 Unicode-merkkiä (UTF-16) ei rajoiteta erikseen 4 miljardia 1 ns POSIX Joo Joo Ei Ei Joo Ei
F2FS 16 TB 3,94 TB 255 tavua ei rajoiteta erikseen 1 ns POSIX, ACL Joo Joo Ei Ei Joo Ei
BTRFS 16 EB (2^64 - 1 tavu) 16 EB 255 ASCII-merkkiä 2^17 tavua 1 ns POSIX, ACL Joo Joo Joo Joo Joo Joo

Materiaali katsausluennolle nro 33

erikoisalan opiskelijoille

"Tietoteknologiaohjelmistot"

Tietojenkäsittelytieteen laitoksen apulaisprofessori, Ph.D. Livak E.N.

TIEDOSTOJÄRJESTELMÄT

Peruskäsitteet, tosiasiat

Tarkoitus. Tiedostojärjestelmien ominaisuudetFATVFATFAT 32,HPFSNTFS. Tiedostojärjestelmät UNIX OS (s5, ufs), Linux OS Ext2FS Levyn järjestelmäalueet (osio, taltio). Tiedostojen sijoittamisen ja tiedostojen sijaintitietojen tallennuksen periaatteet. Luetteloiden järjestäminen. Tiedostojen ja hakemistojen pääsyn rajoittaminen.

Taidot

Tiedostojärjestelmän rakenteen tuntemuksen käyttäminen tietokoneen tietojen (tiedostojen ja hakemistojen) suojaamiseen ja palauttamiseen. Tiedostojen pääsynhallinnan järjestäminen.

Tiedostojärjestelmät. Tiedostojärjestelmän rakenne

Levyllä olevat tiedot tallennetaan tiedostoina. Tiedosto on levyn nimetty osa.

Tiedostonhallintajärjestelmät on suunniteltu tiedostojen hallintaan.

Tiedostojärjestelmä tarjoaa mahdollisuuden käsitellä tiedostoihin tallennettuja tietoja loogisella tasolla. Se on tiedostojärjestelmä, joka määrittää tavan, jolla tiedot järjestetään millä tahansa tallennusvälineellä.

Täten, tiedostojärjestelmä on joukko spesifikaatioita ja niitä vastaavia ohjelmistoja, jotka vastaavat tiedostotietojen luomisesta, tuhoamisesta, järjestämisestä, lukemisesta, kirjoittamisesta, muokkaamisesta ja siirtämisestä sekä tiedostojen pääsyn hallinnasta ja tiedostojen käyttämien resurssien hallinnasta.

Tiedostonhallintajärjestelmä on pääalijärjestelmä suurimmassa osassa nykyaikaisia ​​käyttöjärjestelmiä.

Tiedostonhallintajärjestelmän käyttäminen

· kaikki järjestelmän käsittelyohjelmat on yhdistetty datan avulla;

· levytilan keskitetyn jakelun ja tiedonhallinnan ongelmat ratkaistaan;

· käyttäjälle tarjotaan mahdollisuuksia suorittaa tiedostoilla toimintoja (luominen jne.), vaihtaa tietoja tiedostojen ja eri laitteiden välillä, suojata tiedostoja luvattomalta käytöltä.

Joissakin käyttöjärjestelmissä voi olla useita tiedostonhallintajärjestelmiä, jolloin ne voivat käsitellä useita tiedostojärjestelmiä.

Yritetään tehdä ero tiedostojärjestelmän ja tiedostonhallintajärjestelmän välillä.

Termi "tiedostojärjestelmä" määrittelee tiedostoihin järjestettyjen tietojen pääsyn periaatteet.

Termi "tiedostonhallintajärjestelmä" viittaa tiedostojärjestelmän tiettyyn toteutukseen, ts. Tämä on sarja ohjelmistomoduuleja, jotka tarjoavat työskentelyn tiedostojen kanssa tietyssä käyttöjärjestelmässä.

Joten, jotta voit työskennellä jonkin tiedostojärjestelmän mukaisesti järjestettyjen tiedostojen kanssa, kullekin käyttöjärjestelmälle on kehitettävä sopiva tiedostonhallintajärjestelmä. Tämä UV-järjestelmä toimii vain siinä käyttöjärjestelmässä, jota varten se on suunniteltu.

Windows-käyttöjärjestelmäperheessä tärkeimmät tiedostojärjestelmät ovat: VFAT, FAT 32, NTFS.

Katsotaanpa näiden tiedostojärjestelmien rakennetta.

Tiedostojärjestelmässä FAT Minkä tahansa loogisen aseman levytila ​​on jaettu kahteen alueeseen:

järjestelmäalue ja

· tietoalue.

Järjestelmäalue luodaan ja alustetaan alustuksen aikana ja päivitetään myöhemmin, kun tiedostorakennetta käsitellään.

Järjestelmäalue koostuu seuraavista osista:

· käynnistyssektori, joka sisältää käynnistystietueen (boot record);

· varatut sektorit (niitä ei välttämättä ole olemassa);

· tiedostojen varaustaulukot (FAT, tiedostojen varaustaulukko);

· juurihakemisto (ROOT).

Nämä komponentit sijaitsevat levyllä peräkkäin.

Data-alue sisältää juurihakemiston alaisia ​​tiedostoja ja hakemistoja.

Tietoalue on jaettu ns. klusteriin. Klusteri on yksi tai useampi vierekkäinen tietoalueen sektori. Toisaalta klusteri on tiedostolle varatun levymuistin pienin osoitettava yksikkö. Nuo. tiedosto tai hakemisto sisältää kokonaisluvun klustereita. Uuden tiedoston luomiseksi ja levylle kirjoittamiseksi käyttöjärjestelmä varaa sille useita ilmaisia ​​levyklustereita. Näiden klustereiden ei tarvitse seurata toisiaan. Jokaiselle tiedostolle tallennetaan luettelo kaikista kyseiselle tiedostolle määritetyistä klusterinumeroista.

Tietoalueen jakaminen klusteriin sektoreiden sijaan mahdollistaa

· pienentää FAT-taulukon kokoa;

· vähentää tiedostojen pirstoutumista;

· tiedostoketjujen pituus pienenee Þ nopeampi pääsy tiedostoon.

Liian suuri klusterin koko johtaa kuitenkin tietoalueen tehottomaan käyttöön, varsinkin kun kyseessä on suuri määrä pieniä tiedostoja (jokaisessa tiedostossa menetetään keskimäärin puoli klusteria).

Nykyaikaisissa tiedostojärjestelmissä (FAT 32, HPFS, NTFS) tämä ongelma ratkaistaan ​​rajoittamalla klusterin kokoa (enintään 4 kt)

Tietoalueen kartta on T tiedostojen varaustaulukko (File Allocation Table - FAT) Jokainen FAT-taulukon elementti (12, 16 tai 32 bittiä) vastaa yhtä levyklusteria ja kuvaa sen tilaa: vapaa, varattu tai huono klusteri.

· Jos tiedostolle on varattu klusteri (eli varattu), niin vastaava FAT-elementti sisältää tiedoston seuraavan klusterin numeron;

· tiedoston viimeinen klusteri on merkitty numerolla välillä FF8h - FFFh (FFF8h - FFFFh);

· jos klusteri on vapaa, se sisältää nolla-arvon 000h (0000h);

· käyttökelvoton (epäonnistunut) klusteri on merkitty numerolla FF7h (FFF7h).

Näin ollen FAT-taulukossa samaan tiedostoon kuuluvat klusterit on linkitetty ketjuiksi.

Tiedostojen varaustaulukko tallennetaan välittömästi sen jälkeen, kun loogisen levyn käynnistystietue on kuvattu käynnistyssektorin erityisessä kentässä.

Se on tallennettu kahtena identtisenä kopiona, jotka seuraavat toisiaan. Kun taulukon ensimmäinen kopio tuhoutuu, käytetään toista.

Koska FATia käytetään erittäin intensiivisesti levykäytön aikana, se yleensä ladataan RAM:iin (I/O-puskureihin tai välimuistiin) ja pysyy siellä mahdollisimman pitkään.

FATin suurin haitta on sen hidas tiedostojen käsittely. Tiedostoa luotaessa sääntönä on, että ensimmäinen vapaa klusteri varataan. Tämä johtaa levyn pirstoutumiseen ja monimutkaisiin tiedostoketjuihin. Tämä hidastaa tiedostojen käsittelyä.

Voit tarkastella ja muokata FAT-taulukkoa apuohjelmaLevyToimittaja.

Yksityiskohtaiset tiedot itse tiedostosta tallennetaan toiseen rakenteeseen, jota kutsutaan juurihakemistoksi. Jokaisella loogisella asemalla on oma juurihakemistonsa (ROOT).

Juurihakemisto kuvaa tiedostoja ja muita hakemistoja. Hakemistoelementti on tiedostokuvaaja.

Jokainen tiedosto- ja hakemistokuvaaja sisältää sen

· Nimi

· laajennus

luomispäivä tai viimeinen muutos

· luomisen tai viimeisen muokkauksen aika

attribuutit (arkisto, hakemistoattribuutti, taltioattribuutti, järjestelmä, piilotettu, vain luku)

· tiedoston pituus (hakemistolle - 0)

· varattu kenttä, jota ei käytetä

· tiedostoon tai hakemistoon allokoidun klusteriketjun ensimmäisen klusterin numero; Saatuaan tämän numeron käyttöjärjestelmä selvittää FAT-taulukkoon viitaten kaikki muut tiedoston klusterinumerot.

Joten käyttäjä käynnistää tiedoston suorittamista varten. Käyttöjärjestelmä etsii halutun nimisen tiedoston tarkastelemalla nykyisen hakemiston tiedostojen kuvauksia. Kun vaadittu elementti löytyy nykyisestä hakemistosta, käyttöjärjestelmä lukee tämän tiedoston ensimmäisen klusterin numeron ja määrittää sitten jäljellä olevat klusterinumerot FAT-taulukon avulla. Näiden klustereiden tiedot luetaan RAM-muistiin ja yhdistetään yhdeksi jatkuvaksi osaksi. Käyttöjärjestelmä siirtää hallinnan tiedostoon, ja ohjelma alkaa toimia.

Voit myös tarkastella ja muokata juurihakemistoa ROOT apuohjelmaLevyToimittaja.

Tiedostojärjestelmä VFAT

VFAT (virtuaalinen FAT) -tiedostojärjestelmä ilmestyi ensimmäisen kerran Windows for Workgroups 3.11:ssä ja se oli suunniteltu suojatun tilan tiedostojen I/O:lle.

Tätä tiedostojärjestelmää käytetään Windows 95:ssä.

Sitä tuetaan myös Windows NT 4:ssä.

VFAT on Windows 95:n alkuperäinen 32-bittinen tiedostojärjestelmä. Sitä ohjaa VFAT .VXD -ohjain.

VFAT käyttää 32-bittistä koodia kaikkiin tiedostotoimintoihin ja voi käyttää 32-bittisiä suojatun tilan ohjaimia.

MUTTA tiedostojen varaustaulukon merkinnät pysyvät 12- tai 16-bittisinä, joten levy käyttää samaa tietorakennetta (FAT). Nuo. f taulukon muotoVFAT on sama, kuten FAT-muodossa.

VFAT ja "8.3" nimet tukee pitkiä tiedostonimiä. (VFAT:n sanotaan usein olevan FAT, joka tukee pitkiä nimiä).

VFATin suurin haittapuoli on suuret klusterointihäviöt suurilla loogisen levyn kooilla ja itse loogisen levyn koon rajoituksilla.

Tiedostojärjestelmä RASVA 32

Tämä on FAT-taulukon käytön idean uusi toteutus.

FAT 32 on täysin itsenäinen 32-bittinen tiedostojärjestelmä.

Käytettiin ensimmäisen kerran Windows OSR 2:ssa (OEM Service Release 2).

Tällä hetkellä FAT 32:ta käytetään Windows 98:ssa ja Windows ME:ssä.

Se sisältää lukuisia parannuksia ja lisäyksiä aiempiin FAT-toteutuksiin verrattuna.

1. Käyttää levytilaa paljon tehokkaammin, koska se käyttää pienempiä klustereita (4 KB) - on arvioitu säästävän jopa 15%.

2. Siinä on laajennettu käynnistystietue, jonka avulla voit luoda kopioita kriittisistä tietorakenteista Þ lisää levyn vastustuskykyä levyrakenteiden vaurioita vastaan

3. Voi käyttää FAT-varmuuskopiota tavallisen sijaan.

4. Voi siirtää juurihakemistoa, toisin sanoen juurihakemisto voi olla missä tahansa Þ poistaa juurihakemiston koon rajoituksen (512 elementtiä, koska ROOTin piti peittää yksi klusteri).

5. Parannettu juurihakemistorakenne

Lisäkenttiä on ilmestynyt, esimerkiksi luomisaika, luontipäivämäärä, viimeinen käyttöpäivä, tarkistussumma

Pitkälle tiedostonimelle on edelleen useita kahvoja.

Tiedostojärjestelmä HPFS

HPFS (High Performance File System) on korkean suorituskyvyn tiedostojärjestelmä.

HPFS ilmestyi ensimmäisen kerran OS/2 1.2:ssa ja LAN Managerissa.

Listataan HPFS:n tärkeimmät ominaisuudet.

· Suurin ero on tiedostojen levylle sijoittamisen perusperiaatteet ja tiedostojen sijaintitietojen tallentamisen periaatteet. Näiden periaatteiden ansiosta HPFS on tehnyt sen korkea suorituskyky ja vikasietoisuus, on luotettava tiedostojärjestelmä.

· HPFS:n levytilaa ei ole varattu klustereissa (kuten FATissa), vaan lohkot. Nykyaikaisessa toteutuksessa lohkon koko on otettu yhtä sektoria vastaavaksi, mutta periaatteessa se voisi olla eri kokoinen. (Itse asiassa lohko on klusteri, vain klusteri on aina yhtä suuri kuin yksi sektori). Tiedostojen sijoittaminen niin pieniin lohkoihin mahdollistaa käyttää levytilaa tehokkaammin, koska vapaan tilan yläpuolella on keskimäärin vain (puoli sektoria) 256 tavua tiedostoa kohden. Muista, että mitä suurempi klusterin koko, sitä enemmän levytilaa hukkaan.

· HPFS-järjestelmä yrittää järjestää tiedoston vierekkäisiin lohkoihin tai, jos tämä ei ole mahdollista, sijoittaa sen levylle siten, että laajuuksia(fragmentit) tiedostosta olivat fyysisesti mahdollisimman lähellä toisiaan. Tämä lähestymistapa on välttämätön vähentää kirjoitus-/lukupään paikannusaikaa kiintolevy ja odotusaika (viive luku-/kirjoituspään asennuksen välillä haluttuun raitaan). Muistakaamme, että FAT-tiedostossa ensimmäinen vapaa klusteri on yksinkertaisesti varattu.

Laajuudet(laajuus) - tiedostofragmentit, jotka sijaitsevat levyn vierekkäisissä sektoreissa. Tiedostolla on vähintään yksi laajuus, jos se ei ole pirstoutunut, ja muuten useita laajuuksia.

·Käytetty menetelmä tasapainotetut binaaripuut tiedostojen sijaintitietojen tallentamiseen ja etsimiseen (hakemistot tallennetaan levyn keskelle, lisäksi tarjotaan automaattinen hakemistojen lajittelu), mikä on välttämätöntä lisää tuottavuutta HPFS (vs. FAT).

· HPFS tarjoaa erityisiä laajennettuja tiedostomääritteitä, jotka mahdollistavat hallita pääsyä tiedostoihin ja hakemistoihin.

Laajennetut attribuutit (laajennetut attribuutit, EAs ) avulla voit tallentaa lisätietoja tiedostosta. Jokaiseen tiedostoon voidaan esimerkiksi liittää ainutlaatuinen grafiikka (kuvake), tiedoston kuvaus, kommentti, tiedoston omistajan tiedot jne.

C HPFS-osiorakenne


Osion alussa, johon on asennettu HPFS, on kolme lohkosäätimet:

käynnistyslohko

· lisälohko (superlohko) ja

· varalohko (varalohko).

Ne kattavat 18 sektoria.

Kaikki HPFS:n jäljellä oleva levytila ​​on jaettu osiin viereisistä sektoreista - raidat(bändi - nauha, nauha). Jokainen nauha vie 8 Mt levytilaa.

Jokaisella nauhalla on omansa sektorin allokoinnin bittikartta.Bittikartta näyttää mitkä sektorit tietyltä kaistalta ovat varattuja ja mitkä ovat vapaita. Jokainen datakaistan sektori vastaa yhtä bittiä sen bittikartassa. Jos bitti = 1, sektori on varattu, jos 0, niin se on vapaa.

Kahden kaistan bittikartat sijaitsevat vierekkäin levyllä, samoin kuin itse kaistat. Eli raitojen ja korttien järjestys näyttää tältä kuvassa.

VertaileFAT. Koko levylle on vain yksi "bittikartta" (FAT-taulukko). Ja työskennelläksesi sen kanssa sinun on siirrettävä luku-/kirjoituspäät keskimäärin puolen levyn yli.

HPFS:ssä levy on jaettu raidoiksi kiintolevyn luku-/kirjoituspäiden sijoitteluajan lyhentämiseksi.

Harkitsemme ohjauslohkot.

Käynnistyslohko (saapaslohko)

Sisältää taltion nimen, sen sarjanumeron, BIOS-parametrilohkon ja käynnistysohjelman.

Bootstrap-ohjelma löytää tiedoston OS 2 LDR , lukee sen muistiin ja siirtää ohjauksen tälle käyttöjärjestelmän käynnistysohjelmalle, joka puolestaan ​​lataa OS/2-ytimen levyltä muistiin - OS 2 KRNL. Ja jo OS 2 KRIML käyttämällä tiedoston tietoja CONFIG. SYS lataa kaikki muut tarvittavat ohjelmamoduulit ja tietolohkot muistiin.

Käynnistyslohko sijaitsee sektoreissa 0-15.

SuperLohko(super lohko)

Sisältää

· osoitin bittikarttojen luetteloon (bittikarttalohkoluettelo). Tämä luettelo luettelee kaikki levyllä olevat lohkot, jotka sisältävät bittikartat, joita käytetään vapaiden sektoreiden havaitsemiseen;

· osoitin viallisten lohkojen luetteloon (huono lohkoluettelo). Kun järjestelmä havaitsee vaurioituneen lohkon, se lisätään tähän luetteloon, eikä sitä enää käytetä tietojen tallentamiseen.

· osoitin hakemistokaistalle

· osoitin juurihakemiston tiedostosolmuun (F -solmu),

· päivämäärä, jolloin CHKDSK teki osion viimeisen tarkistuksen;

· tiedot raidan koosta (nykyisessä HPFS-toteutuksessa - 8 Mt).

Superkortteli sijaitsee sektorilla 16.

Varaosatlohko(varalohko)

Sisältää

· osoitin hätäkorvauskartalle (hotfix kartta tai hotfix -alueet);

· osoitin vapaiden varalohkojen luetteloon (hakemisto hätävapaiden lohkojen luettelo);

· useita järjestelmälippuja ja kuvauksia.

Tämä lohko sijaitsee levyn sektorissa 17.

Varmuuskopiointilohko tarjoaa korkean vikasietokyvyn HPFS-tiedostojärjestelmälle ja mahdollistaa vaurioituneiden tietojen palauttamisen levyltä.

Tiedostojen sijoitusperiaate

Laajuudet(laajuus) - tiedostofragmentit, jotka sijaitsevat levyn vierekkäisissä sektoreissa. Tiedostolla on vähintään yksi laajuus, jos se ei ole pirstoutunut, ja muuten useita laajuuksia.

Lyhentääkseen kiintolevyn luku-/kirjoituspäiden sijoittamiseen kuluvaa aikaa HPFS-järjestelmä pyrkii

1) sijoita tiedosto vierekkäisiin lohkoihin;

2) jos tämä ei ole mahdollista, sijoita fragmentoidun tiedoston laajuudet mahdollisimman lähelle toisiaan,

Tätä varten HPFS käyttää tilastoja ja yrittää myös varata ehdollisesti vähintään 4 kilotavua tilaa kasvavien tiedostojen loppuun.

Tiedoston sijaintitietojen tallennuksen periaatteet

Jokaisella levyllä olevalla tiedostolla ja hakemistolla on omansa tiedostosolmu F-Node. Tämä on rakenne, joka sisältää tietoa tiedoston sijainnista ja sen laajennetuista määritteistä.

Jokainen F-solmu on käytössä yksi sektori ja se sijaitsee aina tiedoston tai hakemiston lähellä (yleensä välittömästi ennen tiedostoa tai hakemistoa). F-Node-objekti sisältää

· pituus,

· tiedostonimen ensimmäiset 15 merkkiä,

· erityisiä palvelutietoja,

· tilastot tiedostojen käytöstä,

· laajennetut tiedostoattribuutit,

· luettelo käyttöoikeuksista (tai vain osa luettelosta, jos se on erittäin suuri); Jos laajennetut attribuutit ovat liian suuria tiedostosolmulle, siihen kirjoitetaan osoitin niihin.

· assosiatiiviset tiedot tiedoston sijainnista ja alaisuudesta jne.

Jos tiedosto on vierekkäinen, sen sijainti levyllä kuvataan kahdella 32-bittisellä numerolla. Ensimmäinen numero on osoitin tiedoston ensimmäiseen lohkoon ja toinen on laajuuden pituus (tiedostoon kuuluvien peräkkäisten lohkojen lukumäärä).

Jos tiedosto on pirstoutunut, sen laajuuksien sijainti kuvataan tiedostosolmussa ylimääräisillä 32-bittisten numeroiden parilla.

Tiedostosolmu voi sisältää tietoja enintään kahdeksasta tiedoston laajuudesta. Jos tiedostossa on useampia laajuuksia, sen tiedostosolmuun kirjoitetaan osoitin allokaatiolohkoon, joka voi sisältää enintään 40 osoitinta ulottuvuuksiin tai, kuten hakemistopuulohkossa, muihin allokointilohkoihin.

Hakemiston rakenne ja sijoittelu

Käytetään hakemistojen tallentamiseen raita sijaitsee levyn keskellä.

Tätä nauhaa kutsutaan hakemistostabändi.

Jos se on täysin täynnä, HPFS alkaa sijoittaa tiedostohakemistoja muihin raidoihin.

Tämän tietorakenteen sijoittaminen levyn keskelle vähentää merkittävästi keskimääräistä luku-/kirjoituspään paikannusaikaa.

Kuitenkin huomattavasti suurempi panos HPFS-suorituskykyyn (verrattuna hakemistokaistan sijoittamiseen loogisen levyn keskelle) saadaan käyttämällä menetelmä tasapainotetut binaaripuut tiedostojen sijaintitietojen tallentamiseen ja hakemiseen.

Muista se tiedostojärjestelmässä FAT hakemiston rakenne on lineaarinen, ei erityisellä tavalla järjestetty, joten tiedostoa haettaessa sinun on selattava se peräkkäin alusta alkaen.

HPFS:ssä hakemistorakenne on tasapainoinen puu, jonka merkinnät on järjestetty aakkosjärjestykseen.

Jokainen puuhun sisältyvä merkintä sisältää

· tiedostomääritteet,

· osoitin vastaavaan tiedostosolmuun,

· tiedot tiedoston luomisen ajasta ja päivämäärästä, viimeisimmän päivityksen ja pääsyn kellonajasta ja päivämäärästä,

laajennettuja attribuutteja sisältävien tietojen pituus,

· tiedostojen käyttölaskuri,

tiedostonimen pituus

· itse nimi,

· ja muita tietoja.

HPFS-tiedostojärjestelmä tarkastelee vain tarvittavia binaaripuun oksia etsiessään tiedostoa hakemistosta. Tämä menetelmä on monta kertaa tehokkaampi kuin kaikkien hakemiston merkintöjen lukeminen peräkkäin, kuten FAT-järjestelmässä.

Kunkin lohkon koko, jonka mukaan hakemistoja on varattu nykyisessä HPFS-toteutuksessa, on 2 kt. Tiedostoa kuvaavan merkinnän koko riippuu tiedostonimen koosta. Jos nimi on 13 tavua (8.3-muodossa), 2 kt:n lohko voi sisältää jopa 40 tiedostokuvaajaa. Lohkot yhdistetään toisiinsa luettelon avulla.

Ongelmia

Kun tiedostoja nimetään uudelleen, niin sanottua puun tasapainottamista voi tapahtua. Tiedoston luominen, uudelleennimeäminen tai poistaminen voi johtaa peräkkäiset hakemistolohkot. Itse asiassa uudelleennimeäminen voi epäonnistua levytilan puutteen vuoksi, vaikka itse tiedoston koko ei olisi kasvanut. Tämän katastrofin välttämiseksi HPFS ylläpitää pientä joukkoa vapaita lohkoja, joita voidaan käyttää katastrofin sattuessa. Tämä toiminto saattaa edellyttää lisälohkojen varaamista täydelle levylle. Osoitin tähän vapaiden lohkojen joukkoon on tallennettu SpareBlockiin.

Periaatteet tiedostojen ja hakemistojen sijoittamiseksi levylleHPFS:

· tiedot tiedostojen sijainnista ovat hajallaan kaikkialla levyllä, ja kunkin tietyn tiedoston tietueet sijaitsevat (jos mahdollista) vierekkäisissä sektoreissa ja lähellä niiden sijaintia koskevia tietoja;

· hakemistot sijaitsevat keskellä levytilaa;

· Hakemistot tallennetaan tasapainotettuna binääripuuna, jonka merkinnät on järjestetty aakkosjärjestykseen.

Tietojen tallennuksen luotettavuus HPFS:ssä

Jokaisella tiedostojärjestelmällä on oltava keino korjata virheet, jotka tapahtuvat kirjoitettaessa tietoja levylle. HPFS-järjestelmä käyttää tätä hätävaihtomekanismi ( hotfix).

Jos HPFS-tiedostojärjestelmä kohtaa ongelman kirjoittaessaan tietoja levylle, se näyttää virhesanoman. HPFS tallentaa sitten tiedot, jotka olisi pitänyt kirjoittaa vialliseen sektoriin johonkin varasektoriin, joka on varattu etukäteen tätä mahdollisuutta varten. Luettelo vapaista varalohkoista on tallennettu HPFS-varalohkoon. Jos havaitaan virhe kirjoitettaessa tietoja normaaliin lohkoon, HPFS valitsee yhden vapaista varalohkoista ja tallentaa tiedot sinne. Tiedostojärjestelmä päivittyy sitten hätäkorvauskortti reserviyksikössä.

Tämä kartta on yksinkertaisesti kaksoissanapareja, joista jokainen on 32-bittinen sektorinumero.

Ensimmäinen numero ilmaisee viallisen sektorin ja toinen sen sektorin käytettävissä olevien varasektorien joukosta, joka on valittu korvaamaan se.

Kun viallinen sektori on korvattu varasektorilla, hätäkorvauskartta kirjoitetaan levylle ja näytölle ilmestyy ponnahdusikkuna, joka ilmoittaa käyttäjälle levyn kirjoitusvirheestä. Joka kerta kun järjestelmä kirjoittaa tai lukee levysektorin, se katsoo palautuskartan ja korvaa kaikki huonojen sektorien numerot varasektorinumeroilla vastaavilla tiedoilla.

On huomattava, että tämä numeromuunnos ei vaikuta merkittävästi järjestelmän suorituskykyyn, koska se suoritetaan vain, kun levyä käytetään fyysisesti, ei luettaessa tietoja levyn välimuistista.

Tiedostojärjestelmä NTFS

NTFS (New Technology File System) -tiedostojärjestelmä sisältää useita merkittäviä parannuksia ja muutoksia, jotka erottavat sen merkittävästi muista tiedostojärjestelmistä.

Huomaa, että harvoja poikkeuksia lukuun ottamatta NTFS-osiot voidaan työstää vain suoraanWindowsN.T. vaikka on olemassa vastaavia tiedostonhallintajärjestelmiä, joilla voidaan lukea tiedostoja NTFS-taltioista useille käyttöjärjestelmille.

NTFS:n kanssa työskentelemiseen Windows NT:n ulkopuolella ei kuitenkaan ole täysimittaisia ​​toteutuksia.

NTFS:ää ei tueta laajalti käytetyissä Windows 98- ja Windows Millennium Edition -käyttöjärjestelmissä.

AvainominaisuudetNT FS

· työskentely suurilla levyillä tapahtuu tehokkaasti (paljon tehokkaammin kuin FATissa);

· on työkaluja, joilla rajoitetaan pääsyä tiedostoihin ja hakemistoihin Þ NTFS-osiot tarjoavat paikallisen suojauksen sekä tiedostoille että hakemistoille;

· käyttöön on otettu transaktiomekanismi, jossa puunkorjuu tiedostotoiminnot Þ merkittävä luotettavuuden kasvu;

· monet levysektorien ja/tai klustereiden enimmäismäärää koskevat rajoitukset on poistettu;

· NTFS-tiedoston nimi, toisin kuin FAT- ja HPFS-tiedostojärjestelmät, voi sisältää mitä tahansa merkkejä, mukaan lukien kaikki kansalliset aakkoset, koska tiedot esitetään Unicodessa - 16-bittisessä esitysmuodossa, joka antaa 65535 eri merkkiä. Tiedostonimen enimmäispituus NTFS:ssä on 255 merkkiä.

· NTFS:ssä on myös sisäänrakennetut pakkausominaisuudet, joita voit käyttää yksittäisiin tiedostoihin, kokonaisiin hakemistoihin ja jopa taltioihin (ja myöhemmin kumota tai määrittää ne haluamallasi tavalla).

Taltion rakenne NTFS-tiedostojärjestelmällä

NTFS-osiota kutsutaan taltioksi (volyymiksi). Suurin mahdollinen tilavuuden koko (ja tiedostokoko) on 16 EB (exatavu 2**64).

Kuten muutkin järjestelmät, NTFS jakaa taltion levytilan klusteriin – tietolohkoihin, jotka on osoitettu tietoyksiköiksi. NTFS tukee klusterikokoja 512 tavusta 64 kilotavuun; standardi on 2 tai 4 kt:n klusteri.

Kaikki levytila ​​NTFS:ssä on jaettu kahteen epätasa-arvoiseen osaan.


Ensimmäiset 12% levystä on varattu ns. MFT-vyöhykkeelle - tilaa, jonka pääpalvelu voi varata metatiedosto MFT.

Tälle alueelle ei ole mahdollista kirjoittaa mitään tietoja. MFT-vyöhyke pidetään aina tyhjänä - tämä tehdään siten, että MFT-tiedosto ei mahdollisuuksien mukaan pirstoudu kasvaessaan.

Loput 88 % tilavuudesta on tavallista tiedostojen tallennustilaa.

MFT (hallitatiedostopöytä - yleinen tiedostotaulukko) on pohjimmiltaan hakemisto kaikista muista levyllä olevista tiedostoista, mukaan lukien itsensä. Se on suunniteltu määrittämään tiedostojen sijainti.

MFT koostuu kiinteän kokoisista tietueista. MFT-tietueen koko (vähintään 1 kt ja enintään 4 kt) määritetään, kun taltio alustetaan.

Jokainen merkintä vastaa tiedostoa.

Ensimmäiset 16 merkintää ovat palveluluonteisia eivätkä ole käyttöjärjestelmän käytettävissä - niitä kutsutaan metatiedostot, ja aivan ensimmäinen metatiedosto on itse MFT.

Nämä ensimmäiset 16 MFT-elementtiä ovat ainoat levyn osat, joilla on tiukasti kiinteä asema. Kopio näistä samoista 16 merkinnästä säilytetään niteen keskellä luotettavuuden vuoksi.

MFT-tiedoston loput osat voivat sijaita, kuten mikä tahansa muu tiedosto, mielivaltaisissa paikoissa levyllä.

Metatiedostot ovat palveluluonteisia – jokainen niistä vastaa jostain järjestelmän toiminnan osa-alueesta. Metatiedostot sijaitsevat NTFS-taltion juurihakemistossa. Ne kaikki alkavat nimisymbolilla "$", vaikka niistä on vaikea saada mitään tietoa tavallisilla keinoilla. Taulukossa Tärkeimmät metatiedostot ja niiden tarkoitus on annettu.

Metatiedoston nimi

Metatiedoston tarkoitus

MFT $

Itse päätiedostotaulukko

$MFTmirr

Kopio ensimmäisistä 16 MFT-merkinnästä, joka on sijoitettu niteen keskelle

$LogFile

Kirjaustukitiedosto

$ Volume

Palvelutiedot - levyn nimi, tiedostojärjestelmän versio jne.

$AttrDef

Luettelo levyn vakiotiedostomääritteistä

Juurihakemisto

$Bittikartta

Tilavuus vapaan tilan kartta

$Boot

Käynnistyssektori (jos osio on käynnistettävä)

$kiintiö

Tiedosto, joka tallentaa käyttäjän oikeudet käyttää levytilaa (tämä tiedosto alkoi vasta toimia Windows 2000 ja NTFS 5.0)

$Upcase

Tiedosto - tiedostonimien isojen ja pienten kirjainten vastaavuustaulukko. NTFS:ssä tiedostonimet kirjoitetaan sisään Unicode (joka on 65 tuhatta erilaista symbolia) ja isojen ja pienten vastineiden etsiminen tässä tapauksessa on ei-triviaali tehtävä

Vastaava MFT-tietue tallentaa kaikki tiedot tiedostosta:

· Tiedoston nimi,

· koko;

· tiedostomääritteet;

· yksittäisten fragmenttien sijainti levyllä jne.

Jos yksi MFT-tietue ei riitä tiedoksi, käytetään useita tietueita, ei välttämättä peräkkäisiä.

Jos tiedosto ei ole kovin suuri, tiedostotiedot tallennetaan suoraan MFT:hen, päädatasta jäljellä olevaan tilaan yhden MFT-tietueen sisällä.

NTFS-taltiolla oleva tiedosto tunnistetaan ns tiedostolinkki(Tiedostoviite), joka esitetään 64-bittisenä numerona.

· tiedostonumero, joka vastaa MFT:n tietuenumeroa,

· ja järjestysnumerot. Tätä numeroa kasvatetaan aina, kun tiettyä MFT:n numeroa käytetään uudelleen, jolloin NTFS-tiedostojärjestelmä voi suorittaa sisäisen eheyden tarkistuksen.

Jokaista NTFS-tiedostoa edustaa purot(virrat), eli sillä ei ole "vain dataa" sellaisenaan, mutta virtoja on.

Yksi virroista on tiedostotiedot.

Useimmat tiedostomääritteet ovat myös virtoja.

Siten käy ilmi, että tiedostossa on vain yksi peruskokonaisuus - MFT:n numero ja kaikki muu, mukaan lukien sen virrat, ovat valinnaisia.

Tätä lähestymistapaa voidaan käyttää tehokkaasti - voit esimerkiksi "liittää" toisen virran tiedostoon kirjoittamalla siihen mitä tahansa dataa.

NTFS-taltion tiedostojen ja hakemistojen vakiomääritteillä on kiinteät nimet ja tyyppikoodit.

Luettelo NTFS:ssä on erityinen tiedosto, joka tallentaa linkkejä muihin tiedostoihin ja hakemistoihin.

Luettelotiedosto on jaettu lohkoihin, joista jokainen sisältää

· Tiedoston nimi,

perusominaisuudet ja

Levyn juurihakemisto ei eroa tavallisista hakemistoista, lukuun ottamatta erityistä linkkiä siihen MFT-metatiedoston alusta.

Sisäinen hakemistorakenne on binääripuu, samanlainen kuin HPFS.

Tiedostojen määrää juuri- ja ei-juurihakemistoissa ei ole rajoitettu.

NTFS-tiedostojärjestelmä tukee NT-suojausobjektimallia: NTFS käsittelee hakemistoja ja tiedostoja erityyppisinä objekteina ja ylläpitää erillisiä (tosin päällekkäisiä) käyttöoikeuksia kullekin tyypille.

NTFS tarjoaa tiedostotason suojauksen; Tämä tarkoittaa, että taltioiden, hakemistojen ja tiedostojen käyttöoikeudet voivat riippua käyttäjätilistä ja ryhmistä, joihin käyttäjä kuuluu. Joka kerta kun käyttäjä käyttää tiedostojärjestelmäobjektia, hänen käyttöoikeuksiaan verrataan kyseisen objektin käyttöoikeusluetteloon. Jos käyttäjällä on riittävät oikeudet, hänen pyyntönsä hyväksytään; muuten pyyntö hylätään. Tämä suojausmalli koskee sekä paikallisten käyttäjien rekisteröintiä NT-tietokoneissa että etäverkkopyyntöjä.

NTFS-järjestelmällä on myös tiettyjä itsekorjautumisominaisuuksia. NTFS tukee erilaisia ​​mekanismeja järjestelmän eheyden tarkistamiseksi, mukaan lukien tapahtumaloki, jonka avulla tiedostojen kirjoitustoiminnot voidaan toistaa erityistä järjestelmälokia vastaan.

klo puunkorjuu tiedostotoiminnot, tiedostonhallintajärjestelmä tallentaa tapahtuvat muutokset erityiseen palvelutiedostoon. Tiedostorakenteen muuttamiseen liittyvän toimenpiteen alussa tehdään vastaava huomautus. Jos jokin vika ilmenee tiedostotoimintojen aikana, mainittu toiminnan aloitusmerkki näkyy edelleen keskeneräisenä. Kun suoritat tiedostojärjestelmän eheyden tarkistuksen koneen uudelleenkäynnistyksen jälkeen, nämä odottavat toiminnot peruutetaan ja tiedostot palautetaan alkuperäiseen tilaansa. Jos tiedostojen tietojen muuttaminen suoritetaan normaalisti, niin juuri tässä palvelun kirjaamisen tukitiedostossa toiminto on merkitty suoritetuksi.

Tiedostojärjestelmän suurin haittaNTFS- palvelutiedot vievät paljon tilaa (esimerkiksi jokainen hakemistoelementti vie 2 KB) - pienissä osioissa palvelutiedot voivat viedä jopa 25% mediavolyymista.

Þ NTFS:ää ei voi käyttää levykkeiden alustamiseen. Älä käytä sitä alle 100 Mt:n osioiden alustamiseen.

OS-tiedostojärjestelmä UNIX

UNIX-maailmassa on useita erilaisia ​​tiedostojärjestelmiä, joilla on oma ulkoinen muistirakenne. Tunnetuimmat ovat perinteinen UNIX System V (s5) -tiedostojärjestelmä ja UNIX BSD -perheen tiedostojärjestelmä (ufs).

Harkitse s 5.

UNIX-järjestelmän tiedosto on kokoelma hajasaantimerkkejä.

Tiedostolla on käyttäjän määräämä rakenne.

Unix-tiedostojärjestelmä on hierarkkinen usean käyttäjän tiedostojärjestelmä.

Tiedostojärjestelmällä on puurakenne. Puun kärjet (välisolmut) ovat hakemistoja, joissa on linkkejä muihin hakemistoihin tai tiedostoihin. Puun lehdet vastaavat tiedostoja tai tyhjiä hakemistoja.

Kommentti. Itse asiassa Unix-tiedostojärjestelmä ei ole puupohjainen. Tosiasia on, että järjestelmällä on mahdollisuus rikkoa hierarkiaa puun muodossa, koska on mahdollista yhdistää useita nimiä, joilla on sama tiedostosisältö.

Levyn rakenne

Levy on jaettu lohkoihin. Tietolohkon koko määritetään formatoitaessa tiedostojärjestelmää mkfs-komennolla, ja se voidaan asettaa arvoon 512, 1024, 2048, 4096 tai 8192 tavua.

Laskemme 512 tavua (sektorin koko).

Levytila ​​on jaettu seuraaviin alueisiin (katso kuva):

· lastauslohko;

· ohjaus superblock;

· joukko i-solmuja;

· alue tiedostojen sisällön (datan) tallentamiseen;

· joukko ilmaisia ​​lohkoja (linkitetty luetteloon);

Käynnistyslohko

Superblock

i - solmu

. . .

i - solmu

Kommentti. UFS-tiedostojärjestelmälle - kaikki tämä toistetaan sylinteriryhmälle (paitsi käynnistyslohkolle) + erityinen alue on varattu kuvaamaan sylinteriryhmä

Käynnistyslohko

Lohko sijaitsee lohkossa #0. (Muista, että laitteisto määrittää tämän lohkon sijainnin järjestelmän laitelohkossa nolla, koska laitteiston käynnistyslatain käyttää aina järjestelmän laitelohkoa nolla. Tämä on tiedostojärjestelmän viimeinen komponentti, joka on laitteistosta riippuvainen.)

Käynnistyslohko sisältää edistämisohjelman, jota käytetään UNIX-käyttöjärjestelmän käynnistämiseen. S 5 -tiedostojärjestelmissä käytetään vain juuritiedostojärjestelmän käynnistyslohkoa. Muissa tiedostojärjestelmissä tämä alue on olemassa, mutta sitä ei käytetä.

Superblock

Se sisältää toiminnallisia tietoja tiedostojärjestelmän tilasta sekä tietoja tiedostojärjestelmän kokoonpanoparametreista.

Erityisesti superblock sisältää seuraavat tiedot

· i-solmujen määrä (indeksikuvaajat);

· osion koko???;

· luettelo ilmaisista lohkoista;

· luettelo ilmaisista i-solmuista;

· ja muut.

Kiinnitämme huomiota! Levyllä on vapaata tilaa linkitetty luettelo ilmaisista lohkoista. Tämä luettelo on tallennettu superblockiin.

Listaelementit ovat 50 elementin taulukoita (jos lohko = 512 tavua, elementti = 16 bittiä):

· Matriisielementit nro 1-48 sisältävät tiedostolohkotilan vapaiden lohkojen lukumäärät välillä 2-49.

· elementti #0 sisältää osoittimen luettelon jatkoon ja

· viimeinen elementti (nro 49) sisältää osoittimen taulukon vapaaseen elementtiin.

Jos jokin prosessi tarvitsee vapaan lohkon tiedoston laajentamiseen, järjestelmä valitsee taulukon elementin osoittimella (vapaaseen elementtiin), ja tähän elementtiin tallennettu lohko, jonka numero on tallennettu tiedostoon. Jos tiedostoa pienennetään, vapautetut luvut lisätään vapaiden lohkojen joukkoon ja osoitinta vapaaseen elementtiin säädetään.

Koska taulukon koko on 50 elementtiä, kaksi kriittistä tilannetta on mahdollista:

1. Kun vapautamme tiedostolohkoja, mutta ne eivät mahdu tähän taulukkoon. Tässä tapauksessa tiedostojärjestelmästä valitaan yksi vapaa lohko ja täysin täytetty vapaiden lohkojen joukko kopioidaan tähän lohkoon, minkä jälkeen vapaan elementin osoittimen arvo nollataan ja taulukon nollaelementti, joka sijaitsee superlohkossa, sisältää sen lohkon numeron, jonka järjestelmä on valinnut kopioimaan taulukon sisällön. Tällä hetkellä ilmaisten lohkojen luetteloon luodaan uusi elementti (jokaisessa 50 elementtiä).

2. Kun vapaiden lohkojen taulukon elementtien sisältö on käytetty loppuun (tässä tapauksessa taulukon nollaelementti on nolla Jos tämä elementti ei ole yhtä suuri kuin nolla, niin tämä tarkoittaa, että on olemassa jatkoa). taulukko. Tämä jatko luetaan kopioksi superblockista RAM-muistissa.

Ilmainen listai-solmut. Tämä on puskuri, joka koostuu 100 elementistä. Se sisältää tietoja 100 numerosta i-solmuja, jotka ovat tällä hetkellä ilmaisia.

Superblock on aina RAM-muistissa

Þ kaikki toiminnot (lohkojen ja i-solmujen vapauttaminen ja varaaminen tapahtuvat RAM-muistissa Þ levynvaihdon minimoiminen.

Mutta! Jos superlohkon sisältöä ei kirjoiteta levylle ja virta katkaistaan, syntyy ongelmia (tiedostojärjestelmän todellisen tilan ja superlohkon sisällön välinen ristiriita). Mutta tämä on jo edellytys järjestelmälaitteiden luotettavuudelle.

Kommentti. UFS-tiedostojärjestelmät tukevat useita superblock-kopioita (yksi kopio per sylinteriryhmä) vakauden parantamiseksi.

Inoden alue

Tämä on joukko tiedostokuvauksia nimeltä i -solmut (minä-solmu).(64 tavua?)

Jokainen tiedoston indeksikuvaaja (i-solmu) sisältää:

· Tiedostotyyppi (tiedosto/hakemisto/erikoistiedosto/fifo/socket)

· Attribuutit (käyttöoikeudet) - 10

Tiedoston omistajan tunnus

· Tiedoston omistajan ryhmätunnus

· Tiedoston luomisaika

Tiedoston muokkausaika

· Aika, jolloin tiedostoa viimeksi käsiteltiin

· Tiedoston pituus

· Linkkien määrä tiettyyn i-solmuun eri hakemistoista

Tiedostojen estoosoitteet

!Huomautus. Tässä ei ole tiedostonimeä

Katsotaanpa tarkemmin, miten se on järjestetty lohkoosoite, jossa tiedosto sijaitsee. Osoitekenttä sisältää siis tiedoston 10 ensimmäisen lohkon numerot.

Jos tiedosto ylittää kymmenen lohkoa, seuraava mekanismi alkaa toimia: kentän 11. elementti sisältää lohkonumeron, joka sisältää 128 (256) linkkiä tämän tiedoston lohkoihin. Jos tiedosto on vieläkin suurempi, käytetään kentän 12. elementtiä - se sisältää lohkonumeron, joka sisältää 128(256) lohkonumeroa, jossa jokainen lohko sisältää 128(256) tiedostojärjestelmän lohkonumeroa. Ja jos tiedosto on vielä suurempi, käytetään 13. elementtiä - jossa luettelon sisäkkäisyyttä lisätään toisella.

Näin saamme tiedoston, jonka koko on (10+128+128 2 +128 3)*512.

Tämä voidaan esittää seuraavasti:

Tiedoston 1. lohkon osoite

Tiedoston 2. lohkon osoite

Tiedoston 10. lohkon osoite

Epäsuora osoitelohkoosoite (lohko, jossa on 256 lohkoosoitetta)

Toisen epäsuoran osoitelohkon osoite (lohko, jossa on 256 osoitelohkoa osoitteineen)

Kolmannen epäsuoran osoitelohkon osoite (lohko, jossa on lohkojen osoitteita ja osoitteiden osoitteita)

Tiedostojen suojaus

Katsotaanpa nyt omistaja- ja ryhmätunnuksia ja suojausbittejä.

Unix-käyttöjärjestelmässä sitä käytetään kolmitasoinen käyttäjähierarkia:

Ensimmäinen taso on kaikki käyttäjät.

Toinen taso on käyttäjäryhmät. (Kaikki käyttäjät on jaettu ryhmiin.

Kolmas taso on tietty käyttäjä (Ryhmät koostuvat todellisista käyttäjistä). Tämän käyttäjien kolmitasoisen organisaation ansiosta jokaisella tiedostolla on kolme attribuuttia:

1) Tiedoston omistaja. Tämä määrite liittyy yhteen tiettyyn käyttäjään, jonka järjestelmä määrittää automaattisesti tiedoston omistajaksi. Voit tulla oletusomistajaksi luomalla tiedoston, ja siellä on myös komento, jonka avulla voit muuttaa tiedoston omistajaa.

2) Tiedostojen käyttösuojaus. Pääsy kuhunkin tiedostoon on rajoitettu kolmeen luokkaan:

· omistajan oikeudet (mitä omistaja voi tehdä tällä tiedostolla, yleensä - ei välttämättä kaikkea);

· sen ryhmän oikeudet, johon tiedoston omistaja kuuluu. Omistaja ei sisälly tähän (esimerkiksi tiedoston voi sulkea omistajan lukemista varten, mutta kaikki muut ryhmän jäsenet voivat lukea tiedostosta vapaasti;

· kaikki muut järjestelmän käyttäjät;

Näille kolmelle kategorialle säännellään kolmea toimintoa: tiedostosta lukeminen, tiedostoon kirjoittaminen ja tiedoston suorittaminen (vastaavasti R-, W- ja X-järjestelmän muistokirjoissa). Jokainen näiden kolmen luokan tiedosto määrittää, kuka käyttäjä voi lukea, kuka kirjoittaa ja kuka voi suorittaa sen prosessina.

Hakemistoorganisaatio

Käyttöjärjestelmän näkökulmasta hakemisto on tavallinen tiedosto, joka sisältää tiedot kaikista hakemistoon kuuluvista tiedostoista.

Hakemistoelementti koostuu kahdesta kentästä:

1) i-solmun numero (järjestysluku i-solmujen taulukossa) ja

2)tiedoston nimi:

Jokainen hakemisto sisältää kaksi erikoisnimeä: '.' - itse hakemisto; ‘..’ – päähakemisto.

(Juurihakemiston osalta päähakemisto viittaa samaan hakemistoon.)

Yleensä hakemisto voi sisältää useita merkintöjä, jotka viittaavat samaan i-solmuun, mutta hakemisto ei voi sisältää merkintöjä samoilla nimillä. Toisin sanoen tiedoston sisältöön voidaan liittää mielivaltainen määrä nimiä. Sitä kutsutaan sitominen. Hakemistomerkintä, joka kuuluu yhteen tiedostoon, kutsutaan viestintää.

Tiedostot ovat olemassa hakemistomerkinnöistä riippumatta, ja hakemistolinkit osoittavat itse asiassa fyysisiin tiedostoihin. Tiedosto "häviää", kun viimeinen siihen osoittava linkki poistetaan.

Joten jos haluat käyttää tiedostoa nimellä, käyttöjärjestelmä

1. löytää tämän nimen tiedoston sisältävästä hakemistosta,

2. saa tiedoston i-solmun numeron,

3. käyttää numeroa löytääkseen i-solmun i-solmujen alueelta,

4. i-solmulta vastaanottaa niiden lohkojen osoitteet, joissa tiedostodata sijaitsee,

5. lukee lohkoja tietoalueelta käyttämällä lohkoosoitteita.

Levyn osiorakenne sisään ALANUMERO2 FS

Koko osiotila on jaettu lohkoihin. Lohkon koko voi olla 1, 2 tai 4 kilotavua. Lohko on osoitteellinen levytilan yksikkö.

Alueensa lohkot yhdistetään lohkoryhmiksi. Lohkojen ryhmät tiedostojärjestelmässä ja ryhmän sisällä olevat lohkot numeroidaan peräkkäin alkaen 1:stä. Levyn ensimmäinen lohko on numeroitu 1 ja kuuluu ryhmään numero 1. Levyn lohkojen kokonaismäärä (levyosiossa) on levyn kapasiteetin jakaja sektoreina ilmaistuna. Ja lohkoryhmien lukumäärän ei tarvitse jakaa lohkojen määrää, koska viimeinen lohkoryhmä ei välttämättä ole täydellinen. Jokaisen lohkoryhmän alussa on osoite, joka saadaan muodossa ((ryhmän numero - 1)* (lohkojen lukumäärä ryhmässä)).

Jokaisella lohkoryhmällä on sama rakenne. Sen rakenne on esitetty taulukossa.

Tämän rakenteen ensimmäinen elementti (superlohko) on sama kaikille ryhmille, ja kaikki loput ovat yksilöllisiä jokaiselle ryhmälle. Superblock tallennetaan kunkin lohkoryhmän ensimmäiseen lohkoon (paitsi ryhmä 1, jonka ensimmäisessä lohkossa on käynnistystietue). Superblock on tiedostojärjestelmän lähtökohta. Se on kooltaan 1024 tavua ja se sijaitsee aina 1024 tavun siirrossa tiedostojärjestelmän alusta. Superblokin useiden kopioiden esiintyminen selittyy tämän tiedostojärjestelmän elementin äärimmäisellä tärkeydellä. Superblock-kopioita käytetään, kun tiedostojärjestelmä palautetaan vikojen jälkeen.

Superblockiin tallennettuja tietoja käytetään järjestämään pääsy muihin levyn tietoihin. Superblock määrittää tiedostojärjestelmän koon, osion tiedostojen enimmäismäärän, vapaan tilan määrän ja sisältää tiedot siitä, mistä etsiä jakamattomia alueita. Kun käyttöjärjestelmä käynnistyy, superblock luetaan muistiin ja kaikki tiedostojärjestelmään tehdyt muutokset näkyvät ensin käyttöjärjestelmässä sijaitsevassa superblock-kopiossa ja kirjoitetaan levylle vain ajoittain. Tämä parantaa järjestelmän suorituskykyä, koska monet käyttäjät ja prosessit päivittävät jatkuvasti tiedostoja. Toisaalta, kun järjestelmä sammutetaan, superblock on kirjoitettava levylle, mikä ei salli tietokoneen sammuttamista yksinkertaisesti sammuttamalla virta. Muuten seuraavan käynnistyksen yhteydessä superlohkoon tallennetut tiedot eivät vastaa tiedostojärjestelmän todellista tilaa.

Superlohkon jälkeen on kuvaus lohkoryhmästä (Group Descriptors). Tämä kuvaus sisältää:

Tämän ryhmän lohkobittikartan sisältävän lohkon osoite;

Tämän ryhmän inode-bittikartan sisältävän lohkon osoite;

Tämän ryhmän inodetaulukon sisältävän lohkon osoite;

Tämän ryhmän vapaiden lohkojen lukumäärän laskuri;

Tämän ryhmän vapaiden inodien määrä;

Tietyn ryhmän inodien määrä, jotka ovat hakemistoja

ja muita tietoja.

Ryhmäkuvaukseen tallennettuja tietoja käytetään lohko- ja inodibittikarttojen sekä inodetaulukon paikantamiseen.

Tiedostojärjestelmä Alanumero 2 on tunnusomaista:

  • hierarkinen rakenne,
  • tietokokonaisuuksien koordinoitu käsittely,
  • dynaaminen tiedostopääte,
  • tiedostojen tietojen suojaaminen,
  • oheislaitteiden (kuten päätteiden ja nauhalaitteiden) käsitteleminen tiedostoina.

Sisäinen tiedostoesitys

Jokaisella Ext 2 -järjestelmän tiedostolla on yksilöllinen hakemisto. Hakemisto sisältää tiedot, joita kaikki prosessit tarvitsevat tiedoston käyttämiseen. Prosessoi pääsytiedostot käyttämällä hyvin määriteltyä järjestelmäkutsujen sarjaa ja tunnistaa tiedoston merkkijonolla, joka toimii hyväksyttynä tiedostonimenä. Jokainen yhdistelmänimi yksilöi tiedoston, joten järjestelmäydin muuntaa tämän nimen tiedostohakemistoksi. Hakemisto sisältää osoitteiden taulukon, jossa tiedostotiedot sijaitsevat levyllä. Koska jokainen levyn lohko on osoitettu omalla numerollaan, tämä taulukko tallentaa kokoelman levylohkonumeroita. Joustavuuden lisäämiseksi ydin liittää tiedoston lohko kerrallaan, jolloin tiedoston tiedot voidaan hajauttaa koko tiedostojärjestelmään. Mutta tämä asettelu vaikeuttaa tietojen etsimistä. Osoitetaulukko sisältää luettelon lohkonumeroista, jotka sisältävät tiedostoon liittyviä tietoja.

Tiedoston inodes

Jokaisella levyllä olevalla tiedostolla on vastaava tiedoston inode, joka tunnistetaan sen sarjanumerolla - tiedostoindeksillä. Tämä tarkoittaa, että tiedostojärjestelmään luotavien tiedostojen määrää rajoittaa inodien määrä, joka joko määritellään nimenomaisesti tiedostojärjestelmää luotaessa tai lasketaan levyosion fyysisen koon perusteella. Inodit ovat levyllä staattisessa muodossa ja ydin lukee ne muistiin ennen kuin käsittelee niitä.

Inode-tiedosto sisältää seuraavat tiedot:

- Tämän tiedoston tyyppi ja käyttöoikeudet.

Tiedoston omistajan tunniste (Owner Uid).

Tiedoston koko tavuina.

Aika, jolloin tiedostoa viimeksi käsiteltiin (Pääsyaika).

Tiedoston luomisaika.

Tiedoston viimeisen muokkauksen aika.

Tiedoston poiston aika.

Ryhmätunnus (GID).

Linkit laskevat.

Tiedoston käyttämien lohkojen määrä.

Tiedostojen liput

Varattu käyttöjärjestelmälle

Osoittaa lohkoihin, joihin tiedostodataa kirjoitetaan (esimerkki suorasta ja epäsuorasta osoitteesta kuvassa 1)

Tiedoston versio (NFS:lle)

ACL-tiedosto

Hakemisto ACL

Fragmentin osoite

Fragmentin numero

Fragmentin koko

Luettelot

Hakemistot ovat tiedostoja.

Ydin tallentaa tiedot hakemistoon aivan kuten tavallisessa tiedostotyypissä, käyttämällä indeksirakennetta ja lohkoja, joilla on suora ja epäsuora osoitetaso. Prosessit voivat lukea tietoja hakemistoista samalla tavalla kuin tavallisia tiedostoja, mutta ydin varaa yksinomaisen kirjoitusoikeuden hakemistoon, mikä varmistaa, että hakemistorakenne on oikea.)

Kun prosessi käyttää tiedostopolkua, ydin etsii hakemistoista vastaavan inodien numeron. Kun tiedoston nimi on muunnettu inodien numeroksi, inode tallennetaan muistiin ja sitä käytetään myöhemmissä pyynnöissä.

EXT2:n lisäominaisuudet FS

Tavallisten Unix-ominaisuuksien lisäksi EXT2fs tarjoaa joitain lisäominaisuuksia, joita Unix-tiedostojärjestelmät eivät tavallisesti tue.

Tiedostoattribuuttien avulla voit muuttaa sitä, miten ydin reagoi tiedostojoukkojen käsittelyssä. Voit määrittää attribuutteja tiedostolle tai hakemistolle. Toisessa tapauksessa tähän hakemistoon luodut tiedostot perivät nämä attribuutit.

Järjestelmän asennuksen aikana voidaan asettaa joitakin tiedostomääritteisiin liittyviä ominaisuuksia. Kiinnitysvaihtoehdon avulla järjestelmänvalvoja voi valita, miten tiedostot luodaan. BSD-kohtaisessa tiedostojärjestelmässä tiedostot luodaan samalla ryhmätunnuksella kuin päähakemistossa. System V:n ominaisuudet ovat hieman monimutkaisempia. Jos hakemistossa on setgid-bitti asetettu, luodut tiedostot perivät kyseisen hakemiston ryhmätunnisteen ja alihakemistot ryhmätunnisteen ja setgid-bitin. Muussa tapauksessa tiedostot ja hakemistot luodaan kutsuprosessin ensisijaisella ryhmätunnuksella.

EXT2fs-järjestelmä voi käyttää synkronista datan muokkausta, joka on samanlainen kuin BSD-järjestelmä. Liitäntävaihtoehdon avulla järjestelmänvalvoja voi määrittää, että kaikki tiedot (inodit, bittilohkot, epäsuorat lohkot ja hakemistolohkot) kirjoitetaan levylle synkronisesti, kun niitä muutetaan. Tätä voidaan käyttää suuren tiedontallennuskapasiteetin saavuttamiseen, mutta se johtaa myös huonoon suorituskykyyn. Todellisuudessa tätä toimintoa ei yleensä käytetä, koska suorituskyvyn heikkenemisen lisäksi se voi johtaa käyttäjätietojen menettämiseen, joita ei merkitä tiedostojärjestelmää tarkistettaessa.

EXT2fs antaa sinun valita loogisen lohkokoon tiedostojärjestelmää luotaessa. Se voi olla kooltaan 1024, 2048 tai 4096 tavua. Suurempien lohkojen käyttö johtaa nopeampiin I/O-toimintoihin (koska levypyyntöjä tehdään vähemmän) ja siten pään liikettä vähemmän. Toisaalta suurten lohkojen käyttö johtaa hukkaan levytilaa. Tyypillisesti tiedoston viimeistä lohkoa ei käytetä kokonaan tietojen tallentamiseen, joten lohkon koon kasvaessa hukkaan menevän levytilan määrä kasvaa.

EXT2fs antaa sinun käyttää nopeutettuja symbolisia linkkejä. Tällaisia ​​linkkejä käytettäessä tiedostojärjestelmän tietolohkoja ei käytetä. Kohdetiedoston nimeä ei tallenneta tietolohkoon, vaan itse inodeen. Tämän rakenteen avulla voit säästää levytilaa ja nopeuttaa symbolisten linkkien käsittelyä. Kahvalle varattu tila on tietysti rajallinen, joten jokaista linkkiä ei voi esittää nopeutettuna linkkinä. Nopeutetun linkin tiedostonimen enimmäispituus on 60 merkkiä. Lähitulevaisuudessa tätä järjestelmää on tarkoitus laajentaa pienille tiedostoille.

EXT2fs valvoo tiedostojärjestelmän tilaa. Ydin käyttää erillistä kenttää superlohkossa osoittamaan tiedostojärjestelmän tilaa. Jos tiedostojärjestelmä on asennettu luku/kirjoitustilassa, sen tilaksi on asetettu "Ei puhdas". Jos se puretaan tai asennetaan uudelleen vain luku -tilassa, sen tilaksi asetetaan "Puhdas". Järjestelmän käynnistyksen ja tiedostojärjestelmän tilan tarkistusten aikana näitä tietoja käytetään määrittämään, onko tiedostojärjestelmän tarkistus tarpeen. Ydin tekee myös joitain virheitä tähän kenttään. Kun ydin havaitsee yhteensopimattomuuden, tiedostojärjestelmä merkitään "Virheelliseksi". Tiedostojärjestelmän tarkistusohjelma testaa nämä tiedot tarkistaakseen järjestelmän, vaikka sen tila olisikin puhdas.

Tiedostojärjestelmän testaamisen huomioimatta jättäminen pitkään voi joskus johtaa vaikeuksiin, joten EXT2fs sisältää kaksi menetelmää järjestelmän säännölliseen tarkistamiseen. Superblock sisältää järjestelmän kiinnityslaskurin. Tämä laskuri kasvaa aina, kun järjestelmä asennetaan luku-/kirjoitustilaan. Jos sen arvo saavuttaa maksimiarvon (se on myös tallennettu superlohkoon), tiedostojärjestelmän testiohjelma alkaa tarkistaa sitä, vaikka sen tila olisi "Puhdas". Myös viimeinen tarkistusaika ja tarkastusten välinen maksimiväli tallennetaan superlohkoon. Kun tarkistusten välinen enimmäisaika saavutetaan, tiedostojärjestelmän tila ohitetaan ja sen tarkistus käynnistetään.

Suorituskyvyn optimointi

EXT2fs-järjestelmä sisältää monia ominaisuuksia, jotka optimoivat sen suorituskykyä, mikä lisää tiedonvaihtonopeutta tiedostoja luettaessa ja kirjoitettaessa.

EXT2fs käyttää aktiivisesti levypuskuria. Kun lohko on luettava, ydin lähettää I/O-toimintopyynnön useille vierekkäisille lohkoille. Siten ydin yrittää varmistaa, että seuraava luettava lohko on jo ladattu levypuskuriin. Tällaiset toiminnot suoritetaan yleensä luettaessa tiedostoja peräkkäin.

EXT2fs-järjestelmä sisältää myös suuren määrän optimointeja tiedon sijoittamista varten. Lohkoryhmiä käytetään ryhmittelemään yhteen vastaavat inodit ja tietolohkot. Ydin yrittää aina sijoittaa yhden tiedoston tietolohkot samaan ryhmään sekä sen kuvaajan. Tämän tarkoituksena on vähentää käyttöpäiden liikettä kuvaajan ja sitä vastaavien tietolohkojen lukemisen yhteydessä.

Kun kirjoitetaan tietoja tiedostoon, EXT2fs varaa etukäteen enintään 8 peräkkäistä lohkoa varattaessaan uutta lohkoa. Tämän menetelmän avulla voit saavuttaa korkean suorituskyvyn raskaassa järjestelmäkuormituksessa. Tämä mahdollistaa myös tiedostojen sijoittamisen vierekkäisiin lohkoihin, mikä nopeuttaa niiden myöhempää lukemista.

FAT32: Vanha Windows-järjestelmä, jota käytetään pienillä irrotettavilla tietovälineillä. Käytetään pienissä tallennuslaitteissa tai yhteensopivuus digitaalikameroiden, pelikonsolien, digisovittimien ja muiden laitteiden kanssa, jotka tukevat vain FAT32:ta.

NTFS: Windowsin nykyaikaiset versiot, jotka alkavat Win XP:stä, käyttävät sitä osioissaan. Ulkoiset mediat alustetaan FAT32:lla, suuret ulkoiset kiintolevyt, joiden kapasiteetti on 1 Tt, alustetaan NTFS:llä.

HFS+: Macintosh-tietokoneet käyttävät HFS+:aa sisäisiin osioihinsa sekä ulkoisten tietovälineiden alustamiseen HFS+:lla. Mac lukee ja kirjoittaa tiedostoja FAT32:ssa, mutta oletusarvoisesti lukee vain NTFS:ää. NTFS Macintosh -muodossa tallentamiseen tarvitset kolmannen osapuolen ohjelmiston.

Ext2 / Ext3 / Ext4: löytyy Linuxista. Ext2- Tämä on vanhempi FS ja siitä puuttuu tärkeitä ominaisuuksia, kuten kirjaaminen - jos virta katkeaa tai tietokone käynnistyy uudelleen kirjoittaessaan ext2-asemaan, tiedot voivat kadota. Ext3 lisää luotettavuusominaisuuksia nopeuden kustannuksella. Ext4 Se osoittautuu nykyaikaisemmaksi, nopeammaksi ja vakiojärjestelmäksi useimmille Linux-jakeluille ja toimii nopeammin. Win ja Mac eivät tue Ext2/Ext3/Ext4:tä – tarvitset lisätyökalun tiedostojen käyttämiseen. Tästä syystä on usein ihanteellista alustaa Linux-osiot ext4-muodossa ja jättää siirrettävät laitteet FAT32- tai NTFS-alustaan, jos yhteensopivuus muiden käyttöjärjestelmien kanssa vaaditaan. Linux lukee ja kirjoittaa sekä FAT32:lle että NTFS:lle.

Btrfs: luotu Linuxille, parhaillaan kehitteillä. Se ei ole tällä hetkellä vakio useimmissa Linux-jakeluissa, mutta Btrfs ottaa pian johtoaseman. Tavoitteena on tarjota lisäominaisuuksia, joiden avulla Linux skaalautuu suurempiin tallennustilamääriin.

Vaihtaa: Linuxissa "swap" ei näytä olevan FS. "Swap"-muotoon muotoiltua osiota käytetään vain käyttöjärjestelmän sivutustilana - samanlainen kuin sivutiedosto Windowsissa, mutta vaatii erillisen osion.

Tiedostojärjestelmät ulkoiselle USB-medialle

Kaikilla ulkoisilla asemilla on myös omat tiedostojärjestelmänsä:

  • FAT— FS:n on kehittänyt Microsoft Corporation, ja sitä käytetään eniten muistikorteissa ja USB-muistitikuissa. Käytetään kodinkoneissa, kuten: videokamera, TV, DVD-soitin, stereojärjestelmä. Rajoitus on, että sen tiedostokoko on enintään 4 Gt.
  • exFAT- Microsoftin luoma, laajennettu FAT-versio, jota käytetään flash-laitteissa. Tiedostokoon ja osion koon rajoitukset on poistettu. Haitta: Useimmat kuluttajalaitteet ja Win XP:n aiemmat versiot eivät tue.
  • FFS2- luotu vuonna 1990 ja Microsoftin patentoima. Jatkaa FFS1-järjestelmällä, joka on yksi varhaisista FS-muistikorteista.
  • JFFS— lokirakenteinen Linux-järjestelmä NOR-USB-medialle.
  • JFFS2- käytetään flash-muistilaitteissa. JFFS:n seuraaja. Tukee Nand-laitteita, parantaa suorituskykyä. Vaikeuksia työskennellessään suurikapasiteettisten Flash-asemien kanssa.
  • LogFS- kehitteillä, käytetään Linuxissa, korvaa JFFS2:n. Parannettu suurten flash-asemien nopeaan asetteluun.
  • YAFFS— suunniteltu NAND-flashille, voidaan käyttää NOR-flash-asemissa.

Windows-käyttöjärjestelmä voidaan asentaa vain NTFS-tiedostojärjestelmään, joten käyttäjillä ei yleensä ole kysyttävää siitä, mikä FS on paras käyttää. Mutta Linux on hyvin erilainen täällä useita tiedostojärjestelmiä, jotka on rakennettu järjestelmän ytimeen, ja niitä voidaan käyttää, joista jokainen on optimoitu tiettyjen tehtävien ratkaisemiseen ja sopii niihin paremmin.

Uudet käyttäjät eivät aina ymmärrä, mitä kiintolevyosio ja tiedostojärjestelmä ovat. Tämän päivän artikkelissamme yritämme ymmärtää kaikki nämä käsitteet, tarkastella, mikä tiedostojärjestelmä on, ja tarkastella myös yleisimpiä Linux-tiedostojärjestelmien tyyppejä. Mutta aloitetaan aivan perusasioista, levyosioista.

Tyypillisesti tietokone käyttää yhtä kiintolevyä, mutta mukavuuden vuoksi kaikki käytettävissä oleva tila on jaettu osioihin, Windowsissa niitä kutsutaan levyiksi, Linuxissa niitä kutsutaan osioksi. Jotta käyttöjärjestelmä tietää kuinka monta osiota levyllä on ja niiden fyysiset rajat, käytetään osiotaulukkoa. Se voi olla kahta tyyppiä - . Tässä artikkelissa emme käsittele sitä yksityiskohtaisesti. Sanon vain, että kiintolevyllä on osion nimi, sen sarjanumero ja alun ja lopun osoite.

Mikä on tiedostojärjestelmä?

Edelleen lisää. Jotta voit työskennellä tiedostojen ja hakemistojen kanssa jokaisessa osiossa, tarvitaan tiedostojärjestelmä. Voisimme yksinkertaisesti kirjoittaa tiedostojen sisällön levylle, mutta meidän on silti tallennettava tiedot kansioista, tiedostojen nimistä, niiden koosta, kiintolevyn osoitteesta ja pääsymääritteistä jonnekin. Tiedostojärjestelmä tekee kaiken tämän.

Paljon riippuu tiedostojärjestelmästä, tiedostojen käsittelyn nopeudesta, kirjoitusnopeudesta ja jopa tiedostojen koosta. Myös tiedostojesi turvallisuus riippuu tiedostojärjestelmän vakaudesta.

Linux-tiedostojärjestelmätyypit

Linuxin tiedostojärjestelmiä ei käytetä vain levyllä olevien tiedostojen käsittelyyn, vaan myös tietojen tallentamiseen RAM-muistiin tai ytimen asetusten käyttämiseen järjestelmän ollessa käynnissä. Seuraavaksi tarkastellaan Linux-tiedostojärjestelmien tyyppejä, mukaan lukien erityiset tiedostojärjestelmät.

Perustiedostojärjestelmät

Jokaisessa Linux-jakelussa voit käyttää yhtä näistä tiedostojärjestelmistä, joista jokaisella on omat etunsa ja haittansa:

  • Ext2;
  • Ext3;
  • Ext4;
  • ReiserFS;
  • btrfs;

Ne kaikki sisältyvät ytimeen ja niitä voidaan käyttää juuritiedostojärjestelmänä. Katsotaanpa kutakin niistä yksityiskohtaisemmin.

Ext2, Ext3, Ext4 tai Laajennettu tiedostojärjestelmä on Linuxin vakiotiedostojärjestelmä. Se on kehitetty Minixille. Se on vakain kaikista, koodikanta muuttuu hyvin harvoin ja se on tiedostojärjestelmä, joka sisältää eniten ominaisuuksia. Ext2-versio kehitettiin erityisesti Linuxille, ja se sai monia parannuksia.

Vuonna 2001 julkaistiin ext3, joka lisäsi vielä enemmän vakautta kirjaamisen avulla. Vuonna 2006 julkaistiin ext4, ja sitä käytetään kaikissa Linux-jakeluissa tähän päivään asti. Se teki monia parannuksia, mukaan lukien osion enimmäiskoon lisääminen yhteen eksatavuun.

JFS tai Kirjattu tiedostojärjestelmä sen on kehittänyt IBM AIX UNIXille, ja sitä käytettiin vaihtoehtona ext-tiedostojärjestelmille. Nyt sitä käytetään siellä, missä vaaditaan suurta vakautta ja minimaalista resurssien kulutusta. Tiedostojärjestelmää kehitettäessä tavoitteena oli luoda tehokkain tiedostojärjestelmä moniprosessoritietokoneille. Kuten ext, se on päiväkirjatiedostojärjestelmä, mutta päiväkirja tallentaa vain metatiedot, mikä voi johtaa tiedostojen vanhempien versioiden käyttöön kaatumisen jälkeen.

ReiserFS- kehitettiin paljon myöhemmin vaihtoehdoksi ext3:lle parannetulla suorituskyvyllä ja edistyneillä ominaisuuksilla. Se kehitettiin Hans Reiserin johdolla ja tukee vain Linuxia. Yksi ominaisuuksista on dynaaminen lohkokoko, jonka avulla voit pakata useita pieniä tiedostoja yhteen lohkoon, mikä estää pirstoutumista ja parantaa työskentelyä pienten tiedostojen kanssa.

Toinen etu on kyky muuttaa osioiden kokoa lennossa. Mutta haittapuoli on epävakaus ja tietojen menetyksen riski sähkökatkon aikana. ReiserFS oli aiemmin oletusarvo SUSE Linuxissa, mutta kehittäjät ovat nyt vaihtaneet Btrfs:ään.

XFS on korkean suorituskyvyn tiedostojärjestelmä, jonka Silicon Graphics on kehittänyt omalle käyttöjärjestelmälleen jo vuonna 2001. Se oli alun perin suunniteltu suurille tiedostoille ja tuetuille levyille enintään 2 teratavuun asti. Tiedostojärjestelmän etuja ovat nopea työskentely suurten tiedostojen kanssa, viivästynyt tilan varaaminen, osioiden nopea laajentaminen ja palvelutietojen pieni koko.

XFS on kirjattu tiedostojärjestelmä, mutta toisin kuin ext, vain metatietojen muutokset kirjataan lokiin. Sitä käytetään oletuksena Red Hat -pohjaisissa jakeluissa. Haittoja ovat kyvyttömyys pienentää kokoa, tietojen palauttamisen vaikeus ja tiedostojen menettämisen riski tallennuksen aikana odottamattoman sähkökatkon sattuessa, koska suurin osa tiedoista on muistissa.

Btrfs tai B-Tree-tiedostojärjestelmä on täysin uusi tiedostojärjestelmä, joka keskittyy vikasietoisuuteen, hallinnon helppouteen ja tietojen palautukseen. Tiedostojärjestelmä yhdistää monia uusia ja mielenkiintoisia ominaisuuksia, kuten usean osioinnin, alitaltion tuen, koon muuttamisen lennossa, tilannekuvan ja korkean suorituskyvyn. Mutta monet käyttäjät pitävät sitä epävakaana. Sitä käytetään kuitenkin jo oletustiedostojärjestelmänä OpenSUSEssa ja SUSE Linuxissa.

Muut tiedostojärjestelmät, esim NTFS, FAT, HFS voidaan käyttää Linuxissa, mutta niihin ei ole asennettu linuxin juuritiedostojärjestelmää, koska niitä ei ole suunniteltu siihen.

Erityiset tiedostojärjestelmät

Linux-ydin käyttää erityisiä tiedostojärjestelmiä antaakseen käyttäjille ja ohjelmille pääsyn sen asetuksiin ja tietoihin. Useimmiten kohtaat nämä vaihtoehdot:

  • tmpfs;
  • profs;
  • sysfs;

Tiedostojärjestelmä tmpfs mahdollistaa käyttäjän tiedostojen sijoittamisen tietokoneen RAM-muistiin. Luo vain haluamasi kokoinen lohkolaite, liitä se kansioon ja voit kirjoittaa tiedostoja RAM-muistiin.

procfs- oletusarvoisesti se on asennettu proc-kansioon ja sisältää kaikki tiedot järjestelmässä käynnissä olevista prosesseista sekä itse ytimestä.

sysfs- Tällä tiedostojärjestelmällä voit määrittää erilaisia ​​ytimen asetuksia ajon aikana.

Virtuaaliset tiedostojärjestelmät

Kaikkia tiedostojärjestelmiä ei tarvita ytimeen. On olemassa joitakin ratkaisuja, jotka voidaan toteuttaa myös käyttäjätilassa. Ytimen kehittäjät loivat FUSE (filesystem in userspace) -moduulin, jonka avulla voit luoda tiedostojärjestelmiä käyttäjätilaan. Virtuaaliset tiedostojärjestelmät sisältävät salauksen FS:n ja verkkotiedostojärjestelmät.

EncFS- tiedostojärjestelmä, joka salaa kaikki tiedostot ja tallentaa ne salatussa muodossa haluttuun hakemistoon. Voit käyttää salattuja tietoja vain asentamalla tiedostojärjestelmän.

Aufs (AnotherUnionFS)- voit yhdistää useita tiedostojärjestelmiä (kansioita) yhdeksi yhteiseksi.

NFS (verkkotiedostojärjestelmä)- mahdollistaa etätietokoneen tiedostojärjestelmän liittämisen verkon yli.

Tällaisia ​​tiedostojärjestelmiä on monia, emmekä luettele niitä kaikkia tässä artikkelissa. On jopa erittäin eksoottisia vaihtoehtoja, kiinnitä huomiota PIfs-projektiin.

johtopäätöksiä

Tässä artikkelissa tarkastelimme Linux-tiedostojärjestelmien tyyppejä. Kuten näet, kaikki täällä on paljon hämmentävämpää kuin Windowsissa. Mutta se on itse asiassa yksinkertaista. Jos tarvitset vakaimman Linux-tiedostojärjestelmän, niin paras ratkaisu on ext4, jos haluat uusia tekniikoita - btrfs, pienille tiedostoille - raiser4, suurille - XFS. Mistä Linux-tiedostojärjestelmistä pidät? Kirjoita kommentteihin!

Lopuksi videon tiedostojärjestelmästä ja sen rakenteesta Linuxissa: