29Jul
Viena iš Linux ir kitų UNIX panašių operacinių sistemų ypatybių yra tai, kad "viskas yra byla". Tai pernelyg paprastesnis, bet suprasti, ką tai reiškia, padės suprasti, kaip veikia "Linux".
Daugelis "Linux" dalykų atsiranda jūsų failų sistemoje, tačiau jie iš tikrųjų nėra failai. Tai specialūs failai, kurie vaizduoja aparatūros įrenginius, sistemos informaciją ir kitus dalykus, įskaitant atsitiktinių skaičių generatorių.
Šie specialieji failai gali būti pseudo arba virtualiose failų sistemose, tokiose kaip / dev, kuriose yra specialių failų, kurie yra įrenginiai, ir / proc, kuriuose yra specialių failų, kurie yra sistemos ir proceso informacijos.
/ proc
Pavyzdžiui, tarkime, kad norite rasti informacijos apie savo CPU.Kataloge / proc yra specialus failas - /proc/ cpuinfo - kuriame yra šios informacijos.
Jums nereikia specialios komandos, kurioje nurodoma jūsų procesoriaus informacija - galite tiesiog perskaityti šio failo turinį naudodami bet kurią standartinę komandą, kuri veikia su teksto failais. Pavyzdžiui, galite naudoti komandą
cat /proc/ cpuinfo , norėdami spausdinti šio failo turinį į terminalą - spausdinti savo procesoriaus informaciją į terminalą.Jūs galite net atidaryti /proc/ cpuinfo teksto redaktoriuje, kad galėtumėte peržiūrėti jo turinį.Atminkite, kad /proc/ cpuinfo iš tikrųjų nėra tekstinį failą, kuriame yra šios informacijos - Linux branduolys ir failų sistema proc naudoja šią informaciją mums kaip failą.Tai leidžia mums naudoti pažįstamus įrankius, kad galėtume peržiūrėti ir dirbti su informacija.
Kataloge / proc taip pat yra kitų panašių failų, pavyzdžiui:
- /proc/ uptime - atskleidžia jūsų "Linux" branduolio veikimo laiką - kitaip tariant, kiek laiko jūsų sistema buvo įjungta be uždarymo.
- /proc/ versija - aptinka jūsų "Linux" branduolio versiją.
/ dev
/ dev kataloge rasite failus, kuriuose yra įrenginiai, taip pat failus, kuriuose yra kitų ypatingų dalykų.Pavyzdžiui, /dev/ cdrom yra jūsų CD-ROM įrenginys. /dev/ sda yra pirmasis kietasis diskas, o /dev/ sda1 - pirmasis jūsų pirmojo kietojo disko skaidinys.
Norite tvirtinti CD-ROM?Paleiskite komandą mount ir nurodykite /dev/ cdrom kaip įrenginį, kurį norite sumontuoti. Norite suskirstyti savo pirmąjį kietąjį diską?Vykdykite disko skaidinio įrankį ir nurodykite /dev/ sda kaip standųjį diską, kurį norite redaguoti. Norite suformuoti pirmąjį skaidinį pirmame kietajame diske? Vykdykite formatavimo komandą ir praneškite, kad ji formatuoja /dev/ sda1.
Kaip matote, šie prietaisai, kurie yra failų sistemos dalis, turi privalumų.Failų sistema užtikrina nuoseklią "vardų erdvę", kurią visos programinės įrangos gali naudoti norėdami spręsti ir prieiti prie įrenginių.
/dev/ null, /dev/ atsitiktinis ir /dev/ nulis
Failų sistema / dev ne tik turi failus, kurie yra fiziniai įrenginiai.Čia yra trys labiausiai pastebimi specialūs įrenginiai, kuriuos jis turi:
- /dev/ null - atmeta visus į jį įrašytus duomenis - pagalvokite apie tai kaip šiukšliadėžę ar juodąją skylę.Jei kada nors matote komentarą, kuriame teigiama, kad norite nusiųsti skundą į /dev/ nulį, tai yra gėdingas būdas pasakyti "išmesti juos į šiukšliadėžę".
- /dev/ atsitiktinis - sukuria atsitiktinumą naudojant aplinkos triukšmą.Tai atsitiktinių skaičių generatorius, į kurį galite prisijungti.
- /dev/ nulis - sukuria nulius - pastovus nulių srautas.
Jei manote apie šiuos tris failus, jų nematysite. Užuot galvoję apie juos kaip į įrankius.
Pavyzdžiui, pagal numatytuosius nustatymus "Linux" komandos pateikia klaidų pranešimus ir kitą produkciją, kurią jie spausdina į standartinę išvestį, paprastai į terminalą.Jei norite paleisti komandą ir nerūpi jo išvesties, galite peradresuoti šią išvestį į /dev/ nulį.Komandos išvesties peradresavimas į /dev/ null iškart jį pašalina. Vietoj to, kad kiekviena komanda įdiegtų savo "ramybės režimą", šį metodą galite naudoti bet kuria komanda.
komanda & gt;/dev/ null
Jei norite atsitiktinumo šaltinio - tarkim, šifravimo rakto generavimui nereikės rašyti savo atsitiktinių skaičių generatoriaus - galite naudoti atsitiktinį /dev/.
Norėdami ištrinti kietojo disko turinį rašydami 0, jums nereikia specialios programos, skirtos disko nuliui nustatyti - galite naudoti standartines priemones ir /dev/ nulį.Pavyzdžiui, komanda dd nuskaito iš vietos ir įrašo į kitą vietą.Ši komanda norėtų skaityti nulius iš /dev/ nulio ir įrašyti juos tiesiai į pirmąjį standžiojo disko skaidinį jūsų sistemoje, visiškai ištrindami jo turinį.
( ) Įspėjimas : Ši komanda ištrins visus jūsų pirmojo skaidinio duomenis, jei ją paleidžiate. Jei norite sunaikinti duomenis, paleiskite šią komandą.)
dd if = /dev/ nulis = /dev/ sda1
Čia mes naudojame ddsu specialiais failais( /dev/ nulis ir /dev/ sda1), bet mes taip pat galime naudoti dd, kad galėtume perskaityti ir rašyti į faktinius failus. Ta pati komanda veikia tiek tiesiogiai manipuliuoti įrenginiais, tiek dirbant su failais.
Paaiškinimas
Praktiškai tiksliau tariant, kad "viskas yra baitų srautas", nei "viskas yra failas". /dev/ atsitiktinis yra ne failas, bet tai tikrai baitų srautas. Ir nors šie dalykai techniškai nėra failai, jie yra prieinami failų sistemoje - failų sistema yra universali "vardų erdvė", kurioje viskas yra prieinama. Norite pasiekti atsitiktinių skaičių generatorių arba skaityti tiesiogiai iš įrenginio? Jūs rasite abu failų sistemoje;jokios kitos formos adresavimo nereikia.
Žinoma, kai kurie dalykai iš tikrųjų nėra failai - jūsų sistemoje veikiantys procesai nėra failų sistemos dalis."Viskas yra failas" yra netikslus, tačiau daug dalykų elgiasi kaip failai.