29Jul

Mida tähendab "kõik on fail" Linuxis?

Üks Linuxi ja teiste UNIX-like operatsioonisüsteemide omadusi on see, et "kõik on fail." See on ülikõrge lihtsustamine, kuid mõista, mis see tähendab, aitab teil mõista, kuidas Linux töötab.

Paljud Linuxi asjad ilmuvad teie failisüsteemis, kuid need ei ole tegelikult failid. Need on erifailid, mis esindavad riistvara, süsteemiteavet ja muid asju - sealhulgas juhuslike numbrite genereerija.

Need erifailid võivad asuda pseudo-või virtuaalsetes failisüsteemides nagu / dev, mis sisaldab seadmeid esindavate erifailide ja / proc, mis sisaldavad spetsiaalseid faile, mis esindavad süsteemi ja protsessi teavet.

/ proc

Näiteks oletame, et soovite leida teavet oma CPU kohta. Kataloog / proc sisaldab spetsiaalset faili - /proc/ cpuinfo - mis sisaldab seda teavet.

Teil ei ole vaja spetsiaalset käsku, mis ütleks teile oma CPU-infot - saate lihtsalt selle faili sisu lugeda standardse käsuga, mis töötab tavaliste tekstifailidega. Näiteks võite kasutada käsku cat /proc/ cpuinfo , et printida selle faili sisu terminalile - printida oma CPU andmed terminalile. Võite isegi avada /proc/ cpuinfo tekstiredaktoris selle sisu vaatamiseks.

Pidage meeles, et /proc/ cpuinfo ei ole tegelikult sellist infot sisaldav tekstifail - Linuxi kernel ja failifail süsteem proc pakuvad seda teavet meile failina. See võimaldab meil kasutada tuttavaid tööriistu teabe vaatamiseks ja töötamiseks.

kataloog / proc sisaldab ka muid sarnaseid faile, näiteks:

  • /proc/ uptime - näitab teie Linuxi kerneli töökorda - teisisõnu, kui kaua süsteem on olnud ilma sulgemata.
  • /proc/ versioon - näitab Linuxi tuuma versiooni.

/ dev

kataloogis / dev näete faile, mis tähistavad seadmeid, aga ka faile, mis esindavad teisi erilisi asju. Näiteks /dev/ cdrom on teie CD-ROM-draiv. /dev/ sda on teie esimene kõvaketas, samal ajal kui /dev/ sda1 esindab teie esimesele kõvakettale esimest partitsiooni.

Kas soovite oma CD-d paigaldada? Käitage mount-käsk ja määrake /dev/ cdrom kui seade, mida soovite paigaldada. Kas soovite oma esimese kõvaketta partitsiooni jagada? Käivitage ketta osadeks jagamise utiliit ja määra /dev/ sda kõvakettal, mida soovite redigeerida. Kas soovite esimesel kõvakettalt esimese partitsiooni vormindada? Käivita vormindamise käsk ja ütle, et see vormindaks /dev/ sda1.

Nagu näete, on nende seadmete osutamine failisüsteemil oma eelised. Failisüsteem tagab järjepideva "nime ruumi", mida kõik rakendused saavad seadmetega tegelemiseks ja neile juurdepääsu saamiseks kasutada.

/dev/ null, /dev/ juhuslik ja /dev/ null

Failisüsteem / dev ei sisalda ainult faile, mis kujutavad füüsilisi seadmeid. Siin on kolm kõige tähelepanuväärsetest eriseadmetest, mida see sisaldab:

  • /dev/ null - viskab kõik talle kirjutatud andmed - mõtle sellele prügikasti või musta auku. Kui näete kommentaari, mis ütleb, et saadate kaebusi /dev/ nullile - see on jumalik viis "visata prügikasti".
  • /dev/ juhuslikult - toodab juhuslikkust keskkonnamüra abil. See on juhusliku numbri genereerija, kuhu saate koputada.
  • /dev/ null - toodab nulle - pidev nulli vool.

Kui mõelge neist kolmest failidest, siis ei näe nende jaoks nende kasutamist. Selle asemel mõtle neile kui tööriistadele.

Näiteks vaikimisi annavad Linuxi käskud veateateid ja muud väljundit, mida nad printivad standardväljundile, tavaliselt terminali. Kui soovite käsku käivitada ja hoolimata selle väljundist, saate selle väljundi suunata /dev/ nullile. Käsu väljundi suunamine /dev/-ile null kohe viskab selle ära. Selle asemel, et iga käsu rakendada oma "vaikne režiim", saate seda meetodit kasutada mis tahes käsuga.

käsk & gt;/dev/ null

Kui soovisite juhuslikkuse allikat - näiteks krüpteerimisvõtme genereerimiseks ei pea te oma juhusliku numbri genereerija kirjutama - võite kasutada /dev/ juhuslikku.

Kõvaketta sisu kustutamiseks, kirjutades sellele 0-sid, pole vaja mingit spetsiaalset utiliidi, mis on pühendatud kettaseadme nulliksimisele - võite kasutada standardset kommunikatsiooni ja /dev/ nulli. Näiteks käsk dd loeb asukohast ja kirjutab teise asukohta. Järgmine käsk loeb nullidest /dev/ nulli ja kirjutab need otse teie süsteemi esimesele kõvaketta sektsioonile, kustutades selle sisu täielikult.

( Warning : see käsk kustutab kõik andmed selle esimesel partitsioonil, kui seda käivitate. Käivita see käsk ainult siis, kui soovite andmeid hävitada.)

dd if = /dev/ null = /dev/ sda1

Siin kasutame ddspetsiaalsete failidega( /dev/ null ja /dev/ sda1), kuid võime kasutada ka dd lugeda ja kirjutada tegelikele failidele. Sama käsk toimib nii seadmete käsitsemiseks otse kui ka failidega töötamisel.

Selgitus

Praktikas on täpsem öelda, et "kõik on baitide voog" kui "kõik on fail". /dev/ juhuslik ei ole fail, kuid see on kindlasti baidide voog. Ja kuigi need asjad ei ole tehnilised failid, on need failisüsteemis kättesaadavad - failisüsteem on universaalne "nime ruum", kus kõik on kättesaadav. Kas soovite juhusliku arvu generaatorile juurdepääsu või otse seadmest lugeda? Leiad mõlemad failisüsteemis;ühtegi muud vormistamist ei vaja.

Muidugi ei ole mõned asjad tegelikult faile - teie süsteemis töötavad protsessid ei ole failisüsteemi osa."Kõik on fail" on ebatäpsed, kuid palju asju käituvad failidena.