ARM/linux
文章平均质量分 55
zhangjikuan
这个作者很懒,什么都没留下…
展开
-
iptables ipset详解
iptablesiptables [-t 表名] 命令选项 [链名] [条件匹配] [-j 目标动作或跳转]-t 表名 可以省略,指定规则存放在哪个表中,默认为filter表 用于存放相同功能的规则filter表: 负责过滤功能能,nat表: 网络地址转换功能mangle表: 拆解报文 做出修改并重新封装的功能raw表: 关闭nat表上启用的连接追踪机制命令选项-A 在...原创 2019-05-29 22:34:07 · 11461 阅读 · 0 评论 -
《ARM与Linux些许问题》第二章:Linux操作系统与ARM工作模式
====================================================================================================================================== 首先,ARM开发板在刚上电或复位后都会首先进入SVC即管理模式,此时、程序计数器R15-PC值会被赋为0x0000转载 2015-11-10 11:08:47 · 611 阅读 · 0 评论 -
《ARM与Linux些许问题》第一章:ARM工作模式
==================================================================================================================================== 早期的ARM核有状态(ARM或Thumb)切换(通过BX等指令修改CPSR寄存器(当前程序状态寄存器,存放条件码标志,中转载 2015-11-10 11:07:01 · 659 阅读 · 2 评论 -
TCP的三次握手(建立连接)和四次挥手(关闭连接)
TCP的三次握手(建立连接)和四次挥手(关闭连接)参照:http://course.ccniit.com/CSTD/Linux/reference/files/018.PDFhttp://hi.baidu.com/raycomer/item/944d23d9b502d13be3108f61 建立连接: 理解:窗口和滑动窗口TCP的流量控制TCP使用窗口机制进行流转载 2015-09-21 18:41:35 · 813 阅读 · 0 评论 -
select、poll、epoll之间的区别总结[整理]
select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的,而异步I/O则无需自己负责进行读写,异步I/O的实现会负责把数据从内核拷贝到用转载 2015-09-21 16:29:21 · 452 阅读 · 0 评论 -
Linux下调试core dump文件的方法
在开发和使用Linux程序时,引擎有时会莫名其妙的core掉,在网上查了一下,整理了一个简单的调试core文件的方法1、什么是core dump?Core,即core memory, 指由一系列小当纳圈形的磁性材料组成的存储器,这里不过是沿用了这一称呼,而dump就是堆放的意思。core dump又叫核心转储, 当程序运行过程中发生异常, 程序异常退出时, 由操作系统把程序当前的内存状况存转载 2015-09-21 15:33:49 · 1069 阅读 · 0 评论 -
malloc内存分配详解
这里的存储分配程序,讲的就是标准库中malloc函数的实现原理。首先要了解针对malloc的内存存储结构。malloc不像全局变量一样,不是在编译器编译的时候就会分配内存空间,而是在调用到malloc函数时才会分配空间。有时还会中途调用free函数释放空间出来。所以: 1、malloc在第一次被调用时,从系统中获取最小为一个单元的空闲空间(eg:最小单元为1024个最受限单元转载 2015-09-21 16:57:57 · 5829 阅读 · 1 评论 -
例解 autoconf 和 automake 生成 Makefile 文件
本文介绍了在 linux 系统中,通过 Gnu autoconf 和 automake 生成 Makefile 的方法。主要探讨了生成 Makefile 的来龙去脉及其机理,接着详细介绍了配置 Configure.in 的方法及其规则。转载 2014-09-10 22:08:12 · 604 阅读 · 0 评论 -
Linux内核,驱动学习博客
无意间看了Linux内核修炼之道这本书,华清远见原创 2014-07-27 12:50:11 · 600 阅读 · 0 评论 -
ARM运行可执行文件出现/usr/lib/libstdc++.so.6: version `CXXABI_ARM_1.3.3' not found解决
关于Linux PC上出现这种问题容易解决,直接下载个高版本的原创 2014-06-17 10:59:32 · 5605 阅读 · 2 评论 -
《ARM与Linux些许问题》第三章:Linux如何从用户态进入内核态
本文基于mstar801平台Linux2.6.35.11内核。一、Linux从用户态切换到内核态的方法有哪些? 大体分为两种;主动式和被动式。 1.被动式:就是Linux在用户态(ARM在用户模式)工作,没有主动发起请求、而被动地进入内核态;包括硬件中断和程序异常。 2.主动式:就是Linux在用户态(ARM在用户模式)工作,通过发起用户态程序发起转载 2015-11-10 11:10:15 · 1059 阅读 · 0 评论 -
Linux内核中是怎么实现min和max函数
Linux内核代码有很多很经典的代码,仔细去看看,可以学到很多知识。今天说说Linux是怎么实现min和max的。max和min函数都是比较常用的,可以用函数,或者利用宏去实现,一般我们会这样去写:1#define min(x,y) ((x)>(y)?(y):(x))2#define max(x,y)转载 2015-10-25 22:09:01 · 2668 阅读 · 0 评论 -
Shell脚本交互之:自动输入密码
平时在控制台输入指令如:sudo、ssh、ftp或者修改admin权限的文件时候都会要求输入password,但是在she'll脚本运行过程中该如何交互实现自动输入密码呢?下面总结三种实现方法。一、重定向:用重定向方法实现交互的前提是指令需要有参数来指定密码输入方式,如ftp就有-i参数来指定使用标准输入来输入密码 shell用重定向作为标准输入的用法是:cmd 实原创 2016-04-09 19:41:26 · 159936 阅读 · 2 评论 -
linux c/c++按规则获取网卡ip
linux c/c++按规则获取网卡ip 输出项目到云或者输出给外部客户,会遇到服务器多网卡多ip的情形,如果有多个应用都需要这个主机ip,而且多应用需要获取相同的ip,此时可以约定一种规则来获取相同的ip,比如: 获得所有网卡名,然后对网卡名按从小到大排序,查找最小的网卡名对应非local的ip,这样每个应用都使用这种规则,就会获取到相同的ip了,而且这种思路不受多种语言所限制。详原创 2018-02-01 12:31:45 · 3127 阅读 · 0 评论 -
线程退出和线程资源回收问题
最近项目中遇到循环8M的内存泄漏问题,排查后发现是由于特殊场景下使子线程异常退出,主线程发现子线程退出便再次创建线程,此时未回收退出线程的资源造成了内存泄漏,导致数据库宿主机oom,此问题不仅导致内存泄漏,还会使线程句柄用完导致其他进程无法分配线程的风险。下面来看看关于线程退出和线程资源回收的有关问题线程退出有多种方式,如return,pthread_exit,pthread_ca原创 2017-09-22 00:45:40 · 15675 阅读 · 2 评论 -
iptables详解
iptables详解iptables简介 netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向和网络地址转换(NAT)等功能。 iptables基础 规则(rules)其实就是网转载 2017-07-04 21:04:06 · 465 阅读 · 0 评论 -
gdb基本命令
gdb基本命令 本文介绍使用gdb调试程序的常用命令。 主要内容: [简介] [举例] [其他] [简介] ============= GDB是GNU开源组织发布的一个强大的UNIX下的程序调试工具。如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。同时GDB也具有例如转载 2015-07-16 22:17:53 · 635 阅读 · 0 评论 -
浅谈Volatile与多线程
浅谈Volatile与多线程最近看的比较杂,摘了一些人的笔记!随着多核的日益普及,越来越多的程序将通过多线程并行化的方式来提升性能。然而,编写正确的多线程程序一直是一件非常困的事情,volatile关键字的使用就是其中一个典型的例子。C/C++中的volatile一般不能用于多线程同步在C/C++中,如果想把一个变量声明为volatile,就相当于告转载 2017-02-07 21:45:28 · 3932 阅读 · 0 评论 -
linux定时任务cron配置
实现Linux定时任务有:cron、anacron、at等,这里主要介绍cron服务。名词解释: cron是服务名称,crond是后台进程,crontab则是定制好的计划任务表。软件包安装:要使用cron服务,先要安装vixie-cron软件包和crontabs软件包,两个软件包作用如下:vixie-cron软件包是cron的主程序。crontabs软件包是用来转载 2016-12-06 21:35:50 · 1444 阅读 · 0 评论 -
Linux shell 中的2>&1
shell尤其是crontab命令中经常发现类似下面的语句cd /u01/ && bash ha_status.sh >>/u01/ha_status.log 2>&1bash center.sh >/dev/null 2>&1 &其中的>>和>分别代表重定向,前者表示在文件末尾添加不影响原内容,后者表示删除原内容添加新的内容,这个大家都理解解释:本来shell的所有输出都原创 2016-12-07 11:00:26 · 449 阅读 · 0 评论 -
cron表达式详解
cron在线生成器:http://cron.qqe2.com/Cron表达式是一个字符串,字符串以5或6个空格隔开,分为6或7个域,每一个域代表一个含义,Cron有如下两种语法格式: Seconds Minutes Hours DayofMonth Month DayofWeek Year或 Seconds Minutes Hours DayofMonth Month Da转载 2016-07-23 00:03:24 · 653 阅读 · 0 评论 -
Linux下查看文件和文件夹大小
当磁盘大小超过标准时会有报警提示,这时如果掌握df和du命令是非常明智的选择。 df可以查看一级文件夹大小、使用比例、档案系统及其挂入点,但对文件却无能为力。 du可以查看文件及文件夹的大小。 两者配合使用,非常有效。比如用df查看哪个一级目录过大,然后用df查看文件夹或文件的大小,如此便可迅速确定症结。 下面分别简要介绍 df命令转载 2016-07-26 13:08:14 · 531 阅读 · 0 评论 -
gcc和arm-linux-gcc默认头文件库搜索路径
1.gcc默认头文件搜索路径其实就是安装路径gcc的hu原创 2014-06-16 19:40:56 · 5399 阅读 · 0 评论 -
Linux 启动时 正在决定 eth0 的 IP 信息失败后不能上网的解决方法
1.cd /etc/sysconfig/network-scripts/ 2.ls -a查看当前目录下的所有文件;并cat ifcfg-eth0查看ifcfg-eth0内容 3.我的ifcfg-eth0里边只有简单的三行,没有ip相关信息,于是将其内容进行编辑,vi ifcfg-eth0,按insert进行编辑,编辑内容如下(前3行是本来就有的): DEVICE=eth0原创 2014-05-26 11:02:04 · 6390 阅读 · 1 评论 -
linux free
free(C语言提供的库函数)原型: void free(void *ptr)功 能: 释放ptr指向的存储空间。被释放的空间通常被送入可用存储区池,以后可在调用malloc、realloc以及calloc函数来再分配。程序例:#include#include#include#includeint main(void){char原创 2014-03-13 20:48:23 · 544 阅读 · 0 评论 -
Linux线程同步之条件变量
与互斥锁不同,条件变量是用来等待而不是用来上锁的。条件变量用来自动阻塞一个线程,直到某特殊情况发生为止。通常条件变量和互斥锁同时使用。条件变量使我们可以睡眠等待某种条件出现。条件变量是利用线程间共享的全局变量进行同步的一种机制,主要包括两个动作:一个线程等待"条件变量的条件成立"而挂起;另一个线程使"条件成立"(给出条件成立信号)。条件的检测是在互斥锁的保护下进行的。如果一个条件为原创 2014-03-13 20:58:40 · 538 阅读 · 0 评论 -
linux GLIBCXX_3.4.9 not found 解决
执行一个程序时发现了这样一个错误:/usr/lib/libstdc++.so.6: version `GLIBCXX_3.4.9' not found于是执行strings /usr/lib/libstdc++.so.6 | grep GLIBC返回结果没有GLIBCXX_3.4.9GLIBCXX_3.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBC转载 2014-03-13 21:05:15 · 1306 阅读 · 0 评论 -
linux TCP文件传输
#include #include #include #include #include #include #include #define SERVER_PORT 6666#define LISTEN_QUEUE 20#define BUFFER_SIZE 1024int main(int argc,char **argv){struct sock原创 2014-03-13 21:03:54 · 1189 阅读 · 0 评论 -
linux hostent结构体
hostent结构体 hostent是host entry的缩写,该结构记录主机的信息,包括主机名、别名、地址类型、地址长度和地址列表。之所以主机的地址是一个列表的形式,原因是当一个主机有多个网络接口时,自然有多个地址。目录1hostent简介2详细资料struct hostentExamples原创 2014-03-13 21:02:24 · 1485 阅读 · 0 评论 -
linux inet_ntoa函数
inet_ntoa 目录1基本介绍2英文原意3基本要求4编程举例1基本介绍功能:将一个IP转换成一个互联网标准点分格式的字符串。原型:char FAR * inet_ntoa( struct in_addr in);头文件:arpa/inet.hWinsock2.h参原创 2014-03-13 21:01:18 · 2193 阅读 · 0 评论 -
linux strcat函数
strcat函数 src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。返回指向dest的指针。目录1C函数原型用法功能说明举例2MATLAB函数1C函数原型extern char *strcat(char *dest,char *src);用法原创 2014-03-13 21:00:24 · 3090 阅读 · 0 评论 -
linux bool
这几天在学习Linux下的C语言开发。今天要写一个取1到100之间质数的题。可是,当我用bool类型定义变量b,来标记一个数是否为质数时,编译出错。错误信息显示如下: 'bool' undeclared (first use in this function) (Each undeclared identifier is reported only once原创 2014-03-13 20:44:30 · 953 阅读 · 0 评论 -
linux typedef
typedef 在计算机编程语言中用来为复杂的声明定义简单的别名,与宏定义有些差异。它本身是一种存储类的关键字,与auto、extern、mutable、static、register等关键字不能出现在同一个表达式中。目录1定义2用法总结3语言用法4代码简化5平台开发1定义原创 2014-03-13 20:56:07 · 1029 阅读 · 0 评论 -
linux feof
函数名feof2功 能检测流上的文件结束符The function feof() tests the end-of-file indicator for the streampointed to by stream, returning non-zero if it is set. The end-of-fileindicator can onl原创 2014-03-13 20:49:22 · 2104 阅读 · 0 评论 -
linux undefined reference to 'pthread_create'问题解决
由于是Linux新手,所以现在才开始接触线程编程,照着GUN/Linux编程指南中的一个例子输入编译,结果出现如下错误:undefined reference to 'pthread_create'undefined reference to 'pthread_join'问题原因: pthread 库不是 Linux 系统默认的库,连接时需要使用静态库 libpthr原创 2014-03-13 20:51:48 · 493 阅读 · 0 评论 -
linux signal
sig是传递给它的唯一参数。执行了signal()调用后,进程只要接收到类型为sig的信号,不管其正在执行程序的哪一部分,就立即执行func()函数。当func()函数执行结束后,控制权返回进程被中断的那一点继续执行。目录1函数名: signal2注意点1函数名: signal表头文件#include功 能:设置某一信原创 2014-03-13 20:55:03 · 620 阅读 · 0 评论 -
交叉编译工具链的安装、配置、使用
说明:1.虚拟机中的linux版本可以不跟板子中linux的版本对应,因为编译程序时使用到的库文件都是交叉编译工具链安装包里自带的,与PC系统毫无关系2.安装的交叉编译工具链的版本要与板子中的系统和板子使用CPU的型号对应,例如:ARM6410使用的是 ARM-LINUX-GCC-4.5.1-V6交叉编译器,ARM2440使用的是arm-linux-gcc-4.4.3交叉编译器,所以给64原创 2014-03-25 18:33:57 · 3105 阅读 · 0 评论 -
nfs配置
为了实现虚拟机的linux和板子中的linux共享文件:一:虚拟机中安装NFS1.虚拟机中安装NFS,在linux安装路径下的server下(次文件夹下全是各种安装包)有两个安装包nfs—utils...和sys_config_nfs..2.可以直接将文件拖到虚拟机中双击安装3.可用rpm -qa|grep nfs检查是否已经安装二:虚拟机中配置NFS原创 2014-03-25 18:37:33 · 648 阅读 · 0 评论 -
samba配置
长期ping不通的问题也解决了一:配置samba服务器 系统-管理-服务器设置-samba-1.首选项-服务器设置-基本 -安全性:用户,加密:是,无来宾 用户-添加用户-创建linux新用户、window原创 2014-03-25 18:36:19 · 562 阅读 · 0 评论 -
安装VMWare Tools 方法
1.点击VM---setting--CD--系统安装路径connect--此时光驱一般就在桌面了打开--复制VMTOOLS...ta.gz---解压到任意路径--打开文件夹--将VMware_install.pl拖到终端中--按提示ENTER就OK 了 注意:有一次我在终端中未执行完就关机了,结果系统打不开了原创 2014-03-25 18:38:22 · 669 阅读 · 0 评论