Hakemisto

(Ohjattu sivulta Hakemistopuu)
Tämä artikkeli käsittelee tiedostojen tallennusta. Hakemisto voi viitata myös kirjassa olevaan hakemistoon, tai tietojenkäsittelytieteessä hakurakenteeseen.

Hakemisto, myös nimillä kansio tai laatikosto (engl. drawer)[1], on tiedostojen järjestämiseen käytetty rakenne tiedostojärjestelmässä. Teknisestä näkökulmasta hakemisto on erityinen tiedosto, jossa on luettelo siihen liitetyistä tiedostoista.[2]

Hakemistoja ja niiden alla olevia tiedostoja.

Hakemistot ovat niin sanotun toisen sukupolven tiedostojärjestelmän (hierarkkinen tiedostojärjestelmä) ominaisuus ja keskeisessä roolissa.[3][4] Hierarkkiset tiedostojärjestelmät ovat olennaisia moderneissa käyttöjärjestelmissä.[4] Kun Unixissa oli hierarkkinen tiedostojärjestelmä se ei vielä ollut itsestäänselvyys kaikkialla: esimerkiksi CP/M:ssä tiedostojärjestelmässä ei ollut alihakemistoja ja joissakin muissa järjestelmissä syvyys oli rajattu vain muutamaan tasoon kun taas Unix salli minkä vain syvyyden.[5]

Käyttäjälle hakemisto ilmenee astiana tai säiliönä, joka voi sisältää tiedostoja ja muita hakemistoja.[4] Kansio on Macintoshissa ja Windowsissa käytetty synonyymi hakemistolle.[4]

Hakemistopolkuja käytetään tunnistamaan kappale tiedostojärjestelmässä. Polut sisältävät erotinmerkkejä sekä komponentteja, jotka ovat muita kuin erotinmerkkejä. Hakemistopolut voivat olla "absoluuttisia" (alkaen juurihakemistosta) tai "suhteellisia", jotka alkavat sen hetkisestä hakemistosta.[6] Hakemisto voi sisältää tiedostojen lisäksi muita hakemistoja eli alihakemistoja. Sisäkkäisistä hakemistoista muodostuu tiedostojärjestelmän hakemistorakenne eli hakemistopuu. Unix-tyyppiset käyttöjärjestelmät, AmigaOS ja useat muut käyttävät hakemistotasojen erottimena vinoviivaa (/). CP/M, MS-DOS ja Windows käyttävät kenoviivaa (\). Vastaavasti URL-osoitteissa verkkotunnuksen jälkeiset vinoviivat tyypillisesti jäsentävät WWW-palvelimen hakemistopolkua. OpenVMS käyttää hakemistoerottimena pistettä (.) ja vanha Mac OS (ennen OS X:ää) kaksoispistettä (:).

Hakemistopolun ja tiedostonimien yhteispituus voi rajoittaa maksimipituutta ja se voi riippua käytetystä merkistöstä. Mac OS X, Solaris ja AIX käyttöjärjestelmissä suurin sallittu yhteispituus on 1024 merkkiä.[7] Linuxissa tiedoston nimelle on 255 merkin maksimi ja yhteispituus voi olla 4096 tavua.[7] Windowsin ohjelmointirajapinnassa suurin sallittu tiedoston polun pituus on 260 merkkiä ("D:\<korkeintaan 256 merkkiä><NUL>"), josta enintään 255 on tiedostonimelle.[8][7] Unicoden kanssa merkkien maksimimäärä voi vaihdella kun yksi merkki voi käyttää useampia tavuja.[7] OpenVMS:ssä ODS-5 tiedostojärjestelmällä nimen pituus voi olla 236 8-bittistä tai 118 16-bittistä merkkiä.[9]

Vanhanaikaisissa tai yksinkertaisissa tietokonejärjestelmissä (sulautetut järjestelmät) ei välttämättä ole hakemistoja lainkaan, vaan kaikki tiedostot tallentuvat suoraan juurihakemistoon (ensimmäisen sukupolven tiedostojärjestelmät).[3]

Hakemistojen esitystavat muokkaa

 
Graafisissa käyttö­liittymissä hakemistoa tyypillisesti edustaa kansio-kuvake.

Useissa graafisissa käyttöliittymissä hakemisto voidaan esittää kansion (folder) näköisellä kuvakkeella. Tämän tarkoitus on havainnollistaa ajatusta, että tiedostoja voidaan säilyttää ikään kuin kansion sisällä. Graafisten käyttöliittymien esitystavat vaihtelevat ja niissä on toisinaan erinäköisiä kansioita, kun taas tiedostojärjestelmän kannalta tällaista eroa ei ole.

Muun muassa AmigaOS käytti laatikostoja (drawer) hakemistosymboleina.[10] Muitakin esitystapoja on käytetty.

Lähteet muokkaa

  1. Using The Amiga Workbench computinghistory.org.uk. Viitattu 14.4.2022. (englanniksi)
  2. K. Thompson: UNIX Implementation (PDF) users.soe.ucsc.edu. Viitattu 8.9.2019. (englanniksi)
  3. a b Jim Salter: Bitrot and atomic COWs: Inside “next-gen” filesystems 15.1.2014. Ars Technica. Viitattu 13.11.2019. (englanniksi)
  4. a b c d Directory Definition linfo.org. Viitattu 23.9.2021. (englanniksi) 
  5. Neil Brown: Ghosts of Unix Past: a historical search for design patterns lwn.net. 27.10.2010. Viitattu 23.10.2020. (englanniksi)
  6. Pathname lookup kernel.org. Viitattu 23.9.2021. (englanniksi)
  7. a b c d File specification syntax ibm.com. Viitattu 23.9.2021. (englanniksi)
  8. http://msdn.microsoft.com/en-us/library/aa365247.aspx#maxpath
  9. OpenVMS Guide to Extended File Specifications (PDF) vmssoftware.com. Viitattu 14.4.2022. (englanniksi)
  10. The Amiga Workbench theamigamuseum.com. Viitattu 6.1.2022. (englanniksi)