29Jul

Čo znamená "všetko je súbor" v systéme Linux?

Jednou z definujúcich funkcií Linuxu a iných operačných systémov podobného systému UNIX je, že "všetko je súbor". Toto je zjednodušenie, ale pochopenie toho, čo to znamená, vám pomôže pochopiť, ako funguje Linux.

Mnoho vecí na systéme Linux sa objavuje vo vašom súborovom systéme, ale nie sú vlastne súbory. Sú to špeciálne súbory, ktoré predstavujú hardvérové ​​zariadenia, informácie o systéme a ďalšie veci - vrátane generátora náhodných čísel.

Tieto špeciálne súbory môžu byť umiestnené v pseudo alebo virtuálnych súborových systémoch, ako napríklad / dev, ktoré obsahujú špeciálne súbory, ktoré reprezentujú zariadenia a / proc, ktoré obsahujú špeciálne súbory, ktoré reprezentujú informácie o systéme a procese.

/ proc

Povedzme napríklad, že chcete nájsť informácie o procesore. Adresár / proc obsahuje špeciálny súbor - /proc/ cpuinfo - ktorý obsahuje tieto informácie.

Nepotrebujete špeciálny príkaz, ktorý vám povie informácie o CPU - stačí prečítať obsah tohto súboru pomocou ľubovoľného štandardného príkazu, ktorý pracuje s textovými súbormi. Môžete napríklad použiť príkaz

cat /proc/ cpuinfo na vytlačenie obsahu tohto súboru do terminálu - tlačenie informácií o CPU do terminálu. Môžete dokonca otvoriť /proc/ cpuinfo v textovom editore pre zobrazenie jeho obsahu.

Pamätajte si, že cpuinfo /proc/ nie je v skutočnosti textový súbor obsahujúci tieto informácie - Linuxové jadro a súborový systém proc odkryjú tieto informácie nám ako súbor. To nám umožňuje používať známe nástroje na prezeranie a prácu s informáciami.

Adresár / proc obsahuje aj iné podobné súbory, napríklad:

  • /proc/ uptime - zobrazuje uptime Linuxového jadra - inými slovami, ako dlho bol váš systém zapnutý bez vypnutia. Verzia
  • /proc/ - zobrazí verziu vášho jadra systému Linux.

/ dev

V adresári / dev nájdete súbory, ktoré predstavujú zariadenia - rovnako ako súbory, ktoré predstavujú iné špeciálne veci. /dev/ cdrom je napríklad vaša jednotka CD-ROM./dev/ sda predstavuje váš prvý pevný disk, zatiaľ čo /dev/ sda1 predstavuje prvý oddiel na vašom prvom pevnom disku.

Chcete pripojiť disk CD-ROM?Spustite príkaz mount a zadajte /dev/ cdrom ako zariadenie, ktoré chcete pripojiť.Chcete rozdeliť prvý pevný disk? Spustite nástroj na delenie diskov a zadajte /dev/ sda ako pevný disk, ktorý chcete upraviť.Chcete na prvom pevnom disku formátovať prvý oddiel? Spustite príkaz na formátovanie a povedzte mu formát /dev/ sda1.

Ako vidíte, vystavenie týchto zariadení ako súčasti súborového systému má svoje výhody. Systém súborov poskytuje konzistentný "menný priestor", ktorý môžu všetky aplikácie použiť na adresovanie a prístup k zariadeniam.

/dev/ null, /dev/ náhodný a /dev/ nula

Súborový systém / dev neobsahuje iba súbory, ktoré predstavujú fyzické zariadenia. Tu sú tri z najpozoruhodnejších špeciálnych zariadení, ktoré obsahuje:

  • /dev/ null - Odstráni všetky dáta napísané na to - premýšľajte o tom ako o koši alebo čiernej diere. Ak ste niekedy videli komentár s výzvou na odoslanie sťažností na /dev/ null - to je šialený spôsob, ako hovoriť "hádzať ich do koša."
  • /dev/ náhodné - Produkuje náhodnosť pomocou environmentálneho hluku. Je to generátor náhodných čísel, do ktorého sa môžete zapojiť.
  • /dev/ nula - produkuje nuly - konštantný prúd núl.

Ak si myslíte o týchto troch súboroch, neuvidíte pre nich použitie. Namiesto toho premýšľajte nad nimi ako s nástrojmi.

Napríklad štandardne príkazy Linuxu vytvárajú chybové hlásenia a iné výstupy, ktoré tlačia na štandardný výstup, obyčajne terminál. Ak chcete spustiť príkaz a nestaráte sa o jeho výstup, môžete tento výstup presmerovať na /dev/ null. Presmerovanie výstupu príkazu na /dev/ null okamžite ho odstráni. Namiesto toho, aby každý príkaz implementoval vlastný "tichý režim", môžete túto metódu použiť akýmkoľvek príkazom. Príkaz

& gt;/dev/ null

Ak ste chceli zdroj náhodnosti - povedzme, pri generovaní šifrovacieho kľúča by ste nemuseli písať svoj vlastný generátor náhodných čísel - môžete použiť /dev/ náhodne.

Ak chcete vymazať obsah pevného disku písaním 0 na to, nepotrebujete špeciálny nástroj určený na nulovanie disku - mohli by ste použiť štandardné nástroje a nula /dev/.Napríklad príkaz dd číta z miesta a zapíše na iné miesto. Nasledujúci príkaz by niesol nuly z nuly /dev/ a zapísal ich priamo na prvý oddiel pevného disku na vašom systéme a úplne vymazal jeho obsah. ( Upozornenie : Tento príkaz vymaže všetky dáta na vašej prvej časti, ak ju spustíte. Naše spusťte tento príkaz, ak chcete zničiť dáta.)

dd if = /dev/ nula = /dev/ sda1

Tu používame ddso špeciálnymi súbormi( /dev/ nula a /dev/ sda1), ale mohli by sme tiež použiť dd na čítanie a zápis do skutočných súborov. Ten istý príkaz funguje ako pri manipulácii so zariadeniami priamo, tak pri práci so súbormi. Vysvetlenie

V praxi je presnejšie povedať, že "všetko je tok bajtov" ako "všetko je súbor". Náhodné /dev/ nie je súbor, ale určite je to prúd bajtov. A hoci tieto veci nie sú technicky súbory, sú dostupné v súborovom systéme - súborový systém je univerzálny "názov priestoru", kde je všetko prístupné.Chcete získať prístup k generátoru náhodných čísel alebo si ho prečítať priamo zo zariadenia? Obaja nájdete v súborovom systéme;žiadna iná forma adresovania nie je potrebná.

Samozrejme, niektoré veci nie sú vlastne súbory - procesy bežiace vo vašom systéme nie sú súčasťou súborového systému."Všetko je súbor" je nepresné, ale veľa vecí sa správa ako súbory.