next up previous
Next: Caricamento del bytecode Up: Sicurezza Previous: Allocazione della memoria

Verifica del bytecode

Il codice Java proveniente dalla rete potrebbe essere stato generato da un compilatore che non soddisfa le regole di sicurezza di cui al paragrafo precedente, e quindi potrebbe non essere affidabile. Di conseguenza, prima di procedere all'esecuzione del codice, il sistema runtime ne effettua un'analisi al fine di verificare che

  1. non crei puntatori
  2. non violi le restrizioni di accesso
  3. acceda agli oggetti per quello che sono, senza fare cast illegali

Il caricatore e il verificatore del bytecode non fanno differenza fra codice locale e codice scaricato dalla rete: se il bytecode arriva all'interpete per essere eseguito, significa che è stato controllato e che è sicuro.

Naturalmente, il processo di verifica interpone un ostacolo alla rapidità tra la fase di caricamento e la fase di esecuzione del codice, ma allo stesso tempo permette di ottenere un certo numero di informazioni sul bytecode, consentendo all'interprete di lavorare più velocemente, senza dover fare ulteriori verifiche sull'affidabilità di ciò che esegue.



Marco Delaurenti
1999-06-25