[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Uncompressing linux ...cpuinfo



On Fri, Dec 14, 2001 at 10:34:24AM +0100, Alberto Mardegan wrote:
> On Thu, Dec 13, 2001 at 05:52:25PM +0100, Daniele Cruciani wrote:
> > > > Era il famoso bug dei pentium.
> > > 
> > > Ehm, quale sarebbe? ^^;
> 
> In realtà il bug dei pentium più famoso era il bug su FDIV, la divisione
> tra numeri reali, che poteva generare risultati sbagliati. È presente
> soltanto nei primissimi pentium (a 50 e 66Mhx, credo).
> 
> > Poi quali sono le istruzioni per bloccare la macchina non lo so.
> 
> È proprio l'istruzione avente codice binario f00f; forse non esiste una
> tale istruzione, ma teoricamente un maligno può inserire questo codice
> con un assemblatore.
> 
> > P.S.: quando ho scrito: "hai il bug f00f quindi .." e' perche' ho fatto
> > un po' di confusione: non vuol dire niente, il perche' la macchina si
> > blocca a uncompressing (durante ? dopo?) per me e' ancora un mistero
> 
> Sì, non dovrebbe c'entrare. 

Andando a guardare la storia, nel novembre 1997 si e' scoperto un gravissimo
baco del pentium, ovvero una istruzione di scambio dati a 32 bit tra
registri e memoria, se preceduta dall'opzione "LOCK", andava a congelare il
processore (sotto qualsiasi sistema operativo), e la sequenza era
tranquillamente eseguibile a qualsiasi utente (sotto Linux).

Quindi un programmino di poche righe (meno di 10, non ricordo quante ma mi
sembra bastassero i 4 byte incriminati), lanciato da qualsiasi utente,
poteva congelare qualsiasi macchina Linux, e toccava riavviare intervenendo
fisicamente sull'alimentazione o sul tasto di reset.

Intel stessa ha rilasciato una patch, ma la comunita' Linux l'ha dovuta
reimplementare per problemi di licenza. Comunque si e' trattato di inserire
una trappola per quella sequenza di istruzioni e relativa eccezione. Dal
kernel 2.0.32 (anzi, per una implementazione migliore il 2.0.33) quella
sequenza di codice viene intercettata dal kernel e viene ucciso il processo.


La cosa divertente e' che Intel si e' quasi "rifiutata" di fare una patch
per windows 95 dicendo "tanto esistono vari modi per bloccarlo" :-)


ciao

Michele



Reply to: