linux kernel
文章平均质量分 59
zhangqingsup
这个作者很懒,什么都没留下…
展开
-
Latency
什么叫实时操作系统Not fastjust preditablestudy lock, and write the tablestudy the ip related knowledge▪A system is real timewhen原创 2011-10-11 14:51:56 · 581 阅读 · 0 评论 -
kmalloc
kmalloc是用来分配通用对象的,这种对象保存在cache_sizes数组中,每一种大小的对象对应cache_sizes中的一个cache元素,cache包含slab,slab只能是4k的整数倍,通用对象对象大小则分别是32,64,128,256,512......1310原创 2011-09-10 23:20:35 · 188 阅读 · 0 评论 -
driver new building
__refdata //?arrays init //try againkfifo usage studypreempt countarea protection structure buildarch build thinking // any b原创 2011-08-09 17:52:42 · 211 阅读 · 0 评论 -
makefile review
makefile should be reviewed http://wiki.ubuntu.org.cn/%E8%B7%9F%E6%88%91%E4%B8%80%E8%B5%B7%E5%86%99Makefile:%E4%BD%BF%E7%94%A8%E5%87%BD原创 2011-08-09 16:32:07 · 238 阅读 · 0 评论 -
软中断
在非中断线程化的 OS 中,如果把响应中断的所有工作都在 ISR 中完成,系统 是无法忍受的,我们要做的是在 ISR 中尽量的减少代码,只做一些必要性的工作, 如 in / out 操作,把一些其他不必要在 ISR 中工作放到其他地方,比如数据的 处理,这也就是软中断转载 2011-08-09 15:48:13 · 436 阅读 · 0 评论 -
spin_lock_bh
一个软中断不会抢占另外一个软中断,softirq执行时preempt_count大于零,所以从中断返回到软中断的时候,不会调度 用lock_bh(),是因为这些netfilter hooks可以从系统调用的context到达, 比如socket的send_msg()是转载 2011-08-09 11:11:55 · 1201 阅读 · 0 评论 -
preempt 注释
早期的Linux核心是不可抢占的。它的调度方法是:一个进程可以通过schedule()函数自愿地启动一次调度。非自愿的强制性调度只能发生在每次从系统调用返回的前夕以及每次从中断或异常处理返回到用户空间的前夕。但是,如果在系统空间发生中断或异常是不会引起调度的。这种方式使内核实现得转载 2011-08-09 16:01:02 · 1148 阅读 · 0 评论 -
preempt_disable() and cond_resched()
首先确认一点, 如果使用了preempt_disable(), 是不允许调用cond_resched的, 如果调用, schedule()应该会打印出错信息.这个很好理解, cond_resched()的目的是提高系统实时性, 主动放弃cpu供优先级更高的任务使用, 如果调原创 2011-08-09 13:47:21 · 1035 阅读 · 0 评论 -
add_preempt_count
#define irq_enter() \ do { \ account_system_vtime(current); \ add_pr转载 2011-08-09 09:33:13 · 833 阅读 · 0 评论 -
anonymous memory
As part of some work I've been doing I've had to talk a lot about anonymous memory. So I thought I'd write it down while I remember what its原创 2011-08-08 10:26:41 · 412 阅读 · 0 评论 -
slab
动态内存管理内存管理的目标是提供一种方法,为实现各种目的而在各个用户之间实现内存共享。内存管理方法应该实现以下两个功能:最小化管理内存所需的时间最大化用于一般应用的可用内存(最小化管理开销)内存管理实际上是一种关于权衡的零和游戏。您可以开发一种使用转载 2011-09-11 08:47:01 · 298 阅读 · 0 评论 -
内联汇编
#include int main() { int a = 10, b; __asm__("movl %1, %%eax\n\t" "movl %%eax, %0\n\t" :"=r"(b) /* output */ :"r"(原创 2011-08-20 18:33:25 · 1439 阅读 · 0 评论 -
memory deepinto
memory 这块的匿名页面之前只是了解means no file-backup现在又阅读了一些文章,有些比较深入的了解。annoymous means the page used by less more user, because what the annoymous原创 2011-10-11 13:55:02 · 463 阅读 · 0 评论 -
匿名页面
匿名页面一般指的是user thread中的stack and heap, which means no file back up.比页面缓存要活跃一些mem shrink的时候会用到这些thrashing颠簸为了节省页表空间提出反向页表的原创 2011-10-05 15:37:17 · 1105 阅读 · 0 评论 -
booooook
Embbed Multi-CoreUnderstanding the Linux Kernel Understanding Linux Virtual Memory Professional Linux Kernel Architecture Linux原创 2011-10-11 19:38:18 · 479 阅读 · 0 评论 -
memory debug
▪DynamicMemory Functions ▪MEMWATCH▪YAMD▪ElectricFence ▪Valgrind ▪Summary▪WebResources for Memory Checkers原创 2011-10-11 19:36:17 · 390 阅读 · 0 评论 -
debug and tunning
linux debugging and performance tunningLTT linux trace toolkits for summerydate;ps;datetime 命令可以用来测量实际运行的时间gettime原创 2011-10-11 19:10:14 · 409 阅读 · 0 评论 -
udev update
udev扫描sys?不可能把,udev uevent?都是正确的, 4.2 Udevd如何监控规则文档的变更 假如内核版本足够新的话,在规则文档发生变化的时候,udev也能够自动的重新应用这些规则,这得益于内核的inotify机制, inotify原创 2011-10-11 15:33:54 · 397 阅读 · 0 评论 -
Pro linux embedded system(TBD)
how to reduce rootfs sizehow to speed up boot timearm-linux-sizebloat-o-meter原创 2011-10-11 18:59:47 · 452 阅读 · 0 评论 -
Linux Synchronization review
UP and SMPLinux kernel control pathUP vs SMPAPI常见的control path:ISRSoftirq/tasklet : bh上面两个不能context switchexceptio原创 2011-08-26 00:53:38 · 245 阅读 · 0 评论 -
write back about: pdflush.c
常常看到的大套小是为了防止compile优化成寄存器变量。不要污染。。。pdflush内核线程池是Linux为了回写文件系统数据而创建的进程上下文工作环境。它的实现比较精巧,全部代码只有不到250行。 1 /* 2 * mm/pd原创 2011-08-22 17:47:50 · 401 阅读 · 1 评论 -
buddy system
1. Buddy System的基本原理?2. 如何分配空间?3. 如何回收空间?对以上三个问题的说明:Buddy System把系统中的可用存储空间划分为存储块(Block)来进行管理, 每个存储块的大小必须是2的n次幂(Pow(2, n)), 即1, 2, 4转载 2011-08-05 01:30:57 · 1767 阅读 · 0 评论 -
buddy system
1. Buddy System的基本原理?2. 如何分配空间?3. 如何回收空间?对以上三个问题的说明:Buddy System把系统中的可用存储空间划分为存储块(Block)来进行管理, 每个存储块的大小必须是2的n次幂(Pow(2, n)), 即1, 2, 4转载 2011-08-05 01:24:54 · 221 阅读 · 0 评论 -
ramfs 和 ramdisk 的区别
Ramdisk, ramfs, tmpfs. ① 第一种就是传统意义上的,可以格式化,然后加载。 这在Linux内核2.0/2.2就已经支持,其不足之处是大小固定,之后不能改变。 为了能够使用Ramdisk,我们在编译内核时须将block device中的Ramdisk支持选上,它下面还有两个选项,一个是设定Ramdisk的大小,默认是4096k;另一个是initrd的支持。 如果对R原创 2010-04-13 16:08:00 · 2009 阅读 · 0 评论 -
uImage zImage
make Image uImage与zImage的区别)2010-03-18 17:20内核编译(make)之后会生成两个文件,一个Image,一个zImage,其中Image为内核映像文件,而zImage为内核的一种映像压缩文件,Image大约为4M,而zImage不到2M。 那么uImage又是什么的?它是uboot专用的映像文件,它是在zImag原创 2010-04-12 11:36:00 · 512 阅读 · 0 评论 -
samba
郁闷。。。开始时setenforce 0关selinux,后来用vi /etc/selinux/config中设置为disable,最后要用service iptables stop才行。···好繁琐啊··· 在终端下卸载samba,smbclient,samba-common $sudo apt-get remove samba-common $sudo apt-get原创 2010-03-29 15:32:00 · 289 阅读 · 0 评论 -
fedora 12开机自动登入
这个方法一定行使用root登录,编辑/etc/gdm/custom.conf ,加入如下内容:[daemon]TimedLoginEnable=trueTimedLogin=yourusernameTimedLoginDelay=0其中yourusername是你想自动登录的用户名。重启即可。原创 2010-03-19 11:57:00 · 654 阅读 · 0 评论 -
嵌入式linux启动流程
s3c6410_map_io里面调用 mach-s3c6410下的cpu.c中各个成员函数在不同时期被调用:1. init_machine 在 arch/arm/kernel/setup.c 中被 customize_machine 调用,放在 arch_initcall() 段里面,会自动按顺序被调用。2. init_irq在start_kernel() --> init_IRQ() -->原创 2010-03-20 11:58:00 · 297 阅读 · 0 评论 -
如何在根文件系统中使用modprobe
这几天在做4020的快速启动,本来想将网络模块化这样,能够将内核大概缩小0.5M(这个还是zImage),这样无论在uboot阶段搬运,还是在 zImage段的解压缩,还是在最后的启动都可以大大减少linux的启动时间,然而这中间有个很重要的问题是怎样在nfs中实现modprobe的命令,我在原来的busybox1.10.4中敲入modprobe命令出现如下错误: /quick_start # m原创 2010-03-18 18:29:00 · 1139 阅读 · 0 评论 -
patch
[root@amd src]# patch -p0 patching file linux-2.6.11/drivers/net/Kconfigpatching file linux-2.6.11/drivers/net/Makefilepatching file linux-2.6.11/drivers/net/ppp_generic.cpatching file linux-2.6.11/dr原创 2010-03-14 10:56:00 · 644 阅读 · 0 评论 -
swap
1.如果希望添加一个交换分区(这里假设希望把/dev/hdb5添加为交换分区),着个硬盘不能被正在使用(也就是分区不能被加载,交换空间没有被激活)。分区表在使用时不能被修改,因为内核可能无法正确识别分区表的变化。这样数据可能会写入到错误的分区,而导致数据被覆盖而丢失,因为内核维护的分区表跟硬盘上的分区表是不一致造成的。解决这个问题最简单的办法是将系统引导进入急救(rescue)模式下进行操作。原创 2010-03-05 22:25:00 · 228 阅读 · 0 评论 -
kernel里面的打印
#ifdef DEBUG_SENSORS#define prtkLsensorDbg(fmt, args...) printk("[%s]: "fmt"",__FUNCTION__, ##args)#else#define prtkLsensorDbg(...) #endif原创 2010-02-25 15:31:00 · 228 阅读 · 0 评论 -
Makefile学习笔记
目标文件,依赖关系,命令。依赖关系更新了就要重新编译。命令必须以tab键开头。 objects = $(wildcard *.o)objects = *.o前者的wildcard是关键字,表示匹配所有.o的文件。 文件搜索VPATH变量VPATH = src:./headersvpath ;;如:vpath %.c foovpath & bl原创 2010-04-18 00:53:00 · 291 阅读 · 0 评论 -
关于内核中操作文件
内核可以操作文件,具体说明如下:#include linux/kernel.h>#include linux/module.h>#include linux/init.h>#include linux/fs.h>#include linux/string.h>#include linux/mm.h>#include linux/syscalls.h>#include asm/unistd.h>转载 2010-04-06 10:18:00 · 215 阅读 · 0 评论 -
RTOS
简单的两个情况 当内核在执行浮点指令时,FPU 状态不被保存。如果这时发生了抢占,由于重新调度,FPU 状态就会与抢占前完全不同。 还有一个就是smp下为任务分配cpu的时候,如果在特定点发生了内核抢占,任务将会由于重新调度而被分配到其他处理器,smp_processor_id() 将返回一个不同的值。 以上两种情况其实是可以被抢占的,只是其结果会导致错误,需要preempt_disable()的保护。。。原创 2009-05-10 07:31:00 · 148 阅读 · 0 评论 -
关于Linux的makefile的自动生成,以及.configure及编译选项
参考文档:http://www.ibm.com/developerworks/cn/linux/l-makefile/主要解释makefile生成工具的工作流程http://blog.ednchina.com/fafen/1596316/Message.aspx基于上面文档的进一步分析及required file `config.h.in' not found解决方法http://blog.chinaunix.net/u2/84449/showart_2087602.htmlrequired file `.原创 2010-06-21 14:02:00 · 570 阅读 · 0 评论 -
linux menuconfig
Linux 2.6.19.x 内核编译配置选项简介作者:金步国版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。其他作品本文作者十分愿意转载 2010-05-28 21:45:00 · 1059 阅读 · 0 评论 -
find_next_zero_bit and DECLARE_BITMAP
find_next_zero_bit:int find_next_zero_bit(const unsigned long *addr, int size, int offset)查询*addr中,从第offset位开始,第一个不为0的位的位数(最低位从0开始),注: offset最小值为0,最大值为sizeof(unsigned long)*8 - 1//why * 8??sample:例如查找位图bitmap(共32位)的第5位开始第一个不为0的位的位数(查询结果为5)--5 4 3 2原创 2010-07-18 22:44:00 · 1376 阅读 · 0 评论 -
modprobe
尽量用modprobedepmod --> modules.dep --> modprobe能正常工作原创 2010-05-11 20:55:00 · 216 阅读 · 0 评论 -
ioctl compat_ioctl unlock_ioctl
<br />区别:<br />ioctl 和 unlock_ioctl <br />ioctl 不会lock_kernel()<br /> <br />compat_ioctl被使用在用户空间为32位模式,而内核运行在64位模式时。这时候,需要将64位转成32位。<br /> <br />引用<br />http://blog.chinaunix.net/u1/38994/showart_2248151.html<br />对几个ioctl执行顺序的分析<br /> <br />关于ioctl,unlock原创 2010-07-08 21:57:00 · 6206 阅读 · 2 评论