arch/ 从 linux-1.1.45 开始加入内核,代表开始支持多架构(architecture),之前支持 i386
arch/i386 从 linux-1.1.45 开始加入内核
arch/mips 从 linux-1.1.82 开始加入内核
arch/arm 从 linux-2.1.80 开始加入内核
arch/arm64 从 linux-3.7-rc1 开始加入内核
arch/riscv 从 linux-4.15-rc1 开始加入内核
arch/x86
arch/ia64
现在是 (2020-8-8 16:44:47),linux-5.8,arch/ 目录下有 25个 架构相关目录
alpha arc arm arm64 c6x csky h8300 hexagon ia64 m68k microblaze mips nds32 nios2 openrisc parisc powerpc riscv s390 sh sparc um unicore32 x86 xtensa
linux-3.7-rc1
arm64的非压缩内核启动流程
基本上和 linux-3.0.1 arm的一样
arm64的压缩内核启动流程
没有压缩内核
linux-5.8
arm64的非压缩内核启动流程
从 _head: 到 b primary_entry
从 primary_entry 到 b __primary_switch
从 __primary_switch 到 __primary_switched
从 __primary_switched 到 b start_kernel
arm64的压缩内核启动流程
没有压缩内核
linux-4.15-rc1
riscv的非压缩内核启动流程
ENTRY(_start)
call setup_vm
call relocate
la sp, init_thread_union;li a0, ASM_THREAD_SIZE;add sp, sp, a0
tail start_kernel
riscv的压缩内核启动流程
没有压缩内核
linux-5.8
riscv的非压缩内核启动流程
从 ENTRY(_start) 到 j _start_kernel
_start_kernel
call setup_vm
call relocate
la sp, init_thread_union + THREAD_SIZE
tail start_kernel
riscv的压缩内核启动流程
没有压缩内核