易截截图软件、单文件、免安装、纯绿色、仅160KB

关于 linux 内存

首先,内存的大小在linux内核中的获知方法
1.通过bootloader 的 tag mem传入。
Setup.c 中的函数如下:
static int __init parse_tag_mem32(const struct tag *tag)
{
if (meminfo.nr_banks >= NR_BANKS) {
printk(KERN_WARNING
"Ignoring memory bank 0x%08x size %dKB\n",
tag->u.mem.start, tag->u.mem.size / 1024);
return -EINVAL;
}
arm_add_memory(tag->u.mem.start, tag->u.mem.size);
return 0;
}
 
__tagtable(ATAG_MEM, parse_tag_mem32);
 
其中最重要的函数为: arm_add_memory
这个函数向 meminfo数组中添加了一项关于 mem的描述
2.另外一个方法:通过内核启动参数mem=来传递
Setup.c 中的函数如下:
 
static void __init early_mem(char **p)
{
static int usermem __initdata = 0;
unsigned long size, start;
 
/*
* If the user specifies memory size, we
* blow away any automatically generated
* size.
*/
if (usermem == 0) {
usermem = 1;
meminfo.nr_banks = 0;
}
 
start = PHYS_OFFSET;
size = memparse(*p, p);
if (**p == '@')
start = memparse(*p + 1, p);
 
arm_add_memory(start, size);
}
__early_param("mem=", early_mem);
 
其中第二种方法具有高的优先级。
另外,还有一种修改memory属性的办法:
mdesc->fixup(mdesc, tags, &from, &meminfo);
这种方法依赖于特定的开发平台,在平台初始化的描述结构中定义。
 
最终,所以的关于memory的信息通过函数
paging_init(&meminfo, mdesc);
传递给 mem 初始化的部分。
 
第二,memory的初始化。
paging_init 的定义在 arch/arm/mm/mmu.c中。
 
在 paging_init 最重要的函数是:bootmem_init
 
该函数定义于:arch/arm/mm/init.c中。


相关文档:

[精华] 利用linux内核模块实现TTY Hack


///////////////////////////////////////////////////////////////////////////////////////////////
这是很早以前的tty hacking了,其实就是一个初级的内核的键盘钩子的实现原理
后面我会贴出我整理phrack杂志59期里的最新的内核键盘钩子技术
/////////////////////////////////////////////////////////////// ......

在windows平台上搭建linux C 开发环境

注:请允许我转载您的佳作
在windows上开发能够在linux上编译的C代码,我查了查有2个软件可以实现,一个是Cygwin,一个是mingw。其中cygwin是一个windows上linux环境的模拟工具,他提供了很多linux工具的windows实现版本,例如vi,emacs等等,当然也包括GCC。使用mingw的好处就是编译过的程序直接就可以跑了,而cygwin则需 ......

linux系统编程 系统调用

1.fork
            创建一个新进程
2.clone          
按指定条件创建子进程
3.execve
          运行可执行文件
4.exit       ......

linux文件后缀

首先要说明的是在Linux系统中,可执行文件没有统一的后缀,系统从文件的属性来区分可执行文件和不可执行文件。而gcc则通过后缀来区别输入文件的类别,下面我们来介绍gcc所遵循的部分约定规则。一般
.c为后缀的文件,C语言源代码文件;
.a为后缀的文件,是由目标文件构成的档案库文件;
.C,.cc或.cxx为后缀的文件,是C ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号