如果想运行和链接地址不一致,我能想到的办法,只能是汇编中尽量不去涉及一些绝对地址,使用PIC位置无关代码。
联想之前分析的uboot relocation原理,uboot在relocation之后,kernel在开启MMU之前,都实现了链接地址和运行地址不一致,看看它们用的什么方法?
(1)uboot在relocation时修改rel.dyn段(存储所有变量地址),实现将所有变量地址重定位到新运行地址
(2)kernel在开启MMU之前,计算运行地址(物理地址)与链接地址(虚拟地址)的偏移,对变量寻址时都进...
分类:
系统相关 时间:
2014-11-21 10:43:07
阅读次数:
367
如今开源如此火爆,以至于张口闭口不提到都仿佛不是搞IT 的,那么如何拥抱开源?本文适合初学者,如有大神至此,goto exit !
一、如何加入开源
以Linux 为例,这么一个成功的开源项目需要做哪些工作?一个开源项目,研发人员都是时间以及空间上分散的,那么如何联系如何相互讨论成为一个很重要很重要的问题!
Linux 或者说更早的开源都是基于邮件列表以及IRC 这两个核心的...
分类:
系统相关 时间:
2014-11-20 13:42:49
阅读次数:
369
#include
#include "sys/config.h"
SYS_NAMESPACE_BEGIN
/***
* 用来获取系统、内核和进程的各类实时信息,如CPU和内存数据
*/
class CInfo
{
public:
/***
* 系统当前实时信息
*/
ty...
分类:
编程语言 时间:
2014-11-19 11:01:59
阅读次数:
256
kernel和user空间下都有一个console,关系到kernel下printk的方向和user下printf的方向,实现差别还是很大的。
kernel下的console是输入输出设备driver中实现的简单的输出console,只实现write函数,并且是直接输出到设备。
user空间下的console,实际就是tty的一个例子,所有操作函数都继承与tty,全功能,可以打开 读写 关闭,所以对于console的读写,都是由kernel的tty层来最终发送到设备。
kernel的tty层之下还有ldi...
分类:
系统相关 时间:
2014-11-17 17:48:54
阅读次数:
309
Android架构, Applications层, Application Framework层, Libraries层, Android Runtime 层, Linux Kernel层...
分类:
移动开发 时间:
2014-11-17 12:21:39
阅读次数:
194
转载:http://blog.chinaunix.net/uid-20522771-id-3785808.html本文代码均来自标准 linux kernel 3.10,可以到这里下载https://www.kernel.org/ 以arch/arm/mach-msm/board-dt-8960.....
分类:
系统相关 时间:
2014-11-15 16:46:54
阅读次数:
296
依据我的思路(时间顺序,如何开始,如何结束),首先看kernel下2种参数的注册。
第一种是kernel通用参数,如console=ttyS0,115200 root=/rdinit/init等。这里以console为例。
第二种是kernel下各个driver中需要的参数,在写driver中,如果需要一些启动时可变参数。
可以在driver最后加入module_param()来注册一个参数,kernel启动时由cmdline指定该参数的值。
这里以drivers/usb/gadget/serial.c中...
分类:
系统相关 时间:
2014-11-15 10:08:29
阅读次数:
1331
按照上一篇的内容修改文件重新编译后不会报错,但是烧到flash里后运行的时候有问题,如下:[ 16.840000] mt7620: module license 'unspecified' taints kernel.[ 16.840000] Disabling lock debugging...
分类:
系统相关 时间:
2014-11-13 14:35:53
阅读次数:
1178
[Makefile]
[1] 规则
目标: 依赖
[TAB]命令(命令名 参数 依赖 目标)
[2] 难点
1. 自动变量
作用域在一个规则中, 如: $@(目标, 每条规则都只有一个目标), $
例:
hello.o world.o: hello.h
等价于
hello....
分类:
其他好文 时间:
2014-11-13 10:52:09
阅读次数:
262
将脚本移植到内核是一件很酷的事情,lua已经被移植到NetBSD的内核中,也有一个叫lunatik的项目把lua移植到了linux内核,只可惜只支持x86,不支持arm,在网上搜索了下,没有找到现成的,于是自己研究了下,现将它分享出来。...
分类:
系统相关 时间:
2014-11-12 21:19:21
阅读次数:
254