linux内核
文章平均质量分 75
bugouyonggan
这个作者很懒,什么都没留下…
展开
-
linux patch 补丁
因为在u-boot移植过程中,有几处通用文件要修改,如果每次都要手动修改就太麻烦了。制作补丁可以解决这个问题。学习资料的收集比较简单,方法一类似于这种初级问题网上资料非常丰富,google或者baidu搜索一下,然后选择有价值的资料,方法二是阅读man在线文档。完成收集工作,当然最终要在自己的Linux上作实验,比较总结,消化吸收为自己的东西。要除去这么一种错误思想:一定要学全。要知道,一次学转载 2012-10-09 11:20:12 · 790 阅读 · 0 评论 -
Kernel Thread 的创建
在 Linux 中有很多的内核线程,可以通过 ps command 查看到,比如: kthreadd ksoftirqd watchdog 等等等 … 它们都是由内核从无到有创建的,通过它们的 pid 以及 ppid 可以得出以下几点:在内核初始化 rest_init 函数中,由进程 0 (swapper 进程)创建了两个 processinit 进程 (pid = 1转载 2014-01-18 21:50:18 · 5198 阅读 · 0 评论 -
HowTo use the CDT to navigate Linux kernel source
HowTo use the CDT to navigate Linux kernel sourceHere are some steps that I've found to get the CDT to work well with the Linux kernel source. If you exclude some of these steps, it may stil转载 2014-02-08 17:53:17 · 916 阅读 · 0 评论 -
cfs 完全公平调度
linux2.6.29 CFS调度详细分析 2011-09-14 13:51:54| 分类:Linux | 标签:linux cfs |举报|字号大中小 订阅来自:http://babybandf.blog.163.com/blog/static/619935320106944144332/众所周知,linux最新的内核采用转载 2014-02-22 20:13:21 · 3574 阅读 · 0 评论 -
在 Linux 下用户空间与内核空间数据交换的方式
本系列文章包括两篇,它们文详细地介绍了 Linux 系统下用户空间与内核空间数据交换的九种方式,包括内核启动参数、模块参数与 sysfs、sysctl、系统调用、netlink、procfs、seq_file、debugfs和relayfs,并给出具体的例子帮助读者掌握这些技术的使用。本文是该系列文章的第一篇,它介绍了内核启动参数、模块参数与sysfs、sysctl、系统调用和netlink,转载 2014-02-18 17:15:13 · 1419 阅读 · 0 评论 -
内核调试方法 二
九 KGDBkgdb提供了一种使用 gdb调试 Linux 内核的机制。使用KGDB可以象调试普通的应用程序那样,在内核中进行设置断点、检查变量值、单步跟踪程序运行等操作。使用KGDB调试时需要两台机器,一台作为开发机(Development Machine),另一台作为目标机(Target Machine),两台机器之间通过串口或者以太网口相连。串口连接线是一根RS-232接口的电缆,转载 2014-02-19 15:29:38 · 2126 阅读 · 0 评论 -
Linux内核调试方法总结 一
内核开发比用户空间开发更难的一个因素就是内核调试艰难。内核错误往往会导致系统宕机,很难保留出错时的现场。调试内核的关键在于你的对内核的深刻理解。 一 调试前的准备在调试一个bug之前,我们所要做的准备工作有: 有一个被确认的bug。包含这个bug的内核版本号,需要分析出这个bug在哪一个版本被引入,这个对于解决问题有极大的帮助。可以采用二分查找法来逐步锁定bu转载 2014-02-19 15:28:17 · 2311 阅读 · 0 评论 -
内核调试方法 三
目录[-]· 大海里的鱼有很多,而我们需要的是鱼钩一只· 一些前言· 作者前言· 知识从哪里来· 为什么撰写本文档· 为什么需要汇编级调试· ***第一部分:基础知识***· 总纲:内核世界的陷阱· 源码阅读的陷阱· 代码调试的陷阱· 原理理解的陷阱· 建立调试环境·转载 2014-02-19 15:32:18 · 64318 阅读 · 1 评论 -
内核的链接脚本文件vmlinux.lds.S
跟我学系列-移植内核必备知识-对linux的early printk的探讨嵌入式开发联盟www.mcuos.comOsboy 站长原创QQ:82475491Mcuos.com@gmail.comvmlinux.lds.S是如何组织内核的每个函数存放在内核镜像文件的位置,我们知道你在编译内核生成内核文件的时候,其实这个过程分两步,一个是“编译”转载 2014-03-14 14:09:23 · 10357 阅读 · 0 评论 -
eclipse 阅读linux 内核
Linux kernel development and debugging using Eclipse CDTFebruary 11th, 2011 by Atul SharmaThis blog entry is inspired by Takis blog . This entry can be seen as the revised version of Takis blo转载 2014-03-18 13:32:12 · 5587 阅读 · 0 评论 -
小议Linux staging tree
2.6.28版本起,内核代码的drivers下增加了一个staging目录,这个目录也是用来存放驱动程序,只是这里的驱动和上层目录的不同,加载的时候内核log会打印如下的语句:MODULE_NAME: module is from the staging directory, the quality is unknown, you have been warned.driver转载 2014-03-20 10:26:35 · 679 阅读 · 0 评论 -
Linux内核学习四库全书
关于内核学习我建议不要上来就读内核而是先了解内核的构成和特性,然后通过思考发现疑问这时再去读内核源码。即先了解概貌在读局部细节。而且内核分成好多部分,不要只是按照顺序去读,应该针对某一部分比如内存管理或进程管理横向读几本书,这样可以理解很全面。Linux Kernel 四库全书1. Linux内核设计与实现 Edition 2 2. Linux设备驱动 Edition转载 2013-03-26 10:15:09 · 1620 阅读 · 0 评论 -
Linux内核的Oops
什么是Oops?从语言学的角度说,Oops应该是一个拟声词。当出了点小事故,或者做了比较尴尬的事之后,你可以说"Oops",翻译成中国话就叫做“哎呦”。“哎呦,对不起,对不起,我真不是故意打碎您的杯子的”。看,Oops就是这个意思。在Linux内核开发中的Oops是什么呢?其实,它和上面的解释也没什么本质的差别,只不过说话的主角变成了Linux。当某些比较致命的问题出现时,我们的Linux转载 2014-03-20 10:29:47 · 816 阅读 · 0 评论 -
编译kernel时 出现的错误和 原因
1. build linux kernel的错误cc1: error: unrecognized command line option "-mlittle-endian"cc1: error: unrecognized command line option "-mapcs"cc1: error: unrecognized command line option "-mno-sc原创 2014-03-21 13:48:29 · 12762 阅读 · 1 评论 -
Linux的CPU资源调优
一)中断的CPU亲和性 我们可以调整中断到某个CPU上,这样可以让CPU更有效的利用起来. 首先关闭掉irqbalance服务,如下:/etc/init.d/irqbalance stop Stopping irqbalance: [ OK ] 查看当前各种中断所使用的CPU,如下:for f in `find . -name "smp_affinity"`转载 2014-04-23 10:33:20 · 7285 阅读 · 0 评论 -
Linux内核源码分析方法
一、内核源码之我见Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径。我们都知道,想成为优秀的程序员,需要大量的实践和代码的编写。编程固然重要,但是往往只编程的人很容易把自己局限在自己的知识领域内。如果要扩展自己知识的广度,我们需要多接触其他人编写的代码,尤其是水平比我们更转载 2014-05-26 15:02:33 · 817 阅读 · 0 评论 -
Linux环境下用户空间与内核空间数据的交换方式
在linux环境开发过程中,经常会需要在用户空间和内核空间之间进行数据交换。介绍了 Linux 系统下用户空间与内核空间数据交换的几种方式 第一节:使用procfs实现内核交互简明教程(1) 第二节:使用procfs实现内核交互简明教程(2) 第三节:基于register_sysctl_table实现内核数据交互(Sysctl方式) 第四节:通过bootload转载 2013-10-14 17:00:23 · 2312 阅读 · 0 评论 -
linux内核中等待队列 (函数wait_event与wake_up)
根据内核3.1.6版本源码、书籍和网上资料,对几个函数进行分析 介绍这几个函数,不得不先介绍等待队列wait_queue_head_t与完成量completion。 等待队列用于使得进程等待某一特定事件的发生,无需频繁的轮询,进程在等待周期中睡眠,当时间发生后由内核自动唤醒。 完成量机制是基于等待队列的,内核利用该机制等待某一操作的结束。转载 2013-10-14 16:45:52 · 1229 阅读 · 0 评论 -
io端口和io内存
linux中的 IO端口映射和IO内存映射(一)地址的概念1)物理地址:CPU地址总线传来的地址,由硬件电路控制其具体含义。物理地址中很大一部分是留给内存条中的内存的,但也常被映射到其他存储器上 (如显存、BIOS等)。在程序指令中的虚拟地址经过段映射和页面映射后,就生成了物理地址,这个物理地址被放到CPU的地址线上。 物理地址空间,一部分给物理RAM(内存)用,转载 2012-12-11 16:19:44 · 7488 阅读 · 1 评论 -
linux 工作队列
INIT_DELAYED_WORK()是一个宏,我们给它传递了两个参数.&hub->leds和led_work.对设备驱动熟悉的人不会觉得INIT_DELAYED_WORK()很陌生,其实鸦片战争那会儿就有这个宏了,只不过从2.6.20的内核开始这个宏做了改变,原来这个宏是三个参数,后来改成了两个参数,所以经常在网上看见一些同志抱怨说最近某个模块编译失败了,说什么make的时候遇见这么一个错误:转载 2012-12-19 17:07:27 · 870 阅读 · 0 评论 -
使用printk调试kernel
printk(KERN_ERR "\n\nfile: %s \t line = %d\t function: %s\n", __FILE__, __LINE__, __func__);printk("KERNEL:File: %s\t line = %d\t function: %s\n", __FILE__, __LINE__, __func__);调试kernel增加一些打印信息,转载 2013-01-23 17:30:53 · 2837 阅读 · 0 评论 -
编写Linux驱动常见错误
工作中遇到的编写Linux驱动的常见错误和注意事项整理。 问题1、驱动的init函数声明错误出错:[root@localhost]# insmod phyinfo.ko insmod: error inserting 'phyinfo.ko': -159951552 Success 原因:驱动实现不对:static void phyinfo_init(vo转载 2013-01-23 17:32:46 · 1522 阅读 · 0 评论 -
linux内核空间和用户空间的是怎样区别的,如何交互,如何从用户空间进入内核空间
linux驱动程序一般工作在内核空间,但也可以工作在用户空间。下面我们将详细解析,什么是内核空间,什么是用户空间,以及如何判断他们。 Linux简化了分段机制,使得虚拟地址与线性地址总是一致,因此,Linux的虚拟地址空间也为0~4G.Linux内核将这4G字节的空间分为两部分。将最高的1G字节(从虚拟地址0xC0000000到0xFFFFFFFF),供内核使用,称为"内核空间".而将较转载 2013-03-13 09:50:16 · 3349 阅读 · 0 评论 -
ARM Linux 3.x的设备树(Device Tree)
宋宝华 Barry Song 1. ARM Device Tree起源Linus Torvalds在2011年3月17日的ARM Linux邮件列表宣称“this whole ARM thing is a f*cking pain in the ass”,引发ARM Linux社区的地震,随后ARM社区进行了一系列的重大修正。在过去的ARM Linux中,arch/arm/pla转载 2013-04-15 16:37:53 · 1075 阅读 · 0 评论 -
要将linux内核的带级别控制的printk内容打印出来,在命令行 输入 dmesg -n 8 就将所有级别的信息都打印出来
要将linux内核的带级别控制的printk内容打印出来,在命令行 输入 dmesg -n 8 就将所有级别的信息都打印出来 Linux命令:dmesg 功能说明:显示开机信息。 语 法:dmesg [-cn][-s ] 补充说明:kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/va转载 2013-05-21 10:17:34 · 1176 阅读 · 0 评论 -
订阅Linux的邮件列表
学习Linux内核可以订阅Linux的邮件列表,订阅的方法如下:1、登录网站:http://vger.kernel.org/vger-lists.html2、选择用户感兴趣的Linux内核模块,例如Linux-kernel3、登录用户自己的邮箱4、写邮件,发送地址为:majordomo@vger.kernel.org5、邮件内容为:subscribe lin转载 2013-05-30 09:54:38 · 3171 阅读 · 2 评论 -
Linux内核模块的概念和基本的编程方法
Linux设备驱动会以内核模块的形式出现,因此,学会编写Linux内核模块编程是学习Linux设备驱动的先决条件。4.1~4.2节讲解了Linux内核模块的概念和结构,4.3~4.8节对Linux内核模块的各个组成部分进行了展现,4.1~4.2与4.3~4.8节是整体与部分的关系。4.9节说明了独立存在的Linux内核模块的Makefile文件编写方法和模块的编译方法。4.1 Linu原创 2013-06-14 18:29:59 · 3488 阅读 · 0 评论 -
linux __setup
本文来自:http://blog.chinaunix.net/uid-13798723-id-2871394.html介绍的很详细,我也正好用了一次__setup(),蛮好用的:),今天回头看main.c,又搜索了一下,分享给大家: __setup(//做了一次完整的盗贼,我毫无修改的抄袭了一次,但有时间会做量身裁减的//from转载 2013-06-20 18:40:44 · 3277 阅读 · 0 评论 -
linux内核函数fls()
[cpp] view plaincopy/** * fls - find last (most-significant) bit set * @x: the word to search * * This is defined the same way as ffs. * Note fls(0) = 0, fls(1) = 1, fls转载 2013-06-28 10:18:27 · 7646 阅读 · 0 评论 -
Linux 2.6.37.1内核的交叉编译
Linux 2.6.37.1内核的交叉编译转自http://my.chinaunix.net/space.php?uid=24319701&do=blog&id=148066本文主要介绍适合ARM 处理器S3C2440目标板的最新版本linux 内核 linux-2.6.37.1的交叉编译。环境为:Fedora14,编译器arm-linux-4.3.2 1、转载 2013-08-21 13:43:25 · 896 阅读 · 0 评论 -
Linux内核中的Kconfig、Makefile、.config
本文参考文章地址:http://hi.baidu.com/donghaozheng/blog/item/02e1b231f0df64a25fdf0eea.html 本文参考友善之臂的MICRO2440用户手册毛毛同学今天学习了驱动程序模块的安装与卸载,在这个过程中毛毛发现,内核的目录中有许多的Kconfig、Makefile文件,但是毛毛不知道为什么需要这些文件,这转载 2013-08-27 09:32:34 · 1996 阅读 · 0 评论 -
Linux中的终端、控制台、tty、pty等概念
基本概念: 1>tty(终端设备的统称): tty一词源于Teletypes,或者teletypewriters,原来指的是电传打字机,是通过串行线用打印机键盘通过阅读和发送信息的东西,后来这东西被键盘与显示器取代,所以现在叫终端比较合适。 终端是一种字符型设备,它有多种类型,通常使用tty来简称各种类型的终端设备。 2>pty(伪终端,虚拟终端):转载 2013-10-10 12:58:48 · 1388 阅读 · 0 评论 -
Linux内核源码分析方法
一、内核源码之我见Linux内核代码的庞大令不少人“望而生畏”,也正因为如此,使得人们对Linux的了解仅处于泛泛的层次。如果想透析Linux,深入操作系统的本质,阅读内核源码是最有效的途径。我们都知道,想成为优秀的程序员,需要大量的实践和代码的编写。编程固然重要,但是往往只编程的人很容易把自己局限在自己的知识领域内。如果要扩展自己知识的广度,我们需要多接触其他人编写的代码,尤其是水平比我转载 2013-10-14 09:42:41 · 891 阅读 · 0 评论 -
Linux性能资源大全
http://www.brendangregg.com/linuxperf.html转载 2014-08-25 17:38:41 · 1339 阅读 · 0 评论