
linux
文章平均质量分 85
中下游国外我
这个作者很懒,什么都没留下…
展开
-
网络地址处理函数用法inet_aton inet_ntoa inet_addr inet_network
参考:http://baike.so.com/doc/6950872-7173273.htmlint inet_aton(const char *string, struct in_addr*addr);功能:将一个字符串IP地址转换为一个32位的网络序列IP地址。头文件:参数描述:1 输入参数string包含ASCII表示的IP地址2 输出参数addr是将要用新的转载 2016-09-21 19:19:06 · 3368 阅读 · 0 评论 -
控制Linux kernel启动console的打印级别
注:代码来自内核版本2.6.36在Build kernel时,在CONFIG_CMDLINE宏中设定级别:CONFIG_CMDLINE="debug|quiet|loglevel=5",这个宏会在kernel启动时作为默认配置参数。debug表示loglevel=10quiet表示loglevel=10loglevel=5表示loglevel=5处理log级原创 2015-12-11 17:24:35 · 4003 阅读 · 0 评论 -
使用initramfs启动Linux成功,再次总结一下
http://arm9home.net/read.php?tid=5645前天做了个从ramdisk根文件系统启动Linux的实验,写了个帖子。经总版主kasim大侠的提携,得知现在基于Linux的发行版通常采用initramfs代替initrd,架构更简单,应用也更灵活一些。正好今天晚上没事,就做了一下使用initramfs启动Linux,写个帖子总结一下。这个帖子不会详述具体的转载 2015-11-24 12:32:53 · 2657 阅读 · 0 评论 -
《Linux内核Makefile分析》之 if_changed_rule/cc_o_c/any-prereq/arg-check
http://blog.sina.com.cn/s/blog_87c063060101l25q.htmlif_changed_rule/cc_o_c/any-prereq/arg-check Makefile 对应内核版本:2.6.35.13在 scripts/Makefile.build 的 86 行看到 builtin-target转载 2015-12-10 14:35:33 · 3081 阅读 · 0 评论 -
Linux启动流程解析:init_post函数
http://book.51cto.com/art/201007/213597.htm 4.1 引导过程《Linux内核修炼之道》第4章讲解系统初始化,万事开头难,系统的初始化是一个很复杂的过程,不过对于内核源码的学习来说,以这个部分开始应该是个不错的选择。特别是子系统初始化,应该是你选择任何内核子系统开始分析时都需要了解的内容。本节为大家介绍引导过程。第4章系统初始化转载 2015-10-15 17:02:24 · 4204 阅读 · 0 评论 -
Openwrt内部工具链改为外部工具链:kernel panic - not syncing: No init found. Try passing init= option to kernel.
一、环境:openwrt+linux 2.6.311、内部toolchainmake menuconfig 内部toolchain配置如下: [*] Advanced configuration options (for developers) ---> [*] Toolchain Options --->编出的toolchain为:staging_dir/toolc原创 2015-10-15 18:59:52 · 7134 阅读 · 0 评论 -
Linux中使用diff生成的补丁格式说明
1.patchdiff -Nur src-orig/Makefile.pre.in src-new/Makefile.pre.in--- src-orig/Makefile.pre.in 2015-10-29 09:14:12.127131664 +0800+++ src-new/Makefile.pre.in 2015-10-29 09:23:50.964141115 +0原创 2015-10-29 13:46:32 · 1667 阅读 · 0 评论 -
Linux内核调试方法总结
http://my.oschina.net/fgq611/blog/113249目录[-]一 调试前的准备二 内核中的bug三 内核调试配置选项1 内核配置2 调试原子操作四 引发bug并打印信息1 BUG()和BUG_ON()2 dump_stack()五 printk()1 printk函数的健壮性转载 2015-11-11 15:30:53 · 5651 阅读 · 0 评论 -
当bridge下接口eth0单独设置IP时,为了保证LAN PC可以连接WANPC
一般情况下,是在bridge中设置IP地址,如果把网络接口如eth0/1,ath*等挂在该bridge之下,所有bridge的接口公用一个IP。而下面情况则不同。环境:为了保证LAN-PC可以连接WAN-PC;需要做如下工作:1、 让LAN-PC可以访问到NAT-Router的LAN口。分析:因为该接口的IP是作为LAN-PC的默认网关地址,当LAN-PC去访原创 2015-10-23 18:01:12 · 3161 阅读 · 0 评论 -
基于Linux与Busybox的Reboot命令流程分析
http://blog.youkuaiyun.com/wavemcu/article/details/8544333很完整很详细哦!***************************************************************************************************************************作者:转载 2015-12-28 16:15:33 · 727 阅读 · 0 评论 -
Broadcom SDK中reboot的流程分析
/sbin/reboot 链接到rc文件àPathFileFunctionRemark.init.cfatal_signal() shutdown_system() kill(-1原创 2015-12-28 18:51:24 · 1365 阅读 · 0 评论 -
Linux下date命令,格式化输出,时间设置
http://blog.youkuaiyun.com/jk110333/article/details/8590746/date命令的帮助信息 [root@localhost source]# date --help用法:date [选项]... [+格式] 或:date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][.ss]]以给定的格式显转载 2016-08-16 19:54:12 · 1459 阅读 · 0 评论 -
Linux头文件和库文件添加环境变量与GCC编译器添加INCLUDE与LIB环境变量
转载:http://blog.youkuaiyun.com/crazyhacking/article/details/7371917对所有用户有效在/etc/profile增加以下内容。只对当前用户有效在Home目录下的.bashrc或.bash_profile里增加下面的内容:(注意:等号前面不要加空格,否则可能出现 command not found)#在PATH中找到可执行文转载 2016-05-09 17:13:02 · 5690 阅读 · 0 评论 -
linux 查看文件系统类型
http://www.cnblogs.com/kysnail/archive/2012/03/25/2417221.htmlLinux 查看文件系统的方式有多种,列举如下: 1. mount:~$ mount/dev/sda1 on / type ext4 (rw,errors=remount-ro,user_xattr)proc on /proc转载 2016-05-12 20:18:57 · 711 阅读 · 0 评论 -
Linux进程间通信——使用消息队列
http://www.cnblogs.com/lidabo/p/4323807.html验证可行下面来说说如何用不用消息队列来进行进程间的通信,消息队列与命名管道有很多相似之处。有关命名管道的更多内容可以参阅我的另一篇文章:Linux进程间通信——使用命名管道 一、什么是消息队列消息队列提供了一种从一个进程向另一个进程发送一个数据转载 2016-04-16 20:34:13 · 465 阅读 · 0 评论 -
syslog-ng 学习
http://luyongxin88.blog.163.com/blog/static/925580720112275183903/ 因为工作的需要,涉及到了syslog-ng。现在看来,在外包公司工作,也就这么两点的好处了,一是拿的钱稍微多点,二就是能接触一下新的东西。当然,想要深入了解,公司是不会提供这样的机会了,还是自己看看吧。以下都是一些网络上学习来了有关sysl转载 2016-04-28 15:28:31 · 1108 阅读 · 0 评论 -
aconfigure: error: no acceptable C compiler found in $PATH
在Debain上安装pjnath2源代码时出现如下错误:aconfigure: error: no acceptable C compiler found in $PATH原因:Debain上未安装gcc。直接方案:apt-get install gcc原创 2016-03-17 09:45:41 · 1284 阅读 · 0 评论 -
C语言调用shell命令方法
在C语言中执行shell命令的方法:1. system(shell_string); 该方法无法返回shell命令的输出结果,只能返回返回值。2. popen/fgets/fputs/pclose 该方法可以读取shell命令的输出结果和返回值,也可以向shell命令输入参数。使用方法:(参考http://baike.baidu.com/view/24458转载 2016-02-18 15:16:29 · 4637 阅读 · 0 评论 -
看看initramfs加载的完整流程
http://blog.chinaunix.net/uid-20564848-id-73938.htmlvim usr/initramfs_data.SSECTIONS{ .init.ramfs : { *(.data) } // 包含所有data}.section .init.ramfs,"a".incbin "usr/initramfs_data转载 2015-12-07 15:46:10 · 1303 阅读 · 0 评论 -
Linux系统中如何添加自己的库文件路径
http://www.2cto.com/os/201006/50422.html注:验证可行。库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之转载 2015-10-23 09:19:49 · 641 阅读 · 0 评论 -
Linux Netfilter中修改TCP/UDP Payload的方法
来自linux-2.6.36/net/ipv4/netfilter/nf_nat_helper.c注:该代码可以移植到ebtables中使用,但需要注意struct rtable *rt结构在ebtables中是没有的。修改UDP payload的代码:/* Unusual, but possible case. */static int enlarge_skb(struct翻译 2015-11-06 10:25:06 · 5197 阅读 · 0 评论 -
Linux中命令cat /proc/meminfo读出的内核信息进行解释
linux free命令转载 2015-09-25 11:14:58 · 20866 阅读 · 0 评论 -
/proc/sys/kernel/printk
http://blog.sina.com.cn/s/blog_636a55070101i6sr.html/proc/sys/kernel/printk The four values in this file are console_loglevel, default_mes- sage_loglevel, m转载 2014-05-08 18:47:34 · 1605 阅读 · 0 评论 -
更改printk打印级别
http://blog.youkuaiyun.com/weed_hz/article/details/89491401、查看当前控制台的打印级别 cat /proc/sys/kernel/printk 4 4 1 7 其中第一个“4”表示内核打印函数printk的打印级别,只有级别比他高的信息才能在控制台上打印出来,既 0-3级别的信息2、修改打印 ech转载 2014-03-20 15:34:30 · 618 阅读 · 0 评论 -
Bus Error
http://blog.youkuaiyun.com/foreverfresh/article/details/1909839原因:Bus Error通常都是因为非对齐访问造成的。CPU在设计上为了性能上的考虑,要求待访问,操作的数据地址都要对齐。如果发现没有对齐的访问,就会向当前进程发出SIGBUS信号,使程序崩溃。原文:最近在论坛上看到一个程序员在询问Bus Error的问题。转载 2013-12-20 08:59:18 · 995 阅读 · 0 评论 -
-D_REENTRANT 宏作用
2._REENTRANT宏在一个多线程程序里,默认情况下,只有一个errno变量供所有的线程共享。在一个线程准备获取刚才的错误代码时,该变量很容易被另一个线程中的函数调用所改变。类似的问题还存在于fputs之类的函数中,这些函数通常用一个单独的全局性区域来缓存输出数据。为解决这个问题,需要使用可重入的例程。可重入代码可以被多次调用而仍然工作正常。编写的多线程程序,通过定义宏_REE转载 2013-12-02 18:26:07 · 720 阅读 · 0 评论 -
linux errno值
#define EPERM 1 /* Operation not permitted */#define ENOENT 2 /* No such file or directory */#define ESRCH 3 /* No such process */#define EINTR原创 2013-12-02 17:02:42 · 955 阅读 · 0 评论 -
open()函数flags说明
#include #include #include int open(const char *pathname, int flags);Flags: O_CREAT:如果文件不存在,则创建文件。O_EXCL:和O_CREAT一起使用,如果该文件已经存在,则open失败。O_TRUNC:如果文件存在,且是普通可写文件,则将该文件大小缩减为0。转载 2013-12-09 13:18:34 · 2721 阅读 · 0 评论 -
C语言常用time时间结构体
9 struct timespec { 10 time_t tv_sec; /* seconds */ 11 long tv_nsec; /* nanoseconds */ 12 }; 13 #endif 14 15 struct timeval { 16 time_t tv_sec; /* second原创 2013-11-12 18:37:47 · 4833 阅读 · 0 评论 -
Makefile 条件判断
EXTFLAGS=ifeq ($(EXTFLAGS), )EXTFLAGS=-g -Wallendif注意:EXTFLAGS=赋值时不需要加双引号。原创 2013-11-04 18:38:41 · 793 阅读 · 0 评论 -
linux debugfs
http://www.cnblogs.com/wwang/archive/2011/01/17/1937609.htmlDebugFS,顾名思义,是一种用于内核调试的虚拟文件系统,内核开发者通过debugfs和用户空间交换数据。类似的虚拟文件系统还有procfs和sysfs等,这几种虚拟文件系统都并不实际存储在硬盘上,而是Linux内核运行起来后才建立起来。通常情况下,最常用的转载 2014-05-08 15:42:33 · 775 阅读 · 0 评论 -
soft lockup detected
http://hxboy.blog.163.com/blog/static/176649299201121151531813/在修改oss驱动的时候,出现了soft lockup detected 的错误,查看一下内核源码,基本确定了导致问题的原因。内核里有一个watch内核线程,watchdog()函数是线程函数,这个函数没一秒被调用一次,在函数中更新一个时间戳。softlockup转载 2014-12-12 20:03:50 · 909 阅读 · 0 评论 -
linux中网络接口名称限制
Linux中每个网络接口都有一个名称,可以使用ifconfig命令来查询当前系统中的接口。那么这些接口命名时是否有要求或者限制呢,比如格式或者长度限制。从表面上看似乎没有限制可以随意命名,在一般应用场景中也可以正常工作,当在特殊应用场合中就会因为接口名称的原因出现莫名其妙的问题。问题1:接口名称长度过长应用场景:使用网络造包、发包工具进行向外发包时(比如mz工具),原创 2015-09-08 09:40:35 · 2800 阅读 · 0 评论 -
linux路由配置命令
添加网络路由route add -net 192.168.1.0/24 dev br-lan0 gw 192.168.1.1添加主机路由:ip route add 192.168.3.5/32 dev ath3.0或:route add -host 192.168.3.4 dev ath3.0添加默认路由:route add default gw 192.168原创 2015-08-26 13:31:04 · 592 阅读 · 0 评论 -
linux 路由表 的一些相关资料
http://www.cnblogs.com/gunl/archive/2010/09/14/1826234.htmllinux 路由表维护查看 Linux 内核路由表使用下面的 route 命令可以查看 Linux 内核路由表。# routeDestination Gateway Genmask Flag转载 2015-08-26 14:21:30 · 441 阅读 · 0 评论 -
虚拟网卡 TUN/TAP 驱动程序设计原理
http://www.ibm.com/developerworks/cn/linux/l-tuntap/Tun/tap驱动程序工作原理做为虚拟网卡驱动,Tun/tap驱动程序的数据接收和发送并不直接和真实网卡打交道,而是通过用户态来转交。在linux下,要实现核心态和用户态数据的交互,有多种方式:可以通用socket创建特殊套接字,利用套接字实现数据交互;通过proc文件系转载 2015-04-09 19:51:23 · 959 阅读 · 0 评论 -
面试常考题-TCP三次握手与四次握手
http://blog.youkuaiyun.com/dotnetpig/article/details/6776999最近面试了许多家公司,除了百度外,其它公司淘宝等都会问你TCP三次握手到底是什么,为什么是三次握手而不是四次握手呢?大家看完了我这篇文章后,相信一定会找到答案了。1、建立连接协议(三次握手)(1)客户端发送一个带SYN标志的TCP报文到服务器。这是三次握手过程转载 2015-04-12 14:01:26 · 5131 阅读 · 0 评论 -
本地应用程序利用socket(AF_INET)通信的数据在内核中的流向
本地应用程序利用socket(AF_INET)通信的数据在内核中的流向原创 2015-04-12 13:47:37 · 962 阅读 · 0 评论 -
socket链接的关闭close和shutdown的区别_TIME_WAIT和CLOSE_WAIT什么时刻出现_如何处理
http://blog.163.com/xychenbaihu@yeah/blog/static/132229655201181410222775/TCP主动关闭连接 appl: close(), --> FIN FIN_WAIT_1 //主动关闭socket方,调用close关闭socket,发FIN转载 2015-04-12 13:51:08 · 1122 阅读 · 0 评论 -
再谈Linux内核中的RCU机制
http://blog.chinaunix.net/uid-23769728-id-3080134.htmlRCU的设计思想比较明确,通过新老指针替换的方式来实现免锁方式的共享保护。但是具体到代码的层面,理解起来多少还是会有些困难。在《深入Linux设备驱动程序内核机制》第4章中,已经非常明确地叙述了RCU背后所遵循的规则,这些规则是从一个比较高的视角来看,因为我觉得过多的代码分析反而转载 2014-12-31 10:03:37 · 468 阅读 · 0 评论