|
|
|
![]() |
|
Strumenti |
![]() |
#21 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Cosa fanno, aggiungono un hack ad un'altro hack? ![]() Smentiscimi ti prego...
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
#22 | ||
Senior Member
Iscritto dal: Dec 2002
Città: /dev/urandom breed
Messaggi: 1689
|
Quote:
leggendo qualche link su kerneltrap pare che ci voglia: Quote:
E questo mi parrebbe semplicemente il supporto per HIGHMEM... No? Questo puo` esserti di interesse? http://people.redhat.com/mingo/nx-pa...6.7-rc2-bk2-AE Trovi tutto a partire dal link su kerneltrap postato da paletta, comunque. |
||
![]() |
![]() |
![]() |
#23 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Chi è il genio, il _GENIO_ progettista di cpu che si è inventato 'sta fesseria??!!! ![]()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
#24 | |
Senior Member
Iscritto dal: Dec 2002
Città: /dev/urandom breed
Messaggi: 1689
|
Quote:
|
|
![]() |
![]() |
![]() |
#25 | |
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
![]()
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
![]() |
![]() |
![]() |
#26 | |
Senior Member
Iscritto dal: Dec 2002
Città: /dev/urandom breed
Messaggi: 1689
|
Quote:
O no? |
|
![]() |
![]() |
![]() |
#27 | ||
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Mi riferivo ovviamente a processori a 32 bit o all'x86-64 usato a 32 bit. Dal tuo primo link: Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
![]() |
![]() |
![]() |
#28 | |
Senior Member
Iscritto dal: Dec 2002
Città: /dev/urandom breed
Messaggi: 1689
|
Quote:
|
|
![]() |
![]() |
![]() |
#29 | ||
Senior Member
Iscritto dal: Apr 2003
Messaggi: 687
|
Quote:
Quote:
![]() |
||
![]() |
![]() |
![]() |
#30 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Non è che l'architettura x86 sia tanto male: l'aggiunta del flag NX si è resa necessaria a causa del nuovo modello di memoria previsto dall'architettura x86-64, che è SOLAMENTE paginato. Non sono presenti più i segmenti (per essere precisi, per le applicazzioni nello spazio utente sono inutilizzabili/inutili; per le applicazioni nello spazio supervisore vengono utilizzati dal kernel solamente per accedere alle proprie aree di memoria), per cui viene meno ciò che veniva offerto da questo modello di memoria, che difatti prevedeva già dal 286 la non esecuzione di codice nei segmenti di dati/stack (poteva essere eseguito solamente in segmenti di codice, appunto).
Poiché gli x86-64 implementano questo flag col sistema di paginazione, per renderlo utilizzabile anche in modalità a 32 bit è necessario abilitare le PAE. Comunque non vedo problemi in ciò: basta non usare i 4 bit superiori per gli indirizzi a 36 bit, e si rimane sempre nell'ambito dei 4GB di memoria indirizzabili. Col vantaggio, però, di poter attivare questo flag. In ogni caso, adesso che pure gli sviluppatori Linux hanno deciso di implementare questa funzionalità, spero che i timori di quanti ravvisavano lo spettro di palladium siano spariti... ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#31 | |
Senior Member
Iscritto dal: Oct 2000
Città: NAPOLI
Messaggi: 4292
|
Quote:
__________________
![]() |
|
![]() |
![]() |
![]() |
#32 | ||
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Il pae è un brutto hack che non è mai piacuto a nessuno. Aggiungere un hack sull'hack per me è il modo più sbagliato di affrontare un problema. Se questa deve essere la soluzione, sarebbe stato meglio lasciare l'NX per i processori a 64 bit puri (il cui scopo principale è proprio buttare alle ortiche il pae). Quote:
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
||
![]() |
![]() |
![]() |
#33 | |||||||
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Quote:
Comunque, penso che sia stata una scelta di comodo e di omogenità (in ogni caso si hanno 4 livelli di indirezione), quella di implementare il flag NX solo con il PAE attivo anche nella modalità a 32 bit. Si saranno fatti bene i conti: se già nella modalità a 64 bit bisogna per forza di cosa avere 4 livelli d'indirezione, tanto vale usarli anche in quella a 32 bit; l'aumento della cache TLB servirà a mitigare questo ulteriore passaggio. E' una scelta che non condivido neppure io, ma fra il non avere una funzionalità, e averla un po' "castrata", meglio la seconda. Tanto più che chi avrà un processore a 64 bit passerà ancora poco tempo a utilizzare un s.o. a 32 bit... ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|||||||
![]() |
![]() |
![]() |
#34 | |
Senior Member
Iscritto dal: Apr 2003
Città: Genova
Messaggi: 4741
|
Quote:
![]() cioè l' unico modo consiste nel dare ai programmi 64 bit di address space virtuale, da trasformare in (se non ricordo male) 48 fisici, passando attraverso una gestione bank swapping a blocchi di 32? ![]() ![]() magari ho capito male... LO SPERO vivamente ![]()
__________________
Jappilas is a character created by a friend for his own comic - I feel honored he allowed me to bear his name Saber's true name belongs to myth - a Heroic Soul out of legends, fighting in our time to fullfill her only wish Let her image remind of her story, and of the emotions that flew from my heart when i assisted to her Fate
Ultima modifica di jappilas : 08-06-2004 alle 22:32. |
|
![]() |
![]() |
![]() |
#35 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
No, se ti riferisci alla modalità nativa a 64 bit, la situazione è la seguente:
1) I registri indirizzo a 64 bit 2) Indirizzi virtuali utilizzabili 2^48 (in futuro sarà possibile estenderli, ovviamente) 3) Indirizzi fisici mappabili 2^40 (idem come sopra) Non esiste nessun bank swapping, non ti preoccupare: c'è la "solita" catena dovuta alla traduzione dall'indirizzo virtuale all'indirizzo fisico, tramite "l'albero" delle page directory entry, che questa volta è 4 livelli, rispetto ai 3 necessari nella modalità a 32 bit normale (non PAE, che diventa a 4 livelli). D'altra parte, con 48 bit d'indirizzamento virtuale, almeno un livello in più doveva essere aggiunto... ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 02:02.