Vsphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextEnglish}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget/arch/riscv/vm-layoutmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/zh_TW/arch/riscv/vm-layoutmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/it_IT/arch/riscv/vm-layoutmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ja_JP/arch/riscv/vm-layoutmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/ko_KR/arch/riscv/vm-layoutmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget(/translations/sp_SP/arch/riscv/vm-layoutmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageChinese (Simplified)uh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhU/var/lib/git/docbuild/linux/Documentation/translations/zh_CN/arch/riscv/vm-layout.rsthKubhnote)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]h paragraph)}(hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。h]hX{此文件的目的是为让中文读者更容易阅读和理解,而不是作为一个分支。 因此, 如果您对此文件有任何意见或更新,请先尝试更新原始英文文件。 如果您发现本文档与原始文件有任何不同或者有翻译问题,请发建议或者补丁给 该文件的译者,或者请求中文文档维护者和审阅者的帮助。}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hh5Documentation/translations/zh_CN/disclaimer-zh_CN.rsthKhhubah}(h]h ]h"]h$]h&]uh1hhhhhhhhNubh field_list)}(hhh](hfield)}(hhh](h field_name)}(hOriginalh]hOriginal}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhKubh field_body)}(h'Documentation/arch/riscv/vm-layout.rst h]h)}(h&Documentation/arch/riscv/vm-layout.rsth]h&Documentation/arch/riscv/vm-layout.rst}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhubah}(h]h ]h"]h$]h&]uh1hhhubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h翻译h]h翻译}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhKubh)}(hY司延腾 Yanteng Si Binbin Zhou h]hdefinition_list)}(hhh]hdefinition_list_item)}(hR司延腾 Yanteng Si Binbin Zhou h](hterm)}(h,司延腾 Yanteng Si h](h司延腾 Yanteng Si <}(hj-hhhNhNubh reference)}(hsiyanteng@loongson.cnh]hsiyanteng@loongson.cn}(hj7hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:siyanteng@loongson.cnuh1j5hj-ubh>}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1j+hhhK hj'ubh definition)}(hhh]h)}(h$Binbin Zhou h](h Binbin Zhou <}(hjVhhhNhNubj6)}(hzhoubinbin@loongson.cnh]hzhoubinbin@loongson.cn}(hj^hhhNhNubah}(h]h ]h"]h$]h&]refurimailto:zhoubinbin@loongson.cnuh1j5hjVubh>}(hjVhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK hjSubah}(h]h ]h"]h$]h&]uh1jQhj'ubeh}(h]h ]h"]h$]h&]uh1j%hhhK hj"ubah}(h]h ]h"]h$]h&]uh1j hjubah}(h]h ]h"]h$]h&]uh1hhj ubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubeh}(h]h ]h"]h$]h&]uh1hhhhhhhhKubhsection)}(hhh](htitle)}(h$RISC-V Linux上的虚拟内存布局h]h$RISC-V Linux上的虚拟内存布局}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhK ubh)}(hhh](h)}(hhh](h)}(h作者h]h作者}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhKubh)}(hAlexandre Ghiti h]h)}(hjh](hAlexandre Ghiti <}(hjhhhNhNubj6)}(h alex@ghiti.frh]h alex@ghiti.fr}(hjhhhNhNubah}(h]h ]h"]h$]h&]refurimailto:alex@ghiti.fruh1j5hjubh>}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubh)}(hhh](h)}(h日期h]h日期}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhKubh)}(h12 February 2021 h]h)}(h12 February 2021h]h12 February 2021}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1hhjubeh}(h]h ]h"]h$]h&]uh1hhhhKhjhhubeh}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(hE这份文件描述了RISC-V Linux内核使用的虚拟内存布局。h]hE这份文件描述了RISC-V Linux内核使用的虚拟内存布局。}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubj)}(hhh](j)}(h32位 RISC-V Linux 内核h]h32位 RISC-V Linux 内核}(hj<hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9hhhhhKubj)}(hhh](j)}(hRISC-V Linux Kernel SV32h]hRISC-V Linux Kernel SV32}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjJhhhhhKubh)}(hTODOh]hTODO}(hj[hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJhhubeh}(h]risc-v-linux-kernel-sv32ah ]h"]risc-v linux kernel sv32ah$]h&]uh1jhj9hhhhhKubeh}(h]id1ah ]h"]32位 risc-v linux 内核ah$]h&]uh1jhjhhhhhKubj)}(hhh](j)}(h64位 RISC-V Linux 内核h]h64位 RISC-V Linux 内核}(hj|hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjyhhhhhKubh)}(hX%RISC-V特权架构文档指出,64位地址 "必须使第63-48位值都等于第47位,否则将发生缺页异常。":这将虚 拟地址空间分成两半,中间有一个非常大的洞,下半部分是用户空间所在的地方,上半部分是RISC-V Linux 内核所在的地方。h]hX)RISC-V特权架构文档指出,64位地址 “必须使第63-48位值都等于第47位,否则将发生缺页异常。”:这将虚 拟地址空间分成两半,中间有一个非常大的洞,下半部分是用户空间所在的地方,上半部分是RISC-V Linux 内核所在的地方。}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjyhhubj)}(hhh](j)}(hRISC-V Linux Kernel SV39h]hRISC-V Linux Kernel SV39}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhK$ubh literal_block)}(hX[ ======================================================================================================================== 开始地址 | 偏移 | 结束地址 | 大小 | 虚拟内存区域描述 ======================================================================================================================== | | | | 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 __________________|____________|__________________|_________|____________________________________________________________h]hX[ ======================================================================================================================== 开始地址 | 偏移 | 结束地址 | 大小 | 虚拟内存区域描述 ======================================================================================================================== | | | | 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 __________________|____________|__________________|_________|____________________________________________________________}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhK(hjhhubeh}(h]risc-v-linux-kernel-sv39ah ]h"]risc-v linux kernel sv39ah$]h&]uh1jhjyhhhhhK$ubj)}(hhh](j)}(hRISC-V Linux Kernel SV48h]hRISC-V Linux Kernel SV48}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjhhhhhKHubj)}(hX ======================================================================================================================== 开始地址 | 偏移 | 结束地址 | 大小 | 虚拟内存区域描述 ======================================================================================================================== | | | | 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 __________________|____________|__________________|_________|____________________________________________________________h]hX ======================================================================================================================== 开始地址 | 偏移 | 结束地址 | 大小 | 虚拟内存区域描述 ======================================================================================================================== | | | | 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 __________________|____________|__________________|_________|____________________________________________________________}hjsbah}(h]h ]h"]h$]h&]hhuh1jhhhKLhjhhubeh}(h]risc-v-linux-kernel-sv48ah ]h"]risc-v linux kernel sv48ah$]h&]uh1jhjyhhhhhKHubeh}(h]id2ah ]h"]64位 risc-v linux 内核ah$]h&]uh1jhjhhhhhKubeh}(h] risc-v-linuxah ]h"]$risc-v linux上的虚拟内存布局ah$]h&]uh1jhhhhhhhK ubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(jN generatorN datestampN source_linkN source_urlN toc_backlinksentryfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerjerror_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(jjjvjsjnjkjjjjjju nametypes}(jjvjnjjjuh}(jjjsj9jkjJjjyjjjju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}j)KsRparse_messages]transform_messages] transformerN include_log]9Documentation/translations/zh_CN/arch/riscv/vm-layout.rst(NNNNta decorationNhhub.