Tiedostojärjestelmä

Wikipedia
Loikkaa: valikkoon, hakuun
Unix-kaltaisen tiedostojärjestelmän perustasolta eli juurihakemistosta haarautuvaa hakemistopuuta.

Tiedostojärjestelmä on käyttöjärjestelmän tarjoama palvelu, jonka avulla muut ohjelmistot voivat varastoida dataa tietokoneen massamuistiin. Tiedostojärjestelmän tärkein tehtävä on peittää massamuistilaitteen tekninen rakenne ja saada sen sisältö näkymään helpommin käsiteltävinä tiedostoina ja hakemistoina.

Nykyiset tiedostojärjestelmät sisältävät tiedostoja, jotka organisoituvat hierarkkiseksi (tai joskus jopa verkkomaiseksi) järjestelmäksi hakemistojen (engl. directory) avulla. Graafisissa käyttöliittymissä hakemistot yleensä hahmottuvat kansioiksi (engl. folder), joiden sisällä voi olla tiedostoja ja myös muita kansioita eli alihakemistoja. Teknisestä näkökulmasta hakemistot ovat kuitenkin vain erityisiä tiedostoja, joihin kirjautuu tieto siitä, mitkä tiedostot kuuluvat keskenään samaan ryhmään.

Tiedostojärjestelmän perustaso on niin sanottu juurihakemisto (engl. root), joka sisältää kaikki tiedostot ja hakemistot. Sisäkkäisistä hakemistoista muodostuu haarautuva, puumainen kokonaisuus, joka usein esitetään ylösalaisin, niin että juurihakemisto on ylhäällä ja hakemistopuu haarautuu alaspäin. Vaihtoehtoisesti juurihakemisto voi olla vasemmalla, jolloin hakemistopuu haarautuu ensisijaisesti oikealle. Tiedostoihin ja hakemistoihin viitataan hakemistopolun avulla eli luettelemalla sisäkkäiset hakemistot tiedostojärjestelmän juuresta lähtien. Tällöin hakemistot tyypillisesti erotetaan toisistaan ja tiedostosta vinoviivalla tai kenoviivalla:

  • /etc/apt/sources.list
  • A:\ATK\OMAT\Sol.exe

Käsitteitä[muokkaa | muokkaa wikitekstiä]

  • Journalointi eli lokinpito tarkoittaa tiedostojärjestelmän kykyä säilyttää tiedon eheys vaikka tietokoneen toiminta katkeaisikin virtakatkokseen tai nollaukseen. Tämä saavutetaan pitämällä kirjaa tehdyistä muutoksista erityisellä tiedostojärjestelmän osalla (loki, engl. journal), josta tiedot päivitetään transaktion päättymisen jälkeen varsinaiseen tiedostojärjestelmään. Ilman journalointia tiedostojärjestelmän eheyttäminen erilaisilla työkaluilla, kuten fsck Unixin kaltaisissa järjestelmissä, on hitaampaa eikä välttämättä yhtä tuloksellista.
  • Verkkotiedostojärjestelmä mahdollistaa tiedostojen käytön verkon (esim. ethernet) yli, siten että tiedostot näyttävät olevan paikallisella koneella. Verkkotiedostojärjestelmät käyttivät alkuaikoina omia protokolliaan, nyt lähes kaikki käyttävät internet-protokollaa verkkoliikenteeseen.

Unix-tyyppisten käyttöjärjestelmien käyttämiä tiedostojärjestelmiä[muokkaa | muokkaa wikitekstiä]

Unix Filesystem (UFS)[muokkaa | muokkaa wikitekstiä]

UFS on Unixin alkuaikojen tiedostojärjestelmä, joka on levinnyt laajasti eri käyttöjärjestelmiin (muun muassa BSD ja Solaris). Siihen on tarpeen vaatiessa kehitetty lisäominaisuuksia kuten journalointi ja soft-updates.

JFS[muokkaa | muokkaa wikitekstiä]

  • IBM:n kehittämä edistynyt tiedostojärjestelmä, joka oli käytössä IBM:n AIX-käyttöjärjestelmässä ja OS/2:ssa. Läheistä sukua OS/2:n HPFS-tiedostojärjestelmälle ja siten NTFS:lle.
  • Otettiin mukaan viralliseen Linuxin epävakaassa kehitysversiossa 2.5.6-pre2 julkaisuun ja 2.4-sarjassa 2.4.20-pre4 julkaisuun.

XFS[muokkaa | muokkaa wikitekstiä]

  • XFS on Silicon Graphics Inc:n (SGI) kehittämä journaloiva tiedostojärjestelmä, joka on kehitetty SGI:n Irix-käyttöjärjestelmälle.
  • Otettiin mukaan viralliseen Linux-kerneliin kehitysversiossa 2.5.36, mutta oli saatavilla ja yleisesti käytössä jo 2.4-sarjan aikana kernelistä 2.4.23 lähtien.

HFS, HFS Plus[muokkaa | muokkaa wikitekstiä]

  • HFS on Apple Mac OS X käyttöjärjestelmässä käytetty, journaloiva tiedostojärjestelmä
  • periytyy suunnitteluperiaatteidensa osalta Applen alkuperäisestä MFS -tiedostojärjestelmästä
  • vuonna 1998 julkaistu HFS Plus lisää eräitä ominaisuuksia (Applen Levytyökalussa Mac OS Extended)

GPFS[muokkaa | muokkaa wikitekstiä]

  • IBM:n kehittämä tiedostojärjestelmä erityisesti tehokkaiden klusterijärjestelmien käyttöön
  • GPFS on käytössä useissa supertietokoneissa
  • julkaistu alun perin IBM:n AIX -käyttöjärjestelmälle 1998, Linuxeille 2001 ja Microsoft Windows Server 2003 R2 (64-bit) vuonna 2008

Linuxin käyttämät tiedostojärjestelmät[muokkaa | muokkaa wikitekstiä]

Linux osaa käyttää kymmeniä eri tiedostojärjestelmiä VFS (Virtual File System) -abstraktiokerroksen ansiosta. Listassa (paitsi minix) nimenomaan Linuxille kehitettyjä tiedostojärjestelmiä. Linux on Unix-tyyppinen käyttöjärjestelmä.

Minix, xiafs ja ext2/3/4fs[muokkaa | muokkaa wikitekstiä]

Linuxin alkuperäinen tiedostojärjestelmä oli Minix-käyttöjärjestelmän tiedostojärjestelmä. Seuraavan sukupolven tiedostojärjestelmiä olivat muun muassa xiafs ja extfs, jotka ovat nykyään jääneet käytöstä. Extfs:n seuraava kehitysversio oli ext2fs, joka korvattiin 2.4.x julkaisusarjassa journaloivalla ext3fs-tiedostojärjestelmällä. Nykyään on käytössä myös ext4fs. Ext2fs, ext3fs ja ext4fs ovat yhteensopivia siltä osin kuin uusia ominaisuuksia ei käytetä, esimerkiksi voi ext3fs:n liittää ext2fs:nä, jolloin journali ei sillä kerralla ole käytössä.

ReiserFS ja Reiser4[muokkaa | muokkaa wikitekstiä]

Pääartikkelit: ReiserFS ja Reiser4

ReiserFS oli ensimmäinen journaloiva tiedostojärjestelmä, joka otettiin mukaan Linuxiin (versiossa 2.4.1-pre4). Sen alkuperäinen nimi oli TreeFS, mutta erinäisten syiden vuoksi se nimettiin lopulta suunnittelijansa Hans Reiserin mukaan. ReiserFS:n erityispiirteitä ovat muun muassa mahdollisuus pakata useita pieniä tiedostoja samalle varausyksikölle, puurakenteesta johtuva hyvä suorituskyky käytettäessä paljon pieniä tiedostoja sisältäviä hakemistoja sekä dynaamisten varausyksiköiden käyttö. Näiden piirteiden vuoksi sitä käytetään usein uutisryhmäpalvelimissa ja muissa vastaavissa kohteissa.

Reiser4 on pääosin saman kehittäjäryhmän toteuttama kokonaan uusi tiedostojärjestelmä.

Microsoftin kehittämät tiedostojärjestelmät[muokkaa | muokkaa wikitekstiä]

FAT (File Allocation Table)[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: FAT
  • Sijainti osion nollauralla
  • Pitää kirjaa muun muassa tiedoston nimestä, koosta, tiedostoattribuuteista ja varausyksiköistä, jotka sisältävät itse tiedoston tiedot.
  • Kiintolevyn (tai paremminkin sen osion) koko vaikuttaa varausyksikön kokoon.
  • Tiedostojärjestelmään on myöhemmin lisätty ominaisuuksia jotka mahdollistavat yli 8+3 merkin tiedostonimet (ns. VFAT) ja yli 2 GB levyosiot (ns. FAT32).

NTFS (New Technology File System)[muokkaa | muokkaa wikitekstiä]

Pääartikkeli: NTFS
  • Kehitetty IBM:n kehittämän HPFS-tiedostojärjestelmän pohjalta
  • Varausyksikön kokoon voi itse vaikuttaa riippumatta levyosion koosta
  • Tilanvaraustaulu toteutettu binääripuuna → Haku nopeutuu.

Verkkotiedostojärjestelmät[muokkaa | muokkaa wikitekstiä]

NFS (Network Filesystem)[muokkaa | muokkaa wikitekstiä]

Ensimmäinen, Sun Microsystemsin kehittämä verkkotiedostojärjestelmä, joka mahdollistaa tiedostojen käyttämisen verkon yli. Uudemmat versiot (NFSv2 ja NFSv3) ovat lisänneet kehittyneitä ominaisuuksia, kuten yli 2 GB tiedostojen tuen, Unicode-tiedostonimet ja TCP-protokollan käytön UDP-protokollan sijaan.

SMB (Server Message Block)[muokkaa | muokkaa wikitekstiä]

SMB on Microsoftin kehittämä verkkotiedostojärjestelmä. Uudempi versio on nimeltään CIFS, ja se mahdollistaa yli 2 GB tiedostojen tuen ja Unicode-tiedostonimet.

Katso myös[muokkaa | muokkaa wikitekstiä]

Commons
Wikimedia Commonsissa on kuvia tai muita tiedostoja aiheesta Tiedostojärjestelmät.