In che modo il software di pulizia del disco accede al mio disco fisso?

1

Sono un programmatore dilettante. Ho un grande interesse per il funzionamento interno dei sistemi operativi, un argomento di cui ho letto molto.

Quello che ho capito dei kernel è che nella maggior parte dei sistemi operativi, un processo non è in grado di accedere direttamente al disco rigido (o ad altri supporti di memorizzazione), ma piuttosto attraverso le chiamate di sistema. Quindi, ad esempio, quando un processo vuole gestire i file, chiede al kernel di farlo per suo conto piuttosto che scrivere / leggere il disco direttamente.

Ora ho anche capito che quando i file vengono cancellati, di solito non vengono sovrascritti dal kernel ma solo marcati come non utilizzati, in modo che possano essere sovrascritti quando è necessario spazio. Ciò significa che anche se ho cancellato un file, potrebbe comunque essere recuperabile purché non sia stato ancora sovrascritto (è solo sul disco fisso).

Questo può rappresentare un po 'un rischio per la sicurezza se scarico il mio disco rigido, o un'opportunità per recuperare i file cancellati accidentalmente. Quindi ci sono software per recuperare i file cancellati o eliminare il disco rigido dei file cancellati, ma non ancora sovrascritti. Ecco le mie ipotesi su come funzionano: per il ripristino, in pratica eseguiamo la scansione del disco rigido, cercando sezioni di dati contrassegnate come disponibili per vedere se il nostro file è ancora lì (apparentemente sezioni / blocchi di dati hanno metadati che indicano cose come disponibilità, nome del file). Quindi se troviamo il nostro file, lo segnaliamo come non disponibile. Per eliminare l'unità, il software probabilmente scrive solo zero o qualcosa sui vecchi dati.

Ma la mia domanda è (se la mia ipotesi sul funzionamento di questo tipo di software è corretta): come può un'applicazione fare questo, poiché non fa parte del kernel? Il kernel ha un'API molto definita per la gestione dei file, e se chiediamo di cancellare un file lo farà a modo suo e non ci dovrebbe essere nulla che possiamo fare come normali applicazioni. Quindi come funziona questo tipo di software? Come posso creare un programma che accede al disco rigido in modo libero?

    
posta S. Rotos 14.11.2018 - 00:09
fonte

1 risposta

5

The kernel has a very defined API for file handling

destro. E quell'API include altre funzionalità più granulari. C'è un'API per consentire l'accesso ad es. formattare un'unità, ottenere informazioni su modello e serie, hard disk del disco rigido e una varietà di altre cose.

Alcune delle funzioni a cui sei interessato sono disponibili solo per utenti privati, come root o amministratori.

Il punto è che l'API del file è estesa, con molto più delle normali capacità fopen ().

Guarda FUSE per un esempio di come un kernel può esporre questo tipo di funzionalità.

    
risposta data 14.11.2018 - 02:46
fonte

Leggi altre domande sui tag