Hakemistorakenne
Linuxin hakemistorakenne on määritetty FHS-standardissa, joka määrittää joukon hakemistoja ja niiden pääasiallisen käyttötarkoituksen. Useimmat jakelut noudattavat nykyisin tätä standardia. Tunnetuimpana poikkeuksena on GoboLinux, jossa hakemistorakenne on järjestetty kokonaan uudelta pohjalta.
Yleistä
Hakemistorakenne alkaa juurihakemistosta, merkintä kauttaviiva "/", jonka alle tiedostot ja hakemistot järjestetään puumaiseksi rakenteeksi. Nykyisin on myös yleistynyt vertaus sisäkkäisistä kansioista.
Levyasemat näkyvät käyttäjälle ja ohjelmille hakemistoina. Esimerkiksi CD-levyltä lukiessa ei viitata suoraan asemaan, vaan hakemistoon "/media/cdrom". Tämä mahdollistaa järjestelmän tiedostojen jakamisen usealle fyysiselle laitteelle niin, että haluttu tiedosto löytyy aina standardin mukaista polkua käyttäen, riippumatta tallennuslaitteiden fyysisestä kokoonpanosta.
Tiedostoihin ja hakemistoihin voidaan viitata absoluuttisesta tai suhteellista polkua käyttäen. Absoluuttinen viittaminen tarkoittaa, että polku tiedostoon kirjoitetaan täydellisenä juurihakemistosta lähtien esimerkiksi "/usr/doc/apache-1.3.34/README". Suhteellinen viittaminen tarkoittaa, että hakemistopolku on suhteessa aktiiviseen hakemistoon esimerkiksi "../../doc/apache-1.3.34/README".
Juurihakemisto
Juurihakemiston "/" alta tulee löytyä järjestelmän käynnistämiseen ja palauttamiseen tarvittavat osat. FHS-standardi määrittää seuraavat hakemistot:
/bin | Olennaiset järjestelmäkomennot kaikkien käyttäjien käytettäväksi. |
/boot | Järjestelmän käynnistämiseen tarvittavat tiedostot. Käynnistyslataimet kuten Grub ja Lilo säilövät tarvitsemiansa tietoja tänne. |
/dev | Laitetiedostot. |
/etc | Järjestelmän ja useimpien daemonien asetukset. |
/home | Käyttäjien kotihakemistot. Käyttäjä voi viitata omaan kotihakemistoonsa ~-merkillä, muiden kotihakemistoihin ~kayttaja. |
/lib | Järjestelmän jaetut kirjastot sekä ytimen moduulit. |
/media | Siirrettävän median liitoskohdat. |
/mnt | Väliaikaisesti liitetyt osiot. |
/opt | Isoja, erillisiä ohjelmapaketteja, joita ei jostain syystä haluta lisätä /usr-hakemiston alle. Monissa jakeluissa on olemassa mm. /opt/kde ja /opt/mozilla. |
/proc | Vain Linuxissa. Kernelin ja prosessien tiedot. Procfs-levyjärjestelmän luoma virtuaalinen hakemisto. |
/root | Pääkäyttäjän kotihakemisto. |
/sbin | Välttämättömimmät ylläpitoohjelmat. Useimmat näistä on tarkoitettu vain pääkäyttäjälle. |
/tmp | Väliaikaistiedostot, tyhjennetään koneen käynnistyessä uudelleen. Kaikilla käyttäjillä on luku- ja kirjoitusoikeudet /tmp-hakemistoon. |
/usr | Vain luettavaksi tarkoitettua tietoa, joka on tarvittaessa mahdollista jakaa useamman järjestelmän kesken. Täältä löytyvät mm. useimmat sovellusohjelmat. |
/var | Muuttuvat tiedostot, lokitiedostot yms.. |
/home
Hakemiston /home alta löytyvät käyttäjien kotihakemistot, esimerkiksi /home/pekka. Kotihakemiston alle tallennetaan kaikki käyttäjän tekemät tiedostot. Tämä helpottaa esimerkiksi tiedostojen varmuuskopiointia, koska kaikki käyttäjän tiedostot löytyvät samasta paikasta.
Normaalikäyttäjän oikeuksilla pystyy tiedostoja tallentamaan tai muuttamaan vain omaan kotihakemistoon. Käyttäjä ei siis voi vahingossa poistaa tai muuttaa järjestelmän toiminnan kannalta oleellisia tiedostoja.
/usr-hierarkia
/usr-hakemiston alta löytyvät järjestelmän vähemmän kriittiset osat kuten sovellusohjelmat, dokumentaatio, ohjelmien jaetut tiedostot kuten fontit, ikonit jne.
Pakolliset elementit
Normaalin toiminnan kannalta olennaisia elementtejä, joiden tulee löytyä jokaisesta järjestelmästä.
/usr/bin | Useimmat järjestelmäkomennot ja ohjelmat. |
/usr/include | C-kääntäjän otsikkotiedostot. |
/usr/lib | Erilaisia kirjastoja. Osa näistä on oman alihakemistonsa alla. |
/usr/local | Paikallinen hierarkia. Oletuksena tyhjä, järjestelmän ylläpitäjä voi rakentaa oman tarvitsemansa hierarkian, esimerkiksi dokumenttien jakoa varten käyttäjien kesken. /usr/local/src-hakemiston alle on perinteisesti sijoitettu itse käännettyjen ohjelmien lähdekoodeja. /usr/local/bin ja /usr/local/sbin on tarkoitettu itse tehdyille ohjelmille/skripteille. |
/usr/sbin | Ei-kriittiset pääkäyttäjälle tarkoitetut ylläpitoohjelmat. |
/usr/share | Jaetut arkkitehtuurista riippumattomat tiedostot.
Hakemistosta /usr/share saattaa löytyä esimerkiksi seuraavia alikansioita:
|
Valinnaiset elementit
Valinnaiset elementit sisältävät mahdollisesti tarpeellisia järjestelmän laajennusosia.
/usr/X11R6 | X-ikkunointijärjestelmä ja sen tarvitsemat osat. |
/usr/games | Pelit. |
/usr/src | Ohjelmien (mm. ytimen) lähdekoodit. |
/var-hierarkia
/var hakemisto on tarkoitettu järjestelmän ja sovellusten muuttuvien tietojen tallentamiseen. Tällaisia tietoja ovat esimerkiksi lokitiedostot sovellusten toiminnasta.
Pakolliset elementit
Pakollisten elementtien tulee löytyä jokaisesta järjestelmästä, ne ovat normaalin toiminnan kannalta olennaisia.
/var/cache | Sovellusten cache-tiedot. |
/var/lib | Sovellusten suorituksen aikaiset tilatiedot |
/var/local | Muuttuva data /usr/local-hierarkiasta. |
/var/lock | Lukitustiedostot. |
/var/log | Lokitiedostot. |
/var/opt | Muuttuva data /opt-hierarkiasta. |
/var/run | Prosesseihin liittyvät ajotiedot. |
/var/spool | Sovellusten prosessointia odottava data |
/var/tmp | Väliaikaistiedostot, jotka säilytetään bootin yli. |
Valinnaiset elementit
Valinnaiset elementit sisältävät mahdollisesti tarpeellisia järjestelmän laajennusosia.
/var/account | Prosessien aiheuttamien kuormituksen kirjaus. |
/var/crash | Järjestelmän kaatumisen selvittämistä auttavat tiedostot. |
/var/games | Pelien muuttuvat tiedot. |
/var/mail | Käyttäjien postilaatikot. |
/var/yp | Network Information Service (NIS) tietokannat. |
Varatut hierarkiat
/var-hierarkian alla on historiallisista syistä varattuja hakemistoja:
/var/backups /var/cron /var/msgs /var/preserve