- 博客(19)
- 收藏
- 关注

原创 linuxdrivers的博客公告
1.本博客的作者是几个从事Linux底层开发的工程师; 2.本博客仅用于学习笔记、总结和技术交流,有些文章的内容会不时的更新,并且很多文章并不能保证读者当前阅读时的完整性,但保证会陆续的完善文章的内容,希望来访者了解;3.本博客的部分内容和资源来源于互联网,会尽可能的注明出处。若有遗漏之处侵犯了您的权利,请发邮件到 linux_driver@126.com,我们核实后会马上删除;4
2010-09-14 18:49:00
1678
原创 如何用Python编写一个简单的爬虫
之前推荐了一个免费的Python教程。 Python可以做的事情非常多,而且由于各种包,库资源丰富。开发起来也很方便。比如100行就可以开发出一个简单的网页爬虫程序。这里继续推荐一个用Python写爬虫的英文教程: https://getpocket.com/a/read/907267359
2015-10-02 18:03:55
2001
原创 推荐两个不错的免费教程
Git 教程:http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000Python 教程: http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000
2015-08-17 17:18:55
594
原创 errno(3) - Linux man page
errno(3) - Linux man pageNameerrno - number of last error Synopsis#include DescriptionThe header file defines the integer variable errno, which is set by systemcalls and some library
2014-07-10 10:11:38
1139
转载 两分钟学会在GitHub托管代码
出处:http://blog.youkuaiyun.com/duxinfeng2010/article/details/8654690本篇博客针对不会Git的小童鞋,大神们可以绕过,错误之处谢谢指正;关于GitHub的强大此处不在说明,知道GitHub也有一段时间了,但是一直苦于不会使用。本篇文章介绍的是如何将工程代码托管到上面;如果你还没注册GitHub账号请到https
2013-03-16 11:03:16
887
转载 计算机是如何启动的?
出处:http://www.ruanyifeng.com/blog/2013/02/booting.html从打开电源到开始操作,计算机的启动是一个非常复杂的过程。我一直搞不清楚,这个过程到底是怎么回事,只看见屏幕快速滚动各种提示...... 这几天,我查了一些资料,试图搞懂它。下面就是我整理的笔记。零、boot的含义先问一个问题,"启动"用英语怎么说?回答是boot。可是
2013-02-22 22:04:26
653
转载 从多核到众核处理器
其实“多核”这个词已经流行很多年了,世界上第一款商用的非嵌入式多核处理器是2002年IBM推出的POWER4。当然,多核这个词汇的流行主要归功与AMD和Intel的广告,Intel与AMD的真假四核之争,以及如今的电脑芯片市场上全是多核处理器的事实。接下来,学术界的研究人员开始讨论未来成百上千核的处理器了。有一个与多核匹配的词叫片上网络(Networks on Chip),讲的是多核里的网络式互连
2013-02-07 17:23:05
11994
转载 硬编码实例
出处:http://www.groad.net/bbs/read.php?tid-3000.html 有增删 对于 CPU 来说,它对指令和数据本质上是不区分的。数据也可以当成是指令执行。 在硬编码的一个简单示例里,揭示了这一点。 下面是一个普通的汇编程序: .section .text .global _start_start: nop
2013-01-25 09:48:51
1905
转载 通过/dev/mem进行恶意代码注入
出处:http://blog.youkuaiyun.com/tody_guo/article/details/5457659 有删改英文原文:http://www.dtors.org/papers/malicious-code-injection-via-dev-mem.pdf 摘要 在本文中,我们将要讨论使用字符设备 /dev/mem 向kernel进行代码注入的方法。大多数针
2013-01-13 15:26:00
1831
原创 也谈大端模式(big endian)和小端模式(little endian) (二) 理论与实例一
static union { char c[4]; unsigned long l; } endian_test = { { 'l', '?', '?', 'b' } };#define ENDIANNESS ((char)endian_test.l) 我们可以在Linux内核源码中找到以上代码,这个宏的意图显而易见:小端机器输出 l (litt
2013-01-02 01:06:59
2094
原创 也谈零拷贝(一) 抛砖篇
首先,如果读者之前不熟悉什么是零拷贝,请参考下面的链接: Linux中的零拷贝技术,第1部分 http://www.ibm.com/developerworks/cn/linux/l-cn-zerocopy1/index.htmlLinux中的零拷贝技术,第2部分http://www.ibm.com/developerworks/cn/linu
2012-04-22 22:16:19
8005
5
原创 浅谈Linux中断处理(一)
注: 先做个引子,留给自己看,这一系列后续会继续完善。本篇下面内容为转载内容。 在linux内核里,如果驱动在申请注册中断的时候没有特别的指定,do_irq在做中断响应的时候,是开启中断的,如果在驱动的中断处理函数正在执行的过程中,出现同一设备的中断或者不同设备的中断,这时候新的中断会被立即处理,还是被pending,等当前中断处理完成后,再做处理。在2.4和2.6内核里,关于
2012-01-30 22:26:04
2552
原创 也谈大端模式(big endian)和小端模式(little endian) (一) 引 子
以32位机来讲,比如有这样一个整形数0x11223344,假设从内存0x0地址开始存放这个数。 对于大端模式(Big endian),低地址存放高字节。所以0x11223344在内存中的存放如下: 0x00:0x11 0x01:0x22 0x02:0x33 0x03:0x44 而对于小端模式(Little endian),低地址存放低字节
2011-10-19 21:33:18
1467
1
原创 结构体位操作--反汇编(二)
有了第一篇文章的基础,现在我们来分析一个问题:假设某个FPGA的32位寄存器,我们打算用第一篇文章那样的结构体位域的形式来实现对该寄存器的读写。跟第一篇的内容类似,基本上就是结构体的声明不同,当在我们自己的PC机上测试,编译,执行,结果都没有问题。但是在FPGA上放起来时,却发现结果总是不正确。因为要用该结构体来访问寄存器,下面假定FPGA的32位寄存器地址是宏FPGA_REG_ADDR代表的地址
2011-02-16 11:26:00
1417
原创 浅谈Linux PCI设备驱动(二)
我们在浅谈Linux PCI设备驱动(一)中(以下简称浅谈(一) )介绍了PCI的配置寄存器组,而Linux PCI初始化就是使用了这些寄存器来进行的。后面我们会举个例子来说明Linux PCI设备驱动的主要工作内容(不是全部内容),这里只做文字性的介绍而不会涉及具体代码的分析,因为要分析代码的话,基本就是对 Linux内核源代码情景分析(下册)第八章的解读,读者若想分析代码,可以参考
2010-10-01 01:00:00
10330
8
原创 浅谈Linux PCI设备驱动(一)
要弄清楚Linux PCI设备驱动,首先要明白,所谓的Linux PCI设备驱动实际包括Linux PCI设备驱动和设备本身驱动两部分。不知道读者理不理解这句话,本人觉得这句话很重要,对于PCI、USB这样的驱动来说,必须要理解这个概念,才能明白该如何看待Linux下的PCI和USB以及类似的总线型的驱动。理由也很简单,就是Linux PCI驱动是内核自带的,或者说内核帮你写好了!而我们需要完成的
2010-08-30 14:31:00
53741
13
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人