![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux
ShowMan
这个作者很懒,什么都没留下…
展开
-
缓冲区溢出原理学习
缓冲区溢出原理学习什么是缓冲区溢出? 缓冲区,简单说来是一块连续的计算机内存区域, 可以保存相同数据类型的多个实例。动态变量在程序运行时定位于堆栈之中。 我们这里只关心动态缓冲区的溢出问题, 即基于堆栈的缓冲区溢出。 进程的内存组织形式 一个进程在内存中被分成三个区域: 文本, 数据和堆栈。原创 2009-07-14 15:51:00 · 2397 阅读 · 0 评论 -
共享内存—内存映射mmap
共享内存—内存映射mmap 共 享内存可以说是最有用的进程间通信方式,也是最快的IPC形式。两个不同进程A、B共享内存的意思是,同一块物理内存被映射到进程A、B各自的进程地址空 间。进程A可以即时看到进程B对共享内存中数据的更新,反之亦然。由于多个进程共享同一块内存区域,必然需要某种同步机制,互斥锁和信号量都可以。采用共享内存通信的一个显而易 见的好处是效率高,因为进程可以直接读原创 2009-08-20 19:08:00 · 3078 阅读 · 1 评论 -
How to compile GDB
您可以直接從網站上下載安裝,如果網路是好的話,請參考網站http://www.cygwin.com/,請注意安裝libiconv到你的cygwin中去。如果你相信上面的那個公司自己的cygwin安裝包,請雙擊,一路到底。如果可能請注冊你的cygwin/bin到你的環境變量中。 首先請下載你的GDB從http://ftp.gnu.org/gnu/gdb/這時你將得到gdb原创 2009-07-07 18:46:00 · 288 阅读 · 0 评论 -
编译BusyBox制作文系统
【原】编译BusyBox制作文系统 一、环境Ubuntu 8.04arm-linux-gcc 3.4.5busybox-1.1.3二、busybox制作文件系统 1、下载busybox1.1.3(http://www.busybox.net/)并解压。 2、进入解压后的目录,配置Busybox #make menuconfig Busybox Settings >原创 2009-07-08 12:57:00 · 2641 阅读 · 0 评论 -
万能Makefile
####################################### # Generic makefile # # by George Foot # email: george.foot@merton.ox.ac.uk # # Copyright (c) 1997 George Foot # All rights reserved. # # No warranty, no liabili原创 2009-07-07 18:38:00 · 2031 阅读 · 0 评论 -
unix信号的问题
早期unix信号的问题1. 信号可能会丢失:信号发生了进程却不知道2. 信号控制力弱:比如有时用户希望通知内核阻塞信号(不要忽略该信号,而是在其发生时记住它,然后在进程作好了准备时再恢复之)这种阻塞信号的能力当时并不具备。3. 信号被抓获的时候,信号处理程序会被重置为DFL。4. 慢性系统调用被中断时,必须手工重启之。下面的代码便是个例子:again: if ( (n =原创 2009-07-10 13:49:00 · 827 阅读 · 0 评论 -
关于gcc扩展中的宏定义中用 "#" 和 "##"
关于gcc扩展中的宏定义中用 "#" 和 "##"今天测试了宏定义中的 "#" 和 "##" 的区别。结果如下:"#" 代表和一个字符串相连接"##" 代表和一个符号连接,符号可以是变量,或另一个宏符号。举例如下:宏定义如下(1)#define DEV_FILE_NAME "/dev/test_kft"#define OPEN_原创 2009-07-13 19:30:00 · 3342 阅读 · 0 评论 -
如何在linux/unix中设置线程的优先级
在linux下我们可以通过int pthread_create(pthread_t *thread, const pthread_attr_t *attr,void *(*start_routine)(void*), void *arg);来创建线程,但是如何设置线程的优先级呢?在讨论这个问题的时候,我们先要确定当前线程使用的调度策略,posix提供了int pthread_attr_原创 2009-09-22 15:36:00 · 1560 阅读 · 0 评论 -
Linux shell 编程
一、用户登陆进入系统后的系统环境变量: $HOME 使用者自己的目录 $PATH 执行命令时所搜寻的目录 $TZ 时区 $MAILCHECK 每隔多少秒检查是否有新的信件 $PS1 在命令列时的提示号 $PS2 当命令尚未打完时,Shell 要求再输入时的提示号 $MANPATH man 指令的搜寻路径 二、特殊变量: $0 这个程序的执行名字 $n 这个程序的第n个参数值,n=1..9 $* 这原创 2009-09-27 11:04:00 · 1880 阅读 · 0 评论 -
Marvell-linux研究-pxa-rtc.c源代码分析
Marvell-linux研究-pxa-rtc.c源代码分析 转载时请注明出处和作者联系方式作者联系方式:李先静 我对RTC感兴趣的原因有两个,一是如何把修改后的时间保存下来,下次开机后,修改后的时间仍然有效,这要把修改后的时间写入RTC的寄存器中去。二是如何实现关机响闹和定时开机,这也要设置RTC的ALARM寄存器。 这里我们分析一下pxa-rtc.c的源代码转载 2009-11-19 15:35:00 · 1709 阅读 · 0 评论 -
tree命令
#!/bin/shfind ./ -name "*" -o -name ".*" 2>/dev/null |sed -e s/^/.// |sed -n 2,$p | while read linedo a=`echo $line |awk -F// {print NF}` a=$((a-2)) i=1 case $a in 0) echo原创 2010-03-06 22:41:00 · 1135 阅读 · 0 评论 -
probe的调用
probe的调用 最近看到linux的设备驱动模型,关于Kobject、Kset等还不是很清淅。看到了struct device_driver这个结构时,想到一个问题:它的初始化函数到底在哪里调用呢?以前搞PCI驱动时用pci驱动注册函数就可以调用它,搞 s3c2410驱动时只要在mach-smdk原创 2010-03-17 16:34:00 · 3259 阅读 · 0 评论 -
pthread_join函数及linux线程
pthread_join函数及linux线程pthread_join使一个线程等待另一个线程结束。代码中如果没有pthread_join主线程会很快结束从而使整个进程结束,从而使创建的线程没有机会开始执行就结束了。加入pthread_join后,主线程会一直等待直到等待的线程结束自己才结束,使创建的线程有机会执行。所有线程都有一个线程号,也就原创 2009-08-19 19:56:00 · 2474 阅读 · 0 评论 -
SED 脚本语法
SED单行脚本快速参考 -------------------------------------------------------------------------SED单行脚本快速参考(Unix 流编辑器) 英文标题:USEFUL ONE-LINE SCRIPTS FOR SED (Unix stream editor)原标题:HANDY ONE-LINERS FO原创 2009-08-04 19:30:00 · 4693 阅读 · 1 评论 -
GNU C的__attribute__机制
GNU C的一大特色(却不被初学者所知)就是__attribute__机制。__attribute__可以设置函数属性(Function Attribute)、变量属性(Variable Attribute)和类型属性(Type Attribute)。__attribute__书写特征是:__attribute__前后都有两个下划线,并切后面会紧跟一对原括弧,括弧里面是相应的__attr转载 2009-07-17 22:12:00 · 950 阅读 · 0 评论 -
Linux下的用户、进程的调配与查看
本节中要介绍的不只是进程查看方面的内容,由于Linux是个多用户系统,有时候也要了解其他用户现在在干什么,所以在本节中还将接触多用户方面的内容。同时Linux是一个多进程系统,经常需要对这些进程进行一些调配和管理;而要进行管理,首先就要知道现在的进程情况:究竟有哪些进程?进程情况如何?等等。所以需要进程查看方面的工作。who命令该命令主要用于查看当前在线上的用户情况。这个命令非常有用。如果原创 2009-07-20 12:21:00 · 2135 阅读 · 0 评论 -
Makefile稳步攻略-单文件automake深入
Makefile稳步攻略-单文件automake深入 在文章《Makefile稳步攻略(一)-单文件automake初步》里,通过一个单文件代码实践了通过automake生成makefile的详细过程。本文将详细分析具体过程中具体命令及具体操作的详细含义。 注:本文非原创,由网络相关文档及linux系统原创 2009-07-23 19:56:00 · 3158 阅读 · 1 评论 -
Linux设备模型之input子系统详解
一:前言 在键盘驱动代码分析的笔记中,接触到了input子系统.键盘驱动,键盘驱动将检测到的所有按键都上报给了input子系统。Input子系统是所有I/O设备驱动的中间层,为上层提供了一个统一的界面。例如,在终端系统中,我们不需要去管有多少个键盘,多少个鼠标。它只要从input子系统中去取对应的事件(按键,鼠标移位等)就可以了。今天就对input子系统做一个详尽的分析. 下面的代码是基于linu原创 2009-07-22 16:23:00 · 3929 阅读 · 3 评论 -
Linux系统下遥控器的配置与使用方法
你有没有想象过能够坐在沙发上,或者躺在床上,拿着遥控器像操作电视一样来操作电脑?可能你已经见到过市场上出现的那种电脑遥控器,不过它们都是基于windows下的。其实,通过一定的配置,在linux平台上,即使使用一般的遥控器,我们也可以完成对电脑的要控操作。linux下遥控器的配置使用主要涉及到Linux的红外驱动程序。LIRC (Linux Infrared Remoter Control原创 2009-07-21 09:14:00 · 4178 阅读 · 0 评论 -
Linux内核的同步机制
一、引言在现代操作系统里,同一时间可能有多个内核执行流在执行,因此内核其实象多进程多线程编程一样也需要一些同步机制来同步各执行单元对共享数据的访问。尤其是在多处理器系统上,更需要一些同步机制来同步不同处理器上的执行单元对共享的数据的访问。在主流的Linux内核中包含了几乎所有现代的操作系统具有的同步机制,这些同步机制包括:原子操作、信号量(semaphore)、读写信号量(rw_sem原创 2009-07-21 19:20:00 · 1655 阅读 · 0 评论 -
Linux 多线程编程入门--线程函数解释
创建线程:int pthread_create(pthread_t *restrict thread, const pthread_attr_t *restrict attr, void *(*start_routine)(void*), void *restrict arg);参数: thread输出线程id attr原创 2009-07-24 21:19:00 · 3186 阅读 · 1 评论 -
shell判断文件,目录是否存在或者具有权限
shell判断文件,目录是否存在或者具有权限 #!/bin/shmyPath="/var/log/httpd/"myFile="/var /log/httpd/access.log"#这里的-x 参数判断$myPath是否存在并且是否具有可执行权限if [ ! -x "$myPath"]; thenmkdir原创 2009-07-25 14:28:00 · 1510 阅读 · 0 评论 -
shell:date 常用方式
shell:date 常用方式在linux下获取时间字符串命令 date# 以yyyymmdd格式输出23天之前现在这个时刻的时间$ date +%Y%m%d –date=’23 days ago’$ date -uThu Sep 28 09:32:04 UTC 2006$ date -RThu, 28 Sep 2006 17:32:28 +0800# 测试十亿分之原创 2009-07-24 23:54:00 · 3358 阅读 · 0 评论 -
awk 用法
awk 用法:awk pattern {action} 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分隔符,默认为一个空格 RS 输入记录分隔符 NF 当前记录里域个数 NR 到目前为止记录数 OFS 输出域分隔符 ORS 输出记录分隔符 1、awk /101/原创 2009-07-31 09:16:00 · 2145 阅读 · 1 评论 -
S3C2410 ARM板上gdb +gdbserver调试
S3C2410 ARM板上gdb +gdbserver调试 远程调试环境由宿主机gdb和目标机调试stub共同构成,两者通过串口或TCP连接。使用GDB标准程串行协议协同工作,实现对目标机上的系统内核和上层应用的监控和调试功能。调试stub是嵌入式系统中的一段代码,作为宿主机GDB和目标机调试程序间的一个媒介而存在。 就目前而言,嵌入式Linux系原创 2009-07-31 15:41:00 · 2822 阅读 · 0 评论 -
ubi以及ubifs
1、很多人在linux上面build的时候经常会遇到缺少liblzo.so之类的库文件,我记得的有在编译mplayer会出现这个错误,还有这次使用ubifs的时候也是。直接使用sudo apt-get install liblzo2-dev安装库文件。 2、ubifs2.1、什么是ubifs?由IBM、nokia工程师Thom原创 2010-03-17 22:30:00 · 7482 阅读 · 2 评论