Linux 32bit: può utilizzare tutti i 4Gb di ram?

Ciao! Domanda semplice semplice… Se io installo linux 32bit (non PAE) su un pc con 4 Gb di ram, quanti ne risultan utilizzabili? Tutti o qualche centinaio di Mb in meno? Grazie!

Ciao,

Anche io avevo posto la stessa domanda, la risposta è no io ne ho 4 Giga ma ne vedo solo 3,2.

Mi avevano detto che si potrebbe installare un kernel alternativo ma non mi ricordo il nome.

Ho trovato la discussione che ti dicevo:
http://www.fedoraonline.it/modules/newbb/viewtopic.php?topic_id=6011&forum=5&post_id=39149#forumpost39149

il kernel a 32 bit è in grado di indirizzare fino a 4 Gb di locazioni di memoria.

Ho detto apposta locazioni e non RAM.
La RAM non è l’unica memoria contenuta in un sistema.
Esiste la DMA, direct memory access, contenuta in dispositivi quali:
controller dischi, schede video, schede audio etc…

La DMA è trattata come memoria e ha priorità rispetto alla RAM.

Quindi se abbiamo un sistema con processore e RAM e niente altro(!) il kernel rileverà tutti i 4 Gb.

Se invece abbiamo un sistema con cpu, Ram, dischi, schede con il supporto Dma il kernel rileverà una quantità inferiore di 4 Gb, perché la differenza è ad uso della Dma, ed il totale sarà 4 Gb.
La differenza non è costante ed è funzione del proprio hardware.

Per quel poco che ne so, l’estensione x86_64 introdotta da AMD e ribattezzata AMD64 e, parimenti EM64T (intel64) si riferisce a registri cpu a 64 bit, quindi ogni dato pari 2^64

riguardo la capacità d’indirizzamento memoria, la capacità fisica è 36 bit (quindi 2^36) e virtuale, se non ricordo male, 2^48 (che dovrebbe però ridurre le IPC)

rileggendo il mio post #3 mi sono accorto che si può fraintendere sul concetto di DMA.
Mi preme chiarire.

La ( è più corretto dire il ) DMA, non è una memoria, è un sottosistema kernel che permette l’indirizzamento e il trasferimento, diretto tra locazioni di memoria diverse;
ad esempio il trasferimento di dati tra Ram e i Buffer di un disco, senza che la cpu sia coinvolta ed impegnata.
esso/a è mappata come memoria, quindi utilizza gli indirizzi disponibili del kernel, per cui si aggiunge alla Ram per quanto riguarda la capacità di indirizzamento del kernel.

Ho letto da qualche parte, forse su wikipedia, che linux utilizza solo i primi 748mb(circa) di ram, perché rende il sistema più veloce, e utilizzare gli altri mb renderebbe il processo di esecuzione più lento.

Se fosse così non servirebbe a niente avere 4gb di ram, servirebbe invece avere un buon processore per esempio.

Ho letto queste spiegazioni assieme ad altre le quali spiegavano perché linux utilizza molto la cpu portandola al 100% (ovviamente dipende dai casi)

forse non hai letto bene la discussione, o forse intendi dire che wikipedia conosce il nostro sistema meglio di noi ?

[quote=Avix89]
Ho letto da qualche parte, forse su wikipedia, che linux utilizza solo i primi 748mb(circa) di ram, perché rende il sistema più veloce, e utilizzare gli altri mb renderebbe il processo di esecuzione più lento.

Se fosse così non servirebbe a niente avere 4gb di ram, servirebbe invece avere un buon processore per esempio.

Ho letto queste spiegazioni assieme ad altre le quali spiegavano perché linux utilizza molto la cpu portandola al 100% (ovviamente dipende dai casi)[/quote]

quello che hai scritto è vero ma è interpretato male.
Premesso che è un po’ di tempo che non approfondisco questi argomenti, ricordo che il kernel usava la memoria bassa per lo startup. Non so se i kernel attuali lo fanno ancora, ma anche se lo facessero quella memoria sarebbe usata solo per il boot del kernel, non per l’ uso normale ( ovviamente).

COmunque, se hai 4 gb. di ram ti consiglio di passare al 64 bit, perché la gestione PAE del 32 bit rallenta abbastanza le operazioni di memoria ed è un palliativo ( il limite di 2 gb. a processo resta invariato, ma puoi distribuire i processi su tutti e 4 i gb., mentre nel 64 bit non hai limiti). Nel 64 bit hai una gestione della memoria più linerare e meno “faticosa”.

Il discorso che linux “utilizzi molto la cpu portandola al 100%” mi sa tanto di “informatica a tanto al chilo”, sai quei discorsi che sentivo tempo fa, che sconsigliavano di comprare 486 perché erano troppo veloci e saltavano istruzioni (???) …

Non farti paranoie, linux ha una gestione della cpu, della memoria e della cache più efficiente di altri sistemi, vai di 64 bit.
Ciao.

[quote=Avix89]
Ho letto da qualche parte, forse su wikipedia, che linux utilizza solo i primi 748mb(circa) di ram, perché rende il sistema più veloce, e utilizzare gli altri mb renderebbe il processo di esecuzione più lento.

Se fosse così non servirebbe a niente avere 4gb di ram, servirebbe invece avere un buon processore per esempio.

Ho letto queste spiegazioni assieme ad altre le quali spiegavano perché linux utilizza molto la cpu portandola al 100% (ovviamente dipende dai casi)[/quote]
sui kernel attuali, quello che hai scritto è falso.

Tra l’altro (correggetemi se sbaglio) se non ricordo male Fedora supporta l’installazione di pacchetti a 32 bit su so a 64. Quindi non vedo motivazioni per tenere la versione a 32bit (a parte la mancanza di un processore a 64bit…come me. sigh). Forse l’unico difetto è un possibile aumento del consumo di ram ma quello è intrinseco nell’utilizzo di applicazioni a 64bit e comunque non penso sia così visibile.
Se invece uno ha 4 giga di ram e un processore a 32bit allora o PAE o morte :slight_smile: E comunque per quel che costa un banco di ram ddr2 addesso meglio 3,X che 3 giga.

[quote=Astharoth]
Tra l’altro (correggetemi se sbaglio) se non ricordo male Fedora supporta l’installazione di pacchetti a 32 bit su so a 64. Quindi non vedo motivazioni per tenere la versione a 32bit (a parte la mancanza di un processore a 64bit…come me. sigh). Forse l’unico difetto è un possibile aumento del consumo di ram ma quello è intrinseco nell’utilizzo di applicazioni a 64bit e comunque non penso sia così visibile.
Se invece uno ha 4 giga di ram e un processore a 32bit allora o PAE o morte :slight_smile: E comunque per quel che costa un banco di ram ddr2 addesso meglio 3,X che 3 giga.[/quote]

Ho una cpu 64 e 2 GB ram;
Con vista x64 verrebbe voglia di prenderne almeno altri 2 (ho visto il file di paging superare anche 3,5 GB).
Con Fedora x86_64 la swap l’ho vista al massimo a 1,5 MegaByte solo durante l’aggiornamento completo del sistema, mentre tenevo aperte altre applicazioni. Non sento la necessità di dover aggiungere banchi ram.
Riguardo l’uso di software a 32 bit, gli unici pacchetti che ho son quelli relativi ai vari plugins di Adobe; ma anche iexplorer a 64 bit non supporta Flash & company, mentre troppi software per win sono solo x86.
Uhm… scusate se sono un po’ off topic.

Probabilmente quello che ho letto è cosa vecchia ma ha un fondo di verità.
Quando ho scritto “portando la cpu al 100%” non volevo dire che linux usa troppo la cpu ecc… è vero che la utilizza di più degli altri kernel, ma solo per ottimizzare il lavoro.

Ovviamente non voglio dire che wikipedia o il sito in cui ho letto questa cosa sappia più di voi, ma se qualcuno avrebbe confermato la cosa che utilizza solo i 700 e rotti mega la discussione si sarebbe conclusa con:
“Fregatene di quanta memoria ram hai perché linux utilizza solo i primi tot”.

prova per curiosità a dare:

$ free

potrai vedere più dettagliatamente l’uso della ram;

IMHO è ancora più chiaro il comando

§ free -mt

postilla al post # 11
c’è (almeno) un caso in cui potrebbe aver senso aggiungere molta RAM a un sistema Linux già a 64 bit: l’esecuzione in parallelo di più macchine virtuali.
Infatti in tal caso è noto che il funzionamento di ognuna di esse richiede un certo ammontare di memoria, che va sottratta da quella in uso al sistema operativo di base (=guest, cioè quello che fa partire le varie istanze virtuali).

CIAO

“Riapro” la discussione per chieder un’ultima cosa:

[quote=virus]
il kernel a 32 bit è in grado di indirizzare fino a 4 Gb di locazioni di memoria.

Ho detto apposta locazioni e non RAM.
La RAM non è l’unica memoria contenuta in un sistema.
Esiste la DMA, direct memory access, contenuta in dispositivi quali:
controller dischi, schede video, schede audio etc…

La DMA è trattata come memoria e ha priorità rispetto alla RAM.

Quindi se abbiamo un sistema con processore e RAM e niente altro(!) il kernel rileverà tutti i 4 Gb.

Se invece abbiamo un sistema con cpu, Ram, dischi, schede con il supporto Dma il kernel rileverà una quantità inferiore di 4 Gb, perché la differenza è ad uso della Dma, ed il totale sarà 4 Gb.
La differenza non è costante ed è funzione del proprio hardware.[/quote]

Ipotizziamo che in un pc, sistema operativo 32 bit, con scheda video discreta con 256 Mb di ram dedicata, la ram che risulta utilizzabile sia 3256 Mb.

Se avessi un pc identico, con la stessa scheda identica video ma con 512 Mb di ram dedicati, la ram utilizzabile sarebbe 3256 Mb? O 3000 Mb? O qualcosa di intermedio?

se ha la scheda video ha lo stesso controller avresti 3256 Mb disponibili.