随笔分类 -  Linux开发

用dropbox做私有git服务器
摘要:两样都用过的人,看标题大概就明白了。这两天写代码,自己的代码,不想拿到github去公开,但是又没钱去买私有的git hosting 服务,突然想起咱有dropbox。方法很简单,在dropbox的目录里面用git init建立一个repository,然后,在项目目录里 面(当然也是个git目录),使用git remote add把这个目录加为远程源,git push下,搞 定! 阅读全文
posted @ 2011-12-14 17:12 chingliuyu 阅读(253) 评论(0) 推荐(0)
使用call_usermodehelper在Linux内核中直接运行用户空间程序
摘要:by沈东良/良少http://blog.csdn.net/shendl2011.07.19系统初始化时kernel_init在内核态创建和运行应用程序以完成系统初始化 内核刚刚启动时,只有内核态的代码,后来在init过程中,在内核态运行了一些初始化系统的程序,才产生了工作在用户空间的进程。/* This is a non __init function. Force it to be noinline otherwise gcc736 * makes it inline to init() and it becomes part of init.text section737 */... 阅读全文
posted @ 2011-12-14 11:05 chingliuyu 阅读(506) 评论(0) 推荐(0)
RedHat安装Gcc.4.1.2
摘要:kernel-headers-2.6.18-194.el5.i386.rpmglibc-common-2.5-49.i386.rpm[14:04:14] ChingLiu YU: glibc-2.5-49.i686.rpm[14:04:22] ChingLiu YU: glibc-headers-2.5-49.i386.rpm[14:06:03] ChingLiu YU: glibc-devel-2.5-49.i386.rpm[14:06:11] ChingLiu YU: libgomp-4.4.0-6.el5.i386.rpm[14:06:34] Lixin Lu: error on 阅读全文
posted @ 2011-12-12 14:22 chingliuyu 阅读(1268) 评论(0) 推荐(0)
Windows/Linux下C/C++内存泄露检测工具
摘要:http://hi.baidu.com/irenbest/blog/item/6353c7fdb3d77140d7887d13.html一 Window下的内存泄露检测(以VC++环境为例)灵活自由是C语言的一大特色,但这个特色也难以避免的带来一些副作用,比如内存泄露。众所周知,内存泄露的问题比较复杂,程序正常运行时你看不出它有任何异常,但长时间运行或在特定条件下特定操作重复多次时,它才暴露出来。所以,内存泄露往往是难以发现,也难以定位解决的。Visual Leak Detector(VLD)是一款用于Visual C++的免费的内存泄露检测工具,用户可从http://www.codeproj 阅读全文
posted @ 2011-12-10 13:53 chingliuyu 阅读(2805) 评论(0) 推荐(1)
linux内核ipv4网络部分分层结构及涉入源文件
摘要:http://hi.baidu.com/amy_yeni/blog/item/c54003004d9a080b738da5b3.htmllinux内核ipv4网络部分分层结构:BSD socket层: 这一部分处理BSD socket相关操作,每个socket在内核中以struct socket结构体现。这一部分的文件主要有:/net/socket.c /net/protocols.c etcINET socket层:BSD socket是个可以用于各种网络协议的接口,而当用于tcp/ip,即建立了AF_INET形式的socket时,还需要保留些额外的参数,于是就有了struct sock结构 阅读全文
posted @ 2011-11-20 20:15 chingliuyu 阅读(403) 评论(0) 推荐(0)
linux 内核网络,数据接收流程图
摘要:4.3 数据接收流程图各层主要函数以及位置功能说明: 1)sock_read:初始化msghdr{}的结构类型变量msg,并且将需要接收的数据存放的地址传给msg.msg_iov->iov_base. net/socket.c 2)sock_recvmsg: 调用函数指针sock->ops->recvmsg()完成在INET Socket层的数据接收过程.其中sock->ops被初始化为inet_stream_ops,其成员recvmsg对应的函数实现为inet_recvmsg()函数. net/socket.c 3)sys_recv()/sys_recvfrom(): 阅读全文
posted @ 2011-11-20 20:09 chingliuyu 阅读(1110) 评论(1) 推荐(0)
linux 内核网络,数据发送流程图
摘要:4.2 数据发送流程图各层主要函数以及位置功能说明: 1)sock_write:初始化msghdr{}结构 net/socket.c 2)sock_sendmsg:net/socket.c 3)inet_sendmsg:net/ipv4/af_net.c 4)tcp_sendmsg:申请sk_buff{}结构的空间,把msghdr{}结构中的数据填入sk_buff空间。net/ipv4/tcp.c 5)tcp_send_skb:net/ipv4/tcp_output.c 6)tcp_transmit_skb:net/ipv4/tcp_output.c 7)ip_queue_xmit:net/. 阅读全文
posted @ 2011-11-20 20:07 chingliuyu 阅读(633) 评论(0) 推荐(1)
Libpcap BPF(BSD Packet Filter)包过滤机制
摘要:http://hi.baidu.com/ahtaria/blog/item/969ae4447eaa59076a63e57d.htmlLibpcap 重点使用 BPF(BSD Packet Filter)包过滤机制,BPF 于 1992 年被设计出来,其设计目的主要是解决当时已存在的过滤机制效率低下的问题。BPF的工作步骤如下:当一个数据包到达网络接口时,数据链路层的驱动会把它向系统的协议栈传送。但如果 BPF 监听接口,驱动首先调用 BPF。BPF 首先进行过滤操作,然后把数据包存放在过滤器相关的缓冲区中,最后设备驱动再次获得控制。注意到BPF是先对数据包过滤再缓冲,避免了类似 sun 的 阅读全文
posted @ 2011-11-19 23:42 chingliuyu 阅读(5323) 评论(0) 推荐(0)
Linux Netfilter实现机制和扩展技术
摘要:http://www.ibm.com/developerworks/cn/linux/l-ntflt/2.4.x的内核相对于2.2.x在IP协议栈部分有比较大的改动, Netfilter-iptables更是其一大特色,由于它功能强大,并且与内核完美结合,因此迅速成为Linux平台下进行网络应用扩展的主要利器,这些扩展不仅包括防火墙的实现--这只是Netfilter-iptables的基本功能--还包括各种报文处理工作(如报文加密、报文分类统计等),甚至还可以借助Netfilter-iptables机制来实现虚拟专用网(VPN)。本文将致力于深入剖析Netfilter-iptables的组织结 阅读全文
posted @ 2011-11-19 14:09 chingliuyu 阅读(1442) 评论(0) 推荐(0)
ubuntu 10.04 编译安装最新版本linux-2.6.34内核
摘要:17号linux-2.6.34内核发布,带来了一些更新,想升级的朋友可以按照以下方法第一步:准备工作打开终端获得root权限:sudo su然后安装编译内核时需要的工具:apt-get install build-essential kernel-package libncurses5-dev libqt3-headersbuild-essential (基本的编程库(gcc, make等)kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具)libncurses5-dev (meke menuconfig要调用的)libqt3-header 阅读全文
posted @ 2011-11-17 16:35 chingliuyu 阅读(478) 评论(0) 推荐(0)
Linux内核bridge浅析
摘要:Linux网桥模型: Linux内核通过一个虚拟的网桥设备来实现桥接的,这个设备可以绑定若干个以太网接口设备,从而将它们桥接起来。如下图所示:网桥设备br0绑定了eth0和eth1。对于网络协议栈的上层来说,只看得到br0,因为桥接是在数据链路层实现的,上层不需要关心桥接的细节。于是协议栈上层需要发送的报文被送到br0,网桥设备的处理代码再来判断报文该被转发到eth0或是eth1,或者两者皆是;反过来,从eth0或从eth1接收到的报文被提交给网桥的处理代码,在这里会判断报文该转发、丢弃、或提交到协议栈上层。 而有时候eth0、eth1也可能会作为报文的源地址或目的地址,直接参与报文的发送.. 阅读全文
posted @ 2011-11-17 14:38 chingliuyu 阅读(1105) 评论(0) 推荐(0)
深度探索套接字缓冲区 sk_buff skb
摘要:http://blog.csdn.net/aaa6695798/article/details/4879271 套接字缓冲区用结构体struct sk_buff表示,它用于在网络子系统中的各层之间传递数据,处于一个核心地位,非常之重要。它包含了一组成员数据用于承载网络数据,同时,也定义了在这些数据上操作的一组函数。下面是其完整的定义: struct sk_buff { struct sk_buff *next; struct sk_buff *prev; struct sock *sk; struct skb_timeval tstamp; struct net_device *dev; s. 阅读全文
posted @ 2011-11-17 13:43 chingliuyu 阅读(1421) 评论(1) 推荐(0)
学习如何在netfilter上开发一个自定义hook
摘要:记录相关网址: 1、Linux netfilter Hacking HOWTO http://www.netfilter.org/documentation/HOWTO/netfilter-hacking-HOWTO.html#toc3 2、CSDN上一篇参考博文: A example of NF_IP_PRE_ROUTING module http://blog.csdn.net/jiatingqiang/article/details/6282003 阅读全文
posted @ 2011-11-17 10:57 chingliuyu 阅读(286) 评论(0) 推荐(0)
Writing Loadable Kernel Modules using netfilter hooks (in-depth HOWTO) – Part 1
摘要:http://fcns.eu/2010/02/netfilter-hooks/keyword:write new netfilter moduleNote:This article was inspired by the lack ofupdateddocumentation on how to write proper netfilter kernel modules. At the time I’m writing this article, the latest stable release was 2.6.32.8. I am also assuming you are familia 阅读全文
posted @ 2011-11-17 08:53 chingliuyu 阅读(451) 评论(0) 推荐(0)
installing kernel source code in Redhat or centos, kernel headers install
摘要:安装内核源码步骤installing kernel source code in Redhat or centos, kernel headers install 2011-03-10 15:15 Both CentOS and RHEL5 includes following packages: Kernel-headers : It includes the C header files th... 阅读全文
posted @ 2011-11-05 09:21 chingliuyu 阅读(1613) 评论(0) 推荐(0)
Linux的timerfd分析
摘要:http://blog.csdn.net/walkingman321/article/details/6162055timerfd是Linux为用户程序提供的一个定时器接口。这个接口基于文件描述符,所以能够被用于select/poll的应用场景。1.使用方法timerfd提供了如下接口供用户使用timerfd_createint timerfd_create(int clockid, int flags);timerfd_create用于创建一个定时器文件。参数clockid可以是CLOCK_MONOTONIC或者CLOCK_REALTIME。参数flags可以是0或者O_CLOEXEC/O_ 阅读全文
posted @ 2011-10-17 15:08 chingliuyu 阅读(1558) 评论(0) 推荐(0)
获得目录的file descriptor.
摘要:最近的模块中要用到 openat .其它原型为:(int dfd, const char __user *filename, int flags, int mode);第一个参数 是,dfd,找了许久都没找到怎样获得目录文件描述符,还是在google code search 中发现。int dirfd(DIR *dir);dirfd - get directory stream file descriptor.还是很怀念windows。MSDN组织的很好。 阅读全文
posted @ 2011-09-27 16:12 chingliuyu 阅读(207) 评论(0) 推荐(0)
Linux Security Module的注册层次
摘要:LinuxSecurityModule的注册层次===================================================作者:ietf AT doit.com.cn所有源文件来自于linux kernel 2.6.20请在GNU Library General Public License下参考。引用请注明出处。===================================================selinux的出现着实扰乱了文件系统的进度,不过送算慢慢搞清楚了其中的来龙去脉。下面将通过2.6.20内核中的security代码进行一番简单的分析。该 阅读全文
posted @ 2011-09-21 15:50 chingliuyu 阅读(780) 评论(0) 推荐(0)
Security-Enhanced Linux(SELinux)
摘要:http://space.doit.com.cn/45811/viewspace-2096.htmlSecurity-EnhancedLinux(SELinux),这在linux2.6的内核中,是你不得不关注的对象。无论是文件系统还是网络接口,到处都能不经意的瞥到它幽灵般的身影。其钩子的实现方式严重的影响着对内核的正常阅读,为此,很有必要把这个幽灵就出来使之大白于天下。本篇文章内容系东拼西凑,绝非原创,特此声明。一、什么是selinux美国国家安全局(NationalSecurityAgency,NSA)长时间以来就关注大部分操作系统中受限的安全能力。毕竟,他们的工作之一就是要确保美国国防部使 阅读全文
posted @ 2011-09-21 15:46 chingliuyu 阅读(662) 评论(0) 推荐(0)
使用kprobes,截获execve系统调用,更谨慎的hook syscallTable的写法
摘要:转载,原文出处:http://blog.chinaunix.net/u/548/showart.php?id=386423关于截获execve等系统调用,很久以来存在一个问题:新函数不能直接调旧函数,否则导致stack不平衡,出错。曾经有高人用一串的汇编代码去平衡堆栈, 但对于偶们这些汇编菜鸟来说, 连阅读都很困难。而且, 好像gcc4.x下不支持 它使用的一种寻址方式了。这次使用kprobes来直接找do_execve,直接照搬sys_execve的实现代码。至于LICENSE的问题,谁用谁负责,我只是从技术角度上说可以这样做。(我的代码是GPL的)只截获了open和execve作为示例,其 阅读全文
posted @ 2011-09-16 17:02 chingliuyu 阅读(731) 评论(0) 推荐(0)