Mininet+OVS+ONOS搭建SDN仿真环境

最近又开始了疯狂的学习模式,为了方便学习、开发、测试,有一套SDN仿真环境,就显得很重要了。如果是控制面的开发,不涉及性能问题,完全可以先在Mininet的环境下,写几个Deamon。本文,就记录下,使用Ubuntu如何搭建一套Mininet+OVS+ONOS的SDN仿真环境,注意,以下的操作都在普通用户权限下进行

Linux内存管理

断断续续的研究了一段时间的Linux内存管理,大概能理出个框架。不过Cache那部分还是有点不太确定了(手头这三本书,只有《深入浅出DPDK》对Cache有提及),所以若有不正确的地方,还需大家提醒纠正

单核多线程自旋锁至CPU假死

今天填了个CPU假死的大BUG(其实本质还是违背了spin_lock的设计原则),赶快写篇相关的文章,记录下。先说下结论吧:在各种锁中,只有自旋锁处于busy-wait状态时,自旋着的线程/进程将获得大量时间片,占用大量cpu资源,从而引发该CPU假死状态(理论场景中其实还有可能获得锁(上锁的线程以龟速处理完逻辑,释放锁),所以在理论场景中,不能算是死锁(此时死锁条件=CPU假死+获得spin锁的线程需要处理实时的大流量任务))

HTTPS(TLS/SSL)与加/解密

最近由于工作需要,学习了下HTTPS(SSL/TLS)及加解密相关的知识,在此记录下。就最近的接触来看,挺多应用(加/解密)算法的实现都是基于OpenSSL来实现的,像下面要说的HTTPS,一般就可能用Nginx + OpenSSL来实现

移植GDB到Cavium

开发机上已经有gdb了,不过同事说不能用tui(文本用户界面)功能,不太方便,所以最好再移植个。其实关键还是使能tui,以及使能tui后需要ncurses库支持。中途遇到几个错误,其实都是引用的头文件路径问题而已(交叉编译过程的makefile一般是不会错的,所以最大的问题也就是依赖和路径问题,耐心看错误,结合搜索引擎,一般都能解决)。既然做了,就简单记录下