摘要:
问:请教各位大侠:《深入理解linux内核》中,内核同步章节有这样一段话保护可延迟函数(软中断)所访问的数据结构应采取的措施:单处理器上:在单处理器上不存在竞争条件,这是因为可延迟函数(软中断)的执行总是在一个CPU上串行执行--也就是说,一个可延迟函数不会被另一个可延迟函数中断。因此,根本不需要同步原语。 我觉得不太对啊,一个软中断虽然不会被另一个软中断“中断”,但是可能被硬中断“中断”,而硬中... 阅读全文
posted @ 2011-07-18 19:48
justinzhang
阅读(374)
评论(0)
推荐(0)
摘要:
符号链接和硬链接的区别(1)创建一个硬链接可以使用命令ln或者函数link()为文件创建一个链接。#include <unistd.h>int link( const char *path1, const char *path2 );硬链接本身就是一个目录项,(比如文件名+索引节点号),可以将文件名与文件的位置关联起来;符号 链接也称软链接,是指存储了一个字符串的文件。这个字符串可以在路径名解析的过程中,用于修改路径名。目录项对应于单个链接,但是一个索引节点可能有几个链接的目标(对应几个目录项),因此索引节点中包含一个对链接到索引节点的链接数的计数。当用open()创建一个新的文件 阅读全文
posted @ 2011-07-18 16:14
justinzhang
阅读(7083)
评论(3)
推荐(3)
摘要:
闲来无事,又开始学习linux设备驱动程序,以前本来就有一颗内核树,但是是2.6.31的,我下载了最新的2.6.39.1内核,进行了编译,建立了内核树,同时将默认启动的内核改成了最新的内核,通过uname -r命令可以查看,如下图所示:现在把主要的过程记录如下,1、首先到www.kernel.org 下载最新版的内核,将内核解压到/usr/src目录下,使用命令tar jvxf linux-2.6.39.1.tar.bz2,如下图所示:2、切换到linux-2.6.39.1目录中,执行sudo make menuconfig,对内核进行配置:如果没有menuconfig,执行下面的命令,下载相 阅读全文
posted @ 2011-07-18 16:01
justinzhang
阅读(1047)
评论(0)
推荐(0)
摘要:
一、在安装模块是出现如下错误: 查看模块信息的命令,如下所示: 而系统的内核版本是: 屏幕剪辑的捕获时间: 2011-07-04 16:20 所以编译模块用的版本号和系统的内核版本不统一,这样内核就会报错,这个功能是用配置选项CONFIG_MODVERSIONS 决定的,如下图: 其中一种解决办法,http://apps.hi.baidu.com/share/detail/14755964 ,当然... 阅读全文
posted @ 2011-07-18 15:55
justinzhang
阅读(7531)
评论(2)
推荐(0)
摘要:
最近,用2.6.39.1重新编译了内核,重新跑了hello world驱动,建立好了驱动的开发环境,看了一些文档,但是还没有熟练的掌握驱动开发的技术,在这里记录一些心得,备忘。以前在看ldd3的时候,觉得十分的茫然,连内核树是什么都不知道,然后在不知道的某一天,编译了一个内核,虽然建立起了一棵内核树,但是并没有用自己编译的内核来替换现有的内核,对于驱动的链接过程和源代码的目录结构也不熟悉,这里总结如下:源代码目录:/usr/src/linux-2.6.39.1内核的initrd目录:/boot/initrd-img-2.6.39.1grub配置文件目录:/boot/grub/grub.cfg 阅读全文
posted @ 2011-07-18 15:40
justinzhang
阅读(381)
评论(0)
推荐(0)
摘要:
查看当前shell的类型,echo $SHELL $?表示上次命令退出时的状态,使用echo $? 执行前一条命令,!!(fc 命令不可用) 执行第n条命令!n 按住ctrl+r,可以先前搜索执行过的命令,会给出提示: History -c清除历史记录: alias创建命令的别名,alias ll='ls -l' ubuntu 最常用和终端快捷键 源文档 <http://blogold.china... 阅读全文
posted @ 2011-07-18 15:34
justinzhang
阅读(270)
评论(0)
推荐(0)