自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

jeffreyst的专栏

锐气藏于胸,和气浮于面,才气见于事,正气施于人。循真理之道,走光明之路,结德高之朋,断无义之友。得意时淡然,失意时坦然,艰辛中悠然,沧桑后悟然。

  • 博客(31)
  • 资源 (22)
  • 收藏
  • 关注

原创 vim技巧专题

vimer网站推荐:1. http://www.vim.org2. http://www.vimer.cn/1.keyboard macro1.1>背景:            今天在网上看了一段关于linux链表的程序,觉得不错想在虚拟机上编译下,看看效果但是把程序拷贝到虚拟机中的Gvim中发现每行前面都有一个行号。    怎么去掉这个行号?

2012-08-30 11:38:34 701

转载 linux list的应用实例

/*此篇文章是介绍的一个linux list的一个应用实例*/ 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 8 MODULE_LICENSE("Dual BSD/GPL"); 9 //定义用户结构类型group10 struct group{11 int

2012-08-30 10:10:01 1666

转载 linux最具影响力的25个网站

下面是25个最具有影响力,也是最重要的Linux网站,这些网站提供了Linux的分发包,软件,文件,新闻,以及其它所有的关于Linux的东西。关于Linux的分发包历史,可以看看本站的这篇文章《Linux Distribution Timeline》1. Linux.org这个站点主要提供Linux相关的新闻、文档、教程,培训,以及其它一切和Linux相关的东西。这是你需要了解Linux开

2012-08-29 11:04:36 1909

转载 简明 Vim 练级攻略

vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的。下面的文章翻译自《Learn Vim Progressively》,我觉得这是给新手最好的VIM的升级教程了,没有列举所有的命令,只是列举了那些最有用的命令。非常不错。——————————正文开始——————————你想以最快的速度学习人类史上最好

2012-08-29 10:25:54 791

原创 linux VFS

3. VFS请点评Linux支持各种各样的文件系统格式,如ext2、ext3、reiserfs、FAT、NTFS、iso9660等等,不同的磁盘分区、光盘或其它存储设备都有不同的文件系统格式,然而这些文件系统都可以mount到某个目录下,使我们看到一个统一的目录树,各种文件系统上的目录和文件我们用ls命令看起来是一样的,读写操作用起来也都是一样的,这是怎么做到的呢?Linux内核在各种不同

2012-08-28 14:03:51 1590

原创 put_user & get_user

1. put_userNameput_user --    Write a simple value into user space.Synopsisput_user ( x, ptr);Argumentsx Value to copy to user space. ptr Destination address, in user space.

2012-08-28 09:15:27 1013

转载 Linux内核部件分析<9> 设备驱动模型之device-driver

Linux内核部件分析设备驱动模型之device-driver前面我们分析了device、driver、bus三种类型,主要是三者的注册与注销,在sysfs中的目录与属性文件创建等内容。本节就来详细分析下,在设备注册到总线上时,总线是如何为其寻找对应的驱动的;在驱动注册到总线上时,总线又是如何为其寻找对应的设备的。本节的实现代码集中在drivers/base/bus.c和d

2012-08-27 17:41:34 1203

转载 Linux内核部件分析<8> 设备驱动模型之bus

前面我们分析了设备驱动模型中的device和driver,device和driver本来是不相关的东西,只因为bus的存在,才被联系到了一起。本节就来看看设备驱动模型中起枢纽作用的bus。本节的头文件在include/linux/device.h和drivers/base/base.h,实现代码主要在bus.c中。因为在bus中有很多代码时为了device找到driver或者driver找到dev

2012-08-27 17:40:11 809

转载 Linux内核部件分析<7> 设备驱动模型之driver

上节我们分析设备驱动模型中的device,主要是drivers/base/core.c,可以说是代码量最大的一个文件。本节要分析的驱动driver,就要相对简单很多。原因也很简单,对于driver,我们能定义的公共部分实在不多,能再sysfs中表达的也很少。本节的分析将围绕drivers/base/driver.c,但头文件仍然是include/linux/device.h和drivers/bas

2012-08-27 17:38:40 717

转载 Linux内核部件分析<6> 设备驱动模型之device

linux的设备驱动模型,是建立在sysfs和kobject之上的,由总线、设备、驱动、类所组成的关系结构。从本节开始,我们将对linux这一设备驱动模型进行深入分析。     头文件是include/linux/device.h,实现在drivers/base目录中。本节要分析的,是其中的设备,主要在core.c中。struct device {      struct devi

2012-08-27 17:37:20 905

转载 Linux内核部件分析<5> 设备驱动模型的基石kobject

之前我们分析了引用计数kref,总结了sysfs提供的API,并翻译了介绍kobject原理及用法的文档。应该说准备工作做得足够多,kobject的实现怎么都可以看懂了,甚至只需要总结下API就行了。可我还是决定把kobject的实现代码从头分析一遍。一是因为kobject的代码很重要,会在设备驱动模型代码中无数次被用到,如果不熟悉的话可以说是举步维艰。二是为了熟悉linux的编码风格,为以后分析

2012-08-27 17:35:40 784

转载 Linux内核部件分析<4> 更强的链表klist

前面我们说到过list_head,这是linux中通用的链表形式,双向循环链表,功能强大,实现简单优雅。可如果您认为list_head就是链表的极致,应该在linux链表界一统天下,那可就错了。据我所知,linux内核代码中至少还有两种链表能占有一席之地。一种就是hlist,一种就是本节要介绍的klist。虽然三者不同,但hlist和klist都可以看成是从list_head中发展出来的,用于特殊

2012-08-27 17:34:23 758

转载 Linux内核部件分析<3> 记录生命周期的kref

kref是一个引用计数器,它被嵌套进其它的结构中,记录所嵌套结构的引用计数,并在计数清零时调用相应的清理函数。kref的原理和实现都非常简单,但要想用好却不容易,或者说kref被创建就是为了跟踪复杂情况下地结构引用销毁情况。所以这里先介绍kref的实现,再介绍其使用规则。kref的头文件在include/linux/kref.h,实现在lib/kref.c。闲话少说,上代码。str

2012-08-27 17:33:11 728

转载 Linux内核部件分析<2> 原子性操作atomic_t

在任何处理器平台下,都会有一些原子性操作,供操作系统使用,我们这里只讲x86下面的。在单处理器情况下,每条指令的执行都是原子性的,但在多处理器情况下,只有那些单独的读操作或写操作才是原子性的。为了弥补这一缺点,x86提供了附加的lock前缀,使带lock前缀的读修改写指令也能原子性执行。带lock前缀的指令在操作时会锁住总线,使自身的执行即使在多处理器间也是原子性执行的。xchg指令不带lock前

2012-08-27 17:32:00 898

转载 Linux内核部件分析<1>连通世界的list

/*此篇文章偏重于介绍linux中list相关的API, 偏重于原理*/在linux内核中,有一种通用的双向循环链表,构成了各种队列的基础。链表的结构定义和相关函数均在include/linux/list.h中,下面就来全面的介绍这一链表的各种API。struct list_head {      struct list_head *next, *prev;  };

2012-08-27 17:30:30 580

转载 **linux timer

说明:/****************** * linux内核的时间管理 ******************/(1)内核中的时间概念  时间管理在linux内核中占有非常重要的作用。相对于事件驱动而言,内核中有大量函数是基于时间驱动的。  有些函数是周期执行的,比如每10毫秒刷新一次屏幕;有些函数是推后一定时间执行的,比如内核在500毫秒后执行某项任务。  要区分:

2012-08-27 17:19:26 2359 1

原创 为驱动程序添加代码,实现自动生成/dev/下节点

下面代码模板是使用的宋宝华老师的代码,希望他不要生气,本为只是为了共享一些学习经验!!/*======================================================================    A "seond" device driver as an example of kernel timer        The initia

2012-08-27 14:41:35 1438

转载 mknod 命令

mknod 命令  2009-09-06 17:56:32|  分类:linux指令 |字号 订阅Linux的设备管理是和文件系统紧密结合的,各种设备都以文件的形式存放在/dev目录 下,称为设备文件。应用程序可以打开、关闭和读写这些设备文件,完成对设备的操作,就像操作普通的数据文件一样。为了管理这些设备,系统为设备编了号,每 个设备号又分为主设备号和次设备

2012-08-27 13:54:47 1061

转载 udev原理

udev  2012-04-03 19:29:58|  分类:Linux |字号 订阅第一、什么是udev? 这篇文章UDEV Primer给我们娓娓道来,花点时间预习一下是值得的。当然,不知道udev是什么也没关系, 把它当个助记符好了,有了下面的上路指南,可以节省很多时间。我们只需要树立一个信念:udev很简单!嵌入式的udev应用尤其简单。

2012-08-27 11:03:14 2004

转载 在驱动模块初始化函数中实现设备节点的自动创建

在驱动模块初始化函数中实现设备节点的自动创建作者:杨硕,华清远见嵌入式学院讲师。我们在刚开始写Linux设备驱动程序的时候,很多时候都是利用mknod命令手动创建设备节点,实际上Linux内核为我们提供了一组函数,可以用来在模块加载的时候自动在/dev目录下创建相应设备节点,并在卸载模块时删除该节点,当然前提条件是用户空间移植了udev。内核中定义了struct class结构

2012-08-23 16:29:27 583

转载 linux守护进程

Some basic rules to coding a daemon prevent unwanted interactions from happening. We state these rules and then show a function,daemonize, that implements them.编写一个没有交互功能的守护进程是有一定的步骤的。我们列出相关的步骤,并且

2012-08-22 15:17:35 703

转载 Linux驱动学习

Linux驱动学习(一)注:基于linux-2.6.38        在linux源码的根目录下有一个叫drivers的目录,可以发现linux源码根目录下也就那么十来二十个目录,linux把drivers作为根目录下的一个独立的目录,足见drivers在linux里占有的分量有多重。       打开drivers目录一看,有一种晕呼呼的感觉,好几十个目录就这样“活生生”地摆在眼前

2012-08-21 16:01:55 951

原创 《linux设备驱动开发详解》学习之globalmem

1.代码:#include #include #include #include #include //#include #include #include #include #include #include #include #include #define GLOBALMEM_SIZE 0x1000 /*4KB*/#de

2012-08-20 18:01:12 1198

转载 再谈“我是怎么招聘程序员的” ---很不错的一篇文章

我以前写过一篇“我是怎么招聘程序员的”的文章(在CSDN那里有很多人进行了回复)。今天,我想再谈谈关于招聘和面试这方面的东西,主要是以下这些原因:近半年来我在进行了大量的招聘工作,对面试有一些新的体会。 酷壳最近发布了几篇趣味面试题(面试题一,面试题二,面试题三),从回复中让我有一些思考。我有一个同事最近面试了一家公司,他和我分享了一个博士专家对他的面试,也让我思考了一些。 在豆瓣上看

2012-08-17 17:37:23 1460 1

转载 阻塞与非阻塞I/O

阻塞与非阻塞I/O还记得上篇 我们讲到的是linux中并发控制访问的手段有哪些????原子、信号量、自旋锁、互斥体。这是为了保护临界区的资源,是多个进程对共享资源的并发访问的一种处理手段。但是,在驱动程序中,我们常常为了支持用户空间对设备的灵活访问,引入了阻塞与非阻塞I/O两种不同模式。  阻塞操作是指在执行设备操作时若不能获得资源则挂起进程,直到满足可操作的条件后再进行操作。因为

2012-08-17 15:34:03 1333

转载 什么是 "asmlinkage"?

什么是 "asmlinkage"?相信大家在看linux的source code的时候,都会注意到asmlinkage这个宏,它是用来做什么的呢?The asmlinkage tag is one other thing that we should observe about this simple function. This is a #define for some gcc m

2012-08-17 13:30:43 465

转载 内核编程中的EXPORT_SYMBOL

EXPORT_SYMBOL标签内定义的函数或者符号对全部内核代码公开,不用修改内核代码就可以在您的内核模块中直接调用,即使用EXPORT_SYMBOL可以将一个函数以符号的方式导出给其他模块使用 。 您还可以手工修改内核源代码来导出另外的函数,用于重新编译并加载新内核后的测试。Linux symbol export method:[1] If we want export the sy

2012-08-17 13:29:59 949

原创 浅析linux printk的实现

printk函数是我们调试linux内核必备的打印接口,printk定义在/kernel/路径下声明在/linux/kernel.h中,如果在某个文件中使用printk时编译通不过,通常都是未包含这个头文件(当然还有语法错误,呵呵~)/** * printk - print a kernel message * @fmt: format string *

2012-08-17 12:16:40 2704

原创 cdev 结构

2012-08-15 15:16:12 752

原创 C语言中死循环的三种写法

C语言中死循环的三种写法1.while(1){        ;}2.for(; ;){       ;}3LOOP:......goto LOOP;第一种写法明显比第二种写法的效率要高,第三种常用在嵌入式编程中

2012-08-01 17:20:11 25524

转载 FTP 命令详解

FTP> ! 从 ftp 子系统退出到外壳。   FTP> ? 显示 ftp 命令说明。? 与 help 相同。  格式:? [command]  说明:[command]指定需要帮助的命令名称。如果没有指定 command,ftp 将显示全部命令的列表。   FTP> append 使用当前文件类型设置将本地文件附加到远程计算机上的文件。  格式:appe

2012-08-01 15:56:28 932

Vim keyboard shortcuts.pdf

这个对常用的VIM快捷键的总结,掌握这些就是VIM高手了

2013-11-17

LFS-6.6中文版

最新的linux from scratch中文版,希望对大家有帮助~

2013-05-07

IEEE+802.3标准

IEEE+802.3标准

2013-05-02

EasyBCD系统引导修复工具v2.2.0+汉化特别版

在wen7使用(xp下我没有测试过),安装了ubuntu12.4 LTS,功能强大 有好几次在ubuntu中操作倒是ubuntu不能启动,进入win7下用这个工具修复下就好了~ http://blog.csdn.net/jeffreyst/article/details/8156769 这是我搜集整理的安装Ubuntu的教程,

2013-01-18

chmzpdf_18102

经测试,完美破解,完美支持win7,完美转chm到pdf

2012-12-05

sed&awk;

当今介绍sed和awk工具的最经典的资料,好好读下去,才能感受到它们的强大 这也是我找到最清晰的一本

2012-11-01

+高级Bash脚本编程指南

+高级Bash脚本编程指南,非常好的一本linux shell script 编程指南,免费分享给大家

2012-10-23

免费IEEE 802.1协议文档

IEEE 802.1系列协议文档免费放送

2012-10-23

正则表达式教程

网上搜来的介绍正则表达式的资料,共享给大家~

2012-06-20

linux boot process

主要介绍linux 的启动过程,有兴趣的同志可以参考下

2012-06-20

深入浅出Linux_设备驱动编程

共享给学习linux driver的同志们,拿别人写的东西,实在不好意思要资源分,呵呵~

2012-06-20

网络协议全图

网络协议全图

2012-02-08

中文VIM文档

绝对正宗的中文VIM文档,希望对大家有帮助~~

2011-11-07

vimbook-OPL.pdf

非常好的VIM晋级资料,尽管是英文,但是写的通俗易懂,而且有图片解释。 愿和大家共同进步~

2011-10-14

Linux进程间通信--Linux进程间通信

Linux进程间通信--Linux进程间通信--Linux进程间通信--Linux进程间通信

2011-07-29

侯捷-池内春秋--C++的内存管理

侯捷-池内春秋--C++的内存管理方面的介绍

2011-07-29

英文版 The C++ Programming Language Special 3rd Edition

很经典的一本书,英文版的,对提高英文水平还是很有好处的,希望对大家有帮助~~

2011-03-21

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除