From Fedora Project Wiki
(Created page with "== 为什么使用32位Linux?== 使用32位Linux内核的目的是是为了减少内存占用并满足DDR和缓存要求的小容量(例如,64/128MB SIP SoC)。 ilp32的long和指针大小仅为lp64的一半(rv64默认abi - long和指针都是64位)。 这种数据类型上的显著差异导致了不同的内存和缓存占用成本。 在相同的128MB qemu系统环境中,这里是s32ilp32、s64ilp32和s64lp64之间的比较测量:") |
No edit summary |
||
Line 1: | Line 1: | ||
{{lang|en|zh-cn|page=Architectures/RISC-V/64ILP32}} | |||
== 为什么使用32位Linux?== | == 为什么使用32位Linux?== | ||
使用32位Linux内核的目的是为了减少内存占用并满足小容量DDR和缓存的要求(例如,64/128MB SIP SoC)。 | |||
ilp32的long和指针大小仅为lp64的一半(rv64默认的abi - long和指针都是64位)。 | |||
这种数据类型上的显著差异导致了不同的内存和缓存占用成本。 在相同的128MB qemu系统环境中,这里是s32ilp32、s64ilp32和s64lp64之间的比较测量: | |||
=== 根文件系统: === | |||
* u32ilp32 - 使用相同的32位用户空间rootfs.ext2(UXL=32)二进制文件,来自buildroot 2023.02-rc3,qemu_riscv32_virt_defconfig。 | |||
=== Linux: === | |||
* s32ilp32 - Linux version 6.3.0-rc1 (124MB) rv32_defconfig: | |||
<pre> | |||
$(Q)$(MAKE) -f $(srctree)/Makefile defconfig 32-bit.config | |||
</pre> | |||
* s64lp64 - Linux version 6.3.0-rc1 (126MB) defconfig: | |||
<pre> | |||
$(Q)$(MAKE) -f $(srctree)/Makefile defconfig | |||
</pre> | |||
* s64ilp32 - Linux version 6.3.0-rc1 (126MB) rv64ilp32_defconfig: | |||
<pre> | |||
$(Q)$(MAKE) -f $(srctree)/Makefile defconfig 64ilp32.config | |||
</pre> | |||
=== Opensbi: === | |||
* m64lp64 - (2MB) OpenSBI v1.2-80-g4b28afc98bbe | |||
* m32ilp32 - (4MB) OpenSBI v1.2-80-g4b28afc98bbe | |||
[[File:64ilp32.png|center|1024px]] |
Revision as of 12:19, 4 March 2024
为什么使用32位Linux?
使用32位Linux内核的目的是为了减少内存占用并满足小容量DDR和缓存的要求(例如,64/128MB SIP SoC)。
ilp32的long和指针大小仅为lp64的一半(rv64默认的abi - long和指针都是64位)。 这种数据类型上的显著差异导致了不同的内存和缓存占用成本。 在相同的128MB qemu系统环境中,这里是s32ilp32、s64ilp32和s64lp64之间的比较测量:
根文件系统:
- u32ilp32 - 使用相同的32位用户空间rootfs.ext2(UXL=32)二进制文件,来自buildroot 2023.02-rc3,qemu_riscv32_virt_defconfig。
Linux:
- s32ilp32 - Linux version 6.3.0-rc1 (124MB) rv32_defconfig:
$(Q)$(MAKE) -f $(srctree)/Makefile defconfig 32-bit.config
- s64lp64 - Linux version 6.3.0-rc1 (126MB) defconfig:
$(Q)$(MAKE) -f $(srctree)/Makefile defconfig
- s64ilp32 - Linux version 6.3.0-rc1 (126MB) rv64ilp32_defconfig:
$(Q)$(MAKE) -f $(srctree)/Makefile defconfig 64ilp32.config
Opensbi:
- m64lp64 - (2MB) OpenSBI v1.2-80-g4b28afc98bbe
- m32ilp32 - (4MB) OpenSBI v1.2-80-g4b28afc98bbe