Linux内核初始化过程的源码分析疑点记录+好书推荐(附下载)

原创 2011年11月03日 21:25:30
    这个对基于PowerPC的Linux内核源码剖析的文章已经写了三篇了(见前三篇博文),由于可以找到的关于PowerPC E300处理器的Linux文章基本没有,这些都是一点点摸索的,可能存在不少的错误,特别是第3篇,自我感觉很差,开始计划写这个系列的时候,自以为已经很了解PowerPC的内部体系了,现在回首,还是有很大的提升空间啊。这个系列到这里也算是一个中节点了,我打算先放一放,处理好工作上的琐事,然后再细细看一下E300内核的机制,再来开篇续集。

    这里分享下一本很好的对PowerPC Linux做介绍的书---《Linux PowerPC详解-核心篇》,机械工业出版社,王齐编著。本书基于E500处理器,介绍了Linux PowerPC的组成;PowerPC的指令集、寄存器、内存体系结构等;还讲述了进程调度、中断处理、内存管理MMU等知识。对于想入手Linux+PowerPC的童鞋,是不可多得的好资料。希望大家共同学习,共同进步。详细见我的上传资源:http://download.csdn.net/detail/JuanA1/3752721

    再总结一下在分析代码时碰到的疑问,算是备案,也算是求助,只要解决了,我都会留言说明的,如下:

1、head.s开始时,首先根据PowerPC ABI规范,保存r3、r4、r5、r6和r7,然后调用early_init,现在只知道r3保存函数返回值,其余未知。__start一开始就cmpwi 0,r5,0,是判断什么?

 

2、在early_init阶段,内核会为CPU特性做fixup处理,调用的几个do_feature_fixup函数,虽然勉强知道是用于代码复用的处理器特性处理,但具体机制不清楚,输入参数__start___ftr_fixup、__stop___ftr_fixup都不清楚含义。

 

3、在__init_fpu_registers中,有一个REST_32FPRS(0,r9),r9为空数组,宏定义如下:

#define REST_FPR(n, base) lfd n,THREAD_FPR0+8*TS_FPRWIDTH*(n)(base) /*THREAD_FPR0为double fpr[32][TS_FPRWIDTH]在结构体thread_struct中的偏移*/

这句也一直不清楚,是不是清FPR的操作?

 

4、Linux有一个Oops机制,用于处理内核的异常,处理Oops异常的入口位于head_32.S中的trun_on_mmu函数后面的一大段代码,其中还和arch/powerpc/kvm文件夹下的程序有关。(Sailor的CSDN博客有相关介绍)

 

5、接上面,Linux中的异常处理,在head_32.S中有一大段的代码,一直没敢去碰它,初始化时碰到的DSI异常和PTE中的IMISS和DMISS也都是一笔带过,要找时间和资料细细分析下。

 

6、函数lockdep_init是什么意思? 虽然知道是用于启动Lock Dependency Validator(内核依赖的关系表),本质上就是建立两个散列表calsshash_table和chainhash_table,并初始化全局变量lockdep_initialized,标志已初始化完成。但还是不清楚,有没有更直白点的解释?

 

7、Linux内核在启动早期就会在屏幕打印输出(BTEXT),以及后来的machin_init中的调试使能函数,对于PowerPC就是NS16550的串口,具体的初始化方法和机制都不是很清楚。

 

8、MMU硬件初始化的流程,可能是心里太乱了,又正好E300的MMU初始化那么复杂,花了很久都没能理清,是以后摸索的重点。

欢迎高手解答!!

推荐一本最接近完美的Linux内核入门教材

其实我认为这本书不仅仅适合作为入门教材,同时也是一部真正算得上是深入理解Linux内核的凤毛麟角之作;这本书不仅在Linux内核类书籍中出类拔萃,甚至与计算机其他领域的经典巨著相比也毫不逊色。这本书就...
  • huaweimember
  • huaweimember
  • 2016年03月28日 22:03
  • 10833

Linux Kernel —— 学习经典书籍及网络资源推荐

待到山花烂漫时,还是那些经典在微笑。   有关内核的书籍可以用汗牛充栋来形容,不过只有一些经典的神作经住了考验。首先是5本久经考验的神作(个人概括为“2+1+2”,第一个2是指2本全面讲 解内核...
  • l_nan
  • l_nan
  • 2014年07月17日 15:27
  • 2000

linux内核学习经典书籍推荐

有关内核的书籍可以用汗牛充栋来形容,不过只有一些经典的神作经住了考验。首先是5本久经考验的神作(个人概括为“2+1+2”,第一个2是指2本全面讲 解内核的书,中间的1指1本讲解驱动开发的书,后面的2则...
  • shanzhizi
  • shanzhizi
  • 2013年01月03日 15:43
  • 2986

linux 好书推荐

linux 好书推荐 分类: 程序员生活 2011-08-01 17:42 749人阅读 评论(0) 收藏 举报 linuxlinux内核出版documentationunixcaching 1,...
  • gexiaochuan122
  • gexiaochuan122
  • 2013年12月03日 14:26
  • 1141

Linux内核-协议栈-初始化流程分析

本文主要针对Linux-3.19.3版本的内核简单分析内核协议栈初始化涉及到的主要步骤和关键函数,不针对协议的解析以及数据包的处理流程做具体分析,后续有机会再详细分析(主要是作者目前这块才涉及…)1....
  • feilengcui008
  • feilengcui008
  • 2015年10月31日 10:35
  • 873

学习MySQL的好书

推荐几本学习MySQL的好书 我这里推荐几本MySQL的好书,应该能够有效避免学习MySQL的弯路,并且达到一个不错的水平。 我这里推荐的书或材料分为两个部分,分别是MySQL的使用和MySQL的源...
  • qq_33547544
  • qq_33547544
  • 2017年01月14日 11:08
  • 97

kernel 3.0.31 usb_init 子系统初始化过程分析

1: 2: 3: 4: 5: 6:      到此等于hub初始化完毕,等待U盘/鼠标/键盘等USB设备连接到USB接口 => event_list => hub_event_...
  • houyizi337825770
  • houyizi337825770
  • 2012年12月18日 14:33
  • 878

给大家推荐一些信息学书籍

    近来有很多问该看什么书的。我说一下个人意见(仅代表个人意见)。大家可以按照这样的顺序来阅读这些书(时间足够的话):     《算法导论》    《数据结构与算法分析——C语言描述》   ...
  • matrix67
  • matrix67
  • 2006年12月15日 00:16
  • 534

初学C语言,有什么好书推荐?

初学C语言,有什么好书推荐? 下学期外教来教C语言,怕听不懂,想麻烦大家推荐几本适合初学者看的关于C语言的书,谢谢啦 7 条评论 默认排序按时间排序 3...
  • zyex1108
  • zyex1108
  • 2016年09月05日 23:33
  • 544

牛人的编程学习经历和好书推荐

你现在觉得学编程很累吗?嗯,那很正常,只有电影中的天才黑客才轻松,但他们只敲空格和回车...看看我的学习经历,或许对你有帮助。 我的编程经历:  大一,熟悉电脑,极品飞车,古墓丽影......   大...
  • tony821224
  • tony821224
  • 2007年07月29日 21:29
  • 2841
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux内核初始化过程的源码分析疑点记录+好书推荐(附下载)
举报原因:
原因补充:

(最多只允许输入30个字)