MMU: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content added Content deleted
(Added to Category:Memory management)
m (layoutfixes)
Line 1: Line 1:
The MMU is a component of many computers that handles memory translation, memory protection, and other purposes specific to each architecture. This article is meant to be a ''generic'' overview of the MMU. For specifics to the x86 please check [[Paging]] or [[Segmentation]].
The '''MMU''' is a component of many computers that handles memory translation, memory protection, and other purposes specific to each architecture. This article is meant to be a ''generic'' overview of the MMU. For specifics to the x86 please check [[Paging]] or [[Segmentation]].


==Translation==
== Translation ==
The MMU's main service to the computer is memory translation. Memory translation is a process by which virtual addresses are converted to physical addresses. We can say that the virtual addresses are '''mapped''' to the physical address. This gives us the ability to create a memory model in our own fashion. That is, we can rearrange how the memory ''seems'' to be ordered.
The MMU's main service to the computer is memory translation. Memory translation is a process by which virtual addresses are converted to physical addresses. We can say that the virtual addresses are ''mapped'' to the physical address. This gives us the ability to create a memory model in our own fashion. That is, we can rearrange how the memory ''seems'' to be ordered.


For instance, this technique is used when creating a [[Higher Half Kernel]]. The kernel is loaded at location x, but when [[paging]] is initialized the MMU is told to map location x to 0xC0000000. This then creates the effect that the kernel actually '''is''' at 0xC0000000.
For instance, this technique is used when creating a [[Higher Half Kernel]]. The kernel is loaded at location x, but when [[paging]] is initialized the MMU is told to map location x to 0xC0000000. This then creates the effect that the kernel actually '''is''' at 0xC0000000.


==Protection==
== Protection ==
Because we can make memory seem however we want, we can make each process appear that it is the only process on the machine. Moreover, because the process can only see memory that it has, it cannot modify or copy any other application's memory. This means that if an application is to fail, '''it''' will fail, but nothing else.
Because we can make memory seem however we want, we can make each process appear that it is the only process on the machine. Moreover, because the process can only see memory that it has, it cannot modify or copy any other application's memory. This means that if an application is to fail, ''it'' will fail, but nothing else.


==See Also==
==See Also==
=== External Links ===
*[http://en.wikipedia.org/wiki/Memory_management_unit Wikipedia]
*[http://en.wikipedia.org/wiki/Memory_management_unit Memory Management Unit] on Wikipedia


[[Category:Memory management]]
[[Category:Memory management]]

Revision as of 18:01, 30 October 2008

The MMU is a component of many computers that handles memory translation, memory protection, and other purposes specific to each architecture. This article is meant to be a generic overview of the MMU. For specifics to the x86 please check Paging or Segmentation.

Translation

The MMU's main service to the computer is memory translation. Memory translation is a process by which virtual addresses are converted to physical addresses. We can say that the virtual addresses are mapped to the physical address. This gives us the ability to create a memory model in our own fashion. That is, we can rearrange how the memory seems to be ordered.

For instance, this technique is used when creating a Higher Half Kernel. The kernel is loaded at location x, but when paging is initialized the MMU is told to map location x to 0xC0000000. This then creates the effect that the kernel actually is at 0xC0000000.

Protection

Because we can make memory seem however we want, we can make each process appear that it is the only process on the machine. Moreover, because the process can only see memory that it has, it cannot modify or copy any other application's memory. This means that if an application is to fail, it will fail, but nothing else.

See Also

External Links