![](https://seccdn.libravatar.org/avatar/735ea797d876adb026ae955e8adbf597.jpg?s=120&d=mm&r=g)
On Mon, Jun 25, 2001 at 11:11:26 +0200, Thorsten Haude wrote:
* Oliver Kiehl
[01-06-25 07:41]: Mit 'Shared Memory' bezeichnet man einen Speicherbereich (also RAM), der wie ist denn dass moeglich: $ df -h shmfs 313M 0 312M 0% /dev/shm
also 312 MB shared Memory. Ich habe aber nur 256 MB RAM. Entweder wird geswapt oder die meinen mit Shared Memory etwas völlig anderes.
Linux verwaltet (wie andere Unix-Systeme auch) den verfügbaren Speicher nicht über den physikalischen Adressraum des RAM, sondern über virtuelle Adressen. Das Mapping auf die physikalischen Adressen im RAM oder in den SWAP macht der Kernel, die Anwendungen kriegen davon nichts mit. Es ist also ohne weiteres möglich, sich mehr Speicher zu reservieren, als physikalisch vorhanden ist. Bei Notwendigkeit wird eben ausgelagert. Die Grenze des adressierbaren Speichers für eine Anwendung wird IIRC durch Kernelparameter bestimmt. Ich habe gerade mal aus Jux mir in einer kleinen Anwendung 256 MB Hauptspeicher reserviert - bei 64 MB RAM und laufendem X ;-) Die Anzeige von df -h ist also in Ordnung und auch die Erklärung, dass Shared Memory im Hauptspeicher liegt, ist richtig. Man muss nur beachten, dass es der virtuelle Adressraum des Kernels ist. Das war jetzt ziemlich vereinfacht, aber hoffentlich verständlich. Jan