GNU/Linux >> Znalost Linux >  >> Linux

Všechno je v Linuxu soubor – část 1

V této první části, rozdělené na 2 části, představím koncept, že vše je soubor, a představím speciální zařízení /dev/null, /dev/zero, /dev/random/dev/full . Část 2 bude představovat didakticky zajímavé funkce, například jak přeměnit soubor na oddíl!

Úvod

  • Co to je?

Všechno je soubor je koncept toho, jak systém vše zaznamenává a uchovává ve své struktuře. Na rozdíl od jiných operačních systémů operační systémy typu UNIX zacházejí se vším jako se společným souborem.

To znamená, že se jako soubory nepřipojují pouze oddíly, ale adresáře konkrétních zařízení, jako jsou RAM, chytré telefony, externí disky, a disky optických médií jsou všechny soubory. Kromě toho jsou zásuvky a potrubí také soubory!

Navíc každý terminál TTY – ty, které otevřete pomocí CTRL ALT F1 – jsou v očích systému „soubory“.

Adresář /dev

Pokud projdete adresář / dev, uvidíte všechny soubory odpovídající systémovým připojením vzhledem k ostatním médiím. Je to, jako kdybyste k počítači připojili mobilní telefon, externí pevný disk nebo dokonce USB klíčenku a vše se stalo „souborem“ pro operační systém.

Systémové oddíly jsou soubory začínající „sd ” ve složce /dev.​Ve stejné složce jsou TTY zařízení TeleTypewriter, shellový terminál, ke kterému se přistupuje pomocí “CTRL ALT F1 “příkaz. Již montážní bloky používané systémem optických médií (DVD, CD atd.) jsou také v této složce, v souborech uvedených „loop “.

Speciální zařízení

Největší zajímavostí tohoto příspěvku jsou tyto 4 malé soubory ve složce /dev:  full, zero, random a null. Dokážete rozlišit funkci každého z nich? To, co mají společné, spočívá v tom, že se jedná o „speciální soubory ” a nikoli pouhé adresáře.

Zařízení Null:/dev/null

Nulové zařízení (device null) se obvykle používá k vyřazení výstupního proudu procesu, na jehož výsledku z nějakého důvodu nezáleží. Slouží také jako prázdný soubor pohodlí. Obvykle se tato operace provádí prostřednictvím příkazu přesměrování na systémové konzole. Jakýkoli soubor odeslaný do zařízení „/dev/null“ navždy zmizí kvůli tomu, jak funguje, a data se okamžitě zbaví.

Je to jako velká černá díra, haraburdí, které se nikdy nezaplní.

​Poeticky si programátoři kvůli této zvláštnosti dělají spoustu vtipů o /dev/null.

Zkuste následující příkaz:$ echo “Hello World” Jako výstup příkazu uvidíte “Hello World”.

Nyní zkuste:

$ echo “Hello World”> /dev/null

Vrátí prázdný výstup. To znamená, že se nic nestane.

Protože výstup příkazu „Ahoj světe“ šel do Nikde.
Pohltila ho černá díra.

Šel navštívit Courage the Cowardly Dog in Nowhere! Nebo jakékoli jiné bláznivé místo, které vaše fantazie dovolí.

​/dev/null pro systémy založené na UNIXu funguje jako černá díra:

To, co se tam odešle, se nevrátí!​Ponecháme-li stranou vtipy, v podstatě se výstup příkazu procesu neuložil, byl to přímé zahození, jako by nikdy nebyl vygenerován.

Zařízení je plné:/dev/full

V systému Linux je vždy plné zařízení speciální soubor, který při přístupu k zápisu vždy vrací stejný chybový kód:ENOSPC – což znamená „V zařízení není k dispozici žádné místo “.

Kromě toho má další funkci:Protože je vždy plný, poskytuje nekonečné množství znaků null (NULL) každému procesu, který k němu přistupuje jako přečtený. Toto zařízení se běžně používá k testování chování programu, když dojde k chybě kvůli zaplnění paměťového disku!

Vyzkoušejte následující příkaz:$ echo “Ahoj světe”> /dev/fullToto zařízení způsobí úplnou chybu napodobující přeplněný HDD!
bash: echo:chyba zápisu:V zařízení nezbývá místo

Zero Device:/dev/zero

V operačních systémech podobných Unixu je /dev/zero speciální soubor, který uvádí, kolik znaků null se z něj přečte – NULL tabulky ASCII, 0x00; a nikoli znak „nula číslice“, „0“, jehož hodnota je 0x30–.

Proud nulových znaků generovaný tímto zařízením lze například použít k přepsání informací na disku (k jeho vyčištění) nebo ke generování čistého souboru o velikosti X do nekonečna. Systém BSD jej využívá implementací sdílené paměti prostřednictvím funkce mmap , která mapuje/dev/nula na RAM.

Vytvoří velký prázdný soubor s názvem „test“:

$ dd if=/dev/ zero of=/home/
$ USER /test count=1000 bs=1000

Pokud příkazu neuložíte omezení, dostanete jako „dd if=/dev/zero of=/home / $ USER/test“, uvidíte soubor, který se bude zvětšovat a bude mít tendenci do nekonečna; přestane růst pouze tehdy, když je disk plný, což vede k chybě „není dostupné místo na disku“.

Tento příkaz je zajímavý, když chcete obnovit jednotku s perem, která má poškozenou tabulku oddílů a je neopravitelná. dd příkaz vynutí zápis a /dev /zero naplní každý blok úložiště nulami. Bude v nově vyrobeném stavu, což vyžaduje, abyste později použili program, jako je Disks nebo Gparted, abyste znovu vytvořili tabulku oddílů!

​Při tomto příkazu buďte opatrní, pokud je výstup =/dev /sda1, vynulujete celý disk sda1 (zaplníte ho nulami), takže soubory nebudou obnovitelné.

Náhodné zařízení:/dev/random

Funguje to tak, že používá stejnou logiku jako /dev/zero, ale zaplní disk nebo vytvoří soubor o velikosti n náhodnými hodnotami, generovanými počítačovým zpracováním, shromažďováním informačních znaků GPU, paměti RAM a tak dále.

/Dev/random by mělo být vhodné pro použití, která vyžadují vysoce kvalitní náhodná čísla, jako je jednorázový blok nebo generování veřejného klíče pro SSH a další sítě pro sdílení.

Rychlá zvědavost!

Co se stane, když pošleme nikam? To znamená, že odešleme obsah /dev/zero do /dev/null

$ sudo dd if =/dev/zero of=/dev/null

Tento příkaz vygeneruje soubor, který má tendenci k nekonečnu, který bude zaznamenán v zařízení nekonečného vesmíru – Naše černá díra! V praxi to nepoškodí hardwarové disky, protože se ve skutečnosti žádná data negenerují a nezapisují na disk. Ale z pohledu jádra tam dochází k přenosu dat:bude to generovat vysokou spotřebu CPU, která vybere jedno z jader pro generování takového zpracování, které zabírá 100% využití.

Tento typ příkazu se používá pro testování výkonu, například pro kontrolu, jak se počítač chová s CPU při 100% využití.

Závěr

V tomto příspěvku jste se dozvěděli více podrobností o tom, jak systémy založené na UNIXu rozpoznávají zařízení a jak je vše „soubor“. Věděli také podrobnosti o speciálních zařízeních.

V dalším příspěvku v seriálu budu mluvit o některých zajímavých utilitách pro tato zařízení, například vytvoření oddílu ze souboru, mimo jiné zajímavosti, které nechci komentovat, aby se nezkazily!


Linux
  1. Linux – všechno je soubor?

  2. Třídit část souboru?

  3. Jaká je alternativa k vyhledávání všeho pro Linux?

  1. Jak přesunout soubor v Linuxu

  2. Vysvětlení oprávnění souborů v systému Linux

  3. Linux Tail Command

  1. Linux Touch Command

  2. Cat Command v Linuxu

  3. Příkaz souboru Linux