[原创]QEMU小实验:手工遍历所有进程的方法
QEMU小实验:手工遍历所有进程的方法在内核中已经提供了遍历所有进程的方法,比如用for_each_process宏。但是如果你想加深对这部分的了解,那么可以不用这个宏,完全手工遍历一遍。下面介绍了在QEMU中,利用QEMUMONITOR,手工找出所有PROCESS的方法环境:QEMU0.9.1QE
工作队列分析
一、用法structcpu_workqueue_struct{spinlock_tlock;longremove_sequence;/*Least-recentlyadded(nexttorun)*/longinsert_sequence;/*Nexttoadd*/structlist_headwo
[通信方式] 使用netlink通讯时需要注意的一些问题
使用netlink通讯时需要注意的一些问题原作者:duanjigang之前发过一个用户态通过netlink从内核中获取网络卡列表以及每个网卡状态信息的例子大概的原理就是内核创建netlinksocket,然后用户态调用应用程序发送查询命令,或者获取所有网卡列表,或者获取某一个网卡的状态信息。当时做的
内核通知链 学习笔记
最近在看《深入理解Linux网络内幕》一书,学习了一下书中讲到的内核通知链方面的知识,写了一个读书笔记和一点代码来加深理解,希望能够对大家有一点帮助。内核通知链在网络方面得到了广泛的使用。1.通知链表简介大多数内核子系统都是相互独立的,因此某个子系统可能对其它子系统产生的事件感兴趣。为了满足这个需求
升级2.6内核的经验与心得
1.准备:下载2.6内核linux-2.6.2-rc2.tar.gzhttp://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.2-rc2.tar.gz不需要下载http://www.kernel.org/pub/linux/kerne
用netconsole从网络上收集Kernel Panic信息详细方法
背景介绍:Netconsole是内核驱动中的一个module,可以将内核中的printk消息封装成UDP数据包发送到指定的的接收服务器上,这样可以大大方便我们对kernelpanic情况的跟踪分析。netconsole的用法:如果netconsole被编译成模块,可以用下面的命令启用netconso
什么是module 以及如何写一个module(转)
作者:庄荣城不知道在什幺时候,Linux出现了module这种东西,的确,它是Linux的一大革新。有了module之后,写devicedriver不再是一项恶梦,修改kernel也不再是一件痛苦的事了。因为你不需要每次要测试driver就重新compilekernel一次。那简直是会累死人。Mod
使用GDB与QEMU调试内核时的问题分析
使用QEMU+GDB能够实现源代码级的内核调试,但是,存在一个问题──当内核允许中断时,单步命令(n与s)会进入时钟中断。通过浏览QEMU的源代码,大体把原因找了出来。单步命令(n与s)在gdb远程调试通讯协议中是s(参看infogdb),qemu的gdbstub在受到s命令后将虚拟CPU进入单步状
ud2是什么指令?
问题:#defineBUG()\__asm____volatile__("ud2\n"\"\t.word%%c0\n"\"\t.long%%c1\n"\::"i"(__LINE__),"i"(__FILE__))ud2是什么指令?机器码好像是0f0b?BUG()能造成系统停机么?%%0、%%1是占位
arch/i386/kernel/head.S注解
'kernel/head.S'DetailComment/***************************************************************************32位启动代码:编译程序在链接内核vmlinux的时候,将vmlinux起始位置链接到0xC
请教一个扩展汇编的问题
问题:我在内核代码看汇编的时候,不明白'=&r'和'=r'是什么区别,看了n多资料都一样的,就几句话,还是没看懂解答:Unlessanoutputoperandhasthe`&'constraintmodifier,GCCmayallocateitinthesameregistera
linux-2.6内核升级文档(全)
序做一件事情,首先要知道自己在干什么,而不是盲目得升级内核,现在升级内核有点泛滥,sigh首先让我们先了解一下2.6内核的新特性一、01.模块子系统(ModuleSubsystem)、统一设备模型(UnifiedDeviceModel)和PnP支持模块子系统发生了重大变化。02.稳定性有所提高为了彻
[转贴]用tags/cscope看内核源代码-HOWTO
作者:wheelz看大家讨论得热烈,我也写点。呵呵其实内核原代码的Makefile就包含了maketags/TAGS的选项,但是生成的tags太大,因为包含了drivers等不常用的目录。因此参照内核的Makefile文件,写了一个Makefile,用来生成ctags/cscope/etags。这样
绝对精品--linux 内核代码构架图
从国外网站看到,觉得很这个图很清晰,拿过来给大家分享一下
关于inb和inw的疑问
问题:初学linux内核,在阅读网络设备驱动程序时对inb和inw函数的用法感到不解:(1)ISA网卡驱动程序的探测过程(函数netcard_probe1()中),从起始端口读取3字节网卡硬件地址进行校验:if(inb(ioaddr+0)!=SA_ADDR0¦¦inb(ioaddr+1)!=SA_A
kallsyms的分析
1.简介在v2.6.0的内核中,为了更好地调试内核,引入新的功能kallsyms.kallsyms把内核用到的所有函数地址和名称连接进内核文件,当内核启动后,同时加载到内存中.当发生oops,例如在内核中访问空地址时,内核就会解析eip位于哪个函数中,并打印出形如EIPisatcleanup_mod
linux情景分析非扫描带书签版本
很高兴的看得网上有情景分析的非扫描版本出来,质量很好,但是没有书签,阅读起来不是很方便,于是加上了书签。现在的书签是二级书签,三级书签没有加入,但应该够用。
http://lwn.net/Articles/2.6-kernel-api/的翻译
没有特别追求符合原文,就是大致表达那个意思。贴在这里,希望能提供一点有用的东西。原文地址:http://lwn.net/Articles/2.6-kernel-api/--------------------2.6内核系列的API改变由corbet在2006年5月11日提交2.6内核的开发系列不同于
使用git参与kernel开发
UPDATENOTES:格式发上来就乱了,上传一个*.txt文件,Unix格式,UTF-8编码。[Well,IknowthatI'mdefinitelyagitnewbie,butsincetheremaybesomethinguseful...]87,git&kernelnotes([FY
Netconsole实例源代码分析
Netconsole实例源代码分析Bydremicedremice.jiang@gmail.com1.前言Netconsole是Linux2.6版内核的一个新的特性。它允许将本机的dmesg系统信息,通过网络的方式传送到另一台主机上。这样,就可以实现远程监控某台机子的kernelpanic信息了。使