Proc-tiedostojärjestelmä
Proc-tiedostojärjestelmä (procfs) on yleensä /proc-hakemistoon liitetty pseudotiedostojärjestelmä, jota käytetään tiedon välittämiseen ytimen ja prosessien välillä. Sen sisältö ei siis sijaitse millään levyllä vaan se generoidaan aina luettaessa.
Proc-tiedostojärjestelmässä olevia "tiedostoja" voi lukea ja niihin voi kirjoittaa tietoa normaalisti (monesti etenkin kirjoittamiseen vaaditaan pääkäyttäjän oikeudet). Esimerkiksi tiedot käytettävissä olevasta muistista saa selville lukemalla tiedoston /proc/meminfo sisällön:
$ cat /proc/meminfo MemTotal: 775540 kB MemFree: 10272 kB ...
Vastaavasti esimerkiksi kirjoittamalla luvun 1 tiedostoon /proc/sys/net/ipv4/ip_forward kerrotaan ytimelle, että IP-liikenteen uudelleenohjaus on sallittua.
Tiedostoja
Proc-tiedostojärjestelmästä löytyy lukuisia muita tiedostoja ja hakemistoja yllä mainittujen esimerkkien lisäksi. Jotkut tiedostot sisältävät tietoa järjestelmän tilasta ja toisiin kirjoittamalla voidaan säätää ytimen toimintaa.
Proc-tiedostojärjestelmän tiedostot voi listata normaalisti komennolla
$ ls /proc
Listauksesta nähdään, että /proc-hakemistossa on useita hakemistoja, joiden nimi koostuu vain numeroista. Nämä hakemistot sisältävät tiedot käynnissä olevista prosesseista siten, että hakemiston nimi on kyseisen prosessin PID-tunniste. Tällaiset hakemistot sisältävät mm. seuraavat tiedostot:
- cmdline, josta löytyy prosessin käynnistyskomento ilman välilyöntejä
- cwd, joka on symbolinen linkki prosessin nykyiseen työhakemistoon
- environ, josta löytyy prosessiin vaikuttavat ympäristömuuttujat muodossa ASETUS=arvo ilman välilyöntejä.
- exe on symbolinen linkki ajettavaan ohjelmaan
- root on symbolinen linkki prosessin juurihakemistoon (yleensä /)
- status, josta löytyy erilaisia tietoja prosessista, mm. sen viemän muistin määrä ja tieto siitä, kuinka suuren osan ajasta prosessi on ollut "unitilassa" (eli ei ole kuormittanut prosessoria). Samoja tietoja näkee mm. top- ja ps-työkaluilla
- task on hakemisto, joka sisältää kovat linkit prosessin käynnistämiin prosesseihin
Muita Proc-tiedostojärjestelmästä löytyviä tiedostoja ovat mm.
Tiedosto | Selitys |
/proc/acpi tai /proc/apm | Jos acpi tai apm on käytössä, niin nämä hakemistot sisältävät virranhallintaan liittyviä tietoja |
/proc/cmdline | Ytimen käynnistysoptiot (ilman välilyöntejä) |
/proc/cpuinfo | Tiedot suorittimista (mm. merkki, malli ja suorituskyky) |
/proc/crypto | Käytettävissä olevat salakirjoitusmoduulit |
/porc/devices | Käytössä olevat laitteet (laiteajurit) |
/proc/dma | Käytössä olevat DMA-kanavat |
/proc/filesystems | Ytimen tukemat tiedostojärjestelmät |
/proc/interrupts | Käytetyt keskeytykset ja niiden käyttömäärän |
/proc/ioports | Käytössä olevat syöte- ja tulostelaitteet |
/proc/mdstat | Ohjelmistopohjaisen RAIDin tila |
/proc/modules | Ladatut ytimen moduulit ja niiden riippuvuudet |
/proc/scsi | Hakemisto, josat löytyy tiedot SCSI- ja RAID-laitteista |
/proc/swaps | Käytössä olevat sivutusosiot |
/proc/sys | Hakemisto, josta löytyy ajon aikana muutettavat ytimen asetukset (kuten alussa mainittu ip_forward). Näitä asetuksia voi muuttaa kirjoittamalla kyseisiin tiedostoihin uuden arvot. |
/proc/uptime | Järjestelmän päälläoloaika ja aika, jonka ydin on viettänyt tekemättä mitään (ns. idle mode) sekunteina |
/proc/version | Ytimen ja jakelun versiot sekä mm. ytimen kääntämiseen käytetyn gcc:n tiedot |
/proc/version_signature | Ubuntun käyttämä tiedosto, josta löytyy käytettävän Ubuntun ytimen versio (esim. Ubuntu 2.6.22-14.46-generic) |
Katso myös
Linkkejä
- Proc-tiedostostojärjestelmästä kertova artikkeli englanninkielisessä Wikipediassa
- Access the Linux kernel using the Procfs - IBM:n artikkeli Procfs:stä