05 2017 档案

摘要:本文面向使用过Solaris的mdb但是没有使用过Linux的crash的同学。比如说我自己,mdb用了很多年,现在全面转向Linux平台,于是很好奇Linux有没有类似的工具。熟悉Solaris的同学都知道,事后分析crashdump或者在线调试操作系统内核的强大工具就是mdb。而在Linux ( 阅读全文
posted @ 2017-05-31 21:58 veli 阅读(894) 评论(0) 推荐(0)
摘要:在网络应用如火如荼的今天,熟悉TCP/IP网络编程,那是最好不过。如果你并不非常熟悉,不妨花几分钟读一读。 为了帮助快速理解,先上个图,典型的使用socket建立和使用TCP/UDP连接过程为(截图来源戳这里): 下面仅讲述TCP连接建立的过程。 (参考资料来自这里) 1. Initial Stat 阅读全文
posted @ 2017-05-28 21:28 veli 阅读(4052) 评论(0) 推荐(0)
摘要:在操作系统中,有多线程(multi-threading)的概念,这很好理解,因为线程是进程最小的调度单位,一个进程至少包含一个线程。本文将介绍CPU特有的超线程技术。简单来说就是,多线程比较软,超线程比较硬,二者本质上都是虚拟化。 1. 什么是超线程(hyper-threading)? 超线程(hy 阅读全文
posted @ 2017-05-21 11:18 veli 阅读(17060) 评论(0) 推荐(6)
摘要:本文尝试从汇编的角度给出有符号整数比较与无符号整数比较的区别所在。 在《深入理解计算机系统》(英文版第二版)一书中的Page#77,有下面一个练习题: 将上述示例代码写入foo1.c文件,运行并分析bug产生的代码行。1. foo1.c 编译并运行,发现存在着非法内存访问, 用gdb查看一下core 阅读全文
posted @ 2017-05-20 16:01 veli 阅读(3013) 评论(1) 推荐(1)
摘要:在前文中,基于git介绍了webrev工具。实际上,webrev工具还支持hg和svn。最近的工作中不可避免地要使用svn,故在此总结一下如何基于svn在Linux上创建webrev。顺便吐个槽,没有网页版的代码比对,用svn diff简直就是刀耕火种茹毛饮血啊!技术再娴熟的老司机,也架不住让你在高 阅读全文
posted @ 2017-05-15 13:22 veli 阅读(537) 评论(0) 推荐(0)
摘要:在Sun/Oracle工作了N(>12)年后,对webrev工具甚为喜欢,因为其易用性确实非常好。幸运的是,有工程师将webrev工具放到了GitHub上,而且支持git。 下面给出使用webrev工具创建代码比对网页的全过程。 当然,首先得保证代码管理工具git在Linux(我用的是Ubuntu1 阅读全文
posted @ 2017-05-14 11:45 veli 阅读(796) 评论(0) 推荐(0)
摘要:作为一个数十年如一日地钟爱C语言的程序员(因为C程序员需要记忆的关键字很少,而且可以很惬意地玩内存),对于高级语言如Python里的异常(Exception)一直不甚理解,尤其是其实现机理。但读了《Learning Python》一书中上面这句话(尤其是goto关键字)后,忽然豁然开朗。 如果用C语 阅读全文
posted @ 2017-05-13 21:04 veli 阅读(1550) 评论(0) 推荐(0)
摘要:前一节介绍的侵入式链表实现在封装性方面做得不好,因为会让消费者foo.c直接使用宏container_of()。这一节对list的定义做了一点改进,如下所示: 既然链表结点已经保存了offset, 那么就不再需要宏container_of()了。(注:Solaris的侵入式双向循环链表就是这么玩的, 阅读全文
posted @ 2017-05-05 12:59 veli 阅读(1525) 评论(0) 推荐(0)
摘要:众所周知,一个普通的单链表看起来是这样子滴, 结构体里包含了一个指向同类型的链表指针next; 而侵入式单链表则不同,让结构体包含一个成员变量,该成员变量是一个通用的链表结点。看起来是这个样儿滴, 所有包含了list_t link的结点构成一个单链表。如果说传统的单链表看起来是这样的,(背景为绿色: 阅读全文
posted @ 2017-05-04 17:09 veli 阅读(4228) 评论(0) 推荐(0)
摘要:要理解Linux中实现的双向循环链表("侵入式"链表),首先得弄明白宏container_of。 本文尝试从gcc的关键字typeof和宏offsetof入手,循序渐进地剖析宏container_of之实现原理。 1. typeof (from: https://en.wikipedia.org/w 阅读全文
posted @ 2017-05-02 21:21 veli 阅读(1949) 评论(0) 推荐(0)
摘要:本文与个人的技术兴趣无关,但是,如果你正好也有和我一样的烦恼,也对流氓软件表示出离地愤怒,不妨花两分钟阅读一下。 背景介绍 我自己家里的笔记本电脑(操作系统: Win 7), 因为公司的事情被迫装上了"上网小助手"。 当公司给配备的电脑到位后,我就开始使用公司的电脑上班。 于是,我自己家里的电脑,显 阅读全文
posted @ 2017-05-01 12:34 veli 阅读(27709) 评论(0) 推荐(1)