
Linux 启动流程学习
主要学习Linux SMP、自解压等启动流程
楓潇潇
这个作者很懒,什么都没留下…
展开
-
Linux initcall执行顺序分析
Linux initcall执行顺序分析1 Linux关于initcall的定义/include/linux/init.h#define pure_initcall(fn) __define_initcall(fn, 0)#define core_initcall(fn) __define_initcall(fn, 1)#define core_initcall_sync...原创 2019-07-11 20:09:20 · 1350 阅读 · 0 评论 -
Linux 启动流程之自解压(四)
Linux 启动流程之自解压(四)5 程序自解压5.1 restartrestart: adr r0, LC0 //LC0为运行地址,0x17c ldmia r0, {r1, r2, r3, r6, r10, r11, r12} //通过加载内存值后,r1=0x17c ldr sp, [r0, #28] /* * We might be running at a diff...原创 2020-03-15 21:07:32 · 832 阅读 · 1 评论 -
Linux 启动流程之自解压(三)
Linux 启动流程之自解压(三)4 打开cache /* * Set up a page table only if it won't overwrite ourself. * That means r4 < pc || r4 - 16k page directory > &_end. * Given that r4 > &_end is ...原创 2020-03-15 21:00:36 · 509 阅读 · 0 评论 -
Linux 启动流程之自解压(二)
Linux 启动流程之自解压(二)2 Head.s .start段程序入口startStart是zImage在启动时,最开始执行的代码。也就是说.start段被链接到代码的最开头处。.section ".start", #alloc, #execinstr //创建.start段,将以下代码放入该段空间中/* * sort out different calling conventi...原创 2020-03-15 20:55:36 · 532 阅读 · 0 评论 -
Linux 启动流程之自解压(一)
Linux 启动流程之自解压(一)首先,我们要知道在zImage的生成过程中,是把arch/arm/boot/compressed/head.s 和解压代码misc.c,decompress.c加在压缩内核的最前面最终生成zImage的,那么它的启动过程就是从这个head.s开始的,并且如果代码从RAM运行的话,是与位置无关的,可以加载到内存的任何地方。下面以linux-4.15.09 版本a...原创 2020-03-15 20:49:30 · 667 阅读 · 0 评论 -
Linux SMP启动流程学习(一)
Linux SMP启动流程(一)1 SMP硬件体系结构SMP的全称是"对称多处理"(Symmetrical Multi-Processing)技术,最简单可以理解为系统存在多个完全相同的CPU,所有CPU之间共享内存子系统以及共享总线,拥有自己的通用寄存器。对于内存和外部设备访问,由于共享总线,所以是共享的。Linux操作系统多个CPU共享在系统空间上映射相同,是完全对等的。2 CPU拓...原创 2019-06-29 20:43:36 · 3151 阅读 · 0 评论 -
Linux SMP启动流程学习(二)
Linux SMP启动流程学习(二)3 SMP系统启动流程3.1 SMP启动判断源码:/arch/arm/kernel/setup.c调用:start_kernel() —> smp_setup_processor_id()void __init smp_setup_processor_id(void){ int i; //判断是否是smp系统,是则从arm协处理器读取...原创 2019-06-29 20:54:58 · 4661 阅读 · 0 评论 -
Linux SMP启动流程学习(三)
Linux SMP启动流程学习(三)4 构建CPU拓扑关系4.1 创建调度域拓扑关系—sched_init_domains()在系统启动开始的时候就开始构建CPU的拓扑关系,具体流程如下:[start_kernel() -> rest_init() -> kernel_init() -> kernel_init_freeable() -> sched_init_sm...原创 2019-06-29 21:06:45 · 1603 阅读 · 0 评论