faxiang1230 Blog

IT渣男

kill信号

信号 信号是一种原始的通信机制,被设计用来进程间通信的.除了进程互相发送信号外,内核也会主动发送信号给进程(都是不太好的消息,例如SIGSEGV). 进程通过系统调用来发送信号给目标进程/进程组/线程/线程组。目标进程接收到信号后,进行信号处理. 信号处理的结果有以下几种: 1.忽略,什么都不做 2.结束,结束进程或进程组 3.停止,将进程置于TASK_STOPPED状态;继续,如果进程之前...

同步、异步和阻塞、非阻塞

同步和异步 I/O操作 在UNIX的世界观中万物皆文件,用户程序使用的接口都是通过VFS来实现的,我们知道有三大类型的设备:网络设备,字符设备,块设备, 每一种设备的具体实现都是挂接在VFS的file_operations下的,我们看到的socket,终端、管道、硬盘上的文件都是文件,而针对这些文件的操作称为I/O操作。 根据文件的种类不同,I/O的特征也不一样,像对硬盘上的数据进行的读操作...

Linux内核Ramdisk(initrd)机制

转载:http://www.cnblogs.com/armlinux/archive/2011/03/30/2396827.html 摘要:对于Linux用户来说,Ramdisk并不陌生,可是为什么需要它呢?本文对Ramdisk在内核启动过程中的作用,以及它的内部机制进行深入介绍。 initrd 和 initramfs在内核中的处理 临时的根目录rootfs的挂载 in...

Net Conntrack

Conntrack conntrack主要的作用是连接跟踪,对每一个来往的数据流都记录下来,它并不是一个单独的module,而是一种基础设施,主要是为NAT来服务的,还有期望连接,其他辅助方法。 再往下它是构筑在netfilter框架上的一个模块,需要向netfilter注册hook方法。 它是如何区分每个数据流呢?根据协议的不同从中提取出来元信息,具有相同元信息的数据流它当做同一个连接; ...

工作感悟

高效的人生不做和理想无关的事情 这是需要提醒自己的事情,不要在还没有成绩的时候把自己的精力分散在很多的领域,专注于眼下,专注于一个领域先做出成绩是最有效的人生; 不贪多,聚焦切全力以赴; 这是个浮躁的时代,每个人都像在年纪轻轻的时候赚大钱,拥有属于自己的成就感;很多人都拼命的跳槽,换工作;到头来发现自己折腾了很久却没有方向,一事无成。 集中精力先做好一件事,不嫌弃他的渺小,忍受孤独,缓...

网络tuning

performance tuning

网络tuning NIC:Network interface card,网络接口卡 RPS:Receive Packet Steering,接收数据引导 GRO:Generic Receive Offloading RFS:Receive Flow Steering,多个数据流中,同一个数据流都流向同一个CPU 网络框图 原文链接 很多事情是在初始化的时候搞的,所以很有必要来看初始化的时候都...

conntrack模块引起的丢包

conntrack模块引起的丢包 问题描述 环境设置:在B机器上设置一条iptable规则做DNAT转发 iptables -t nat -A PREROUTING -p esp -j DNAT --to-destination 192.168.10.2 打开B机器的forward功能: echo 1 > /proc/sys/net/ipv4/ipv4_forward 问题步骤: ...

SimpleVPN

简单VPN示例 需求背景 A需要所有数据在网络上传输时都必须是经过加密的,以防止其他人窃取隐私,所以需要一种方案能够加密所有的网络数据。 其实现有的方案已经有好多了,像openvpn,IPSec,sock5等理论上都是能够达到目的的。下面就是根据openvpn的原理写的简要demo,加解密和密钥相关的可以自己增加. 在此之前需要澄清一个概念,我们需要保护的对象是什么?是数据,是两个IP之间的...

关于工作的一点思考

关于工作 在社会上混了几年,在IT界也是混了几个公司,深感里面水深,行走不敢不谨慎. 我现在从事Linux相关的工作,今天想谈一下我自己对于做应用还是做底层的想法,当然,仅限于软件工程师范畴 底层通常包括嵌入式软件工程师,我认识的很多都是武艺高强,精通十八般武艺,很多东西可能并不是很精通,但是给一点时间就能玩得很溜的,无他,对底层的原理了解透彻,自然对上层的东西一点就通; 不过初期的时候需要...

初识网络

"网络概括"

网络概廓 第一次开始真正接触网络,开始动手搭建做一些事情,难免有误,敬请指正! 计算机三大支柱:操作系统,编译原理,网络共同支撑着整个互联网,不过平时接触这些的人比较少。除此以外,数据库也占据很重要的位置,所有的应用都需要存取数据,近些年数据量暴增,基于大数据的存取,分析等都是需要数据库在底层的支撑。 1.网络基础 耳熟能详的网络模型是必备的,TCP/IP是现在事实上的标准,不过...