Pagrindinis » kaip » Ką reiškia „Viskas yra failas“?

    Ką reiškia „Viskas yra failas“?

    Vienas iš pagrindinių „Linux“ ir kitų UNIX tipo operacinių sistemų bruožų yra tas, kad „viskas yra failas“. Tai yra supaprastinimas, bet supratimas, ką reiškia, padės jums suprasti, kaip veikia „Linux“.

    Daugelis dalykų Linux sistemoje rodomi jūsų failų sistemoje, tačiau jie iš tikrųjų nėra failai. Jie yra specialūs failai, kuriuose vaizduojami aparatūros įrenginiai, sistemos informacija ir kiti dalykai, įskaitant atsitiktinių skaičių generatorių.

    Šie specialūs failai gali būti pseudo ar virtualių failų sistemose, pvz., / Dev, kuriuose yra specialių failų, kurie vaizduoja įrenginius, ir / proc, kuriame yra specialieji failai, vaizduojantys sistemos ir proceso informaciją.

    / proc

    Pavyzdžiui, tarkime, kad norite rasti informacijos apie savo procesorių. / Proc kataloge yra specialus failas - / proc / cpuinfo, kuriame yra ši informacija.

    Jums nereikia specialios komandos, kuri nurodo jūsų procesoriaus informaciją - galite tiesiog perskaityti šio failo turinį naudodami bet kokią standartinę komandą, kuri veikia su paprastais tekstiniais failais. Pavyzdžiui, galite naudoti komandą katė / proc / cpuinfo spausdinti šio failo turinį į terminalą - spausdinti CPU informaciją į terminalą. Jei norite peržiūrėti jo turinį, teksto redaktoriuje netgi galite atidaryti / proc / cpuinfo.

    Atminkite, kad / proc / cpuinfo iš tikrųjų nėra tekstinis failas, kuriame yra ši informacija - Linux branduolys ir proc failų sistema atskleidžia šią informaciją mums kaip failą. Tai leidžia mums susipažinti su žinomais įrankiais, kad galėtume peržiūrėti ir dirbti su šia informacija.

    / Proc kataloge taip pat yra kitų panašių failų, pavyzdžiui:

    • / proc / uptime - išleidžia jūsų „Linux“ branduolio veikimo laiką - kitaip tariant, kiek laiko jūsų sistema buvo įjungta nenutraukiant.
    • / proc / version - atveria jūsų Linux branduolio versiją.

    / dev

    Kataloge / dev rasite failus, kurie atstovauja įrenginius, taip pat failus, kurie atstovauja kitus specialius dalykus. Pvz., / Dev / cdrom yra jūsų CD-ROM įrenginys. / dev / sda atstovauja jūsų pirmąjį standųjį diską, o / dev / sda1 - pirmasis jūsų pirmojo standžiojo disko skaidinys.

    Norite prijungti savo CD-ROM? Paleiskite prijungimo komandą ir nurodykite / dev / cdrom kaip norimą prijungti įrenginį. Norite skaidyti savo pirmąjį standųjį diską? Paleiskite diskų skaidymo įrankį ir nurodykite / dev / sda kaip norimą redaguoti standųjį diską. Norite formatuoti pirmąjį savo standžiojo disko skaidinį? Paleiskite formatavimo komandą ir papasakokite formatą / dev / sda1.

    Kaip matote, šių įrenginių atskleidimas kaip failų sistemos dalis turi savo privalumų. Failų sistema suteikia nuoseklią „vardų erdvę“, kurią visos programos gali naudoti norėdami kreiptis į prietaisus ir pasiekti juos.

    / dev / null, / dev / random ir / dev / nulis

    / Dev failų sistemoje nėra tik failų, kurie yra fiziniai įrenginiai. Čia yra trys žymiausi specialūs įrenginiai, kuriuose yra:

    • / dev / null - Neleidžiami visi jam parašyti duomenys - pagalvokite apie tai kaip šiukšliadėžę arba juodąją skylę. Jei kada nors matote komentarą, kuriame nurodoma nusiųsti skundą į / dev / null - tai geeky būdas pasakyti „mesti juos į šiukšlinę“.
    • / dev / random - gamina atsitiktinumą naudojant aplinkos triukšmą. Tai atsitiktinių skaičių generatorius, kurį galite naudoti.
    • / dev / zero - gamina nulius - nuolatinį nulio srautą.

    Jei manote, kad šie trys failai yra failai, jiems jų nebus. Vietoj to, pagalvokite apie juos kaip įrankius.

    Pavyzdžiui, pagal nutylėjimą „Linux“ komandos sukuria klaidų pranešimus ir kitą išvestį, kurią jie spausdina į standartinę išvestį, paprastai terminalą. Jei norite paleisti komandą ir nerūpi jos išvesties, galite peradresuoti tą išvestį į / dev / null. Komandos išvesties nukreipimas į / dev / null nedelsiant jį pašalina. Vietoj to, kad kiekviena komanda įgyvendintų savo „tylųjį režimą“, šį metodą galite naudoti bet kokia komanda.

    komanda> / dev / null

    Jei norėjote atsitiktinumo šaltinio - sakydamas, kad kuriant šifravimo raktą, jums nereikės parašyti savo atsitiktinio skaičiaus generatoriaus - galite naudoti / dev / random.

    Jei norite ištrinti standžiojo disko turinį rašydami 0, jums nereikia specialios programos, skirtos diskui nulinėti - galite naudoti standartines komunalines paslaugas ir / dev / nulį. Pavyzdžiui, dd komanda skaito iš vietos ir rašo į kitą vietą. Toliau pateikta komanda nuskaito nulius iš / dev / nulio ir įrašytų juos tiesiai į pirmąjį standžiojo disko skaidinį jūsų sistemoje, visiškai ištrindama jos turinį.

    (Įspėjimas: Ši komanda ištrins visus jūsų pirmojo skaidinio duomenis, jei jį paleisite. Jei norite sunaikinti duomenis, vykdykite šią komandą.)

    dd if = / dev / nulis = / dev / sda1

    Čia mes naudojame dd su specialiais failais (/ dev / nulis ir / dev / sda1), bet mes taip pat galėtume naudoti dd skaityti ir rašyti faktiniams failams. Ta pati komanda veikia ir tiesiogiai manipuliuoti prietaisais, ir dirbti su failais.

    Paaiškinimas

    Praktiškai tiksliau pasakyti, kad „viskas yra baitų srautas“, nei „viskas yra failas“. / Dev / random nėra failas, bet tai tikrai yra baitų srautas. Ir nors šie dalykai techniškai nėra failai, jie yra prieinami failų sistemoje - failų sistema yra universali „vardų erdvė“, kur viskas yra prieinama. Norite prieiti prie atsitiktinių skaičių generatoriaus arba skaityti tiesiai iš įrenginio? Abu failus rasite failų sistemoje; jokio kito adresavimo būdo nereikia.

    Žinoma, kai kurie dalykai iš tikrųjų nėra failai - jūsų sistemoje vykdomi procesai nėra failų sistemos dalis. „Viskas yra failas“ yra netiksli, tačiau daugelis dalykų elgiasi kaip failai.