Linux 系列
文章平均质量分 69
残阳
随IT 潮起潮落,看人生起起伏伏!
展开
-
汇编指令集
(一) ARM指令集1. 指令格式2. 条件码3. ARM存储器访问指令1) LDR/ STR-加载/ 存储指令2) LDM/ STM-多寄存器加载/ 存储指令3) SWP-寄存器和存储器交换指令4. ARM数据处理指令1) 数据传送指令a) MOV-数据传送指令b) MVN-数据非传送指令2) 算术逻辑运算指令a) ADD-加法运算指令b) S转载 2011-11-14 23:31:23 · 825 阅读 · 0 评论 -
Xmodem Ymodem Zmodem
根据modem所采用的文件传输协议:xmodem,ymodem,zmodem将其分类 xmodem:简单通用,传输信息单位是“包=128B”,传输速度慢,适合电话线路质量差的情况下用 ymodem:由XMODEM演变来,效率可靠性高,包=128*8B;一次传输可发送或接受几个文件 zmodem:于上两种不同,已连续的数据流发送数据,效率更高 XMODE转载 2011-10-27 21:34:01 · 2315 阅读 · 0 评论 -
FORK()函数的理解
转载一下FORK()函数的理解 对于刚刚接触Unix/Linux操作系统,在Linux下编写多进程的人来说,fork是最难理解的概念之一:它执行一次却返回两个值。 首先我们来看下fork函数的原型: #i nclude #i nclude STd.h> pid_t fork(void); 返回值: 负数:如果出错,则fork()返回-1,转载 2011-11-17 18:49:15 · 524 阅读 · 0 评论 -
ubuntu安装rpm的方法
正想着如何把rpm package 安装到ubuntu上, 发现了这篇文章,转载一下Ubuntu的软件包格式是deb,如果要安装rpm的包,则要先用alien把rpm转换成deb。 sudo apt-get install alien #alien默认没有安装,所以首先要安装它 sudo alien xxxx.rpm #将rpm转换位deb,完成后会生成转载 2011-11-04 21:21:29 · 135209 阅读 · 3 评论 -
Ubuntu 构建Linux 嵌入式开发环境
1.minicom安装与配置minicom是linux下的一个串口通讯工具,使用起来十分方便,类似在windows下的超级终端。在ubuntu下进入终端,输入sudo apt-get install minicom,或者在新立得软件包中查找minicom,见下图安装完成后在终端下输入minicom -s 即可进入minicom的配置界面,然后进入Serial port转载 2011-11-04 21:13:37 · 1386 阅读 · 0 评论 -
GTK+的优点与QT的优点
想看看图形界面系统的优缺点,转载了网友整理的: GTK+的优点与QT的优点整理 在嵌入式 Linux 下有很多图形界面系统 GUI,包括 Qt/Embedded,FLTK,Microwindows 和 GTK+ 等。作为一个开发者,到底使用什么样的 GUI 系统呢?对一个系统,将它改造为符合你的需求,你要做多少修改呢?修改后的系统的尺寸一般会有多大呢?这些都是开发人员会遇到的问题。我转载 2011-11-05 15:51:57 · 38648 阅读 · 2 评论 -
嵌入式系统文件系统比较 jffs2, yaffs, cramfs, romfs, ramdisk, ramfs/tmpfs-科卓培训linux 系列
转载一篇linux 文件比较的。Linux支持多种文件系统,包括ext2、ext3、vfat、ntfs、iso9660、jffs、romfs和nfs等,为了对各类文件系统 进行统一管理,Linux引入了虚拟文件系统VFS(Virtual File System),为各类文件系统提供一个统一的操作界面和应用编程接口。 Linux启动时,第一个必须挂载的是根文件转载 2011-11-05 18:30:15 · 2359 阅读 · 0 评论 -
VI 命令大全
进入vi的命令 vi filename :打开或新建文件,并将光标置于第一行首 vi +n filename :打开文件,并将光标置于第n行首 vi + filename :打开文件,并将光标置于最后一行首 vi +/pattern filename:打开文件,并将光标置于第一个与pattern匹配的串处 vi -r filename :在上次正用vi编辑时发生系统转载 2011-11-28 15:49:04 · 607 阅读 · 0 评论 -
linux内核空间与用户空间信息交互方法
转载在进行设备驱动程序,内核功能模块等系统级开发时,通常需要在内核和用户程序之间交换信息。Linux提供了多种方法可以用来完成这些任务。本文总结了各种常用的信息交换方法,并用简单的例子演示这些方法各自的特点及用法。其中有大家非常熟悉的方法,也有特殊条件下方可使用的手段。通过对比明确这些方法,可以加深我们对Linux内核的认识,更重要的是,可以让我们更熟练驾御linux内核级的应用开发技术。转载 2011-12-19 00:36:16 · 1462 阅读 · 0 评论 -
Mutex VS spin lock
锁机制(lock) 是多线程编程中最常用的同步机制,用来对多线程间共享的临界区(Critical Section) 进行保护。Pthreads提供了多种锁机制,常见的有:1) Mutex(互斥量):pthread_mutex_***2) Spin lock(自旋锁):pthread_spin_***3) Condition Variable(条件变量):pthread_con_**转载 2011-12-21 09:30:15 · 2018 阅读 · 0 评论 -
Linux下.ko, .o, .so, .a, .la文件
Linux下文件的类型是不依赖于其后缀名的,但一般来讲:.ko 是Linux 2.6内核使用的动态连接文件的后缀名,也就是模块文件,用来在Linux系统启动时加载内核模块.o 是目标文件,相当于windows中的.obj文件.so 为共享库,是shared object,用于动态连接的,和dll差不多.a 为静态库,是好多个.o合在一起,用于静态连接.la 为libtool自动转载 2011-12-12 23:30:32 · 6105 阅读 · 0 评论 -
How to Daemonize in Linux
One of the things I keep running across is Linux daemons that don’t properly daemonize themselves. To properly daemonize, the following steps must be followed.The fork() call is used to create a转载 2011-12-21 10:25:29 · 1687 阅读 · 0 评论 -
Linux 系统内核空间与用户空间通信的实现与分析
多数的 Linux 内核态程序都需要和用户空间的进程交换数据,但 Linux 内核态无法对传统的 Linux进程间同步和通信的方法提供足够的支持。本文总结并比较了几种内核态与用户态进程通信的实现方法,并推荐使用 netlink套接字实现中断环境与用户态进程通信。 1 引言 Linux是一个源码开放的转载 2011-12-22 00:13:36 · 2612 阅读 · 0 评论 -
Linux系统信息查看命令大全
原始链接http://tech.idv2.com/2008/01/11/linux-sysinfo-cmds/以及本声明。最近看了一些Linux命令行的文章,在系统信息查看方面学到不少命令。想起以前写过的一篇其实Linux这样用更简单,发现这些系统信息查看命令也可以总结出一篇小小的东西来了。另外这里还有非常多的命令,可以作为参考。系统# uname -a转载 2011-12-21 20:43:05 · 667 阅读 · 0 评论 -
linux 内核与用户空间通信之netlink使用方法
1 引言Linux中的进程间通信机制源自于Unix平台上的进程通信机制。Unix的两大分支AT&T Unix和BSD Unix在进程通信实现机制上的各有所不同,前者形成了运行在单个计算机上的System V IPC,后者则实现了基于socket的进程间通信机制。同时Linux也遵循IEEE制定的Posix IPC标准,在三者的基础之上实现了以下几种主要的IPC机制:管道(Pipe)及命名管道(转载 2011-12-21 23:36:48 · 1219 阅读 · 0 评论 -
linux内核空间与用户空间信息交互方法 communication between kernel space...
引自 http://blog.chinaunix.net/u1/41220/showart_484176.htmllinux内核空间与用户空间信息交互方法 communication between kernel space and user space笔记如下:用户级程序主动发起的信息交互A编写自己的系统调用B编写驱动程序C: 使用proc 文件系统D: 使用虚拟文件转载 2011-12-21 23:44:23 · 2159 阅读 · 0 评论 -
(转载)编译你自己的Linux内核(Kernel)
你马上就会发现,你也可以获得(get),配置(configure),编译(compile)和安装(install)属于你自己的Linux内核(Kernel)。 引言为什么你想要编译并安装一个完全属于你自己的内核(Kernel)? 可能是下列原因中的一种吧: 新内核提供更好的硬件支持能力。 新内核有某些特殊的优点,例如,对多处理器(SMP)更好的支持, 或者是支持USB转载 2011-12-22 23:08:28 · 3517 阅读 · 0 评论 -
Android init.rc解析
Android init.rc (Android init language)Android初始化语言由四大类声明组成:行为类(Actions),命令类(Commands),服务类(Services),选项类(Options). * 初始化语言以行为单位,由以空格间隔的语言符号组成。C风格的反斜杠转义符可以用来插入空白到语言符号。双引号也可以用来防止文本被空格分成多个语言转载 2011-12-14 22:25:55 · 13796 阅读 · 2 评论 -
最新历史版本 :LINUX KERNEL 配置编译中文指南
LINUX KERNEL 配置编译中文指南序言 近几年,linux大行其道,令不满windows蓝屏的使用者跃跃欲试,结果发现linux安装不及windows方便,界面不及windows友好,配置不及windows容易,软件不及windows丰富,以至浅尝辄止。 其实, Linux有windows无可比拟的两个优势:网络应用和嵌入式技术,这也正是未来最有前途的方向。同时此课题是从理转载 2011-12-25 22:46:55 · 2540 阅读 · 0 评论 -
linux内核介绍:
linux内核体系结构总体分为两部分:用户空间、内核空间。然而各自两部分也可以细分。 用户空间user app:用户应用应用程序,一般都运行在用户态glibc:库函数内核空间sci:系统调用,应用程序一般通过系统调用进入内核态kernl:linux内核,里面还可以细分为很多部分adkc:arch,就是架构。这部分就是内核与体系结构相关的代码 一共七个部分转载 2011-12-25 21:51:03 · 1496 阅读 · 0 评论 -
Cross Toolchain-交叉编译工具链
交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程序,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在X86 CPU平台上是不能运行的,必须放到ARM CPU平台上才能运行,虽然两个平台用的都是Linux系统。这种方法在异平台移植和嵌入式开发时非常有用。相对与交叉编译,平常做的编译叫本地编译,也就是在当前平台编译,编译得转载 2011-12-25 21:55:57 · 1568 阅读 · 0 评论 -
Linux 驱动程序实验
Linux 驱动程序实验1 实验目的转载 2011-12-25 23:20:47 · 1227 阅读 · 0 评论 -
SPI driver test
Linux BSP test-unittest-(C)SPI(using spidev)There are three ways to test SPI: 1.test in loop back mode. 2.test by other drivers that use it 3转载 2011-12-26 18:07:53 · 4632 阅读 · 0 评论 -
INIT_WORK宏定义解释
#define INIT_WORK(_work, _func, _data) \do { \INIT_LIST_HEAD(&(_work)->entry); \(_work)->pending = 0; \PREPARE_WORK((_work), (_func), (_data)); \init_timer(&(_work)->timer); \} while (0)转载 2011-12-28 15:53:43 · 6242 阅读 · 0 评论 -
tasklet_hi_schedule分析
文件包含:#include 函数定义:在内核源码中的位置:linux-2.6.30/kernel/softirq.c函数定义格式:void __tasklet_schedule(struct tasklet_struct *t) 函数功能描述: 函数__tasklet_schedule( )的主要作用是将参数t代表的软中断的描述符添加到向量tasklet_hi_vec转载 2012-01-09 15:40:59 · 5845 阅读 · 0 评论 -
linux do while{}
在Linux内核中,经常会看到do{}while(0)这样的语句,刚开始会疑惑,认为do{}while(0)毫无意义,因为它只会执行一次,加不加do{}while(0)效果是完全一样的,其实do{}while(0)只要用于宏定义中。这里用以个简单点的宏来演示: #define SAFE_FREE(P) do{free(p); p = NULL;}while(0)转载 2012-01-15 23:03:17 · 1840 阅读 · 0 评论 -
[Linux driver] Mutex, semaphore, spinlock的深度解析
转载一下 Mutex是一把钥匙,一个人拿了就可进入一个房间,出来的时候把钥匙交给队列的第一个。一般的用法是用于串行化对critical section代码的访问,保证这段代码不会被并行的运行。 Semaphore是一件可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来。对于N=1的情况,称为binary semaphore。一般的用法是,用于限制对于转载 2012-01-15 23:16:13 · 5137 阅读 · 2 评论 -
Linux tar.gz zip 解压缩/压缩命令
tar-c: 建立压缩档案-x:解压-t:查看内容-r:向压缩归档文件末尾追加文件-u:更新原压缩包中的文件这五个是独立的命令,压缩解压都要用到其中一个,可以和别的命令连用但只能用其中一个。下面的参数是根据需要在压缩或解压档案时可选的。-z:有gzip属性的-j:有bz2属性的-Z:有compress属性的-v:显示所有过程-O:将文件解开到标准输出转载 2012-01-27 11:20:32 · 1256 阅读 · 0 评论 -
ubuntu 交叉编译环境的构建
最简单的还是使用他人编译好的环境。这里使用arm-linux-gcc-4.4.3 Ubuntu下交叉编译环境构建(arm-linux-gcc-4.4.3.tar.bz2 )1.下载arm-linux-gcc-4.4.3.tar.bz2到任意的目录下。arm-linux-gcc-4.4.3下载地址:下载在Linux公社的1号FTP服务器里,下载地址转载 2012-01-27 11:36:19 · 4549 阅读 · 0 评论 -
Linux内核对SPI的支持
什么是SPI? “串行外围接口”是一个同步的四线制串行线,用于连接微控制器和传感器、存储器及外围设备。三条信号线持有时钟信号(SCLK,经常在10MHz左右)和并行数据线带有“主出,从进(MOSI)”或是“主进,从出(MISO)”信号。数据交换的时候有四种时钟模式,模式0和模式3是最经常使用的。每个时钟周期将会传递数据进和出。如果没有数据传递的话,时钟将不会循环。SPI主设备使用“片转载 2012-01-23 22:03:23 · 2083 阅读 · 0 评论 -
linux 如何挂载U盘
挂u盘之前,运行命令cat /proc/partitions,看看现在系统中有哪些分区。插上u盘以后,再次运行上述命令,看看多出来什么分区(通常是sda1,PS由于偶是在虚拟机下装的,所以是sdb1).1、插入U盘2、输入 fdisk -l /dev/sda 查看输出结果,比如我的是这样的: # fdisk -l /dev/sda Disk /dev/sda转载 2012-01-27 11:07:35 · 1200 阅读 · 0 评论 -
如何解决Install ncurses(ncurses-devel) and try again
:Install ncurses(ncurses-devel) and try again。做一个简单的铺垫,ncurses是字符终端下屏幕控制的基本库。可能很多新开发的程序已经不再使用。假如要编译一些老的程序,还是会经常碰到。解决这个问题可以通过下面的解决方法来搞定。打开一个终端输入下面这条语句按回车进行安装即可。apt-get install libncurses5-dev转载 2012-01-27 12:23:38 · 23321 阅读 · 0 评论 -
Vim+cscope+ctags+tags阅读源代码
linux源代码提供了制作cscope索引文件和tags文件的make命令。一,软件安装先安装cscope:sudo apt-get install cscope在安装ctags:http://ctags.sourceforge.net/可以使用:ctags –version来查看当前ctags的版本是否是emacs的。要是安装了emacs的话就必须使用上面这个地转载 2012-01-27 23:25:11 · 2182 阅读 · 0 评论 -
git使用总结
Git 介绍最近的小项目想使用git来管理,应为git可以不需要服务器而在任意的Linux机器上管理代码,相对svn和cvs还是有它的优势的,所以我选用了git来管理我的小项目,以后在提供svn的管理。在使用了一段时间后想写一点总结,可能也是和网络上其其它的git的文章差不多。但是作为我的使用总结还是很有必要的。git安lixnus的解释是--The stupid content tracke转载 2012-02-01 20:30:11 · 720 阅读 · 0 评论 -
Ubuntu 共享文件
首先当然是要安装samba了,呵呵: sudo apt-get install samba sudo apt-get install smbfs 下面我们来共享群组可读写文件夹,假设你要共享的文件夹为: /home/ray/share 首先创建这个文件夹 mkdir /home/ray/share chmod 777 /home/ray/share 备份并转载 2011-12-31 09:05:58 · 1124 阅读 · 0 评论 -
Linux中等待队列机制分析
<!--@page {margin:2cm}p {margin-bottom:0.21cm}h2 {margin-bottom:0.21cm}h2.ctl {font-family:"Lohit Hindi"}td p {margin-bottom:0cm}-->什么是等待队列? 在软件开发中任务经常由于某种条件没有得到满足转载 2012-01-03 21:40:09 · 1246 阅读 · 0 评论 -
sched_setscheduler
#include int sched_setscheduler(pid_t pid, int policy, const struct sched_param *param); sched_setscheduler()函数将pid所指定进程的调度策略和调度参数分别设置为param指向的sched_param结构中指定的policy和参数。sched_param结构中的sched转载 2012-01-04 00:39:06 · 2578 阅读 · 0 评论 -
内核中的中断函数request_irq()
request_irq()、free_irq() 这是驱动程序申请中断和释放中断的调用。在include/linux/sched.h里声明。 request_irq()调用的定义: int request_irq(unsigned int irq, void (*handler)(int irq, void *dev_id, struct pt_regs *regs ),转载 2012-01-04 02:01:47 · 35432 阅读 · 2 评论 -
信号量,和内核中函数up,down!
信号量的原理就是一个整数的增减,up=加1,down = 减1;当这个值>=1时它就是属于资源释放状态,此时使用down能获得,如果down获得。其实信号量不是互斥的,linux内核说定义互斥信号量,只是说你把它初始化为1或者0,然后通过配对使用up down来保证。up的函数就是加1,down的函数就是减1.例子:DECLARE_MUTEX(regs_mutex);转载 2012-01-03 23:11:47 · 10800 阅读 · 1 评论 -
softirq/tasklet/workqueue的区别
softirq和tasklet都属于软中断,tasklet是softirq的特殊实现;workqueue是普通的工作队列。1、softirq软中断支持SMP,同一个softirq可以在不同的CPU上同时运行,softirq必须是可重入的。软中断是在编译期间静态分配的,它不像tasklet那样能被动态的注册或去除。kernel/softirq.c中定义了一个包含32个soft转载 2012-02-12 14:44:46 · 1124 阅读 · 0 评论