I Linux är den fysiska adressen den faktiska adressen i fysiskt minne (RAM) där data finns. Det är en plats som är direkt tillgänglig för hårdvaran. Medan applikationer inte direkt använder fysiska adresser, är de avgörande för systemets underliggande drift av flera skäl:
* Minneshantering: Kärnan använder fysiska adresser för att hantera RAM. Den kartlägger virtuella adresser (adresserna som applikationer använder) till fysiska adresser genom en process som kallas minneskartläggning eller adressöversättning. Detta gör att flera processer kan köras samtidigt utan att störa varandras minnesutrymme, även om de använder samma virtuella adresser. Kärnan använder sidtabeller för att utföra denna översättning.
* Direktminnesåtkomst (DMA): Enheter som utför DMA (som nätverkskort eller hårddiskar) måste komma åt minnet direkt. De gör detta med fysiska adresser och förbi det virtuella adressutrymmet. Detta beror på att DMA händer på en lägre nivå än processsammanhang.
* Minneskydd: Kärnan använder fysiska adresser för att upprätthålla minnesskydd. Kartläggningen mellan virtuella och fysiska adresser gör det möjligt för kärnan att begränsa vilka processer som kan komma åt vilka delar av det fysiska minnet, vilket förhindrar att en process förstör en annans minne.
* Hårdvaruinteraktion: Vissa kärnoperationer som hanterar direkt med hårdvara (t.ex. minnestestning, initialisering) kräver användning av fysiska adresser.
Kort sagt, medan applikationer hanterar virtuella adresser, är fysiska adresser grunden för hur Linux hanterar och får åtkomst till RAM. De är viktiga för kärnens roll i minneshantering, enhetsinteraktion och systemsäkerhet. Applikationer manipulerar aldrig direkt fysiska adresser; Kärnan hanterar översättningen och skyddet.