linux
文章平均质量分 80
tastesweet
这个作者很懒,什么都没留下…
展开
-
UNIX环境高级编程读书笔记(十)—信号 (4)
四、信号屏蔽字:有时候我们希望进程正确的执行,而不想进程受到信号的影响,比如我们希望上面那个程序在1秒钟之后不结束。这个时候我们就要进行信号的操作了。信号操作最常用的方法是信号屏蔽。信号屏蔽要用到下面的几个函数。sigemptyset,sigfillset,sigaddset,sigdelset,sigismember,sigprocmask。下面对他们分别进行讲解。 8.原创 2013-06-25 17:22:15 · 405 阅读 · 0 评论 -
用dup或dup2完成ls -l|cat功能
这里要设计管道的概念,首先这里要明白的command的数据传送流程,对已一条带又输入输出的命令,它数据流的传送方式为: stdin——>command---->stdout,在linux系统中,所有的设备都是文件操作,那么在这里,可以这么认为command从文件stdin中读取输入信息,处理完信息后,输出到文件stdout中,那么要完成ls -l|cat,只要将stdin和stdout通过管道重原创 2013-06-25 17:22:21 · 638 阅读 · 0 评论 -
fork与vfork
vfork用于创建一个新进程,而该新进程的目的是exec一个新进程,vfork和fork一样都创建一个子进程,但是它并不将父进程的地址空间完全复制到子进程中,因为子进程会立即调用exec,于是也就不会存放该地址空间。。不过在子进程中调用exec或exit之前,他在父进程的空间中运行。vfork和fork之间的另一个区别是: vfork保证子进程先运行,在她调用exec或exit之后父进程才可能被调原创 2013-06-25 17:22:26 · 506 阅读 · 0 评论 -
用 ANSI实现who
学会使用fsetpos fgetpos fscanf fprintf等函数的使用 #include stdio.h>#include string.h>#include utmp.h>#include stdlib.h>int main(void){ FILE *fp,*fp1,*fp2; struct utmp utmp_buf; fpos_t pos; int num=0,cur_num=0原创 2013-06-25 17:22:34 · 443 阅读 · 0 评论 -
用u盘制作grub启动盘[来源不详]
所用的工具软件:http://download.chip.eu/cn/ HP_USB_Boot_Utility2.2.深度U盘制作工具里面集成的也有.这个我感觉基本不必要用.系统本身就能把此U盘格式成FAT32或者NTFS.用它来做启动盘,我没试.基本思路还是从GRLDR着手.即GRUB.我用的办法有GHOST法,直接把从无忧下载的 U_NT+Grub.gho,G原创 2013-06-25 17:22:39 · 662 阅读 · 0 评论 -
linux 系统调用
概念: OS是用户与计算机的接口。程序接口: OS专门为用户程序设置的,通常由系统调用组成。是程序取得OS服务的唯一途径。系统调用:在OS核心设置的一组用于实现系统功能的程序,并将他们提供给程序员调用。程序员在需要OS提供某种服务的时候,可以用系统调用命令,去实现希望的功能,这就是系统调用。通俗地讲,就是请求内核完成一些功能。与普通调用的区别:运行与不同的系统状态 拥护原创 2013-06-25 17:22:43 · 516 阅读 · 0 评论 -
打造程序员的vim
#创建或修改/root/.vimrc文件,内容如下:set tabstop=4set softtabstop=4set shiftwidth=4set autoindentset cindentset numberset showmatchset mouse=a 管理员在2009年8月13日编辑了该文章文章。 -->原创 2013-06-25 17:22:45 · 549 阅读 · 0 评论 -
嵌入式Linux的GDB远程调试的实现
远程调试环境由宿主机GDB和目标机调试stub共同构成,两者通过串口或TCP连接。使用GDB标准远程串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能。调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在。就目前而言,嵌入式Linux系统中,主要有三种远程调试方法,分别适用于不同场合的调试工作:用ROM Monitor调试目标机程序、用KGDB原创 2013-06-25 17:22:48 · 647 阅读 · 0 评论 -
如何解开各种结构的压缩文件
现在网络上有很多linux的免费软件,很实用,包括了工作,学习娱乐的各个方面,可是当你下载下来以后,却发现它个格式很奇怪 ,使用不了,很着急。呵呵,别着急,我来告诉你解开它们的方法:1.以.a为扩展名的文件:#tar xv file.a2.以.z为扩展名的文件:#uncompress file.Z3.以.gz为扩展名的文件:#gunzip file.gz4.以.bz2为原创 2013-06-25 17:22:50 · 437 阅读 · 0 评论 -
vivi下,平台搭建
bon prat 0 //flash全盘擦出信息 1. 用sjf下载vivi2. 下载kernel vivi> load flash kernel x //下载到flash的root分区,用modern x协议传输发送:zImage3.下载rootfs:vivi> load flash root x发送:root.cramfst原创 2013-06-25 17:22:56 · 577 阅读 · 0 评论 -
mount与umount命令的学习
mount -t 文件系统类型 设备路经 访问路经文件系统类型 Iso9660 光驱文件系统 vfat Fat文件系统(windows)挂载光驱mount –t iso9660 /dev/cdrom /mnt/cdrom 挂载FAT#mount –t vfat /dev/hda5 /mnt/cdrom 挂第一个ide的第五个逻辑分区 mount 与um原创 2013-06-25 17:23:01 · 638 阅读 · 0 评论 -
三月的最后一周
时间很快啊,一周时间又结束了,新的一周又要开始上了,现在继续总结上一周,首先上一周学习的内容是系统编程,这部分自己还是不怎么的熟悉,因为很又很多的计算机专业的知识自己以前没有学过,比如【计算机操作系统】,什么进程、线程、信号量、信号、互斥锁、无名管道、有名管道,此类的东西,都是比较晦涩的,不是很容易的理解,还好的自己对与系统管理这类的东西自己很久以前就想过,所以自己在学习的时候基本上还是按着自己的原创 2013-06-25 17:23:18 · 465 阅读 · 0 评论 -
2410GPIO输出4路频率
/* 四个GPIO以不同频率输出闪烁,创建四个线程,分别输出不同的频率 */#include stdio.h>#include fcntl.h>#include unistd.h>#include stdlib.h>#include pthread.h>#include string.h>#include sys/types.h>#include asm/hard原创 2013-06-25 17:23:20 · 541 阅读 · 0 评论 -
2410通过信号量线程同步
#include stdio.h> // 通过信号量使键盘读取与gpio输出同步#include fcntl.h> // 按键选择输出#include unistd.h> // --》循环右移#include stdlib.h> // --》循环左移#include pthread.h> // --》 频闪#include string.h> // --》 熄灭#include sys/原创 2013-06-25 17:23:23 · 447 阅读 · 0 评论 -
消息队列实现聊天室功能
头文件 #ifndef __msg__#define __msg__#include stdio.h>#include stdlib.h>#include string.h>#include sys/msg.h>#include sys/ipc.h>#include unistd.h>#include sys/types.h>#include pthread.h>#incl原创 2013-06-25 17:23:25 · 2062 阅读 · 0 评论 -
GPIO解析
一、什么是GPIO? GPIO,英文全称为General-Purpose IO ports,也就是通用IO口。嵌入式系统中常常有数量众多,但是结构却比较简单的外部设备/电路,对这些设备/电路有的需要CPU为之提供控制手段,有的则需要被CPU用作输入信号。而且,许多这样的设备/电路只要求一位,即只要有开/关两种状态就够了,比如灯亮与灭。对这些设备/电路的控制,使用传统的串行口或并行口都不合适原创 2013-06-25 17:23:27 · 704 阅读 · 0 评论 -
GPIO全解
什么是GPIO?GPIO就是通用输入输出的简写,我刚转载了一篇关于GPIO的文章,写的非常的详细,要详细的了解GPIO,可以在哪里获得信息 关于linux系统中设备的操作? 在linux系统中,所有的设备都是当成文件来操作的,凡是按照POSIX标准来设计的设备文件都可以通过POSIX文件操作来完成输入输出或者数据交换等操作,但前提是要有驱动的支持,当然内核裁剪的时候也不应有问题。POSIX标准原创 2013-06-25 17:23:30 · 721 阅读 · 0 评论 -
Shell命令解释器项目规划
【項目要求】一、 实现功能:要求实现一个简单的命令解释器,也就是linux中的shell程序,在本程序中我们将其起名为ysh,要求:1、 能够执行外部程序命令,命令可以带参数;2、 能够执行fg、bg、cd、history、exit等内部命令;3、 使用管道和输入输出重定向;4、 支持前后台作业,提供作业控制功能,包括打印作业的清单,改变当前运行作业的前/后台状态,以及控制作业的挂起、中止与继续运原创 2013-06-25 17:23:38 · 747 阅读 · 0 评论 -
exec函数
#include unsitd.h>int execl( const char *pathname, const char *arg 0, ... /* (char *) 0 */);int execv( const char *pathname, const char *rgv[] );int execle(const char *pathname,const char *arg 0, /* (原创 2013-06-25 17:23:49 · 464 阅读 · 0 评论 -
多进程中使用chdir()遇到的问题
int chdir( const char *s ){ return( lfn_mrc_dir( getshortfilename( s ), 0x3B00 ) ); } 今天在做shell命令解释器的时候,在解释内部命令cd的时候,遇到一个问题,在子进程中调用chdir()改变当前目录,发现无法改变当前进程。 调用过程如下:pid_t pid;if( pid=fork原创 2013-06-25 17:23:52 · 1393 阅读 · 0 评论 -
Linux系统调用列表
系统调用表,蓝色的部分是自己现在已经掌握或者说完全理解了的,没有标注的就是自己以后需要学习补充的,加油。一、进程控制:fork 创建一个新进程 clone 按指定条件创建子进程 execve 运行可执行文件 exit 中止进程 _exit 立即中止当前进程 getdtablesize 进程所能打开的最大文件数 getpgid 获取指定进程组标识号 setpgid 设置指定进程组标志号 ge原创 2013-06-25 17:24:00 · 529 阅读 · 0 评论 -
shell下,进程的前台与后台运行
跟系统任务相关的几个命令:fg、bg、jobs、&、ctrl+z1. & 最经常被用到 这个用在一个命令的最后,可以把这个命令放到后台执行2. ctrl + z 可以将一个正在前台执行的命令放到后台,并且暂停3. jobs 查看当前有多少在后台运行的命令4. fg 将后台中的命令调至前台继续运行 如果后台中有多个命令,可以用 fg %jobnumber将选中的命令调出原创 2013-06-25 17:24:13 · 415 阅读 · 0 评论 -
字符串切割思路--shell重定向 管道
在使用shell时,有是有会用到非常复杂的命令组,往往带有重定向、管道等操作,这里讨论的是如何将这些字符串分开,分割成单个的命令。比较复杂命令如下: ls -al | more > 1.txtls -al | more >> 1.txtmore ls -al 可以看出,在shell中,所有的命令组或者命令串都有一个共同的特点,那就是所有的命令串都是通过字符'|'、'原创 2013-06-25 17:24:15 · 893 阅读 · 0 评论 -
TFTP协议详解
1. 目的TFTP是一个传输文件的简单协议,通常使用UDP协议而实现,但tftp并没有要求实现的具体协议,在特殊需求的场合可以同tcp实现。此协议设计的时候是进行小文件传输的。因此它不具备通常的FTP的许多功能,它只能从文件服务器上获得或写入文件,不能列出目录,不进行认证,它传输8位数据。传输中有三种模式:netascii,这是8位的ASCII码形式,另一种是octet,这是8位源数据类型原创 2013-06-25 17:25:15 · 785 阅读 · 0 评论 -
Makefile模版-仿linux启动--绚丽感觉
写程序,文件多的时候实用gcc就不方便了,就需要Makefile了,但自己对与Makefile复杂的依赖关系、规则非常的厌恶,世界是高速发展的,不要把时间浪费在无聊是事情上,收集一些Makefile的模版,以后的小规模程序就可以套用了。下边的Makefile是李建(www.mculee.cn)给的,非常的好用。 # 现有一个ipmsg项目# .c文件有pthre原创 2013-06-25 17:25:24 · 543 阅读 · 0 评论 -
vivi的配置与编译
今天主要学习了vivi,当然,这是个入门级别的bootloader,但通过分析vivi来学习uboot是一个非常好的选择,vivi的配置仿照kernel的配置,所以也可以作为配置kernel的入门材料,至于vivi的一些启动过程这里就不做详细的解释了,这里只对vivi的配置中的一些选项做一下解析。make menuconfig 出现的菜单主要有以下一些选项:System Type --->原创 2013-06-25 17:25:40 · 624 阅读 · 0 评论 -
vivi的Makefile文件解析
这段时间学习的压力要小的多,处理做LFS外,还编译了vivi,vivi是mizi公司一款bootloader,总体说了,这是一个轻量级的bootloader,代码的规模比较小,非常适合用于学习研究,不想uboot,万行的代码,不是那么容易读的,同时,vivi还有一个优点,就是它的Makefile文件结构,完全是仿照kernel的Makefile,所以,学习vivi的Makefile是很有价值的,可原创 2013-06-25 17:25:43 · 542 阅读 · 0 评论 -
vivi的Makefile文件解析(3)
刚开始我们说过,在生成配置文件有很多方法,可以使用make menuconfig也可以使用make config,那么这些实现是在makefile的什么地方:oldconfig: $(CONFIG_SHELL) scripts/Configure -d arch/config.inconfig: $(CONFIG_SHELL) scripts/Configure原创 2013-06-25 17:25:47 · 440 阅读 · 0 评论 -
vivi的Makefile文件解析(4)
vivi的主makefile解析完了,但是如果仔细分析vivi的源码会发现,在实际的vivi的源码还有很多其他的makefile,这里我们这么进行分类,在vivi/下的Makefile我们称之为主makefile,在 arch/目录下的makefile称之为平台makefile,而在其他目录下的makefile称之为子makefile,这样的分类是根据它的功能来划分的,在一些的子目录下,都有独立的原创 2013-06-25 17:25:49 · 415 阅读 · 0 评论 -
ENC28J60网络设备驱动分析
文件:enc28j60.rar大小:9KB下载:下载 enc28j60是一款比较常用的网络芯片,主要特点是接口简单,通过spi接口与cpu通信,所以它的管脚数要少很多,这个优点同时也带来很大的问题,spi传输的效率肯定没有总线结构快,如果大量数据传输的时候会出现问题。下边是整个驱动的代码:/* enc28j60.c: EDTP FrameThro原创 2013-06-25 17:26:31 · 1321 阅读 · 0 评论 -
开发环境转到ubuntu 9.04 【硬盘安装手记】
最近回到学校,以前用的开发环境都是在redhat 9。0下, 虽然用了很长的时间,也非常的熟悉,但是还是有很大的弊病的,它的内核是2.4的,对于学习驱动,特别是现在linux下的驱动框架又发生了很大变化,综合考虑还是要换一个平台,也没有多大的选择余地,目前用的比较多的还是ubuntu7.04,还有就是fedora了,但自己以前用过ubuntu7.04, 打算安装,但发现,这个版本的源已经没有了,到原创 2013-06-25 17:26:35 · 558 阅读 · 0 评论 -
gnash配置信息详解
gnash根据不同的选项,可以支持三种不同类型对图像和音频的渲染方式,通过下边的选项来设置: --enable-renderer=opengl--enable-renderer=cairo--enable-renderer=agg (default) 注: renderer 渲染,只能选择一个选项 关于三种渲染方式的介绍: OpenGL OpenGL (Open Graphics原创 2013-06-25 17:26:44 · 646 阅读 · 0 评论 -
Qt-X11/QtEmbedded/Qtopia之间关系
Qt-X11/QtEmbedded/Qtopia及其他常见包的关系?build Qtopia时经常能看到以下的包:qt-x11-2.3.2qt-x11-3.3.xqte-2.3.xqtopia-2.xtmake-1.3qmake, uic, moc...其中Qtopia编译依赖Qte;qt-x11-2.3只与编译一些tool有关, 如uic,moc,qvfb原创 2013-06-25 17:26:46 · 692 阅读 · 0 评论 -
ubuntu9.10中scim中文输入法无法使用--解决方法
最近在使用ubuntu9.10中的中文输入法时发生一些问题,在设置语言环境是english之后,中文输入法无法使用,也就是看不到scim的界面, 其中尝试了很多的方法,包括重新安装scim scim-bridge 都没有成功, 最终出现问题的原因是:在设置语言环境为english之后,系统是不会加载任何的中文输入法的,需要在语言配置文件中加入一些设置,而主要负责语言环境的原创 2013-06-25 17:26:55 · 976 阅读 · 0 评论 -
基于嵌入式系统的gnash最小库依赖关系
已经对gnash的依赖库作了详细的分析,下边是必须依赖的库:GIF Required libungif-devlibxml2 Required libxml2-devPNG原创 2013-06-25 17:27:14 · 577 阅读 · 0 评论 -
在ubuntu下如何添加windows的字体(罗臭宝ubuntu安装xp字体后乱码 )
其实很早就对linux中少得可怜的字体感到可悲了,无奈只能把在windows中用惯了的字体移到linux下,像宋体啊、黑体啊等等…… 方法如下: 第一步:将windows下喜欢的字体文件copy到一个文件夹中,例如将XP里WINDOWS/FONTS中的字体文件(本人比较贪心,把整个文件夹copy了过来……),在linux中命名为xpfonts 第二步:将copy到的字体文件原创 2013-06-25 17:27:18 · 499 阅读 · 0 评论 -
gnash源码解析
Gnash简介 gnash是开源运动的产物,官方网站为http://www.gnashdev.org/,gnash是一款开源的SWF movie player,可以独立在桌面环境下运行,也可以运行在嵌入式系统上,同时也可以作为一个插件供其他的浏览器调用。swf是Macromedia公司(现已被ADOBE公司收购)的动画设计软件Flash的专用格式,是一种支持矢量和点阵图形的动画文件格式。具有原创 2013-06-25 17:27:23 · 955 阅读 · 0 评论 -
解决ubuntu9.04教育网连外网问题
IPCN 教育网出国免费代理 Free Proxy Server 这个东西经过测试,很好用,设置方法也很简单。详细见官网:http://proxy.ipcn.org/Firefox Edit(T) -> Prefrence -> Advanced -> Network -> Settings->Automation configure URl使用自动配置脚本 http://pac.ipcn.or原创 2013-06-25 17:27:25 · 532 阅读 · 0 评论 -
关于nfs的配置与错误记录
最近2天一直在弄nfs,环境是ubuntu 8.04 Linux version 2.6.24-24-generic (buildd@palmer) (gcc version 4.2.4 (Ubuntu 4.2.4-1ubuntu4)) #1 SMP Tue Jul 7 19:46:39 UTC 2009虽然配置nfs是非常简单的,但始终是无法使用,在查找了很多问题后,发现,公司给的开发板的网卡原创 2013-06-25 17:27:29 · 849 阅读 · 0 评论 -
嵌入式系统设计师考试笔记之接口技术
文章内容太多, 见 http://blog.csdn.net/huafulan/archive/2008/12/15/3522698.aspx 管理员在2009年8月13日编辑了该文章文章。 --> -->原创 2013-06-25 17:27:34 · 554 阅读 · 0 评论