14 arethe

尚未进行身份认证

我要认证

暂无相关简介

等级
TA的排名 4w+

Linux内核初始化高端内存的过程(代码分析)

Linux内核初始化高端内存的过程          内核在start_kernel()函数中调用了mem_init()来做所有与内存初始化相关的工作。与初始化高端内存相关的工作在函数set_highmem_pages_init()中完成。下面我们来详细分析一下这个过程。109 void __init set_highmem_pages_init(void)110 {111

2011-11-28 17:56:13

Boot Memory分配器

在内核启动到mem_init()函数执行的这段时间里,Buddy系统没有初始化。在这个阶段,内核可以直接访问的数据空间包括内核的data段、bss段、sdata段中的数据。但是在内核初始化时,难免会使用到动态内存,那么此时,在不存在Buddy系统的情况下,内核便使用Boot Memory分配器管理物理内存。Boot Memory分配器使用FFB(First Fit Allocator)算法管理

2011-11-17 20:47:30

[内核文档]ioctl 命令号

[内核文档]ioctl 命令号        如果你要向内核增加新的ioctl函数,需要用到中定义的宏_IO。 1_IOioctl中无参数2_IOWioctl有写参数.(copy_from_user)3_IORioctl有读参数.(copy_to_user

2011-11-08 14:05:05

利用mmap实现用户空间与内核空间的共享内存通信

利用mmap实现用户空间与内核空间的共享内存通信秦白衣Arethe Qinarethe.kernel@gmail.com          用户空间与内核空间的通信方法有很多,如ioctl,procfs,sysfs等。但是,这些方法仅能在用户空间与内核空间之间交互简单的数据。如果要实现大批量数据的传递,最好的方法就是共享内存。利用设备驱动模型中的mmap函数,可以很容易实现一个

2011-11-06 18:15:13

System.map文件简介

System.map文件简介秦白衣Arethe Qinarethe.kernel@gmail.com          System.map是内核使用的符号表,关联了符号的名称以及它们在内存中的地址。符号名称是指内核中变量或函数的名字。当我们需要根据符号名称查找其地址,或者查找某个地址上的符号名称时,就需要用到System.map了。特别是在调试kernel panics与ke

2011-11-05 20:19:56

[内核文档]RCU相关概念

RCU Concepts  The basic idea behind RCU (read-copyupdate) is to split destructive operations into two parts, one that preventsanyone from seeing the data item being destroyed, and one that actua

2011-11-04 17:36:30

SMI对实时性的影响

SMI对实时性的影响系统管理中断(SMI)用来提供扩展功能,如仿真老式的硬件设备。也可以利用它们实现某些系统管理。类似于NMI,SMI也使用硬连线直接向CPU发信号,而且也不能被屏蔽。CPU收到SMI信号后,将进入系统管理模式(SMM:System Management Mode

2011-07-06 20:49:16

[内核文档]使用Linux内核的追踪点[Tracepoint]

<br /><br />本文档介绍了Linux内核中的追踪点及其使用方法。文档中提供的例子详细说明了如何在内核中插入追踪点,如何将探测函数与追踪点联系起来。同时也提供了一些探测函数的例子。<br /> <br />Ø  追踪点的目的<br />代码中的追踪点提供了在运行时调用探测函数的钩子。追踪点可以打开(已连接探测函数)或关闭(没有连接探测函数)。处于关闭状态的追踪点不会引发任何效果,除了增加了一点时间开销(检查一条分支语句的条件)和空间开销(在instrumented function[不知道如何翻译合

2011-04-01 10:11:00

[内核文档]IO-Mapping

<br /><br />IO-Mapping<br /> <br />         Linux/io-mapping文件中提供的io映射抽象接口,可以将设备上的小空间有效地映射到处理器。io映射最初用来在32位处理器上支持大的显存,在这种情况下,由于显存太大,不能直接使用ioremap_wc将整个显存静态映射到处理器,因为这样会消耗过大的内核地址空间。<br />         在驱动程序初始化时,可以使用下面的函数创建一个映射对象(mapping object):<br />struct io_ma

2011-03-22 15:55:00

[内核文档]MTRR (Memory Type Range Register) 控制

<br /><br />MTRR (Memory Type Range Register) control<br /> <br />         在Intel P6系列的处理器上(Pentium Pro, Pentium II and later),内存类型范围寄存器(MTRRs)可以控制处理器对内存区域的访问。如果系统中存在基于PCI或AGP总线的视频卡(VGA),MTRR将具有非常显著的作用。通过使能写捆绑(Write-combining),可以在总线传输开始前,将若干个总线写传输捆绑成一次较大的写

2011-03-14 15:30:00

[内核文档] PAT(页面属性表Page Attribute Table)

<br /><br />PAT(页面属性表Page Attribute Table)<br /> <br />         X86的页面属性表(PAT)能够在页面级的粒度上设置内存属性。PAT是对MTRR的补充,通过MTRR可以为物理地址区域设置内存类型。但是PAT比MTRR更灵活,因为它可以在页面级别设置属性,而且硬件上也不限制属性设置的数量。PAT相当灵活,即使多个虚拟内存地址映射到同一个物理内存地址,也不会引起内存类型的冲突。<br />         通过PAT能够设置多种类型的内存属性,其中

2011-03-10 20:30:00

[内核文档系列] NMI 看门狗

Linux内核中,NMI看门狗的作用,原理与使用方法。

2011-01-19 17:14:00

Pentium4 性能监测单元

<br /><br /> <br /> <br />翻译:秦白衣   <br />Qinchenggang@sict.ac.cn<br />欢迎读到此文而有疑问的朋友来信探讨。<br /> <br />         IntelPentium4的性能监测功能克服了之前处理器中发现的很多限制和问题。Pentium 4 Xeon处理器的性能监测单元支持多线程。<br />         大多数现代高性能处理器都具有能够监测性能的片上硬件单元。这种硬件单元通常包括事件探测器(Event Detector)

2011-01-18 20:46:00

up()&down()

<br /><br />Linux中针对信号量的两个基本操作是down()和up()。down()用来申请一个信号量,如果没有更多的任务可以获取此信号量,申请任务便会睡眠,直到此信号量被释放。<br />up()用来释放一个信号量,与mutex不同,up()可以在任何上下文中调用,也可以被从来没有调用过down()的任务调用。

2010-12-16 17:31:00

might_sleep()

<br /><br />might_sleep():指示当前函数可以睡眠。如果它所在的函数处于原子上下文(atomic context)中(如,spinlock, irq-handler…),将打印出堆栈的回溯信息。这个函数主要用来做调试工作,在你不确定不期望睡眠的地方是否真的不会睡眠时,就把这个宏加进去。

2010-12-16 10:22:00

Linux是如何获知处理器数量的

<br /><br />Linux是如何获知处理器数量的<br /> <br />         Linux对SMP的支持已经相当成熟了。在配置SMP时,需要MP Spec的支持,本文简略的描述下,Linux是如何通过MP Spec获知CPU数量的。<br />setup_arch()->get_smp_config()->__get_smp_config(0)->check_physptr()->smp_read_mpc()->MP_processor_info()->generic_processor

2010-12-14 17:03:00

Linux内核对CPU热插拔的支持

<br /><br />CPU hotplug Supportin Linux(tm) Kernel<br /> <br />                   Maintainers:<br />                   CPUHotplug Core:<br />                            RustyRussell <rusty@rustcorp.com.au><br />                            SrivatsaV

2010-12-13 21:03:00

Freezing of tasks [Kernel Documents]

<br /><br />Freezingof tasks<br />(C)2007 Rafael J. Wysocki <rjw@sisk.pl>, GPL<br />翻译: Arethe Qin<br />         <br />I.                   什么是任务冷冻?<br />任务冷冻是一种在系统休眠或者系统挂起期间控制用户空间进程和一些内核线程的机制。<br />II.                 它是如何工作的?<br />每个任务都有4个标志用于任务冷

2010-12-11 11:45:00

Linux NMI Watchdog Timer简介

<br />Linux NMI Watchdog Timer简介:内核中的看门狗,每隔一段时间便产生一个NMI中断,用以监测在这段时间内是否有中断发生。如果没有,则说明系统进入了异常状态,在死锁中屏蔽了中断。此时,则终止当前的任务。否则什么也不做。<br /> <br />用惯了QQ的微博,强烈建议CSDN也开发一款方便的微博。

2010-10-28 20:46:00

Integrity Real-time Operating System

<br />Integrity Real-time Operating System<br />  http://www.ghs.com/products/rtos/integrity.html<br />INTEGRITY RTOS是Green Hills Software公司推出的一款实时操作系统,该系统具有如下特点:<br />1           最优的性能、安全性和可靠性<br />2           整合了丰富的中间件与平台    (Platform)<br />3           保

2010-10-26 18:35:00

查看更多

勋章 我的勋章
    暂无奖章