![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux kernel
文章平均质量分 79
nancygreen
这个作者很懒,什么都没留下…
展开
-
What is /proc/slabinfo?
/proc/slabinfo gives information about memory usage on the slab level. Linux kernels uses slab pools to manage memory above the page level. Commonly used objects have their own slab pools. Instead o转载 2012-07-16 16:04:05 · 6483 阅读 · 0 评论 -
platform设备驱动全透析(转自宋宝华老师)
1.1 platform总线、设备与驱动在Linux 2.6的设备驱动模型中,关心总线、设备和驱动这3个实体,总线将设备和驱动绑定。在系统每注册一个设备的时候,会寻找与之匹配的驱动;相反的,在系统每 注册一个驱动的时候,会寻找与之匹配的设备,而匹配由总线完成。一个现实的Linux设备和驱动通常都需要挂接在一种总线上,对于本身依附于PCI、USB、I2 C、SPI等的设备而言,这自然不是问题转载 2013-04-12 09:58:02 · 848 阅读 · 0 评论 -
linux clk模型
本模块是对平台(CPU 内部集成)的所有时钟源进行建模,提供对时钟源(clk)的操作接口。Clocking rate (Crystal/DPLL/ARM core): 26.0/332/500 MHz clk,clocksource, 锁相环(phase lock loops: pll.),多个时钟源,晶振,脉冲频率,时钟频率,晶振漂移,clk表示CPU内部的一个频率(转载 2013-04-15 17:51:36 · 859 阅读 · 0 评论 -
LINUX内核中的xx_initcall初始化标号
LINUX内核中的xx_initcall初始化标号 田海立@CSDN 2011-07-02 LINUX内核中有很多的初始化指示标志postcore_initcall(), arch_initcall(), subsys_initcall(), device_initcall(), etc. 这些起什么作用呢?查阅源代码(android goldfish-2.6.转载 2013-04-15 14:49:39 · 547 阅读 · 0 评论 -
A common clock framework (from LWN)
One of the big problem areas that has been identified in the ARM kerneltrees is the diversity of implementations for various things that could beshared—either within the ARM tree or more widely with t转载 2013-04-16 11:04:20 · 1081 阅读 · 0 评论 -
PHP原型文档(heredoc)<<<EOT使用讲解
Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术。但是现在的一些论坛程序,和部分文章系统,都巧妙的使用heredoc技术,来部分的实现了界面与代码的准分离,phpwind模板就是一个典型的例子。如下:…Heredoc技术,在正规的PHP文档中和技术书籍中一般没有详细讲述,只是提到了这是一种Perl风格的字符串输出技术。但是转载 2013-04-25 17:43:03 · 1110 阅读 · 0 评论 -
Perl文件读取经典用法----【转】
用Open() 函数打开文件打开文件的常用方法是:open(FH, "or die "Couldn't open $filename for reading: $!";open() 函数通常带有两个参数,第一个为文件句柄,用于指向打开的文件,第二个参数是文件名及模式(文件的打开模式)的混合体,如果文件被成功打开,open()函数返回true,否则为false。我们用转载 2013-04-25 17:44:00 · 725 阅读 · 0 评论 -
linux文件权限
权限与文件系统安全1,“ls -l”命令输出结果中各字段含义:(1),文件类型,第1位(“-”普通文件、“d”目录文件、“l”符号链接文件、“b”快设备文件、“c”字符设备文件、“p”管道文件、“s”socket文件)(2),权限,第2至10位(9个字母分成3组,3个一组,分别代表“属主权限”、“属组权限”、“其他权限”,“-”表示没有权限)(3),i-node,硬连接数(表示占用转载 2013-04-25 17:44:50 · 994 阅读 · 0 评论 -
hrtimer + clockevent + Timekeeping
kernel-2.6.22中的arm arch加入了对dynticks, clocksource/event支持. imx31的BSP在clock这里有一些改动. 找了些kernel clock及timer子系统近来的变化, 总结一下. 一般来说Soft-Timer (timer wheel / hrtimer) 都是由Hardware-Timer(时钟中断之类)以及相关的clock s转载 2013-04-18 15:04:42 · 919 阅读 · 0 评论 -
ioremap
void * __ioremap(unsigned long phys_addr, unsigned long size, unsigned long flags)入口: phys_addr:要映射的起始的IO地址; size:要映射的空间的大小; flags:要映射的IO空间的和权限有关的标志; 功能: 将一个IO地址空间映射到内核的虚拟地址空间上去,便于访问;转载 2013-04-18 17:26:57 · 661 阅读 · 0 评论 -
Linux per_cpu机制的详解
1. 简介2.6内核的特性,每个处理器都拥有自己的变量副本。2. 优势每个处理器访问自己的副本,无需加锁,可以放入自己的cache中,极大地提高了访问与更新效率。常用于计数器。3. 使用相关头文件:(1) 编译期间分配声明:DEFINE_PER_CPU(type, name);避免进程在访问一个per-CPU变量时被切换到另外一个处理转载 2013-04-11 15:12:11 · 5215 阅读 · 0 评论 -
IDR机制
IDR机制在Linux内核中指的是整数ID管理机制。实质上来讲,这就是一种将一个整数ID号和一个指针关联在一起的机制。这个机制最早在03年2月加入内核,当时作为POSIX定时器的一个补丁。现在,内核中很多地方都可以找到它的身影。 IDR机制原理:IDR机制适用在那些需要把某个整数和特定指针关联在一起的地方。例如,在IIC总线中,每个设备都有自己的地址,要想在总线上找到特定的设备转载 2013-04-11 15:17:26 · 766 阅读 · 0 评论 -
电脑的脉搏—时钟频率的来龙去脉
一首美妙的乐曲会有一个主旋律,而电脑的主旋律就是CPU的时钟频率。主频、外频和倍频,它们从何而来?锁频、超频,又是怎么回事呢? 电脑中有许许多多的半导体芯片,每个芯片都是在特定的时钟频率下进行工作的。时钟发生器提供给芯片的时钟信号是一个连续的脉冲信号,而脉冲就相当于芯片的脉搏,每一次脉冲到来,芯片内的晶体管就改变一次状态,让整个芯片完成一定任务。 电脑中的芯片绝大多数属于数字逻辑芯片,转载 2013-04-10 17:31:35 · 1753 阅读 · 0 评论 -
kzalloc, kcalloc, kmalloc, vmalloc
The kernel code base is full of functions which allocate memory with kmalloc(), then zero it withmemset(). Recently, Pekka Enberg concluded that much of this code could be cleaned up by usingkcalloc转载 2012-07-16 16:27:28 · 4995 阅读 · 1 评论 -
notify -- Linux 2.6 内核中的文件系统变化通知机制
一、 引言众所周知,Linux 桌面系统与 MAC 或 Windows 相比有许多不如人意的地方,为了改善这种状况,开源社区提出用户态需要内核提供一些机制,以便用户态能够及时地得知内核或底层硬件设备发生了什么,从而能够更好地管理设备,给用户提供更好的服务,如 hotplug、udev 和 inotify 就是这种需求催生的。Hotplug 是一种内核向用户态应用通报关于热插拔设备一些事件发转载 2012-07-16 14:13:56 · 3942 阅读 · 0 评论 -
What Does __read_mostly In The Linux Kernel Do?
If you have spent any time looking at Linux kernel code you have undoubtedly come across the__read_mostly macro, in fact you have probably seen it within a structure definition reference or even at转载 2012-07-16 15:20:00 · 1103 阅读 · 0 评论 -
编译优化指南
原文地址: http://www.gentoo.org/doc/zh_cn/gcc-optimization.xml1. 介绍什么是CFLAGS和CXXFLAGS人们用环境变量CFLAGS和CXXFLAGS来告诉GNU编译器集合(GNU Compiler Collection),即gcc,在编译源代码时使用哪些选项。CFLAGS用于C代码,CXXFLAGS用于C++代码。转载 2012-08-02 22:37:46 · 2541 阅读 · 0 评论 -
自助Linux之问题诊断工具strace
引言“Oops,系统挂死了..."“Oops,程序崩溃了..."“Oops,命令执行报错..." 对于维护人员来说,这样的悲剧每天都在上演。理想情况下,系统或应用程序的错误日志提供了足够全面的信息,通过查看相关日志,维护人员就能很快地定位出问题发生的原因。但现实情况,许多错误日志打印模凌两可,更多地描述了出错时的现象(比如"could not open fi转载 2012-07-25 12:06:05 · 1124 阅读 · 0 评论 -
file_operation(文件操作)file(文件)inode(节点)
file_operation(文件操作)file(文件)inode(节点)file_operation就是把系统调用和驱动程序关联起来的关键数据结构。这个结构的每一个成员都对应着一个系统调用。读取file_operation中相应的函数指针,接着把控制权转交给函数,从而完成了Linux设备驱动程序的工作。 在系统内部,I/O设备的存取操作通过特定的入口点来进行,而这组特定的入口点恰恰是转载 2012-07-24 20:31:59 · 856 阅读 · 0 评论 -
话说2.6 内核 系统调用中的sys_open ,sys_read 不见了???
话说2.6 内核 系统调用中的sys_open ,sys_read 不见了???在2.6的xx以后的fs/open.c好像就没有了sys_open的足迹,找了半天也找不到,但是它又的确的使用了,困惑了n久之后,小小的发现了一个#define SYSCALL_DEFINE3 SYSCALL_DEFINE3(open, const char __user *, filename,转载 2012-08-10 12:56:21 · 1317 阅读 · 0 评论 -
Linux时钟处理机制
http://www.ibm.com/developerworks/cn/linux/l-cn-clocks/1 计算机系统中的计时器在计算机系统中存在着许多硬件计时器,例如 Real Timer Clock ( RTC )、Time Stamp Counter ( TSC ) 和 Programmable Interval Timer ( PIT ) 等等。这部分内容不是转载 2013-04-07 16:12:22 · 814 阅读 · 0 评论 -
Linux设备驱动之I/O端口与I/O内存
一、统一编址与独立编址该部分来自于:http://blog.chinaunix.net/space.php?uid=21347954&do=blog&id=443670,感谢mason_hu的分享。 从CPU连出来一把线:数据总线、地址总线、控制总线,这把线上挂着N个接口,有相同的,有不同的,名字叫做存储器接口、中断控制接口、DMA接口、并行接口、串行接口、AD接口……一个设备要想接转载 2013-04-11 11:41:02 · 704 阅读 · 0 评论 -
Linux x86 spinlock实现之分析
1. TAS lock (test-and-set)这是最简单的spinlock,CPU会在硬件上提供一些指令来帮助OS实现spinlock,比如x86就有xchg, LOCK指令前缀等指令。。。test_and_set()可以利用这些指令对某个memory地址,来原子地完成:写入true到这个地址,同时返回这个地址储存的旧的值。void spin_lock(lock)转载 2013-10-29 12:04:13 · 1005 阅读 · 0 评论