Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  vm-layout.rst   Sprache: unbekannt

 
.. SPDX-License-Identifier: GPL-2.0
.. include:: ../../disclaimer-zh_CN.rst

:Original: Documentation/arch/riscv/vm-layout.rst

:翻译:

 司延腾 Yanteng Si <siyanteng@loongson.cn>
        Binbin Zhou <zhoubinbin@loongson.cn>

============================
RISC-V Linux上的虚拟内存布局
============================

:作者: Alexandre Ghiti <alex@ghiti.fr>
:日期: 12 February 2021

这份文件描述了RISC-V Linux内核使用的虚拟内存布局。

32位 RISC-V Linux 内核
======================

RISC-V Linux Kernel SV32
------------------------

TODO

64位 RISC-V Linux 内核
======================

RISC-V特权架构文档指出,64位地址 "必须使第63-48位值都等于第47位,否则将发生缺页异常。":这将虚
拟地址空间分成两半,中间有一个非常大的洞,下半部分是用户空间所在的地方,上半部分是RISC-V Linux
内核所在的地方。

RISC-V Linux Kernel SV39
------------------------

::

  ========================================================================================================================
      开始地址       |   偏移      |     结束地址      |  大小    | 虚拟内存区域描述
  ========================================================================================================================
                    |            |                  |         |
   0000000000000000 |    0       | 0000003fffffffff |  256 GB | 用户空间虚拟内存,每个内存管理器不同
  __________________|____________|__________________|_________|___________________________________________________________
                    |            |                  |         |
   0000004000000000 | +256    GB | ffffffbfffffffff | ~16M TB | ... 巨大的、几乎64位宽的直到内核映射的-256GB地方
                    |            |                  |         |     开始偏移的非经典虚拟内存地址空洞。
                    |            |                  |         |
  __________________|____________|__________________|_________|___________________________________________________________
                                                              |
                                                              | 内核空间的虚拟内存,在所有进程之间共享:
  ____________________________________________________________|___________________________________________________________
                    |            |                  |         |
   ffffffc6fee00000 | -228    GB | ffffffc6feffffff |    2 MB | fixmap
   ffffffc6ff000000 | -228    GB | ffffffc6ffffffff |   16 MB | PCI io
   ffffffc700000000 | -228    GB | ffffffc7ffffffff |    4 GB | vmemmap
   ffffffc800000000 | -224    GB | ffffffd7ffffffff |   64 GB | vmalloc/ioremap space
   ffffffd800000000 | -160    GB | fffffff6ffffffff |  124 GB | 直接映射所有物理内存
   fffffff700000000 |  -36    GB | fffffffeffffffff |   32 GB | kasan
  __________________|____________|__________________|_________|____________________________________________________________
                                                              |
                                                              |
  ____________________________________________________________|____________________________________________________________
                    |            |                  |         |
   ffffffff00000000 |   -4    GB | ffffffff7fffffff |    2 GB | modules, BPF
   ffffffff80000000 |   -2    GB | ffffffffffffffff |    2 GB | kernel
  __________________|____________|__________________|_________|____________________________________________________________


RISC-V Linux Kernel SV48
------------------------

::

 ========================================================================================================================
      开始地址       |   偏移      |     结束地址      |  大小    | 虚拟内存区域描述
 ========================================================================================================================
                    |            |                  |         |
   0000000000000000 |    0       | 00007fffffffffff |  128 TB | 用户空间虚拟内存,每个内存管理器不同
  __________________|____________|__________________|_________|___________________________________________________________
                    |            |                  |         |
   0000800000000000 | +128    TB | ffff7fffffffffff | ~16M TB | ... 巨大的、几乎64位宽的直到内核映射的-128TB地方
                    |            |                  |         |     开始偏移的非经典虚拟内存地址空洞。
                    |            |                  |         |
  __________________|____________|__________________|_________|___________________________________________________________
                                                              |
                                                              | 内核空间的虚拟内存,在所有进程之间共享:
  ____________________________________________________________|___________________________________________________________
                    |            |                  |         |
   ffff8d7ffee00000 |  -114.5 TB | ffff8d7ffeffffff |    2 MB | fixmap
   ffff8d7fff000000 |  -114.5 TB | ffff8d7fffffffff |   16 MB | PCI io
   ffff8d8000000000 |  -114.5 TB | ffff8f7fffffffff |    2 TB | vmemmap
   ffff8f8000000000 |  -112.5 TB | ffffaf7fffffffff |   32 TB | vmalloc/ioremap space
   ffffaf8000000000 |  -80.5  TB | ffffef7fffffffff |   64 TB | 直接映射所有物理内存
   ffffef8000000000 |  -16.5  TB | fffffffeffffffff | 16.5 TB | kasan
  __________________|____________|__________________|_________|____________________________________________________________
                                                              |
                                                              | 从此处开始,与39-bit布局相同:
  ____________________________________________________________|____________________________________________________________
                    |            |                  |         |
   ffffffff00000000 |   -4    GB | ffffffff7fffffff |    2 GB | modules, BPF
   ffffffff80000000 |   -2    GB | ffffffffffffffff |    2 GB | kernel
  __________________|____________|__________________|_________|____________________________________________________________

[ Dauer der Verarbeitung: 0.17 Sekunden  (vorverarbeitet)  ]

                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge