Linux 内核
文章平均质量分 56
ganggexiongqi
这个作者很懒,什么都没留下…
展开
-
cyclictest 的使用
<br />cyclictest测试内核的性能。<br />1。安装 cyclictest工具.<br />参考网址:https://rt.wiki.kernel.org/index.php/Cyclictest<br />2.使用: <br />cyclictest --help<br />cyclictest V 0.72<br />Usage:<br />cyclictest <options><br /><br />-a [NUM] --affinity翻译 2010-08-26 17:10:00 · 10109 阅读 · 5 评论 -
qemu&kgdb [1]
<br />本文内容参考了:http://www.kgdb.info/kgdb/use_kgdb/using_kgdb_base_qemu/<br />相关内容: http://liang00fang00yy3.blog.163.com/blog/static/403352842010375300436/<br />qemu的使用:http://wiki.qemu.org/download/qemu-doc.html<br />内核配置:http://hi.baidu.com/baoping20转载 2010-09-11 16:35:00 · 2169 阅读 · 0 评论 -
Linux 系统内核的调试[转]
中国 [选择] 使用条款 dW 全部内容----------------- AIX and UNIX Information management Lotus Rational WebSphere----------------- Architecture Grid computing Java 技术 Linux Multicore acceleration Open source Security SOA & Web services Web developme转载 2010-09-07 21:33:00 · 1264 阅读 · 0 评论 -
Fedora内核升级
//Fedora内核升级1. # make mrproper//确保源码目录下没有不正确的.o文件和文件依赖关系。对于多次使用过的源代码,在编译前要使用此命令2. 配置内核 # make x86_64_defconfig //生成默认的配置文件.config # make menuconfig //配置内核 确保如下的选项选上了: CONFIG_DEBUG_KERNEL CONFIG_DEBUG_SLAB CONFIG_DEBU原创 2010-09-24 18:38:00 · 1414 阅读 · 0 评论 -
Rt preempt Howto [dslab]
参考: http://www.digitalhermit.com/linux/Kernel-Build-HOWTO.html#BUILDING //内核编译 https://rt.wiki.kernel.org/index.php/RT_PREEMPT_HOWTO我的配置: Fedora 13 gcc version 4.4.4 20100630 (Red Hat 4.4.4-10) (GCC) amd 642. 对源码打补丁 # tar xfj l原创 2010-09-28 18:53:00 · 8385 阅读 · 0 评论 -
Fedora下安装RedHat9 Qemu虚拟机 _qemu系列【1】[dslab]
参考: Fedora下安装: http://fedoraproject.org/wiki/Testing/qemu qemu使用: http://wiki.qemu.org/download/qemu-doc.html#install_005flinux 和 http://jianlee.ylinux.org/Computer/Software/kvm-qemu.html http://www.vmbest.com原创 2010-10-05 15:32:00 · 1995 阅读 · 0 评论 -
高级字符驱动程序操作 -- 基本读写功能
<br />如果把ldd的综合的例子给大家看,可能收效并不太好。<br />所以我把各项功能逐项添加到我们的例子中,安排如下:<br /> <br />1. 只实现可以读写的驱动<br />2. 增加ioctl功能<br />3. 增加poll功能<br />4. 增加async功能<br /> <br />//Makefileobj-m := pipe.odefault: make -C /lib/modules/${uname -r}/build/ M=${shell pw原创 2010-11-29 22:13:00 · 734 阅读 · 0 评论 -
高级字符驱动程序操作--增加了poll功能
<br />/* How to use: * # echo "" > /var/log/messages //clear file * # insmod pipe.ko * # mknod /dev/myp c 250 0* # make poll_test * # ./poll_test * You can see * no data * no data * ... * * Then open a new terminal *原创 2010-11-29 22:20:00 · 566 阅读 · 0 评论 -
高级字符驱动程序操作--增加了async功能
<br />/* How to use: * # echo "" > /var/log/messages //clear file * # insmod pipe.ko * # mknod /dev/myp c 250 0* # make async_test * # ./async_test * Open a new terminal * # echo 1 > /dev/myp * return to the first terminal, * you can原创 2010-11-29 22:27:00 · 1254 阅读 · 0 评论 -
高级字符驱动程序操作---增加ioctl功能
// pipe.c/* How to use: * # echo "" > /var/log/messages //clear file * # insmod pipe.ko * # mknod /dev/myp c 250 0 * # make test_ioctl //creat test_ioctl to test the ioctl of our module * # ./test_ioctl * Then you can see * *原创 2010-11-29 22:16:00 · 1109 阅读 · 0 评论 -
内核定时器和/proc文件使用实例
<br /> @dslab <br />/* How to use:<br />* #cat /proc/kernel_timer<br />*/<br />init:<br /> 创建 /proc/kernel_timee入口项<br />clearup:<br /> 删除 init创建的入口项<br />kernel_timer:<br /> 1》分配 k_t_data变量<br /> 2》打印出表头<br /> 3》设置并添原创 2010-11-30 22:38:00 · 1292 阅读 · 0 评论 -
在 Redhat9 上安装 RTLinux 3.2 [dslab]
<br />//在Redhat9上安装RTLinux3.2 >>>> dslab 杨红刚<br /><br />//更多文章见:http://dslab.lzu.edu.cn/<br /> <br />使用的文件:<br />rtlinux-3.2-wr.tar.bz2:从风河公司网站免费注册后下载 http://www.rtlinuxfree.com/<br />linux-2.4.28.tar.bz2 : 可以从兰大开源社区镜像站下载 ftp://mirror.lzu.edu.cn/ke原创 2010-10-13 15:11:00 · 4036 阅读 · 8 评论 -
request_irq() | 注册中断服务
request_irq() | 注册中断服务在 2.4 内核和 2.6内核中都使用 request_irq() 函数来注册中断服务函数。在 2.4 内核中,需要包含的头文件是 #include <linux/sched.h> ,2.6 内核中需要包含的头文件则是<br />#include <linux/interrupt.h> 。函数原型如下:<br /><br />2.4 内核intrequest_irq (unsignedintirq,void (*handler)(int,voi转载 2010-12-05 22:28:00 · 1624 阅读 · 0 评论 -
升级Redhat内核到2.6.10 [for ldd3 ]
<br />声明:>>>>>>本文由 我的好友:赵谦谦 提供 <br /> <br />由于Ldd3中要求的内核版本为:2.6.10 <br /><br />1.linux2.6.10<br /> ftp://mirror.lzu.edu.cn/kernel.org/v2.6/<br />2.下载内核升级工具<br /> http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/module-init-tools-转载 2010-10-26 22:34:00 · 1064 阅读 · 0 评论 -
PCI设备内存的访问
原文>>>http://blog.chinaunix.net/u2/67414/showart_1657718.html接着上文给出的源代码,我们可以在rtl8139_init_one中插入一些不同的调试代码,观察设备驱动模块在内核中的一些动作。8139too网卡设备的设备内存的头6个字节存放的是该网卡的48位的MAC地址,我们可以通过访问设备内存得到这个MAC地址。下面通过在rtl8139_init_one在插入代码,以四种不同方式访问设备内存。第一种是通过访问I/O内存实现,后三种则是通过访转载 2010-12-23 16:57:00 · 4819 阅读 · 0 评论 -
Linux下PCI设备驱动程序开发
Linux下PCI设备驱动程序开发肖文鹏 (xiaowp@263.net), 硕士研究生, 北京理工大学计算机系肖文鹏,北京理工大学计算机系的一名硕士研究生,主要从事操作系统和分布式计算环境的研究,喜爱Linux和Python。你可以通过 xiaowp@263.net与他取得联系。简介: PCI是一种广泛采用的总线标准,它提供了许多优于其它总线标准(如EISA)的新特性,目前已经成为计算机系统中应用最为广泛,并且最为通用的总线标准。Linux的内核能较好地支持PCI总线,本文以Intel转载 2010-12-23 17:31:00 · 1384 阅读 · 0 评论 -
实模式和保护模式
一。x86实模式介绍 x86体系的处理器刚开始时只有20根地址线,寻址寄存器是16位。我们知道16位的寄存器可以访问64K的地址空间,如果程序要想访问大于64K的内存,就需要把内存分段,每段64K,用段地址+偏移量的方式来访问,这样使20根地址线全用上,最大的寻址空间就可以到1M字节,这在当时已经是非常大的内存空间了。 二。实模式的问题与保护模式的出现 事实上,实模式将整个物理内存看成分段的区域,程序代码和数据位于不同区域,系统程序和用户程序并没有区别对待,而且每一个指针都转载 2010-11-23 09:48:00 · 770 阅读 · 0 评论 -
kernel thread, wait queue, /proc/sys/kernel entry, call usermode handler in kernel mode
author: Joseph(Honggang Yang)@dslabdate: 05-10-2011Key words: kernel thread, wait queue, /proc/sys/kernel entry, call usermode handler in kernel mode====================================================In this section I sill show you how to create two kerne原创 2011-05-10 22:45:00 · 1704 阅读 · 0 评论 -
link list and wait queue
<br />- test2.c (/usr/src/linux-2.6.23/joseph)<br />|- struct <br />|| _mydrv_wq <br />|| _mydrv_work <br />| <br />|- variable <br />|| mydr原创 2011-05-13 11:22:00 · 997 阅读 · 0 评论 -
工作队列 的变化
<br /><br />原文<br />Linux自从2.6.20之后,工作队列发生了一些变化,目前从网络上搜索的资料一般都是介绍老版本的工作队列,很少见到对新版本的介绍。本文对新老版本都做了简要概述,并分别提供了简单的实作案例。<br />工作队列(work queue)是Linux kernel中将工作推后执行的一种机制。这种机制和BH或Tasklets不同之处在于工作队列是把推后的工作交由一个内核线程去执行,因此工作队列的优势就在于它允许重新调度甚至睡眠。<br />工作队列是2.6内核开始引入的机制转载 2011-05-19 16:27:00 · 1016 阅读 · 0 评论 -
工作队列 例子
<br />接着 上一篇 “工作队列 的变化”<br />写了个例子,代码如下:<br /> <br />#include <linux/workqueue.h>#include <linux/module.h> // kmalloc ... #include <linux/sysctl.h>int submit_work(void (*func)(struct work_struct *work), void* data);struct workqueue_struct* wq = NU原创 2011-05-19 17:10:00 · 1112 阅读 · 0 评论 -
Notifier Chains
<br /> <br />Essential linux device driver:<br /> <br />Notifier chains are used to send status change messges to code regions that request them.<br />There are Die notification, Net device notification, CPU frequency notification, and Internet address no原创 2011-05-19 21:31:00 · 1441 阅读 · 0 评论 -
synchronizing using completion function
<br />essential linux device dirver:<br /> <br />In the following example, 'my_release' is called when module is removed.<br />But before the module's unloaded, you have to make sure that 'my_thread' <br />has finished some very important task which will原创 2011-05-20 11:13:00 · 712 阅读 · 0 评论 -
kthread helpers --- a good choice to replace complex completion interfaces
<br />/*The kthread interface provides you free access to a built-in exit synchronization mechanism implemented using the completion interface.You may directly call kthread_stop() to ask the corresponding task to exit. And make a neat call to kthr原创 2011-05-21 10:51:00 · 947 阅读 · 0 评论 -
一个简单的并口驱动
// parport.c/*Function: It implement parport read and write method.-------------------------------------------------------- How to use: * # echo "" > /var/log/messages //clear file * # insmod pipe.ko * # cat /var/log/messages you can原创 2011-05-25 10:47:00 · 1666 阅读 · 0 评论 -
softirq 使用
在上一篇 “一个简单的并口驱动”的基础上,我增加了softirq的使用。具体描述:Softirq:1. Add an entry in file 'include/linux/interrupt.h'.enum{ HI_SOFTIRQ=0, TIMER_SOFTIRQ, NET_TX_SOFTIRQ, NET_RX_SOFTIRQ, BLOCK_SOFTIRQ, TASKLET_SOFTIRQ, SCHED_SO原创 2011-05-27 23:23:00 · 1084 阅读 · 0 评论 -
开源Liecense介绍
<br />开源在今天的软件业已经很普遍,但开源是否意味着使用者可以对开源后的代码为所欲为呢?答案是否定的。开源运动同样有自己的游戏规则和道德准则。不遵行这些规则不但损害开源运动的健康发展,也会对违规者造成名誉和市场上的损失,更可能陷入法律纠纷和赔偿。<br />现今存在的开源协议很多,而经过Open Source Initiative组织通过批准的开源协议目前有58种。我们在常见的开源协议如BSD, GPL, LGPL,MIT等都是OSI批准的协议。如果要开源自己的代码,最好也是选择这些被批准的开源协议。转载 2011-05-28 11:03:00 · 790 阅读 · 0 评论 -
系统功能测试工具简介--- lmbench
<br />1. 下载<br /> http://www.bitmover.com/lmbench/lmbench2.tar.gz<br />2. 编译 <br /> $tar -xf lmbench2.tar.gz<br /> $cd lmbench2<br /> $mkdir ./SCCS<br /> $touch ./SCCS/s.ChangeSet<br /> $make <br />3. 测试<br /> $ make results see<b原创 2011-04-11 20:26:00 · 11686 阅读 · 0 评论 -
calibrate_delay() // Linux内核学习之BogoMIPS值的计算
<br />原文<br />Linux内核学习之BogoMIPS值的计算 <br /><br /><br />--------------------------------------------------------------------------------<br /><br />作者:曹磊 <br />对于每一个linux编程爱好者来说,他们都有一个共同的心愿,就是了解linux的内核。但是linux内核的庞大与复杂让人望而生畏。往往是鼓足勇气一头扎进去,学得昏转载 2011-04-20 10:36:00 · 3204 阅读 · 0 评论 -
poll 的实现
选自 ELDDSensing Data AvailabilityPoll ://synchronous, it may block the caller.unsigned int (*poll) (struct file *, struct poll_table_struct *);The following is the common module of its im转载 2011-06-14 10:49:00 · 806 阅读 · 0 评论 -
kobject, kset, ktype
============================== REF: == 1. Documentation/kobject.txt == 2. http://lwn.net/Articles/51437/ =转载 2011-06-21 23:21:00 · 1819 阅读 · 0 评论 -
kernel thread 应用
<br />author: joseph<br />email: ganggexiongqi@gmail.com<br />==============================<br /> <br />本节介绍下kernel thread简单使用的例子实验.<br /> <br />我的系统:<br /> <br />joseph:/usr/src/linux-2.6.23/joseph# uname -a<br />Linux joseph 2.6.23 #1 SMP PREEMPT Fri Ma原创 2011-05-07 11:43:00 · 1313 阅读 · 0 评论 -
How to build parport related driver upon parport module in the kernel
The following is from Documentation/parport-lowlevel.txt.At last, a example is given.The example is modified by me.It s from ELDD book, but can not work properly before my modification.The `parport原创 2011-07-02 11:35:10 · 921 阅读 · 0 评论 -
kobject and parport 的一个例子
这一个简单的驱动演示了如何使用parport来建立你自己的并口驱动。 /* Demenstration of how to build your parport related driver upon parport moudle.Author: Joseph Yang @ dslabMail: ganggexiongqi@gmail.comDate: 06-原创 2011-06-30 23:12:00 · 1094 阅读 · 0 评论 -
/proc/sys/kernel/ 入口项的创建
<br />/proc/sys/kernel/* entry creationYou have to modify the Linux source code. Here we use 2.6.23.1. Add an entry to the kern_table array in kernel/sysctl.c as following ... { .ctl_name = KERN_MYEVENT_HANDLER,//Define in原创 2011-05-10 21:30:00 · 2140 阅读 · 0 评论 -
一致代码段和非一致代码段
一致代码段和非一致代码段在存储段描述符中,属性区域的TYPE由位0-3组成。位3称为E位,E=1,表示此描述符用于描述代码段。位2称为C位,位C=1,表示对应的代码段是一致代码段;位C=0,表示对应的代码段不是一致代码段.所谓的“一致代码段”,目的是为了共享,比如该一致代码段的特转载 2011-07-23 10:36:39 · 685 阅读 · 0 评论 -
seg cs 的使用
原文:http://blogold.chinaunix.net/u2/73521/showart_1859515.html最近,在阅读bootsetup.s代码时,发现了seg cs的使用,有点困惑,在网站上看到了一位高人的解答,就将其复制下来了。先讲一下寄存器的默认组合问题,比转载 2011-07-18 17:23:16 · 1320 阅读 · 1 评论 -
bootsect.s程序常遇疑问总结
原文:http://blog.sina.com.cn/s/blog_4b687eac01009w39.html转载 2011-07-18 19:59:22 · 1237 阅读 · 0 评论 -
硬盘 结构 原理 磁道,扇区和柱面图示
http://blog.21ic.com/user1/4861/archives/2009/61984.html 们知道硬盘中是由一片片的磁盘组成的,大家可能没有打开过硬盘,没见过它具体是什么样.不过这不要紧.我们只要理解了什么是磁道,扇区和柱面就够了.在下图中,我们可以看到一圈转载 2011-07-18 20:33:19 · 2572 阅读 · 0 评论 -
浅析linux内核中的idr机制
原文:http://blogold.chinaunix.net/u3/93926/showart_1874142.html尚观科技原创文章浅析linux内核中的idr机制 尚观讲师原创文章idr在linux内核中指的就是整数ID管理机制,从本质上转载 2011-08-31 22:21:28 · 9541 阅读 · 0 评论