linux设备驱动程序(1) – helloworld 经过这几天痛苦debug,ztun终于是勉强能用了。(bug应该还不少,但不想改了呀wwww 然后,昨天看完了《linux系统编程》今天开始正式学习《linux设备驱动程序》,自然先从helloworld开始。 对于驱动开发,首先你得有内核源代码树。如果你是ubuntu之类的发行版,一般软件仓库里会有linux-kernel-header包,下载一个适合自己的版本就可以了,它会安装在/ 2014-01-26 #linux #驱动开发
基本上找到问题了 Connection refused 对udp套接字执行read时一直报错: connection refused. 关键是udp还会报connection就太不正常了, udp可是无连接的. 对udp套接字执行read时一直报错: connection refused. 关键是udp还会报connection就太不正常了, udp可是无连接的. 刚刚查到了这篇博文: UDP怎么会返回Connection refused 原来是因 2014-01-22 #Linux #网络编程 #错题本
网络管理中的ioctl ioctl函数传统上用于哪些不适合归入其他精细定义类别的特性的系统接口. 虽然POSIX一直在致力于创造特殊函数来取代ioctl函数, 但目前来说大多数网络编程相关的特性还需要用ioctl来实现. 特别是用于网络管理方面的相当之多(如设置ip, 获取接口, 访问路由表, 访问arp). 原型: 123#include <sys/ioctl.h> int ioctl(int d, in 2014-01-20 #Linux #网络编程 #unix
两条命令查找程序在哪个软件包 两条命令查找程序在哪个软件包 假如想查找ifconfig在那个软件包中. 1234$ whereis ifconfig ifconfig: /sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz$ apt-file search /sbin/ifconfig net-tools: /sbin/ifconfig 有缩进表示程序的输出. 先用wherei 2014-01-19 #运维 #备忘
arm-linux 汇编(3) – 处理器模式 寄存器 上一篇中给出了在arm体系架构中[用户态]的寄存器, 共有16个通用寄存器r0-r15和一个通用程序状态寄存器(cpsr). 上一篇中给出了在arm体系架构中[用户态]的寄存器, 共有16个通用寄存器r0-r15和一个通用程序状态寄存器(cpsr). 1.这次接着说通用程序状态寄存器先看图: cpsr分为4个域, 每个域8位, 分别是标志域, 状态域, 扩展域和控制域.(图上画的有点错误, 扩 2014-01-18 #arm-linux #汇编 #系统编程
setuid和seteuid linux下有4种uid, 真实uid(real user id), 有效uid(effective user id), 被保存的uid(saved user id)和文件系统的uid. 本文详细讲解一下相关内容。 linux下有4种uid, 真实uid(real user id), 有效uid(effective user id), 被保存的uid(saved user id)和文件系统的ui 2014-01-17 #linux #系统编程 #unix
arm-linux 汇编(2) – 调用c函数 上一篇学习了armlinux汇编的helloworld,用到了arm汇编的一些基本指令,如mov、ldr、swi,需要详细的arm体系架构的信息可以去arm官网下载arm_architecture_reference_manual.pdf文件,上面有很详细的信息。本文接着上次,继续讲一下如何用汇编调用c函数。 另外,如果觉得那个手册太冗长,或者是英文苦手的话,可以在本站下载这个短小精悍的refe 2014-01-16 #arm-linux #汇编 #系统编程
arm-linux 汇编(1) – Helloworld linux下一般使用c语言编程,但其实也可以直接使用汇编语言。谈谈在 Linux 下使用汇编编写应用程序。 linux下一般使用c语言编程,但其实也可以直接使用汇编语言。 linux下的汇编工具也是由GNU提供的,叫做as(汇编器)和ld(连接器,c语言也要用它) 在写第一个汇编程序之前我们先看看工具的使用: 假如我们的汇编源码文件叫做hello.s,我们需要先将其汇编成hello.o,再将he 2014-01-15 #arm-linux #汇编 #系统编程
linux下整数尺寸 linux 分为 ILP32 和 LP64 两种 ILP32体系:int = long = pointer = 32LP64体系:long = pointer = 64 在我的电脑上(64位ubuntu,Xeon E3处理器)是LP64体系 结果如下: 2014-01-14 #linux #系统编程 #体系架构