自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(7)
  • 资源 (4)
  • 收藏
  • 关注

原创 Linux TC(Traffic Control)框架原理解析

近日的工作多多少少和Linux的流控有点关系,自打几年前知道有TC这么一个玩意儿并且多多少少理解了它的原理之后,我就没有再动过它,因为我不喜欢TC命令行,实在是太繁琐了,iptables命令行也比较繁琐,但是比TC命令行直观,而TC命令行则太过于技术化。也许是我对TC框架没有对Netfilter框架理解深刻吧,也许是的。iptables/Netfilter对应的就是tc/TC。       Lin

2014-10-26 22:56:30 26088 10

原创 如今简直是一个后终端时代

装进小盒子的音乐路由,开博尔视频播放器,简直是一种硬件资源的浪费,开放接口才是硬道理,极路由也好不到哪去,只是云思想比较好。        如果我们回到20世纪60-70年代,那时所有的用户都坐在一台电传终端前工作,真正复杂数据处理的机器则在线缆的另一端,多用户分时系统的出现使得多个用户可以同时工作。这个思想直接导致了30年后大规模的C/S应用的出现,典型的就是Web服务,HTTP协议几乎成了应用

2014-10-18 10:44:40 9358 1

原创 朴素的UNIX之-进程/线程模型

UNIX的传统倾向于将一个任务交给一个进程全权受理,但是一个任务内部也不仅仅是一个执行绪,比如一个公司的所有成员,大家都在做同一件事,每个人却只负责一部分,粒度减小之后,所有的事情便可以同时进行,不管怎样,大家还都共享着所有的资源。因此就出现了线程。线程其实就是共享资源的不同的执行绪。线程的语义和朴素的UNIX进程是不同的。0.原始进程模型-著名的fork调用朴素的UNIX进程依托于著名的fork

2014-10-18 09:45:29 9222

原创 朴素的UNIX之-翻开历史

可以毫不夸张地说,UNIX模型就是现代操作系统的原型!不管是原汁原味的UNIX各大系列比如AIX,Solaris,HP-UX,FreeBSD,NetBSD,...还是类UNIX比如Linux...还是基于Windows NT架构的各种微软操作系统,其基本思想都是来源于UNIX。虽然这些系统一个比一个复杂,但是请记住一句话:所有的基本思想都是也必须是朴素的,简单的!       也许,很多人看到这里

2014-10-18 09:33:48 7512 1

原创 朴素的UNIX之-Linux CFS一个注释

本系列名为朴素的UNIX,但是也包括各个类UNIX系统的细节,本系列文章整理自本人几年来的学习笔记,着重分析各个UNIX,类UNIX的实现思想以及感悟。       本文比较短,只是分析一下Linux CFS调度器的一个细节。       在进程寻找下一个将被运行的进程时,难道仅仅只是在红黑树上取下左下角的进程吗?事实上最朴素的实现就是这样,但是考虑到优化的话,就没有这么简单了。要考虑CPU缓存的

2014-10-12 13:37:54 3866

原创 朴素的UNIX之-调度器细节

0.多进程调度的本质我们都知道UNIX上有一个著名的nice调用,何谓nice,当然是“好”了,常规的想法是nice值越大越好,实际上,nice值越好,自己的优先级越低,那么为何不用badness呢?       事实上,如果我们理解了操作系统多进程调度系统是一个“利他”系统,这个问题就不是个问题了。nice当然还是好,不是对自己好,而是对别人好。利他系统是一个人人为我我为人人的系统,类似还有TC

2014-10-12 12:21:15 8235 2

原创 朴素的UNIX之-调度器前传

Linux目前的进程调度算法是CFS算法,替换了之前的时间片轮转调度算法,CFS算法平滑了动态优先级的计算过程,使整个系统在任何时间都可以被任何执行实体抢占,事实上这是分时系统的基本原则,试想,如何每一个进程/线程都像中断那样,依靠自己的优先级随时执行,那整个系统才真的成了“公平的”利他系统。要想理解这种利他行为的本质,如果我们去研究CFS调度算法的各种统计数据,或者去研究其代码,那么其效果肯定是

2014-10-12 12:14:15 7531

一个iptables的stateless NAT模块实现

如果你在寻找Linux上配置诸如Cisco设备上的static双向NAT的方法,这个或许就是你想要的; what?你觉得它完不成PAT?是的,它不行。但是想做PAT为何不使用现有的iptables实现呢?它可以自动为你解决元组唯一性问题。不要从概念上分析,事实上,static双向NAT是完全对称的,一对一的 ,也只有在BOX两边的网络在拓扑级别是完全对等的情形下,这种NAT或许才是有用的,Cisco设备经常处在这样的位置,比如一个很大的stub节点的出口位置,比如两个domain的中间位置... 我将名字取为STATIC-2-WAY-NAT,比较长也比较怪,完全不符合UNIX的小写短名传统,我的想法是:这样可以少写很多的帮助信息,因为名字就是自解释的。

2014-12-27

模块化的nf-HiPAC

原版的nf-hipac需要为内核打patch,且只支持较低版本的内核,构建起来相对比较麻烦。 模块化后的nf-hipac可以直接作为内核可加载模块编译,且适配了高版本的Linux内核。为了移植工作简化,去掉了和iptables模块的联动支持!

2014-11-21

配置文件还有一些other

代码和配置iptables配置文件,还有一些别的东西

2010-04-16

关于linux内核以及其他个人体会的文集

本文集是我用将近两年的时间写成的,大多数文章是关于linux内核的,另外还有一些我自己对计算机的理解,还有一些历史,音乐方面的东西。适合于对linux内核思想感兴趣的阅读,文章偏重于对于思想的理解。

2009-09-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除