
Linux Releated
ykqnjust
这个作者很懒,什么都没留下…
展开
-
container_of详解
#define container_of(ptr, type, member)({ / consttypeof(((type *)0)->member )*__mptr =(ptr); / (type *)((char*)__mptr -offsetof(type,member));})#defineoffsetof(TYPE, MEMBER)((size_t)&((TYPE *)0)->MEMBER)1.ptr为物理地址,其类型和member类型一致,最转载 2010-08-05 21:14:00 · 749 阅读 · 0 评论 -
svn linux usage example
url:http://cache.baidu.com/c?m=9d78d513d98205f34fede520564a902c0e54f1744dd6c7610ec3e24b84132c550026bdb47d645646c4c40f7a1cff1701bfe73605664276eb8cc8ff168afd8f7664de20377a01d501438942eb9c5b25c3229a47eba转载 2011-04-29 15:54:00 · 938 阅读 · 0 评论 -
从oops信息查找出错代码行
(1)从oops crash的地方开始查起,首先找到指针访问错误的代码行a)重新编译内核时,选上kernel hacking--->compile the kernel with debug info ---->kerneldebugging使得内核包含调试信息,b)然后从Oops信息中找到“PC is atfree_block+0x8c/0x168”#######原创 2011-04-18 16:15:00 · 4568 阅读 · 0 评论 -
Linux汇编语言学习记要
Linux汇编语言学习记要 一、Linux汇编语言的学习内容为了学习并能深刻理解Linux内核原代码,必须学习Linux汇编语言,对于Linux汇编语言的学习我觉得应该包括如下三个方面: 0)机器独立的汇编,比如:x86汇编指令,也叫instruction set,这部分需要参考处理器编程手册,比如:intel手册《Intel64 and IA-32 Architectures Software Developer Manual Volume 2A: Instruction Set Reference A-转载 2011-05-31 18:58:00 · 995 阅读 · 0 评论 -
Fedora13 中 NFS的配置
一、开启NFS服务二、设置NFS服务器*********************************转********网络文件系统(NFS,Network File System)是一种将远程主机上的分区(目录)经网络挂载到本地系统的一种机制,通过对网络文件系统的支持,用户可以在本地系统上像操作本地分区一样来对远程主机的共享分区(目录)进行操作。 在嵌入式Linux 的开发过程中,开发者需要在Linux 服务器上进行所有的软件开发,交叉编译后,通用FTP 方式将可执行文件下载到嵌入式系统运行,但这转载 2011-03-01 19:23:00 · 1870 阅读 · 1 评论 -
classic words
收集的关于编程和学习方法的经典名言:DEBUG definition:The process of identifying divergences between the intent and the implementation is known as debugging.The Best Method to Learn Linux Kernel Code:I would encourage aspiring developers to get their hands dirty: The best原创 2010-11-05 09:13:00 · 1078 阅读 · 0 评论 -
linux内存管理
LINUX中的地址空间 有这么一系列的问题,是否在困扰着你:用户程序编译连接形成的地址空间在什么范围内?内核编译后地址空间在什么范围内?要对外设进行访问,I/O的地址空间又是什么样的? 先回答第一个问题。Linux最常见的可执行文件格式为elf(Executable and Linkable Format)。在elf格式的可执行代码中,ld总是从0x8000000开始安排程序的“代码段”,对每个程序都是这样。至于程序执行时在物理内存中的实际地址,则由内核为其建立内存映射时临时分配,具体地址取决于转载 2010-12-13 15:06:00 · 830 阅读 · 0 评论 -
使用 udev 高效、动态地管理 Linux 设备文件
<br />使用 udev 高效、动态地管理 Linux 设备文件黄 懋, 软件工程师, IBM黃懋,IBM 中国系统和技术实验室,Open Systems Interoperability Validation Lab 存储测试团队的成员。3-4 年 Linux/Unix 平台和 SAN/NAS 存储产品的测试经验。 <br />简介: 本文以通俗的方法阐述 udev 及相关术语的概念、udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和转载 2010-10-20 20:06:00 · 597 阅读 · 0 评论 -
使用 udev 高效、动态地管理 Linux 设备文件
<br />使用 udev 高效、动态地管理 Linux 设备文件黄 懋, 软件工程师, IBM黃懋,IBM 中国系统和技术实验室,Open Systems Interoperability Validation Lab 存储测试团队的成员。3-4 年 Linux/Unix 平台和 SAN/NAS 存储产品的测试经验。 <br />简介: 本文以通俗的方法阐述 udev 及相关术语的概念、udev 的配置文件和规则文件,然后以 Red Hat Enterprise Server 为平台演示一些管理设备文件和转载 2010-10-14 16:05:00 · 852 阅读 · 0 评论 -
udev学习总结
<br />udev 动态设备管理<br /> <br />看了不少前人总结的东西,是时候自己来做个总结了,来表达下我眼中的udev。<br />udev是什么?<br />udev是生成设备文件节点的一个方法,为了替代2.6内核之前的devfs而产生,最大的不同在于,udev是一个用户空间程序,因此是<br />硬件平台无关的。udev可以在系统发现一个新的硬件时,根据灵活的udev规则,在/dev下为该硬件生成相应的设备文件。<br /> <br />udev产生的需求是什么?<br />udev产生的原创 2010-10-14 15:57:00 · 1019 阅读 · 0 评论 -
嵌入式Linux 建立udev 及有意思的udev FAQ
udev嵌入式上路经历改编自udev轻松上路第一、什么是udev? 这篇文章UDEV Primer给我们娓娓道来,花点时间预习一下是值得的。第二、为什么udev要取代devfs? udev是硬件平台无关的,属于user space的进程,它脱离驱动层的关联而建立在操作系统之上,基于这种设计实现,我们可以随时修改及删除/dev下的设备文件名称和指向,随心所欲地按照我们的愿望安排和管理设备文件系统,而完成如此灵活的功能只需要简单地修改udev的配置文件即可,无需重新启动操作系统。udev 已经使得我们对设备的管转载 2010-10-12 19:18:00 · 3227 阅读 · 0 评论 -
linux恢复硬盘数据
<br />星期五的晚上,一手接电话,一手在键盘敲着命令,本该是 rm -rf /usr/local/apache2/htdocs/tmp/ 命令却少敲了tmp ,竟然运行 rm -rf /usr/local/apache2/htdocs ,这命令是要把htdocs目录下所有文件都删除啊,还好发现的快,赶紧ctrl+c,救回来了几个文件夹。但有几个重要的文件夹都没了,这目录下的文件夹有的是半年前的工作,有的是几个月前的工作,就在一瞬间消失的干干净净。恨自己为什么不备份,恨自己为什么接电话手还在键盘旁,恨转载 2010-10-12 17:00:00 · 8809 阅读 · 0 评论 -
udev入门FAQ(两位仁兄写的总结文字)
如果你使用Linux比较长时间了,那你就知道,在对待设备文件这块,Linux改变了几次策略。在Linux早期,设备文件仅仅是是一些带有适当的属性集的普通文件,它由mknod命令创建,文件存放在/dev目录下。后来,采用了devfs,一个基于内核的动态设备文件系统,他首次出现在2.3.46 内核中。Mandrake,Gentoo等Linux分发版本采用了这种方式。devfs创建的设备文件是动态的。但是devfs有一些严重的限制,从 2.6.13版本后移走了。目前取代他的便是文本要提到的udev--一个用户空间转载 2010-10-12 17:01:00 · 932 阅读 · 0 评论 -
两个自己实现backtrce的博文
linux下打印函数调用栈(stack backtrace in Linux)2010-01-14 23:20今天遇到个这样的需求,希望能当动态链接库中抛出异常时,能把调用栈打印出来。经过在google上一翻搜寻,找到了一些线索。我的文件目录如下:当前目录下是main.cpp 和test/test下面是A.h, A.cpp(定义一个类)和backtrace.h, backtrace.cpp第一步,实现打印调用栈,backtrace函数实现如下:backtrace.cpp#include "backtrace原创 2010-08-24 17:52:00 · 1668 阅读 · 1 评论 -
在linux代码中打印函数调用的堆栈的方法
<br />之前一直有这样的需求,当时问到,也没搜到方法,现在竟然既问到了,也搜到了,哎,世事真是不能强求啊!<br /> <br />在linux内核调试中,经常用到的打印函数调用堆栈的方法非常简单,只需在需要查看堆栈的函数中加入:<br />dump_stack();或 __backtrace();即可。<br /> <br />dump_stack()在~/kernel/ lib/Dump_stack.c中定义<br /> <br />void dump_stack(void)<br />{<br /原创 2010-08-24 17:09:00 · 15010 阅读 · 0 评论 -
linux内核中的链式结构体
<br /> 在linux内核或者其他大型底层应用的开发项目中,C语言是主力军。但是在这些项目中,也会有<br />对象的需要,这个时候结构体的定义就非常必要。<br />链式的结构体定义,或者说具有特殊逻辑关系的一组结构体变量也是很常见的。下面有一个问题,<br />既然链式结构体经常见到,那么怎么组织他们呢?<br />最简单的想法是构建结构体数组,比如:<br />typedef struct{<br /> unsigned int a;<br />} _StrA;<br />_StrA str原创 2010-08-18 11:15:00 · 1093 阅读 · 0 评论 -
__builtin_constant_p
<br />Gcc的内建函数 __builtin_constant_p 用于判断一个值是否为编译时常数,如果参数EXP 的值是常数,函数返回 1,否则返回 0。例如: <br />++++ include/asm-i386/bitops.h <br />249: #define test_bit(nr,addr) / <br />250: (__builtin_constant_p(nr) ? / <br />251: constant_test_bit((nr),(addr)) : / <br />252原创 2010-08-09 09:33:00 · 9377 阅读 · 0 评论 -
linux /dev/loop学习心得
linux下/dev/loop常用于制作文件系统镜像文件rootfs.img,以便下载到内核中挂载;http://zh.wikipedia.org/wiki//dev/loop我们日常接触到比较多的镜像文件*.iso,都是用数据文件来存储实际块设备上的数据;首先必须明确,想光盘,硬盘,软盘这样的设备上存储文件需要特定的文件系统,上面有大量的文件系统特定信息用于管理上面的文件,这些信原创 2012-05-16 09:18:44 · 6084 阅读 · 0 评论