Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator
Dopo oltre 4 anni si rinnova la serie Sony Alpha 7 con la quinta generazione, che porta in dote veramente tante novità a partire dai 30fps e dal nuovo sensore partially stacked da 33Mpixel. L'abbiamo provata per un breve periodo, ecco come è andata dopo averla messa alle strette.
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1
realme e Aston Martin Aramco F1 Team si sono (ri)unite dando alla vita un flagship con chip Snapdragon 8 Elite Gen 5 e design esclusivo ispirato alle monoposto di Formula 1. La Dream Edition introduce la nuova colorazione Lime Essence abbinata al tradizionale Aston Martin Racing Green, decorazioni intercambiabili personalizzate e una confezione a tema F1, intorno a uno smartphone dall'ottima dotazione tecnica con batteria da 7000mAh ricaricabile a 120W e isola fotografica intercambiabile
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 05-07-2005, 22:04   #1
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
puntatori NEAR e FAR: perché non esistono più?

è da un po' che rifletto su questa cosa: sugli odierni processori di tipo Intel a 32 bit, qualsiasi puntatore da 32 bit è NEAR: un puntatore FAR infatti richiede 48 bit.
in Visual C++ (e credo anche in qualsiasi altro compilatore C/C++) l'asterisco, che serve a dichiarare puntatori, definisce sempre un tipo a 32 bit: sizeof(void*) infatti è uguale a 32, come anche sizeof(char*), sizeof(int*) e sizeof(<tipo_qualsiasi>*); ma i puntatori FAR che fine hanno fatto??
immaginiamo di avere un bel programma che viene distribuito su 4 segmenti: codice, dati, heap e stack (situazione tipica); se ho un puntatore ad un byte che sta nel segmento dati posso riferirmi a quel byte con soli 32 bit, e lo stesso se si trova nell'heap, ma come fa il compilatore a sapere il segmento a cui voglio riferirmi (heap o dati) quando la situazione non lo rende implicito?
e un'altra cosa: è risaputo che l'indirizzo 0x00000000, cioè NULL, non è accessibile: ma perché mai questa cosa??? si tratta semplicemente di un puntatore che punta al base address di qualche segmento, a seconda che io in un puntatore FAR (appunto) specifichi il segmento dati, codice, heap o stack, ma il punto è che di qualunque segmento si tratti, se il segmento sta nel mio programma in teoria io dovrei avere lecito accesso al suo byte numero 0, o sbaglio?!?
quello che in realtà può provocare il seg.fault è quando io specifico o un segmento inesistente, o un segmento di un altro programma, no?
cos'è che mi manca di sapere e che mi impedisce di capire?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 22:11   #2
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
ehm, un imperdonabile leggerezza: tutti quei sizeof naturalmente è sottinteso che non restituiscono 32, ma 4 ^^
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 22:24   #3
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104
cos'è che mi manca di sapere e che mi impedisce di capire?
Che la gestione della memoria segmentata fu stata sostituita dalla paginazione una decina di anni fa

I puntatori che dichiari non sono indirizzi di memoria fisici, ma sono indirizzo logici nello spazio di indirizzamento di un processo che poi la CPU mappa verso indirizzi fisici in base a determinate look up table che variano ovviamente da processo a processo.

Si possono fare giochini tipo mappare piu' indirizzi logici allo stesso indirizzo fisico, mappando ad esempio le pagine di piu' processi che contengono il codice del processo stesso vero le stesse pagine fisiche dove il SO mantiene una sola copia del codice da condividere.

E' un sistema piu' semplice ed efficacie della vecchia memoria segmentata il cui supporto e' mentenuto per motivi di compatibilita'.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 22:29   #4
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
guarda che oggi segmentazione e paginazione esistono entrambe e la segmentazione sulla IA32 in modalità protetta a 32 bit non la si può eludere...

EDIT: mi sa che ti confondi con una roba che abbiamo studiato ad architettura 2 che non so cosa sia e che si chiama "partizionamento" (ho chiesto alla prof. se x caso c'entrava qualcosa con la segmentazione e ha detto di no).
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 22:43   #5
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104
guarda che oggi segmentazione e paginazione esistono entrambe e la segmentazione sulla IA32 in modalità protetta a 32 bit non la si può eludere...

EDIT: mi sa che ti confondi con una roba che abbiamo studiato ad architettura 2 che non so cosa sia e che si chiama "partizionamento" (ho chiesto alla prof. se x caso c'entrava qualcosa con la segmentazione e ha detto di no).
La segmentazione esiste ancora per motivi di compatibilita' e per supportare SO legacy.

I registri di segmento vengono semplicemente impostati a descrittori di segmento che puntano all'inizio dello spazio di indirizzamento (semplifico, non e' proprio cosi' in WinXP) e la memoria gestita mediante paginazione.

Non mi confondo col partizionamento
fek è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 22:51   #6
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
scusa, ma allora perché i registri di segmento normalmente contengono valori diversi? (verificato in alcuni programmi su Win2k pro...)
perché usare segmenti diversi che puntano tutti allo stesso base address?
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 22:52   #7
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
mi rispondo da solo: perché i vari segmenti hanno caratteristiche diverse nel descrittore
ora ho capito, grazie dell'aiuto
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 22:56   #8
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104
scusa, ma allora perché i registri di segmento normalmente contengono valori diversi? (verificato in alcuni programmi su Win2k pro...)
perché usare segmenti diversi che puntano tutti allo stesso base address?
I registri puntano ai descrittori di segmento, due descrittori di segmento possono, ad esempio, puntare allo stesso indirizzo base ma avere diversi livelli di accesso. Succede se vuoi avere del codice automodificante, quando il segmento codice di solito e' marcato come read only (e le relative pagine marcate tutte come readonly). In quel caso carichi un altro descrittore con privilegi diversi. Dati e codice hanno anche diritti diversi, quindi valori diversi, sebbene puntino entrambi allo stesso indirizzo virtuale di base.

Qui ci sono tutte le spiegazioni del caso:
http://msdn.microsoft.com/msdnmag/issues/0700/hood/

E come ti dicevo la mia spiegazione era volutamente semplicistica, qui ti dice dove e quando Win32 fa chiamate a segmenti diversi:

Quote:
The only time that a Win32 system changes segments is when it transitions between ring 0 and ring 3.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 23:09   #9
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da fek
I registri puntano ai descrittori di segmento, due descrittori di segmento possono, ad esempio, puntare allo stesso indirizzo base ma avere diversi livelli di accesso. Succede se vuoi avere del codice automodificante, quando il segmento codice di solito e' marcato come read only (e le relative pagine marcate tutte come readonly). In quel caso carichi un altro descrittore con privilegi diversi. Dati e codice hanno anche diritti diversi, quindi valori diversi, sebbene puntino entrambi allo stesso indirizzo virtuale di base.
si si, avevo capito tutto; l'unica cosa che non sapevo è che oggidì i segmenti fossero tutti completamente overlapped. tra parentesi la ritengo anche una cosa un tantino pericolosa, perché io ad es. potrei andare a modificare il codice di una libreria di sistema utilizzando DS piuttosto che CS: in tal modo non devo disturbarmi di andare a sproteggere le pagine di quella libreria, senza contare che se non sbaglio bypasserei qualsiasi protezione COW, e la modifica avrebbe effetto in tutto il sistema... o no?

Quote:
Qui ci sono tutte le spiegazioni del caso:
http://msdn.microsoft.com/msdnmag/issues/0700/hood/
grande Matt, devo decidermi a leggerle prima o poi quelle colonne: finora di "Under the Hood" ne ho letti solo un paio sul formato PE.

Quote:
E come ti dicevo la mia spiegazione era volutamente semplicistica, qui ti dice dove e quando Win32 fa chiamate a segmenti diversi:
buono a sapersi; cmq approfondirò con Pietrek

ciao
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 05-07-2005, 23:13   #10
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da 71104
tra parentesi la ritengo anche una cosa un tantino pericolosa, perché io ad es. potrei andare a modificare il codice di una libreria di sistema utilizzando DS piuttosto che CS: in tal modo non devo disturbarmi di andare a sproteggere le pagine di quella libreria, senza contare che se non sbaglio bypasserei qualsiasi protezione COW, e la modifica avrebbe effetto in tutto il sistema... o no?
ehm, come non detto, risparmiami...
il mio problema è che ho ancora le idee un tantino confuse perché su queste cose sono fresco di studi...
mi propongo di migliorare
cmq adesso mi sembra finalmente tutto chiaro (... sarà vero? )
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 00:32   #11
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104
si si, avevo capito tutto; l'unica cosa che non sapevo è che oggidì i segmenti fossero tutti completamente overlapped. tra parentesi la ritengo anche una cosa un tantino pericolosa, perché io ad es. potrei andare a modificare il codice di una libreria di sistema utilizzando DS piuttosto che CS: in tal modo non devo disturbarmi di andare a sproteggere le pagine di quella libreria, senza contare che se non sbaglio bypasserei qualsiasi protezione COW, e la modifica avrebbe effetto in tutto il sistema... o no?
Al di sotto ci sono comunque le pagine ognuna con il suo livello di protezione che non puoi cambiare se non con chiamate al Kernel. Quindi, se il Kernel non vuole, tu non scrivi in una pagina neppure se preghi

Una cosa comoda che faccio per scovare i buffer overrun e di mettere in sola lettura pagine di dati che so di dover scrivere una volta sola, ad esempio le animazione che carico da disco, oppure la geometria dei modelli. Se qualcosa va in buffer overrun e prova a scrivere sulle mie pagine dati, parte un GP fault, molto meglio che sovrascrivere casualmente lo spazio d'indirizzamento del processo e causare bug che poi si rivelano sempre il giorno prima di una milestone.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 00:48   #12
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da fek
Al di sotto ci sono comunque le pagine ognuna con il suo livello di protezione che non puoi cambiare se non con chiamate al Kernel. Quindi, se il Kernel non vuole, tu non scrivi in una pagina neppure se preghi
ma oggi ricevi solo la metà dei miei post o sei solo ansioso di far vedere che hai letto Pietrek?
te l'avevo detto di risparmiarmi!!
scherzo, su!

Quote:
Una cosa comoda che faccio per scovare i buffer overrun e di mettere in sola lettura pagine di dati che so di dover scrivere una volta sola, ad esempio le animazione che carico da disco, oppure la geometria dei modelli. Se qualcosa va in buffer overrun e prova a scrivere sulle mie pagine dati, parte un GP fault, molto meglio che sovrascrivere casualmente lo spazio d'indirizzamento del processo e causare bug che poi si rivelano sempre il giorno prima di una milestone.
e se la pagina contiene anche altra roba che devi scrivere frequentemente? e se quello che non devi sovrascrivere occupa più pagine? be' a dire il vero per evitare buffer overrun nella stragrande maggioranza dei casi sarebbe sufficiente proteggere solo la prima pagina, ma dai puntatori non validi non si salva nessuno!!!
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 00:50   #13
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da 71104
ma oggi ricevi solo la metà dei miei post o sei solo ansioso di far vedere che hai letto Pietrek?
oggi o ieri, che dir si voglia
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 08:54   #14
end.is.forever
Senior Member
 
Iscritto dal: Jul 2004
Messaggi: 1578
48 bit = 16 bit di selettore di un descrittore di segmento appartenente a GDT (global descriptor table ad indirizzo virtuale fisso presente in un registro accessibile solo con istruzioni privilegiate) o alla LDT del task corrente (local descriptor table con indirizzo virtuale in LDTR) + 32 bit di offset

Poi ci sarebbero gli altri 4 bit dei 36 che sono fissi per ogni task e (se non sbaglio ) invisibili al programmatore, gestiti solo dal s.o.

Naturalmente tutto questo solo se il s.o. va in modalità protetta, altrimenti i 16 rappresentano l'indirizzo virtuale base e si usa l'indirizzamento classico e senza protezione.

Poi vabe la paginazione, se attiva, ottiene dalle tabelle delle pagine oppure dai TLB il mapping tra indirizzi virtuali e fisici (se non è cambiato dal Pentium dovrebbe essere 32 bit = 20 bit più significativi identificano una pagina da 4KB, 12 bit l'offset, oppure 10 bit identificano una pagina da 4MB, 22 l'offset).
end.is.forever è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 09:02   #15
end.is.forever
Senior Member
 
Iscritto dal: Jul 2004
Messaggi: 1578
Quote:
Originariamente inviato da 71104
oggidì i segmenti fossero tutti completamente overlapped. tra parentesi la ritengo anche una cosa un tantino pericolosa, perché io ad es. potrei andare a modificare il codice di una libreria di sistema utilizzando DS piuttosto che CS: in tal modo non devo disturbarmi di andare a sproteggere le pagine di quella libreria, senza contare che se non sbaglio bypasserei qualsiasi protezione COW, e la modifica avrebbe effetto in tutto il sistema... o no?
Però prima dovresti convincere il sistema operativo a passarti un selettore di descrittore di segmento dati aliased con quello di codice dove vuoi scrivere.
Non dimenticare che i descrittori di segmento li può creare solo il sistema operativo dato che le tabelle si trovano su segmenti a cui in generale accede solo lui.
end.is.forever è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 10:24   #16
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104
ma oggi ricevi solo la metà dei miei post o sei solo ansioso di far vedere che hai letto Pietrek?
te l'avevo detto di risparmiarmi!!
scherzo, su!
Mai letto quel libro
Ma ho il brutto vizio di leggere un post e rispondere, puoi mi accorgo che ti eri gia' risposto.

Quote:
e se la pagina contiene anche altra roba che devi scrivere frequentemente? e se quello che non devi sovrascrivere occupa più pagine? be' a dire il vero per evitare buffer overrun nella stragrande maggioranza dei casi sarebbe sufficiente proteggere solo la prima pagina, ma dai puntatori non validi non si salva nessuno!!!
Se la pagina contiene anche dati che devo scrivere, ovviamente non la posso mettere a sola lettura e perdo la protezione. E' un'idea che non protegge interamente da tutti i dangling pointer e i buffer overrun, ma se ne becca anche solo qualcuno ha ragione di essere. E me ne ha gia' beccati piu' di uno.
fek è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 12:59   #17
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da end.is.forever
48 bit = 16 bit di selettore di un descrittore di segmento appartenente a GDT (global descriptor table ad indirizzo virtuale fisso presente in un registro accessibile solo con istruzioni privilegiate) [...]
ti sbagli: GDTR contiene un indirizzo lineare (la GDT non è soggetta al paging).

Quote:
Poi ci sarebbero gli altri 4 bit dei 36 che sono fissi per ogni task e (se non sbaglio ) invisibili al programmatore, gestiti solo dal s.o.
così diventano 52... gli indirizzi NEAR (cioè esclusi i segmenti) sono a 36 bit solo in una certa modalità (inutilizzata credo dalla maggior parte dei SO odierni) che permette di arrivare ad indirizzare 64 gigabyte.

Quote:
Naturalmente tutto questo solo se il s.o. va in modalità protetta, altrimenti i 16 rappresentano l'indirizzo virtuale base e si usa l'indirizzamento classico e senza protezione.
che casino, non è così: in modalità reale gli indirizzi sono a 20 bit: 16 di segmento combinati a 16 di offset (i 16 di segmento vengono shiftati a sinistra di 4 e addizionati all'offset in maniera tale da formare 20 bit). non ci sono indirizzi virtuali.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 13:00   #18
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da end.is.forever
Però prima dovresti convincere il sistema operativo a passarti un selettore di descrittore di segmento dati aliased con quello di codice dove vuoi scrivere.
Non dimenticare che i descrittori di segmento li può creare solo il sistema operativo dato che le tabelle si trovano su segmenti a cui in generale accede solo lui.
il descrittore che cerchi ce l'ho già in DS, ma il problema non era quello... (leggi sopra)
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 13:05   #19
71104
Bannato
 
L'Avatar di 71104
 
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 7029
Quote:
Originariamente inviato da fek
Mai letto quel libro
come "mai letto quel libro"? a parte che non è un libro, sono una serie di articoli, ma poi guarda che me ne hai linkato uno...

Quote:
Se la pagina contiene anche dati che devo scrivere, ovviamente non la posso mettere a sola lettura e perdo la protezione. E' un'idea che non protegge interamente da tutti i dangling pointer e i buffer overrun, ma se ne becca anche solo qualcuno ha ragione di essere. E me ne ha gia' beccati piu' di uno.
ma scusa come fai a fare in modo che i tuoi dati a sola lettura, o a "lettura ogni morte di papa", vadano a cadere precisi proprio nel page boundary?!? cioè tu fai in modo che ad es. certi oggetti vengano allocati in maniera tale che i 12 bit inferiori dell'indirizzo siano esattamente uguali a 0??

Ultima modifica di 71104 : 06-07-2005 alle 13:09.
71104 è offline   Rispondi citando il messaggio o parte di esso
Old 06-07-2005, 13:50   #20
fek
Senior Member
 
L'Avatar di fek
 
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
Quote:
Originariamente inviato da 71104
come "mai letto quel libro"? a parte che non è un libro, sono una serie di articoli, ma poi guarda che me ne hai linkato uno...
Lascia perdere, fra ieri notte e stamattina sono totalmente fuso

Quote:
ma scusa come fai a fare in modo che i tuoi dati a sola lettura, o a "lettura ogni morte di papa", vadano a cadere precisi proprio nel page boundary?!? cioè tu fai in modo che ad es. certi oggetti vengano allocati in maniera tale che i 12 bit inferiori dell'indirizzo siano esattamente uguali a 0??
Si', alloco io le pagine manualmente e poi butto dentro i dati.
Immagina che debba caricare 20 mb di animazioni, alloco 20 mb di pagine, le imposto a scrittura/lettura, carico le animazioni da disco, le cambio in sola lettura.

L'anno scorso avevo provato una cosa simpatica, ma alla fine non se n'era fatto nulla. L'idea era di prendere un blocco di dati a sola lettura ad esempio di 10 pagine, comprimerlo con un algoritmo non lossy ragionevolmente e memorizzarlo da qualche parte compresso. Poi chiedi al SO di darti 10 pagine di spazio di indirizzamento ma senza fare il commit a nessuna pagina fisica (cosi' non occupi memoria) e restituire il puntatore logico all'applicazione.

Ora immagina che l'applicazione tenti di accedere al blocco di dati che lei vede non compresso e l'indirizzo si riferisca alla pagina 1. Win32 ti da' un'eccezione perche' quella pagina non e' mappata su nessuna pagina fisica, tu trappi l'eccezione, prendi quella pagina dalla versione compressa, la decomprimi al volo, fai il commit della pagina su una pagina fisica che usi come buffer di decompressione temporaneo e restituisci il controllo. Dopo il GP fault l'applicazione vede la pagina 1 decompressa e non sa quello che e' successo

Funzionava benino ma la mia implementazione non era troppo robusta. Prova a farlo, e' un buon esercizio per imparare ad usare i servizi di Win32 per la paginazione.
fek è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Sony Alpha 7 V, anteprima e novità della nuova 30fps, che tende la mano anche ai creator Sony Alpha 7 V, anteprima e novità della ...
realme GT 8 Pro Dream Edition: prestazioni da flagship e anima racing da F1 realme GT 8 Pro Dream Edition: prestazioni da fl...
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
Anche a Bergamo controlli sulle e-bike: ...
Mario Kart World, con l'ultimo aggiornam...
Oracle apre una seconda Region per il cl...
Euro NCAP 2026, cambiano completamente i...
In Russia centinaia di Porsche diventano...
Gli operatori mobile italiani offrono se...
realme GT 8 Pro in promo lancio con 100€...
Autostrade, dal 2026 arrivano i rimborsi...
Carenza di memoria flash NAND e prezzi a...
EA Sports FC 26 fa felici i fan: tornano...
Anthropic studia i suoi ingegneri: l'IA ...
Kioxia Exceria Plus G4: l'SSD PCIe 5.0 p...
HBO Max debutta in Italia: data, contenu...
Qual è lo smartphone Android pi&u...
Il camion elettrico Semi è davver...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 16:39.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v