
linux学习
文章平均质量分 86
小雷总
这个作者很懒,什么都没留下…
展开
-
Linux下使用enca查看文件编码并转换
<br />在linux做开发或者系统管理遇到乱码是经常的事情,主要windows下中文的默认编码是bg2312,而linux下是utf-8。很多时候涉及到和windows平台系统的通信免不了编码的转化,可能大部分人都用iconv库函数(包含在glib中)和iconv命令来执行编码转换,今天我要推荐的是另一个shell下编码转换工具enca。用它不仅可以转换编码,还可以查看文件的原始编码,使用上也比iconv方便一些。<br />在ubuntu下安装enca很简单,apt一下就行了,enca用法转载 2010-07-25 20:11:00 · 4651 阅读 · 0 评论 -
linux下request_mem_region的粗略理解
<br />linux下request_mem_region的粗略理解<br /> <br />文章来源:http://gliethttp.cublog.cn<br /> Linux把基于I/O映射方式的I/O端口和基于内存映射方式的I/O端口资源统称为“I/O区域”(I/O Region)。I/O Region仍然是一种I/O资源,因此它仍然可以用resource结构类型来描述。<br /> Linux是以一种倒置的树形结构来管理每一类I/O资源(如:I/O端口、外设内存、DMA和IRQ)的。每一类I转载 2011-02-23 14:44:00 · 1334 阅读 · 0 评论 -
五种开源协议的比较(BSD,Apache,GPL,LGPL,MIT) – 整理
原文链接:http://www.awflasher.com/blog/archives/939当Adobe、Microsoft、Sun等一系列巨头开始表现出对”开源”的青睐时,”开源”的时代即将到来!最初来自:sinoprise.com/read.php?tid-662-page-e-fpage-1.html(遗憾的是这个链接已经打不开了),我基本未改动,只是进行了一些排版和整理。参考文献:http://www.fsf.org/licensing/licenses/现今存在的开源协议很多,而经过Open S转载 2011-03-10 11:58:00 · 917 阅读 · 0 评论 -
Linux 2.6.19.x 内核编译配置选项简介
博主按:写得十分详细,保存备查。感谢金步国原文链接:http://www.svn8.com/shouce/Linux/kernel_options.htmlLinux 2.6.19.x 内核编译配置选项简介作者:金步国版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提转载 2011-03-09 20:14:00 · 2597 阅读 · 1 评论 -
Linux内核sk_buff的结构分析
<br />原文链接:http://simohayha.javaeye.com/blog/556168<br /> <br />我看的内核版本是2.6.32.<br />在内核中sk_buff表示一个网络数据包,它是一个双向链表,而链表头就是sk_buff_head,在老的内核里面sk_buff会有一个list域直接指向sk_buff_head也就是链表头,现在在2.6.32里面这个域已经被删除了。 <br /><br />而sk_buff的内存布局可以分作3个段,第一个就是sk_buff自身,第二个是li转载 2011-02-28 17:44:00 · 3571 阅读 · 3 评论 -
Linux对I/O端口资源的管理〔1〕
本文主要从内核实现的角度分析linux2.4.0内核IO子系统中对IO端口资源的管理的实现原理。本文是为那些想要深入分析Linux的IO子系统的读者和设备驱动程序开发人员而写的。 Copyright ?0? 2002 by 詹荣开 E-mail:zhanrk@sohu.com linux-2.4.0 Version 1.0.0,2002-10-1 关键词:设备管理、驱动程序、I/O端口、资源 申明:这份文档是按照自由软件开放源代码的精神发布的,任何人可以免费获得、使用转载 2011-01-19 10:00:00 · 1680 阅读 · 0 评论 -
/bin/sh^M:损坏的解释器: No such file or directory
<br />运行某些linux脚本文件时会出现这种错误:<br />/bin/sh^M:损坏的解释器: No such file or directory<br /> <br />原因:该脚本文件在Windows下被编辑过。windows下,每一行的结尾是/n/r,而在linux下文件的结尾是/n,那么你在windows下编辑过的文件在linux下打开看的时候每一行的结尾就会多出来一个字符/r, 用gedit打开文件是看不到这个^m的,可以使用vi打开看一下,每一行结束都有一个^m<br原创 2011-01-20 10:59:00 · 4378 阅读 · 0 评论 -
Linux对I/O端口资源的管理(3)
3.2.4 寻找可用资源 函数find_resource()用于在一颗资源树中寻找未被使用的、且满足给定条件的(也即资源长度大小为size,且在[min,max]区间内)的资源。其函数源代码如下:/** Find empty slot in the resource tree given range andalignment.*/static int find_resource(struct resource *root, struct resource*new,unsig转载 2011-01-19 10:01:00 · 1470 阅读 · 0 评论 -
Linux对I/O端口资源的管理(5)
<br />3.6 访问I/O内存资源<br /><br /> 尽管I/O端口空间曾一度在x86平台上被广泛使用,但是由于它非常小,因此大多数现代总线的设备都以内存映射方式(Memory-mapped)来映射它的I/O端口(指I/O寄存器)和外设内存。基于内存映射方式的I/O端口(指I/O寄存器)和外设内存可以通称为“I/O内存”资源(I/OMemory)。因为这两者在硬件实现上的差异对于软件来说是完全透明的,所以驱动程序开发人员可以将内存映射方式的I/O端口和外设内存统一看作是“I/O内转载 2011-01-19 10:04:00 · 897 阅读 · 0 评论 -
Linux对I/O端口资源的管理(4)
3.4 管理I/O端口资源 我们都知道,采用I/O映射方式的X86处理器为外设实现了一个单独的地址空间,也即“I/O空间”(I/OSpace)或称为“I/O端口空间”,其大小是64KB(0x0000-0xffff)。linux在其所支持的所有平台上都实现了“I/O端口空间”这一概念。 由于I/O空间非常小,因此即使外设总线有一个单独的I/O端口空间,却也不是所有的外设都将其I/O端口(指寄存器)映射到“I/O端口空间”中。比如,大多数PCI卡都通过内存映射方式来将其I/O端口或外设内存映转载 2011-01-19 10:03:00 · 1250 阅读 · 0 评论 -
Linux对I/O端口资源的管理(2)
3.2 linux对I/O资源的管理 linux是以一种倒置的树形结构来管理每一类I/O资源(如:I/O端口、外设内存、DMA和IRQ)的。每一类I/O资源都对应有一颗倒置的资源树,树中的每一个节点都是一个resource结构,而树的根结点root则描述了该类资源的整个资源空间。 基于上述这个思想,linux在kernel/Resource.c文件中实现了对资源的申请、释放及查找等操作。 3.2.1 I/O资源的申请 假设某类资源有如下这样一颗资源树: 节点root、r1、r2转载 2011-01-19 10:01:00 · 1760 阅读 · 0 评论 -
Linux 时钟处理机制
<br />原作者:赵 健博 (zhaojianbo@ncic.ac.cn), 硕士, 中国科学院计算技术研究所<br />文章链接:http://www.ibm.com/developerworks/cn/linux/l-cn-clocks/index.html<br />转载 2011-01-16 10:24:00 · 797 阅读 · 0 评论 -
使用/proc实现内核与用户空间通信
<br />来源:http://yfydz.cublog.cn<br />1. 前言 Linux内核空间与用户空间的通信可通过"/proc"目录的文件读写来实现,如果只是控制内核中的参数而不是传输较多数据的话,用“/proc”是很合适的。另外一种内核与用户空间通信方式方式是使用内核设备的读写或IOCTL来实现,以后再介绍。 2. /proc概述 /proc目录是系统模拟出来的一个文件系统,本身并不存在于磁盘上,其中的文件都表示内核参数的信息,这些信息分两类,一类是可都可写的,这类参数都在“/proc/sys转载 2011-01-14 17:01:00 · 1648 阅读 · 0 评论 -
signal
函数名: signal表头文件 #include<signal.h><br />功 能: 设置某一信号的对应动作 <br />函数原型 :void (*signal(int signum,void(* handler)(int)))(int);<br /> 或者:typedef void(*sig_t) ( int );<br /> sig_t signal(int signum,sig_t handler);<br />参数说明:<br /> 第一个参数signum指明了所要处理的信号类型,原创 2011-01-12 14:12:00 · 940 阅读 · 0 评论 -
内核同步机制-优化屏障和内存屏障
<br />优化屏障和内存屏障 <br />优化屏障 <br /><br />编译器编译源代码时,会将源代码进行优化,将源代码的指令进行重排序,以适合于CPU的并行执行。然而,内核同步必须避免指令重新排序,优化屏障(Optimization barrier)避免编译器的重排序优化操作,保证编译程序时在优化屏障之前的指令不会在优化屏障之后执行。<br />Linux用宏barrier实现优化屏障,gcc编译器的优化屏障宏定义列出如下(在include/linux/compiler-gcc.h中): <br /转载 2011-01-07 10:36:00 · 1030 阅读 · 0 评论 -
自动生成Makefile的详细过程
<br />为了编译一个简单的源文件main.c,需要自动生成一个makefile,以下是步骤:<br /><br />第一步:<br />----------<br />在/root/project/main目录下创建一个文件main.c,其内容如下:<br />------------------------------------------------<br />#include <stdio.h> <br />int main(int argc, char** argv) <br />{ <br转载 2011-01-06 20:08:00 · 881 阅读 · 0 评论 -
关于linux内核中 等待队列 数据结构之思考
原文链接:http://blog.youkuaiyun.com/wangchaoxjtuse/archive/2010/12/02/6049500.aspx关于linux等待队列,大体有如下描述:等待队列是一个双向循环链表,在这个链表中,有两种数据结构:等待队列头(wait_queue_head_t)和等待队列项(wait_queue_t)。等待队列头和等待队列项中都包含一个list_head类型的域作为"连接件"。等待对头wait_queue_head_t 和等待队列元素wait_queue_t的定义如下://队头结转载 2011-01-06 12:13:00 · 1057 阅读 · 0 评论 -
Linux驱动开发环境配置(内核源码树构造)
来源:季义钦BLOG 作者:季义钦初次接触Linux驱动程序开发,买了一本《Linux设备驱动程序》,第一件事当然就是构建开发环境了!!!它上面有一个Hello World的列子://hello.c#include #include MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){ printk(KERN_ALERT "Hello, world/n"); return 0;}static void hello_exit(vo转载 2010-12-20 20:27:00 · 13260 阅读 · 5 评论 -
重新移植了一下内核--记之备忘
博主按:虽然以前移植过,但是隔得时间太长,当时又没有记录,岁数大了记性不好,这次移植又遇到了一些问题,搞了一天才搞好。以此为鉴,特记之。此文只是备忘,不是详细的移植教程,所以新接触移植的同志们还是参考一下网上的资料,有很多非常详细的。 开发环境: 1. 开发板:杨创utu2440-S-V41 2. 原内核:Linux2.6.24 3. 原文件系统:yaffs2 Busybox1.13 4. 原交叉编译器:编译内核用3.4.1,编译Qtopia用3.3.2原创 2011-04-09 20:38:00 · 1470 阅读 · 1 评论