it.phhsnews.com


it.phhsnews.com / Che cosa significa "tutto è un file" in Linux?

Che cosa significa "tutto è un file" in Linux?


Una delle caratteristiche che definiscono Linux e altri sistemi operativi simili a UNIX è che "tutto è un file". Questo è un semplificazione eccessiva, ma capire cosa significa aiuterà a capire come funziona Linux.

Molte cose su Linux appaiono nel tuo file system, ma non sono in realtà dei file. Sono file speciali che rappresentano dispositivi hardware, informazioni di sistema e altre cose, incluso un generatore di numeri casuali.

Questi file speciali possono trovarsi in pseudo o sistemi di file virtuali come / dev, che contiene file speciali che rappresentano dispositivi e / proc, che contiene file speciali che rappresentano le informazioni di sistema e di processo.

/ proc

Ad esempio, supponiamo di voler trovare informazioni sulla tua CPU. La directory / proc contiene un file speciale - / proc / cpuinfo - che contiene queste informazioni.

Non è necessario un comando speciale che ti indichi le informazioni sulla CPU - puoi solo leggere il contenuto di questo file usando qualsiasi comando standard che funziona con file di testo semplice. Ad esempio, è possibile utilizzare il comando cat / proc / cpuinfo per stampare il contenuto di questo file sul terminale - stampando le informazioni della CPU sul terminale. Potresti anche aprire / proc / cpuinfo in un editor di testo per visualizzarne il contenuto.

Ricorda, / proc / cpuinfo non è in realtà un file di testo contenente queste informazioni - il kernel di Linux e il file system proc espongono queste informazioni a noi come un file. Questo ci permette di usare strumenti familiari per visualizzare e lavorare con le informazioni.

La directory / proc contiene anche altri file simili, ad esempio:

  • / proc / uptime - Espone il tempo di attività del tuo kernel Linux - in altre parole , per quanto tempo il tuo sistema è stato acceso senza spegnere.
  • / proc / version - Espone la versione del tuo kernel Linux.

/ dev

Nella directory / dev, troverai i file che rappresentano i dispositivi - così come i file che rappresentano altre cose speciali. Ad esempio, / dev / cdrom è l'unità CD-ROM. / dev / sda rappresenta il tuo primo disco rigido, mentre / dev / sda1 rappresenta la prima partizione sul tuo primo disco rigido.

Vuoi montare il tuo CD-ROM? Esegui il comando mount e specifica / dev / cdrom come dispositivo da montare. Vuoi partizionare il tuo primo disco rigido? Eseguire un'utilità di partizionamento del disco e specificare / dev / sda come disco rigido che si desidera modificare. Vuoi formattare la prima partizione sul tuo primo disco rigido? Esegui un comando di formattazione e digli di formattare /dev/sda1.

Come puoi vedere, l'esposizione di questi dispositivi come parte del file system ha i suoi vantaggi. Il file system fornisce uno "spazio dei nomi" coerente che tutte le applicazioni possono utilizzare per indirizzare e accedere ai dispositivi.

/ dev / null, / dev / random e / dev / zero

Il file system / dev non fa t contenere solo file che rappresentano dispositivi fisici. Ecco tre dei dispositivi speciali più importanti che contiene:

  • / dev / null - Scarta tutti i dati scritti su di esso - pensateci come un cestino o buco nero. Se vedi un commento che ti dice di inviare reclami a / dev / null - questo è un modo geniale di dire "buttali nella spazzatura".
  • / dev / random - Produce casualità usando il rumore ambientale. È un generatore di numeri casuali a cui puoi attingere.
  • / dev / zero - Produce zeri - un flusso costante di zeri.

Se pensi a questi tre come file, non ne vedrai l'uso. Invece, pensateli come strumenti.

Ad esempio, per impostazione predefinita, i comandi Linux generano messaggi di errore e altri output che stampano sullo standard output, normalmente il terminale. Se si desidera eseguire un comando e non si preoccupa del suo output, è possibile reindirizzare tale output su / dev / null. Il reindirizzamento dell'output di un comando a / dev / null lo elimina immediatamente. Invece di far eseguire a ogni comando la sua "modalità silenziosa", puoi utilizzare questo metodo con qualsiasi comando.

comando> / dev / null

Se vuoi una fonte di casualità, ad esempio, per generare una chiave di crittografia, non avresti bisogno di scrivere il tuo generatore di numeri casuali - potresti usare / dev / random

Per cancellare il contenuto di un disco rigido scrivendone degli 0, non è necessaria un'utilità speciale dedicata all'azzeramento di un'unità: è possibile utilizzare utilità standard e / dev / zero. Ad esempio, il comando dd legge da una posizione e scrive in un'altra posizione. Il seguente comando legge gli zeri da / dev / zero e li scrive direttamente nella prima partizione del disco rigido del tuo sistema, cancellandone completamente il contenuto.

( Avviso : questo comando cancellerà tutti i dati sul tuo prima partizione se la si esegue. Esegui solo questo comando se vuoi distruggere i dati.)

dd if = / dev / zero di = / dev / sda1

Qui stiamo usando dd con file speciali (/ dev / zero e / dev / sda1), ma potremmo anche usare dd per leggere e scrivere su file reali. Lo stesso comando funziona sia per manipolare i dispositivi direttamente che per lavorare con i file.

Precisione

In pratica, è più preciso dire che "tutto è un flusso di byte" rispetto a "tutto è un file." / Dev / random non è un file, ma sicuramente è un flusso di byte. E sebbene queste cose tecnicamente non siano file, sono accessibili nel file system - il file system è uno "spazio dei nomi" universale in cui tutto è accessibile. Vuoi accedere a un generatore di numeri casuali o leggere direttamente da un dispositivo? Troverete entrambi nel file system; nessuna altra forma di indirizzamento necessaria.

Naturalmente, alcune cose non sono in realtà dei file - i processi in esecuzione sul sistema non fanno parte del file system. "Tutto è un file" è impreciso, ma molte cose si comportano come file.


Come ridurre la dimensione di WhatsApp sul tuo iPhone

Come ridurre la dimensione di WhatsApp sul tuo iPhone

Se stai esaurendo lo spazio sul tuo iPhone o iPad e hai deciso di vedere quali applicazioni occupano più spazio, probabilmente avrai notato che WhatsApp è costantemente vicino al massimo.WhatsApp è popolare e chiunque conosca chi lo usa, di solito ha almeno 10 o 15 chat di gruppo di cui fa parte. Con tutte quelle chat, hanno tonnellate di video e immagini condivisi, che si sommano a molto spazio. A

(How-to)

JavaScript non è Java - È molto più sicuro e molto più utile

JavaScript non è Java - È molto più sicuro e molto più utile

Probabilmente hai sentito tutto su come il plug-in del browser Java non sia sicuro. Il 91% dei compromessi del sistema nel 2013 era contro quel plug-in Java insicuro. Ma Java non è la stessa cosa di JavaScript - in realtà, non sono realmente correlati. La maggior parte dei nostri lettori probabilmente capisce la differenza, ma non tutti lo sanno.

(how-to)