Linux 内存绑定在局部存储器的实现
3.2.1 Linux 内存绑定在局部存储器的实现总体步骤
总体步骤:
l 采用方案三,在在原来分析的基础上,以及已知Linux系统内存的初始化的情况,对内核代码进行修改,主要包括确定新区的范围,建立新区,重新对分配内存的分配机制进行设置。
l 新区划分后,对新建的两个区进行一定程度上的延迟;
l 建立系统调用,系统调用将提供用户进行手动设置访问方式。
l 对内核进行配置,并进行相关调式。
l 用户程序进行最终的测试,并验证相关结论。
3.2.2 Linux 内核绑定在局部存储器代码实现
(一)、修改代码:
1) 在init/main.c这个文件中,在这一段代码
#ifdef CONFIG_X86_LOCAL_APIC
#include <asm/smp.h>
#endif
的下面增加这段代码:
unsigned long max_normal_low_pfn=0;
EXPORT_SYMBOL(max_normal_low_pfn);
这里使用EXPORT_SYMBOL是声明max_normal_low_pfn是全局变量,所有的文件都可以使用,它的用处是为了标记新区ZONE_NORMAL_LOW的最大可用的页框号。
2) arch/x86/kernel/setup.c这个文件:
l 在struct boot_params boot_params;
#endif之后添加,声明该变量已经在别的文件有定义了
extern unsigned long max_normal_low_pfn;
l 在setup_arch()这个函数中,在find_low_pfn_range()这个之后,增加这一句:
max_normal_low_pfn = max_low_pfn/2;
该句用于计算新区(ZONE_NORMAL_LOW)的最大可用页框号。
3) 在arch/x86/mm/init_32.c文件
l 在unsigned long max_low_pfn_mapped; unsigned long max_pfn_mapped;之后添加extern unsigned long max_normal_low_pfn;
l 在static void __init zone_sizes_init(void)这个函数中增加这句代
相关文档:
由于 Linux 良好的用户权限管理体系,病毒往往是 Linux 系统管理员最后才需要考虑的问题。以往,Linux 上的杀毒软件主要是为企业的邮件和文件服务器所设计的。如今,随着 Linux 桌面用户数量的增长,桌面用户在受益于 Linux 系统对病毒较强的天然免疫力的同时,也需要杀毒软件清理从网络或U盘带来的WIndows病毒。尽管那些 ......
1. linux 图形化界面乱码,一般是因为没有安装中文字体导致,可以在终端查询已经安装的字体 rpm -qa | grep fonts
如果没有font-chinese,可以下载或从安装盘中找到 fonts-chinese-3.02-12.el5.noarch.rpm 安装即可。
2. 远程连接中文乱码:
vi /etc/sysconfig/i18n
将内容改为
LANG="zh_CN. ......
pid_t pid=fork()
it has 3 situation for the return result pid
0 child
>0 parent process
<0 fork fail
fork create a new process and it parent live alse when the child process had been created ......
在linux下一些常用的关机/重启命令有shutdown、halt、reboot、及init,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的,通过本文的介绍,希望你可以更加灵活的运用各种关机命令。
1.shutdown
shutdown命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分 ......
功能最强在的编辑器——vi
功能最强在的编辑器——vi
vi是所有UNIX系统都会提供的屏幕编辑器,它提供了一个视窗设备,通过它可以编辑文件。当然,对UNIX系统略有所知的人,
或多或少都觉得vi超级难用,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界里必 ......